I began my journey of learning the fundamentals of ROS by experimenting with a Turtle Bot, following the official ROS and Turtle Bot tutorials. I learned about packages and subscribers/publishers.
Operations I learned for HITL (Hardware in the Loop):
Teleoperation
SLAM (Simultaneous Localization and Mapping)
Navigation
Explore Lite
Operations I learned for SITL (Software in the Loop):
Gazebo Simulation
Navigation Simulation
Fake Node Simulation
Teleoperation allows you to manually and wirelessly control the movement of the turtle bot via "wasd" keys.
In order to run;
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
The turtle bot has an attached lidar sensor, and SLAM is a technique of drawing a map by estimating the current location of the turtle bot via the lidar in an arbitrary space. Teleoperation is used to manually move the robot around the environment as it creates the map.
In order to run;
roslaunch turtlebot3_slam turtlebot3_slam.launch
rosrun map_server map_saver -f ~/map (to save)
Navigation is to move the robot from one location to a specified destination in an environment autonomously. The previous SLAM map was created by obtaining distance information by the sensors and pose information from the robot, which gives a view of the environment and the surrounding objects.
Navigation enables the robot to move in this environment that was mapped autonomously by using the map, IMU sensors, and the lidar sensor.
In order to run;
roslaunch turtulebot3_navigation turtlebot3_navigation.launch
Explore lite is completely autonomous and uses only the IMU sensors, Lidar sensor, and Pose Data, and navigates around an environment autonomously creating a SLAM map.
In order to run;
roslaunch explore_lite explore.launch
Gazebo is a simulated environment that can be programmed, modified, and developed with a virtual robot. Gazebo supports all the sensors of the turtle bot including IMU, LDS, and camera, which is a feasible solution for SLAM or Navigation. It also supports virtual teleoperation.
In order to run;
roslaunch turtlebot3_gazebo turtlebot3_world.launch
Similar to Gazebo, fake node simulation is a virtual environment with a virtually simulated robot, however, does not support sensors. It creates its virtual simulation via fake node with the 3D visualization tool called RVIZ.
In order to run;
roslaunch turtlebot3_fake turtlebot3_fake.launch