This description provides an overview of the autonomous driving part of this project. Prior to the explanation, please note that this project was developed in the following environment: PC with Ubuntu 18.04 LTS and Melodic, Turtlebot3 with Kinetic. It does not guarantee compatibility with other distributions. Additionally, it is assumed that the user has basic knowledge of ROS and has a PC with ROS installed as well as a Turtlebot3. And we uploaded the result of this project. Please refer to this YouTube video and Notion.
-
Install ROS through the official ROS website.
-
Prepare the Turtlebot3. If not available, simulation can be used.
- Launch Roscore.
roscore
- Load the virtual environment through Gazebo.
roslaunch turtlebot3_gazebo turtlebot3_world.launch
- Create a map through manual control from the Remote PC.
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_method:=gmapping
- Save the map after completing it.
rosrun map_server map_saver -f ~/map
- Load the map for navigation.
rosrun map_server map_server map.yaml
- Launch Gmapping.
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=${ADDRESS_OF_MAP.yaml}
- Output the robot's position. You can know the poisition of the robot and make the robot to move that position. Please refer to here
watch -n 10 rostopic echo /odom
- Launch Roscore.
roscore
2-1. Establish a terminal connection with the Turtlebot3.
ssh pi@{IP_ADDRESS_OF_TURTLEBOT3}
2-2. Launch bringup on the Turtlebot3's terminal.
roslaunch turtlebot3_bringup turtlebot3_robot.launch
- Once calibration is complete, create a map from the Remote PC through manual control.
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_method:=gmapping
- Save the completed map.
rosrun map_server map_saver -f ~/map
- Load the map for navigation.
rosrun map_server map_server map.yaml
- Launch Gmapping.
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=${ADDRESS_OF_MAP.yaml}
- Output the robot's position. You can know the poisition of the robot and make the robot to move that position. Please refer to here
watch -n 10 rostopic echo /odom