自作 Turtlebot3 自律走行に向けたプログラム。#3

自作 Turtlebot3 自律走行に向けたプログラム。#3
--- 自作 Turtlebot3 Rtabmap_ros で、Odometry と IMU のフュージョンの問題点。 ---

自作 Turtlebot3 自律走行に向けたプログラム。#2 の続きです。

前回、2 [M] 行って帰って来た時、ロボットの向きが、少しずれて止まる。
base_footprint が真正面になっていて、base_link が少し真正面よりずれています。
ロボットの向きは、base_link と一致していて、move_base が、base_link を基準に停止してくれれば、完璧ですが、
move_base が、base_footprint を基準に停止しているような気がします。
まで書きましたが、その続きです。

色々試したのですが、turtlebot3_navigation/launch/move_base.launch のパラメータで、
odom_topic:=/stereo_camera/fusion/odom を指定しても、move_base には、反映されないようです。
試しに、odom_topic:=/odom_nothing 等、適当に指定しても影響なしです。

2. テスト launch ファイルを作って確認。
rtabmap_ros_my/launch/move_base_test.launch

テスト方法。
$ roscore

$ roslaunch rtabmap_ros_my move_base_test.launch

$ rostopic list
注1) /odom なんて出てきません。
/tf があるので、/tf を参照しているみたいです。
注2) 案の定、move_base_test.launch のターミナルから下記、ワーニングが出てきました。


注3) 単体ではなくて、適切な入力を与えると、/odom をSubcribe するみたい。

3. 結果。
色々調べた結果、『ROS ロボットプログラミングバイブル』p327 に記述がありました。
turtelbot3/turtlebot3_navigation/param/global_costmap_params.yaml


turtelbot3/turtlebot3_navigation/param/local_costmap_params.yaml


これで、同じテストを行うと、move_base_test.launch のターミナルからのワーニングが出は、下記になりました。

これで、/base_link を参照するようになったので、大丈夫だと思います。

再度、rtabmap-nishi_stereo_outdoor2_bx_navi.launch を試します。
残念、新たな問題が出てきました。
navigation がまるきり反応しない。


注) これについては、その後対策方法がわかったので、記事を改めて掲載します。by nishi 2021.10.19

4. 方針転換。
foxbot_core3.ino の odom の child_frame_id = base_footprint -> base_fox に変える。
1) foxbot_core3.ino 修正


2) mode1.yaml 修正


3) rtabmap-nishi_stereo_outdoor2_bx_navi.launch を
rtabmap-nishi_stereo_outdoor2_by_navi.launch にコピーして、修正。

4) global_costmap_params.yaml、local_costmap_params.yaml は、元に戻す。

再度、試してみます。
これで、2[M] 行って、帰って来た時に停止する、ロボットの向きが、改善されました。
但し、Stereo Camera の PointCloud2 の表示が止まるのが多いような気がします。
再度、ステレオカメラのキャリブレーションを取り直せば改善するのか?

mode1.yaml の修正で改善した。
5) mode1.yaml 修正

注) なぜ、frequency をあげないと、いけないのだろうか?。この点が不可解です。

5. 結果は、
2[M] 行って、帰って来て、 odom の位置には、正しく停止する。向きも、OK。
但し、肝心の odom の位置が、 map の位置からずれている。それさえ無ければ、完璧だが。
これは、rtabmap_ros の当初出ていたドリフトの所為では、ないだろうか?

Stereo Camera の PointClouds2 が 多ければ、odom がずれていても、周囲の映像からの、rtabmap_ros の補正機能で、
スタート時の、map に近づいて止まるみたいぞね。残念!!

Stereo Camera の PointClouds2 の表示がなんとなく遅い。
トータルのパフォーマンスが遅い。PCのパワー不足か。
改造版は、あまり良い性能が出ない。改造前の、2[M] 行って帰っ来て止まった時、少し斜めになっている(base_footprint 基準)版の方が、
毎回、同じ様な結果が出る。

このブログ記事について

このページは、おんちゃんが2021年10月17日 13:37に書いたブログ記事です。

ひとつ前のブログ記事は「自作 Turtlebot3 自律走行に向けたプログラム。#2」です。

次のブログ記事は「自作 Turtlebot3 自律走行に向けたプログラム。#4」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

サイトナビ