2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

カテゴリー

ブログパーツ

無料ブログはココログ

« roombaのドライバをインストールする | トップページ | roombaをpythonで動かしてみる »

2013年4月 6日 (土)

roombaをROSのコマンドで動かしてみる

ROSさんお手やわらかに:ROS入門編

前回の続き。インストールしたパッケージをテストする。

■接続テスト
roomba_500_seriesパッケージのノード・roomba500_light_nodeを起動しroombaとの接続をテストする。
まず、roombaをいつものシリアルレベルコンバータとUSBシリアル変換ケーブルを使ってパソコンに接続する。
Dscn2548  Dscn2549


ポートは/dev/ttyUSB0になる。テスト前にこのデバイスへのアクセス権を取得しておく。

テスト手順は下記のとおり
・roombaを接続。電源ボタンを押しランプ点灯を確認。(レベルコンバータの電源ONを忘れずに)
・端末を開きROSを初期化した後でroscoreを実行。
・もう一つ端末を開きROSを初期化した後で rosrun roomba_500_series roomba500_light_node でドライバノードを起動。下記のようなメッセージが出れば接続成功。
[ INFO] [1365212678.543347802]: Roomba for ROS 2.01
[ INFO] [1365212678.822329509]: Connected to Roomba.
・roombaの電源ランプが消えている(Fullモード)ことを確認。
・テストが終わったらCTRL+Cで終了。(終了後ボタンを押してroombaのランプ点灯。これをしないとroombaをノーマルモードに戻せない)

以上で接続テスト終了。もしrosrunで赤字のエラーメッセージが出たら、こういう意味。
Could not connect to Roomba. →USBシリアル変換が認識できてないかポートが違う。
Could not retrieve sensor packets.が連続して出る →roombaと接続できていない。ケーブルの不備。

■rostopicで動かしてみる
roomba500_light_nodeがサブスクライブするメッセージはcmd_vel、タイプはgeometry_msgs/Twist。これは移動速度linearと旋回速度angularで構成され、いずれもxyz3軸のベクトルで表される。このノードではlinear(m/sec)はx、angular(radian/sec?)はz成分に値を入れる。

上の手順でroomba500_light_nodeを起動した後、新たな端末を開いて下記のコマンドでテストする。

このコマンドで前に0.1m/secで3秒走行し停止
rostopic pub -1 cmd_vel geometry_msgs/Twist '[0.1, 0, 0]' '[0, 0, 0]' && rostopic pub -1 cmd_vel geometry_msgs/Twist '[0, 0, 0]' '[0, 0, 0]'
3秒はrostopic pubでメッセージの掲示期間のデフォルト値。

これは3秒左に0.1radian/secで旋回
rostopic pub -1 cmd_vel geometry_msgs/Twist '[0, 0, 0]' '[0, 0, 0.1]' && rostopic pub -1 cmd_vel geometry_msgs/Twist '[0, 0, 0]' '[0, 0, 0]'

一度メッセージを送るとずっとそれを実行する。今回のテストではメッセージを二つ送り順番に実行させている。一つ目が動かすメッセージで二つ目が停止のメッセージ。

今回お世話になったのはこのページ

« roombaのドライバをインストールする | トップページ | roombaをpythonで動かしてみる »

ROSさんお手やわらかに」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1140145/51119146

この記事へのトラックバック一覧です: roombaをROSのコマンドで動かしてみる:

« roombaのドライバをインストールする | トップページ | roombaをpythonで動かしてみる »