Edit on GitHub

Basic Operation

Topic Monitor

CAUTION: Place the robot on a level surface to ensure that it can not fall down from a table.

NOTE:

  • This instructions were tested on Ubuntu 18.04 and ROS 2 Dashing Diatamata.
  • Make sure to run Bringup before running the instructions below.

In order to check topics of TurtleBot3, Use rqt provided by ROS, which is a Qt-based framework for GUI development for ROS. It is a tool displaying all topics of TurtleBot3 with a topic name, type, bandwidth, Hz, and value.

[Remote PC]

  1. Open a terminal on Remote PC.
  2. Run rqt.
    $ rqt
    

    TIP: If rqt is not displayed, select the plugin > Topics > Topic Monitor.

In addition, you can monitor topics through rqt whenever you have a topic added.

Teleoperation

NOTE:

  • This instruction was tested on Ubuntu 18.04 and ROS 2 Dashing Diatamata.
  • These examples are supposed to be run on the remote PC. Follow the instruction on your Remote PC.

CAUTION: Place the robot on a level surface during a test, and ensure that it can not fall off an table or desk.

WARNING: Make sure to run the Bringup instruction before performing this examples.

TurtleBot3 can be teleoperated by various devices. It is tested with several wireless devices such as PS3, XBOX 360, RC-100 controller and etc. Examples of TurtleBot3 can be launched by ROS 2 on Ubuntu 18.04 with Raspberry Pi 3 and OpenCR that controls DYNAMIXELs.

Keyboard

[Remote PC]

  1. Open a terminal on Remote PC.
  2. Run teleoperation node
      $ export TURTLEBOT3_MODEL=${TB3_MODEL}
      $ ros2 run turtlebot3_teleop teleop_keyboard
    

    NOTE: Specify ${TB3_MODEL}: burger, waffle, waffle_pi before excuting the command. Set the permanent export setting by following Export TURTLEBOT3_MODEL instruction.

  3. The virtual controller will appear in the terminal.

     Control Your TurtleBot3!
     ---------------------------
     Moving around:
             w
         a   s    d
             x
    
     w/x : increase/decrease linear velocity (Burger : ~ 0.22, Waffle and Waffle Pi : ~ 0.26)
     a/d : increase/decrease angular velocity (Burger : ~ 2.84, Waffle and Waffle Pi : ~ 1.82)
    
     space key, s : force stop
    
     CTRL-C to quit
    

RC-100

It will be released soon !

The settings for ROBOTIS RC-100B is included in an OpenCR firmware for TurtleBot3. It can be used with the Bluetooth module BT410. TurtleBot3 Waffle Pi includes this controller and Bluetooth modules. When using RC-100B, it is not necessary to execute a specific node because turtlebot_core node creates a /cmd_vel topic in the firmware directly connected to OpeCR.

PS3 Joystick

[Remote PC]

  1. Connect PS3 Joystick to Remote PC via either Bluetooth or USB cable.

  2. Open a terminal on Remote PC.

  3. Install ds4drv packages by using pip.
      $ sudo pip install ds4drv
    
  4. Run teleoperation packages.
      $ sudo ds4drv
      $ ros2 run joy joy_node
      $ ros2 run teleop_twist_joy teleop_node
    

XBOX 360 Joystick

[Remote PC]

  1. Connect XBOX 360 Joystick to the Remote PC via either Wireless Adapter or USB cable.

  2. Open a terminal on Remote PC.

  3. Run teleoperation packages.

      $ ros2 run joy joy_node
      $ ros2 run teleop_twist_joy teleop_node
    

Basic Examples

NOTE:

  • This instruction was tested on Ubuntu 18.04 and ROS 2 Dashing Diatamata.
  • This instruction is supposed to be run on the remote PC. Follow the instruction on your Remote PC.

CAUTION: Place the robot on a level surface to ensure that it can not fall down from a table.

WARNING: Make sure to run the Bringup instruction before performing this examples.

Move using Interactive Markers

It will be released soon !

Obstacle Detection

TurtleBot3 can moves with receiving a certain topic: /cmd_vel_raw from obstacle detection node. Using LDS data and detecting obstacles, the robot can stop moving.

[Remote PC]

  1. Open a terminal on Remote PC.

  2. Run the teleoperation keyboard.
      $ ros2 run turtlebot3_teleop teleop_keyboard /cmd_vel:=/cmd_vel_raw
    
  3. Launch the obstacle detection.
      $ ros2 launch turtlebot3_example turtlebot3_obstacle_detection
    

Position Control

TurtleBot3 can be position controlled using this package.

[Remote PC]

  1. Open a terminal on Remote PC.

  2. Launch the pointop file.
      $ ros2 run turtlebot3_example turtlebot3_position_control
    
  3. Type input values and press enter for x, y and theta respectively. TurtleBot3 will move to a pose (x, y, theta) from the current pose.

     TurtleBot3 Position Control
     ------------------------------------------------------
     From the current pose,
     x: goal position x (unit: m)
     y: goal position y (unit: m)
     theta: goal orientation (range: -180 ~ 180, unit: deg)
     ------------------------------------------------------
    
     Input x: 1  (input a value and press enter)
     Input y: 1  (input a value and press enter)
     Input theta: 10  (input a value and press enter)
    

Patrol

This example uses action topic. The action client translates patrol data(radius) to action server. Then, the action server translates cmd_vel to TurtleBot3.

[Remote PC]

  1. Open a terminal on Remote PC.

  2. Launch the patrol server file.
      $ ros2 run turtlebot3_example turtlebot3_patrol_server
    
  3. Launch the patrol client file.
      $ ros2 run turtlebot3_example turtlebot3_patrol_client
    
  4. Type a input value and press enter. TurtleBot3 will draw a circle of the typed radius.

     TurtleBot3 Circle Patrol
     ------------------------------------------------------
     radius: circle radius (unit: m)
     ------------------------------------------------------
    
     Input radius: 1  (input a value and press enter)
    

Additional Sensors

It will be released soon !