Skip to content

canonical/turtlebot3c-snap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Snappy turtlebot3c

Snap Status

turtlebot3c packaged as a snap.
turtlebot3c is a collection of launchfiles and configuration files to ease working with the Turtlebot3. The snap is meant to be run with the real robot as well as the simulation, allowing one to quickly get an up and running Turtlebot3 application.

How to install

sudo snap install turtlebot3c --channel=noetic/latest

Real robot setup

In case your Turtlebot doesn't use the default LDS-01 lidar model change it with the help of

sudo snap set turtlebot3c lsd-model=LDS-02

Robot model setup

By default the snap is using the Turtlebot3 model waffle_pi. You can select another model (for the simulation or the real robot). The available models are: waffle_pi, waffle and burger. The model can change with the help of:

sudo snap set turtlebot3c turtlebot3-model=waffle_pi

Simulation setup

First select the simulation mode of turtlebot3c:

sudo snap set turtlebot3c simulation=true

Then, launch the simulation:

TURTLEBOT3_MODEL=waffle_pi roslaunch turtlebot3_gazebo turtlebot3_world.launch

How to use

The snap is composed of 6 applications:

  • core
  • teleop
  • key
  • joy
  • mapping
  • navigation

core

The core app 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. In case the simulation is used, it only starts the robot_state_publisher since the robot is meant to be spawned by the simulation. At boot, the robot is simply ready to be used.

teleop

The teleop app 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 input to use is managed by the mux node. It can be changed through a rosservice call such as,

rosservice call /mux/select "topic: 'joy_vel'"

key

The key app allows the keyboard to control the robot. See also the teleop application for further details.

To start the app, simply type the following command,

turtlebot3c.key

This command automatically select 'key_vel' as the input for the mux node.

joy

The joy app allows the joystick to control the robot. See also the teleop application for further details.

To start the app, simply type the following command,

turtlebot3c.joy

This command automatically select 'joy_vel' as the input for the mux node.

mapping

The mapping app is a daemon that allows the robot to build a representation of its environment as a map usable by the navigation stack. To launch the mapping, simply type the following command:

sudo snap start turtlebot3c.mapping

Drive your robot around in order to map your environment. Notice that you can monitor the process through Rviz. Once the entire environment covered, stop the mapping by typing the following command:

sudo snap stop turtlebot3c.mapping

This will stop the process and automatically save the map as $SNAP_USER_COMMON/map/${DATE}.yaml. Furthermore, a softlink to the newly created map is created at $SNAP_USER_COMMON/map/current_map.yaml. The navigation stack will automatically use the softlinked map. This command automatically select 'key_vel' as the input for the mux node.

Note that the default USER of snap daemons is root. Hence, the $SNAP_USER_COMMON variable will point to /root/snap/turtlebot3c/common.

navigation

The navigation app is also a daemon that 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. To start the navigation app, simply type the following command:

sudo snap start turtlebot3c.navigation

It will start the whole navigation stack and use the last map built with the mapping app found at $SNAP_USER_COMMON/map. This command automatically select 'nav_vel' as the input for the mux node and switch back to 'key_vel' on exit. You can stop it by typing:

sudo snap stop turtlebot3c.navigation

About

turtlebot3c packaged as a snap.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages