pf-robotics / kachaka-api

スマートファニチャープラットフォーム「カチャカ」API
https://kachaka.zendesk.com/hc/ja/articles/7660222791183-%E3%82%AB%E3%83%81%E3%83%A3%E3%82%ABAPI
Apache License 2.0
85 stars 24 forks source link

ROS 2ブリッジから地図、自己位置を配信しない #105

Closed atinfinity closed 5 days ago

atinfinity commented 1 month ago

https://github.com/pf-robotics/kachaka-api/issues/101で「mapが空の状態でros2bridgeがエラーにならないようにする」対応がなされる予定となっています。この状態でナビゲーションをしようとすると、自身のmapping、localizationアルゴリズムを動かせるようになりそうです。一方、現状のROS 2ブリッジからはマップデータおよびodom、map間のtfが出ているため、自身のmapping、localizationアルゴリズムを動かせないように思っています。

ROS 2ブリッジから地図、自己位置を配信しないようにすることについて今後対応の予定はありますか?

terakoji-pfr commented 1 month ago

こちら問題をクリアにしたいのですが /map を共通にし、 /odomを別名とすることで解決できないでしょうか?

それとも /odom -> /base_footprint が再利用できないことがクリティカルな問題でしょうか? こちらは/tf_prefixを用い、 odomトピック(tfでなく)から出すということで解決できますでしょうか?

terakoji-pfr commented 1 month ago

少し調べましたが、以下で特に今のros2_bridgeがだしているtf, topic等を止めなくても自身のmapping、localizationアルゴリズムを動かせそうです。

  1. 自身のmapping、localizationが発行する /odomのtfの名前を /{pfrefix}_odom にする
  2. /{prefix}_odom -> /{prefix}_base_footprint のtfを /odom or /odom_rawトピックから作って発行する
  3. robot_state_publisherを frame_pfrefixに {prefix}を設定して実行しておく

https://github.com/ros/robot_state_publisher/blob/8b5af4f31e0f754c7c262eb487ccd3956cb788cc/src/robot_state_publisher.cpp#L124

atinfinity commented 1 month ago

@terakoji-pfr ありがとうございます。試してみます。

atinfinity commented 5 days ago

https://zenn.dev/ame_b/articles/da4636a0a8048fを参考にし、カチャカROS 2ブリッジが配信する地図は利用し、カチャカROS 2ブリッジからodom、map間のtfを配信しないようにすることで対応できました。ROS 2ブリッジの起動オプションで切り替えられるとよいかもしれません。