Turtlebot3 の自作 #12
- ROS rtabmap_ros 自作 Stereo Camera で MappingAndNavigationOnTurtlebot を試す 2 --
Turtlebot3 の自作 #11 で作成したプログラムを、今回は、少し改造してみます。
前回は、stereo_node.launch を除いて、全て リモート PC上 で rtabmap_ros を動かしました。
今回は、確認の意味を込めて、SBC 上で、rtabmap_ros を動かしてみたいとお思います。
1. SBC で動かす、node、launch。
turtlebot3_bringup/turtlebot3_robot.launch
stereo_node.launch
stereo_image_proc
rtabmap_ros/rtabmap
2. remote PC で動かす、node、launch。
roscore
turtlebot3_bringup/launch/turtlebot3_remote.launch
turtlebot3_navigation/launch/move_base.launch
自作 Turtlebot3 foxbot_core3
3. 環境
1)リモートPC
Ubuntu Mate 18.04
ROS: Melodic
IP:192.168.1.170
2)TurtleBot3 SBC
Jetson Nano 2G
Wi-Fi Lan
IP:192.168.1.37
ROS:Melodic
USB Camera: Logi Cool C270 x 2
4. launch ファイル。
rtabmap_ros_my/launch/rtabmap-nishi-stereoB_navigation3.launch
5. 起動方法。
1) Remote PC
$ roscore
2) SBC(Jetson Nano 2G)
$ sudo chmod 666 /dev/ttyTHS1
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
Topic の一覧が出てくることを確認します。エラーになったら、一度 Ctl+Cで中止して、再度起動します。
$ export TURTLEBOT3_MODEL=waffle
$ roslaunch rtabmap_ros_my rtabmap-nishi-stereoB_navigation3.launch SBC:=true
3) リモートPC
$ export TURTLEBOT3_MODEL=waffle
$ roslaunch rtabmap_ros_my rtabmap-nishi-stereoB_navigation3.launch
6. 感想。
問題なく動きました。
リモートPCは、CPU 負荷が軽減されて、軽くなりました。
CPU0 30%
CPU1 90%
SBC(Jetson Nano 2G) は、どうか?
rtabmap の ターミナルの表示には、取りこぼしは出ていないようです。
たまに、base_link の TF出力が、0.02[Sec] を超えた旨のエラ-が出ています。
注1) rtabmap のパラメータは、 rtabmap_rosTutorialsStereoOutdoorMapping のほうが、
Mapping の性能が良いみたい(こちらをお勧めします)。
上記の方をベースに組み込んだ方がよいみたいです。
または、 rtabmap_ros/rtabmap の 設定を使った方が良いと思います。
注2) stereo_odometry は、使わない方が良いです。
foxbot_core3 の /odom と、IMUや、地磁気センサー、GPS 等を組み合わせた方が良いと思います。
7. 余談。
今日、Jetson Community Projects を見ていたら、ROS2 、 rtabmap_ros & Jetson Nano で 3D のPointClouds が、
めちゃくちゃ綺麗に取れているのを見た。
jdgalviss/jetbot-ros2
3D PointClouds で、床がちゃんと取れているのが、本当に良いぞね。
これは、やはり、RGB-D カメラの性能に拠るところが大きいと思われます。
これくらい綺麗に取れれば、屋外での草刈りロボットで使える気がしてきました。
だけど、rtabmap_ros は、リモートPC で動かしている様なので、将来は不安だ!...
Stereo Camera だと、床は、 2D Map では、白になるみたいだ。カメラが少し上向きなので、床が取れていないみたいです。
上り坂は、どうなるのか?
8. 余談2
Gazebo & turtlebot3 & rtabmap_ros で、シュミレーションで、 Depth Camera(rgb-d) を試せるみたいなので、早速試してみました。
rtabmap_rosTutorialsMappingAndNavigationOnTurtlebot の 6.1 Turtlebot3 on Melodic and Noetic
注) scan(Lidar) データは、不可にして、rgb-d だけにします。
後、屋外の Gazebo データが無いか Google でけんさくしたら。
CLEARPATH ROBOTS GET NEW GAZEBO SIMULATION ENVIRONMENTS があって、ここからのリンクで、
Clearpath Additional Simulation Worlds が見つかりました。
大変ありがたいぞね。
但し、起伏が無いデータみたいなのが残念です。
やはり、屋外なら、起伏のあるデータが必要ぞね。
既成のロボットカーも幾つかあるみたいだ。
https://support.clearpathrobotics.com/hc/en-us
高価なんだろな!!
手頃なら、こちらの方が簡単だったが!!
後、こちらも、次のステップでは、必要になりそう。
robot_localization
どうやら、複数のセンサー情報を使ってロボットの現在位置を出すノードみたいぞね。
9. ROS2 への移植。
ROS2 対応にしました。
ROS2 で、ESP32(Arduino) を使う。