As in most ROS robots, navigation is ruled by a combination of launch and yaml files. In the turtlebot_navigation
package, they can be found in the launch and params dir.
TurtleBot navigation motion is generated by move_base
which contains a global and local cost maps for creating global
and local plans. The functionality is defined on the yaml files in the param dir.
sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy \
ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc \
ros-noetic-rgbd-launch ros-noetic-rosserial-arduino \
ros-noetic-rosserial-python ros-noetic-rosserial-client \
ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server \
ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro \
ros-noetic-compressed-image-transport ros-noetic-rqt* ros-noetic-rviz \
ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers
Some of them, I don't need at the moment.
Then install turtlebot3 packages
sudo apt install ros-noetic-dynamixel-sdk ros-noetic-turtlebot3-msgs ros-noetic-turtlebot3
There is some network setup instructions which I will skip for now.
cd into src
then run
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
Build project via catkin_make
or
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3/
then run the codes below
There are 3 possible bot models: burger, waffle, waffle_pi
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_fake turtlebot3_fake.launch
Then in another terminal, run.
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
Created a map using gslam
Run, where the map file points to a location with a valid map_file.
roslaunch turtlebot3_gazebo turtlebot3_world.launch
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=/home/kahlflekzy/PycharmProjects/ros003/map.yaml
I used this map file in all subsequent works, unless explicitly specified.