jsk-ros-pkg / jsk_control

jsk control ros packages
http://github.com/jsk-ros-pkg/jsk_control
13 stars 51 forks source link

[footcoords] publish base_footprint #762

Open Naoki-Hiraoka opened 3 years ago

Naoki-Hiraoka commented 3 years ago

https://github.com/start-jsk/rtmros_common/issues/986 https://github.com/jsk-ros-pkg/jsk_control/issues/681 https://github.com/jsk-ros-pkg/jsk_control/issues/624 https://github.com/start-jsk/rtmros_choreonoid/issues/213

footcoordsが、新たにbase_footprintを出すようにしました。 台車型ロボット用のナビゲーションライブラリを使用するために必要でした。 footcoordsが出す他のtfは、base_footprintに必要な条件を満たしていませんでした。

k-okada commented 3 years ago

https://www.ros.org/reps/rep-0120.html に満たしていない必要な条件とは、は何でしょう?

Naoki-Hiraoka commented 2 years ago

move to https://github.com/Naoki-Hiraoka/tf_publishers/blob/master/base_footprint_publisher/src/base_footprint_publisher.cpp

k-okada commented 2 years ago

reopend because question is not answered

Naoki-Hiraoka commented 2 years ago

base_footprintに相当するFootCoordsが出すTFであるgroundは、位置も姿勢も両足の中間になっています. base_footprintは、両足の中間なのですが、Z位置は両足の低い方、姿勢はZ軸が親frameのZ軸と同じとされています。そのためgroundは、歩行時に遊脚の上下にあわせてgroundも上下に変動したり、足が水平でないときにgroundも傾いたりして、「床から○○cm以下の点群を切り取る」といった用途に使いづらくなっています。

REPでは、base_footprintの条件として「yawがbase_linkと同じ」、とされていますが、腰を曲げて移動する場合にbase_linkのyawが定義しづらいのと、AutoBalancerではbase_linkではなくfootstepを用いてyawを考えているのと、carry_demo等でtfのbase_footprintとeuslispの(send *robot* :foot-midcoords)を対応付けて点群認識を行っていることから、ここはREPを無視してFootCoordsのgroundの条件(両足の中間)でいいかなと思っています.

base_footprintにせよFootCoordsのgroundにせよ、片足を用いたマニピュレーションや多点接触といった用途では明らかに不十分なので、あくまでも二足歩行時用に特化したツールになります。