Turtlebot3 core features as a snap!
turtlebot3c
gives life to your TurtleBot3 robot (https://emanual.robotis.com/docs/en/platform/turtlebot3/overview/).
It is a collection of launch files and configuration files to ease working with the TurtleBot3.
The snap is meant to be run on the robot, allowing one to quickly get up and running with a self contained Turtlebot3.
It offers 5 main applications,
- core
- teleop
- joy
- mapping
- navigation
core: is a daemon that is automatically started when the robot is turned on. It starts the motor controller, advertises the sensors, upload the robot model to the rosparam server and publishes the robot tf tree. At boot, the robot is simply ready to be used.
teleop: is a daemon that is automatically started when the robot is turned on. It allows for controlling the robot from multiple sources such as the keyboard (e.g. key_teleop), a remote controller (e.g. joy_teleop) or leave it to the navigation stack. The cmd input to be used is managed by the mux node. It can be changed through a rosservice call such as,
rosservice call /mux/select "topic: 'joy_vel'"
joy: allows for connecting a (third party) remote controller directly to the robot in order to drive it.
mapping: allows the robot to build a representation of its environment as a map usable by the navigation stack.
Drive your robot around in order to map your environment. Once done, stop the mapping by pressing ctrl+c
. This will stop the process and automatically save the map as $SNAP_USER_DATA/.tb3c/maps/<date_and_time>/map.yaml
. Furthermore, a softlink to the newly created map is created at $SNAP_USER_DATA/.tb3c/maps/config
. The navigation stack will automatically use the softlinked map.
navigation: encompasses the whole autonomous navigation stack. It allows the robot to move autonomously in its environment, from its current location to a desired goal while avoiding obstacles. It automatically uses the last map built with the mapping app found at $SNAP_USER_DATA/.tb3c/maps/config
.
Find out more details on the turtlebot3c
repo at https://github.com/canonical/turtlebot3c.