Turtlebot3 の自作 #9
-- ROS rtabmap_ros 自作 Stereo Camera の搭載 --
ROS rtabmap_ros 自作 Stereo Camera #2 で確認した機能 (rtabmap_ros/Tutorilas/SetupOnYourRobot 2.9 Stereo B) を、
Turtlebot3 自作機(Foxbot_core3) へ、搭載してみます。
自作 Turtlebot3 foxbot_core3
概要:
1) SBC(Jetson nano 2G) では、stereo_node.launch、 turtlebot3_robot.launch を動かす。
2) リモートPC で、stereo_image_proc、stereo_odometry、 rtabmap_ros を動かす。
3) リモートPCで、teleop_key を使って、自作 Turtlebot3 を動かして、Wi-Fi経由で、Stereo 画像をリモートPCで受けて、
Rtabmap_ros で、2D Mapping を作成する。
1. 環境
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
2. SBC(Jestson nano 2G) での準備。
1) 自作 Stereo カメラを、車体に固定します。
2) USBカメラ x 2 を、Jetson nano 2G に接続して、
$ roslaunch uvc_camera stereo_node.launch を実行して、
カメラの左右が正しいことを確認します。
3) Stereo キャリブレーションを行います。
3. リモートPC での準備
rtabmap_ros_my/launch/rtabmap-nishi-stereoB.launch を手直しします。
注) Stereo OutdoorMapping の rviz を追加しました。by nishi 2021.9.16
4. 実行手順
ここからが、実行の手順です。
1) リモートPC
$ roscore
2) SBC(Jetson Nano 2G)
$ roslaunch uvc_camera stereo_node.launch
$ sudo chmod 666 /dev/ttyTHS1
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
Topic の一覧が出てくることを確認します。エラーになったら、一度 Ctl+Cで中止して、再度起動します。
注1) stereo_node.launch と turtlebot3_robot.launch は、別々に起動します。
turtlebot3_robot.launch のなかで、 stereo_node.launch を起動すると、Stereo Cameraのキャリブレーションが未だの様な状況になるので。
3) リモートPC
$ roslaunch rtabmap_ros_my rtabmap-nishi-stereoB.launch rtabmapviz_mode:=true
$ rviz (必要であれば。)
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
4) 操作。
rtabmapviz 画面を見ながら、turtlebot3_teleop_key を、操作して、自作 Turtlebot3 を動かします。
少し、コツが必要みたいです。
実際に何度か試すと、つかめると思います。
少し進んでは、ぐるっと回転させて、周囲をカメラで写します。
移動、回転は、ゆっくりと行います。
注) rtabmapviz は使わずに、rviz のみで操作すると、rtabmap_ros のデータ切れが軽減されるみたいぞね。
最終的に、2D Map が作成されます。
/rtabmap/proj_map/Map など、 Map 出力は幾つもあるので、どれが良いのか?
最終的に、 map_saver で、2D Map として保存出来ます。
感想。
とにかく、ステレオ画像マッチングを PC で行うので、PC には、CPU のパフォーマンスが要求されます。
4 core 3GHz 以上が良いのでは。
2D Map は、それなりか?。もう少し精度があれば良いのだが?
やはり、本物のStereoカメラ、Depthカメラ が必要か?
やはり、将来は、D435i 辺りで試してみたいぞね。
後日、Stereo OutdoorMapping 用の rviz 起動を追加してみました。
もう少し、見やすくなったぞね!! by nishi 2021.9.16
Rviz で確認しながら、ロボットを動かすと、だんだん base_footprint と base_link がずれていくみたいです。
base_footprint は、 foxbot_core3 が更新して、base_link は、rtabmap_ros/stereo_odometry が、
更新しているみたいです。
map を起点にすると、どちらもずれていますが、/base_link が少しはましか?
IMU の情報を活用させれば、
rtabmap_ros/stereo_odometry がよくなるのか?