Turtlebot3教程|JTDQ logo Turtlebot3教程|JTDQ

Teleoperation

NOTE:

  • This instruction was tested on Ubuntu 16.04 and ROS Kinetic Kame.
  • This examples are supposed to be running on the remote PC. Follow the instruction on your Remote PC.

WARNING: Make sure to run the Bringup instruction before performing this examples, and be careful when testing the robot on the table as the robot might fall.

The TurtleBot3 can be teleoperated by various devices. It is tested with several wireless devices such as PS3, XBOX 360, ROBOTIS RC100 and etc. This examples shown here(except the LEAP Motion) can be launched by ROS on Ubuntu mate 16.04 with Raspberry Pi 3 and OpenCR which controls DYNAMIXEL.

Keyboard

TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen. Shortcut key for terminal is Ctrl-Alt-T.

TIP: Before executing this command, you have to specify the model name of TurtleBot3. The ${TB3_MODEL} is the name of the model you are using in burger, waffle, waffle_pi. If you want to permanently set the export settings, please refer to [Export TURTLEBOT3_MODEL][export_turtlebot3_model]{: .popup} page.

[Remote PC] Launch turtlebot3_teleop_key node for simple teleoperation test.

$ export TURTLEBOT3_MODEL=%{TB3_MODEL}
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

If the node is successfully launched, the following instruction will be appeared to the terminal window.

  Control Your Turtlebot3!
  ---------------------------
  Moving around:
          w
     a    s    d
          x

  w/x : increase/decrease linear velocity
  a/d : increase/decrease angular velocity
  space key, s : force stop

  CTRL-C to quit

RC100

The settings for ROBOTIS RC-100B controller is included in the OpenCR firmware for TurtleBot3 Burger, Waffle and Waffle Pi. This controller can be used with the Bluetooth module BT410. The TurtleBot3 Waffle Pi includes this controller and Bluetooth modules. When using RC-100, 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] Connect PS3 Joystick to the remote PC via Bluetooth or with USB cable.

[Remote PC] Install packages for teleoperation using PS3 joystick.

$ sudo apt-get install ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy

[Remote PC] Launch teleoperation packages for PS3 joystick.

$ roslaunch teleop_twist_joy teleop.launch

XBOX 360 Joystick

[Remote PC] Connect XBOX 360 Joystick to the remote PC with Wireless Adapter or USB cable.

[Remote PC] Install packages for teleoperation using XBOX 360 joystick.

$ sudo apt-get install xboxdrv ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy

[Remote PC] Launch teleoperation packages for XBOX 360 joystick.

$ sudo xboxdrv --silent
$ roslaunch teleop_twist_joy teleop.launch

Wii Remote

[Remote PC] Connect Wii remote to the remote PC via Bluetooth.

[Remote PC] Install packages for teleoperation using Wii remote.

$ sudo apt-get install ros-kinetic-wiimote libbluetooth-dev libcwiid-dev
$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-drivers/joystick_drivers.git  
$ cd ~/catkin_ws && catkin_make

[Remote PC] Run teleoperation packages for Wii remote.

$ rosrun wiimote wiimote_node
$ rosrun wiimote teleop_wiimote

Nunchuk

(TODO)

Android App

Download ROS CONTROL and run the application.

After connecting roscore to ROS_CONTROL app, enter Topic tab in Preferences to confiture topic name.

You are supposed to change topic name as /cmd_vel in Joystick Topic, /scan in LaserScan Topic, /image_raw/compressed in Image Topic and /odom in Odometry Topic.

Then, you can check state of node and topic connection by rqt_graph commands

LEAP Motion

[Remote PC] Connect LEAP motion to the remote PC via Bluetooth.

[Remote PC] Install packages for teleoperation using LEAP motion.

$ leapd
$ LeapCommandPanel
$ git clone git@github.com:warp1337/rosleapmotion.git

[Remote PC] Run teleoperation package for LEAP motion.

$ rosrun leap_motion sender.py

Myo

(TODO)