自作 Turtlebot3 自律走行に向けたプログラム。
--- Python Script で 自作 Turtlebot3 を動かしてみる。 ---
Turtlebot3 の自作 #12 で、自作ステレオカメラ & rtabmap_ros & Navigation が出来るようになったので、
それを使って、自律走行に向けたプログラムの試作をしてみます。
常套手段として、Python プログラム で自作 Turtlebot3 を動かしてみます。
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. Python プログラム。
Python プログラムは、Gazebo turtlebot3 Burger Depth Camera Navigation Python Program. で紹介した、
~/catkin_ws/src/ros_start/scripts/multi_goals.py を少し改造して試してみます。
~/catkin_ws/src/ros_start/scripts/multi_goals1.py
動作は、
開始時に、1回転して、
2M 先へ行って、戻ってくる。だけです。
3. 起動方法。
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
$ rosrun ros_start multi_goals1.py
4. 使ってみて。
Turtlebot3 の直進速度、回転速度は、なるべく遅くします。
~/catkin_ws/src/turtlebot3/turtlebot3_navigation/param/dwa_local_planner_params_waffle.yaml
やはり、オドメトリーの性能に直結しているみたいです。
最初に、1回転した時点でオドメトリーが狂うのでどうしようも無い。
Rviz のグリッドを見ていると、目的地点(2M 先)には、確かに到着しますが、
そのグリッド自体がずれてしまうので、実際もずれてた所に到着します。
対策。
Odometry と IMU のフュージョンを試してみます。
ROS講座61 位置情報の統合
注1) rtabmap-nishi-stereoB_navigation3.launch の rtabmap のパラメータは、 rtabmap_rosTutorialsStereoOutdoorMapping のほうが、
良いです。