Pythonでソケット越しにコマンドを受け取ってRoombaをROSで制御する(自己位置設定編

引き続き、自前のシステムから指令を送ってRoombaをROS越しに制御するための準備。

スポンサーリンク

Rvizを使えば””2D pose estimate”ボタンで自己位置を設定できるけど、
それもプログラム越しに行いたいのでどういう処理が行われているかを調べて実装テスト。
参考にしたのはこことかこことかここ

要は、initialpose(PoseWithCovarianceStamped)をPublishすればよい。
以下のコードを通じて、ros-navigation2d-exampleで制御しているRoombaの位置を変更できることを確認した。
テストということで、何か文字列を受け取ったら特定の場所に自己位置を設定しているが、文字列を分解して処理すれば任意の位置に設定できるはず。
ただ、通信して最初のメッセージではうまく設定できず、2回目以降から正しく動く。おそらく初期化周りに問題があるんだろうけど、とりあえず動いたのでひとまずメモしておく。

スポンサーリンク


スポンサーリンク

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です