URGデータを作ってみる
ROSさんお手やわらかに:ROS青雲編
ここまで来たのなら、Hanabot1に測距センサを載せてturtleBotのようにROSで使えるロボットにしたい。
センサのデータはオリジナルのデータフォーマットを作らずに、sensor_msgs/LaserScanの形で流すようにしたい。これなら、rvizでモニタできるので、開発が楽だ。
試しに、ダミーのLaserScanデータを作成するdmylaser.pyと、これをちょっとばかりオフセットしてTFに設定するtesttf.pyを作ってrvizで見てみた。(この辺を参考に)hanabotパッケージのフォルダに二つのファイルを置いて、rosrunで起動するだけだ。
ちっぽけな点々がダミー障害物の位置だ。これはdmylaser.pyの
laser.ranges = [0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5]
で、値を設定している。単位はmだ。まだデータの数と方向が思ったようになっていないが、ともあれこんな感じでデータを作れば、レーザースキャナ(URG)よりずっと測定点が少ないセンサでも、データを送れることがわかった。
ただ、レーザースキャナのようにスピーディにマッピングができるわけではないだろう。測定点がすくないのだから。
« 1/8になったのかな | トップページ | Navigation stack関連の資料を和訳する »
「ROSさんお手やわらかに」カテゴリの記事
- 3Dプリンターで作る簡単turtlebot(おしまい)(2017.01.07)
- 3Dプリンターで作る簡単turtlebot(raspberry pi3の取り付け)(2017.01.03)
- 3Dプリンターで作る簡単turtlebot(kinectの取り付け)(2017.01.02)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て2)(2016.12.29)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て1)(2016.12.25)
roombaにpythonでバッテリー情報などを取得するために,センサーのコマンドを送信したのですが,どのようにしたら受信した情報を見ることができるか分かりますでしょうか?
投稿: k | 2014年7月16日 (水) 11時21分
ブログオーナーのササガワです。
簡単には、センサ読み出しコマンドを送信した後、read(センサーデータのバイト数)でroombaから送られてくるセンサーデータをすべて読み込むとよいのではないかと思います。これだと、シリアル受信バッファにデータが残っていると、うまく受信できないので、センサ読み出しコマンドの前に、flushInput()で受信バッファをクリアしておくと安心でしょう。試した訳ではありませんのでトライしてみてください。
投稿: ササガワ | 2014年7月16日 (水) 21時57分
ありがとうございます^_^
ser.readlinesと言うのを使ったら16進数の値を取ることができました。
これからルンバのログ取得システムを構築していきたいと思います(。・ ω<)ゞ
投稿: k | 2014年7月17日 (木) 01時46分