kachaka-api
kachaka-api copied to clipboard
ROS 2ブリッジから地図、自己位置を配信しない
https://github.com/pf-robotics/kachaka-api/issues/101で「mapが空の状態でros2bridgeがエラーにならないようにする」対応がなされる予定となっています。この状態でナビゲーションをしようとすると、自身のmapping、localizationアルゴリズムを動かせるようになりそうです。一方、現状のROS 2ブリッジからはマップデータおよびodom、map間のtfが出ているため、自身のmapping、localizationアルゴリズムを動かせないように思っています。
ROS 2ブリッジから地図、自己位置を配信しないようにすることについて今後対応の予定はありますか?
こちら問題をクリアにしたいのですが /map を共通にし、 /odomを別名とすることで解決できないでしょうか?
それとも /odom -> /base_footprint が再利用できないことがクリティカルな問題でしょうか? こちらは/tf_prefixを用い、 odomトピック(tfでなく)から出すということで解決できますでしょうか?
少し調べましたが、以下で特に今のros2_bridgeがだしているtf, topic等を止めなくても自身のmapping、localizationアルゴリズムを動かせそうです。
- 自身のmapping、localizationが発行する /odomのtfの名前を /{pfrefix}_odom にする
- /{prefix}_odom -> /{prefix}_base_footprint のtfを /odom or /odom_rawトピックから作って発行する
- robot_state_publisherを frame_pfrefixに {prefix}を設定して実行しておく
https://github.com/ros/robot_state_publisher/blob/8b5af4f31e0f754c7c262eb487ccd3956cb788cc/src/robot_state_publisher.cpp#L124
@terakoji-pfr ありがとうございます。試してみます。
https://zenn.dev/ame_b/articles/da4636a0a8048fを参考にし、カチャカROS 2ブリッジが配信する地図は利用し、カチャカROS 2ブリッジからodom、map間のtfを配信しないようにすることで対応できました。ROS 2ブリッジの起動オプションで切り替えられるとよいかもしれません。