tms_ss_fss - irvs/ros_tms GitHub Wiki
run fss
sudo chmod a+rw /dev/ttyACM0
roslaunch tms_ss_fss_exe fss_lrf_drive.launch
rosrun tms_ss_fss_exe fss_preprocess
rosrun tms_ss_fss_exe fss_transform
rosrun tms_ss_fss_exe fss_cluster
rosrun tms_ss_fss_exe fss_classify
rosrun tms_ss_fss_exe fss_track
run tms_viewer for confirm the data and process
rosrun tms_dev_viewer tms_viewer
Prior Knowledge
https://docs.google.com/spreadsheet/ccc?key=0AsKjmdeQEqOHdENrTUM3UWFidnJ5SUdxXzRGT2ZMRmc
Setup NTP (Network Time Protocol)
: Clock synchronization is important for ROS. :)
- Install Chrony
sudo apt-get install chrony
- Setup sync NTP
sudo ntpdate ntp.ubuntu.com
Function of use time
Publisher example
ros::Time tNow = ros::Time::now() + ros::Duration(9*60*60); // GMT +9
fss_pre_data.tMeasuredTime = tNow;
rosPub.publish(fss_pre_data);
Subscriber example
#include <boost/date_time/local_time/local_time.hpp>
void rosCheckTime(boost::posix_time::ptime time)
{
struct tm T = boost::posix_time::to_tm(time); // ptime -> struct tm
cout << T.tm_year + 1900 << "/" << T.tm_mon + 1 << "/" << T.tm_mday << " "
<< T.tm_hour << ":" << T.tm_min << ":" << T.tm_sec << endl;
// or save in TMS
}
void fssCallback(const fss::fss_pre_data::ConstPtr& msg)
{
ros::Time tMeasuredTime = msg->tMeasuredTime;
uint64_t nsec = tMeasuredTime.toNSec();
printf("nsec = %llu nsec\n", nsec);
rosCheckTime(tMeasuredTime.toBoost()); // view or save measured time
}
Setup fss node
Setup
- roscd fss
- rosmake
- make eclipse-project (because make to eclipse-project file)
Edit sorce
- Eclipse > File > import > General > Existing Projects into Workspace > Browse > fss node folder > OK > Finish
Run/Debug Setting
- Projects Menu > Properties > Run/Debug Settings > New > Main > Search Project... > Select Binaries file (ex.fss_classify) > Environment > New
- Variable or Name = ROS_MASTER_URI, Value = http://192.168.4.101:11311
- Variable or Name = ROS_ROOT, Value = /opt/ros/electric/ros or /opt/ros/fuerte/ros
Make
- rosmake fss or Qt > Build Command
Setup fss_graph
Package dependencies
- libqwt
- qt4
Setup (if ubuntu 12.04 LTS)
- install libqwt-dev, libqwt6 (recommend using "synaptic package manager")
- install qt4 (http://qt-project.org/downloads, Qt SDK version 1.2 > , recommend offline installer)
- roscd fss_graph
- cmake CMakeLists.txt
- rosmake
- cmake .. -G"CodeBlocks - Unix Makefiles" CMakeLists.txt (because make to qt-project file)
To edit
- QT > Open Project > fss_graph node folder > CMakeLists.txt
Run/Debug Setting
- Left Projects Menu > Run Settings > Run Environment > Add >
- Variable = ROS_MASTER_URI, Value = http://192.168.4.101:11311
- Variable = ROS_ROOT, Value = /opt/ros/electric/ros or /opt/ros/fuerte/ros
Make
- rosmake fss_graph or Qt > Build Command
Setup fss_viewer
Package dependencies
- qt4
Setup
- install qt4 (http://qt-project.org/downloads, Qt SDK version 1.2 > , recommend offline installer)
- roscd fss_viewer
- cmake CMakeLists.txt
- rosmake
- cmake .. -G"CodeBlocks - Unix Makefiles" CMakeLists.txt (because make to qt-project file)
To edit
- QT > Open Project > fss_viewer node folder > CMakeLists.txt
Run/Debug Setting
- Left Projects Menu > Run Settings > Run Environment > Add >
- Variable = ROS_MASTER_URI, Value = http://192.168.4.101:11311
- Variable = ROS_ROOT, Value = /opt/ros/electric/ros or /opt/ros/fuerte/ros
Make
- rosmake fss_viewer or Qt > Build Command
Execute
Drive UTM30LX laser-range-finder(LRF)
roslaunch fss fss_lrf_drive.launch
Measure LRF accuracy
rosrun fss fss_accuracy
Classify clusters of objects
roslaunch fss fss_classify.launch
rosrun fss fss_preprocess
rosrun fss fss_transform
rosrun fss fss_cluster
rosrun fss fss_classify
Tracking class of objects
rosrun fss fss_track
View data of objects in floor via graph
rosrun fss_graph fss_graph
View data of objects in floor via xy-coordinate
rosrun fss_viewer fss_viewer
TMSDB data format
Link page > tms_db
//------------------------------------------------------------------------------
#define TYPE_ROBOT 1
#define TYPE_FUNITURE 2
#define TYPE_MOVABLE_FUNITURE 3
#define TYPE_PERSON 4
#define TYPE_OBJECT 5
#define TYPE_UNKNOWN_OBJECT 6
#define TYPE_MAP 7
#define TYPE_2D_MODEL 8
#define TYPE_3D_MODEL 9
#define ID_NONE 0
#define ID_SMARTPAL 1
#define ID_ROOMBA 2
#define ID_KKP 3
#define ID_FLOOR 11
#define ID_BED 12
#define ID_DESK 13
#define ID_TABLE 14
#define ID_CABINET1 15
#define ID_CABINET2 16
#define ID_WAGON1 21
#define ID_WAGON2 22
#define ID_CHAIR1 23
#define ID_CHAIR2 24
#define ID_WHEELCHAIR 25
#define ID_PERSON1 31
#define ID_PERSON2 32
#define ID_PERSON3 33
#define ID_PERSON4 34
#define ID_PERSON5 35
#define ID_NAMACHA 51
#define ID_CHIPSTAR1 52
#define ID_CHIPSTAR2 53
#define ID_CHIPSTAR3 54
#define ID_BOTTLE 55
#define ID_COINBANK 56
#define ID_WATER 57
#define ID_PETBOTTLE 58
#define ID_BOOK 59
#define ID_CALPIS 60
#define ID_UNKNOWN_OBJECT1 201
#define ID_UNKNOWN_OBJECT2 202
#define ID_UNKNOWN_OBJECT3 203
#define ID_UNKNOWN_OBJECT4 204
#define ID_UNKNOWN_OBJECT5 205
#define NAME_NAMACHA "namach"
#define NAME_CHIPSTAR1 "chipstar1"
#define NAME_CHIPSTAR2 "chipstar2"
#define NAME_CHIPSTAR3 "chipstar3"
#define NAME_BOTTLE "bottle"
#define NAME_COINBANK "coinbank"
#define NAME_WATER "water"
#define NAME_PETBOTTLE "petbottle"
#define NAME_BOOK "book"
#define NAME_CALPIS "calpis"
//------------------------------------------------------------------------------
#define STATE_NOT_EXIST 0
#define STATE_EXIST 1
#define STATE_STOP 1
#define STATE_MOVE 2
//------------------------------------------------------------------------------
Ubuntuにfloor-sensing-systemを導入する方法
作成日:2012/07/10 20:45 作成者:田中真英
目次
1.ROSのインストール 2.RapitSVNのインストール(※ Subversionのクライアント) 3.Eclipseのインストール 4.Qtのインストール
内容
- ROSのインストール
- 以下のサイトの内容に沿ってインストールを行う http://www.ros.org/wiki/electric/Installation/Ubuntu
- 環境変数の設定は以下を参照する http://www.ros.org/wiki/ROS/EnvironmentVariables#ROS_PACKAGE_PATH
- RapitSVNのインストール
- 端末で次を実行「$ sudo apt-get install rapidsvn」
- 完了するとインストール済みアプリにRapidSVNが入っているので起動
- 「ブックマーク」右クリックで「新しい作業コピーをチェックアウト」
- 以下のURL(表さんのfloorSensingSystemのリポジトリ)を入力。 出力ディレクトリは、1で作成したROSのworkspace内を選択、そしてチェックアウト (この時、subaruへのアカウント名、パスワードの入力を要求される) http://subaru.ait.kyushu-u.ac.jp/svn/floor-sensing-system/trunk
- cmake_install.cmakeとbuildフォルダを削除
- Eclipseのインストールとプロジェクト読み込み手順(※ 例としてfssパッケージで説明)
- 以下のURLから最新のEclipse(juno)をダウンロード Eclipse IDE for C/C++ Developers」のLinux版 http://www.eclipse.org/downloads/packages/release/juno/r
- 以下のサイトの内容に沿って、Eclipseでデバックするための設定を行う http://www.ros.org/wiki/IDEs
- 端末で、先ほどチェックアウトしたファイルの「trunk/fss/」に移動し、 次のコマンドを入力「$ make eclipse-project」 (この時作成?されるファイルはsvnでコミットしない方が良いみたい)
- Eclipseを起動(できればコマンドで)し、上記で作成したプロジェクトファイルを読み込む 「File」->[import]->[General/Existing Projects into Workspace] 「Select root directory」で「trunk/fss/」を選択(fss packageがある場所)
- Qtのインストール
- 以下のサイトよりLinux版をダウンロード「linux/X11 32-bit オンラインインストーラ」 http://qt.nokia.com/downloads-jp
- ダウンロードしたrunファイルを以下のように実行
$ chmode u+x Qt_SDK_Lin32_online_v1_2_en.run
$ ./Qt_SDK_Lin32_online_v1_2_en.run
- セットアップを行う