Teleoperation
NOTE:
- This instruction was tested on
Ubuntu 16.04
withROS Kinetic Kame
andWindows 10
withROS Melodic Morenia
- 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.
The contents in e-Manual are subject to be updated without a prior notice. Therefore, some video may differ from the contents in e-Manual.
Keyboard
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.
on Ubuntu
$ export TURTLEBOT3_MODEL=%{TB3_MODEL}
$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
on Windows
> set 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.
-
Connect BT-410 to OpenCR UART1 port (as described here).
-
Control TurtleBot3 with RC-100.
- Up / Down : Increase or decrease linear velocity
- Left / Right : Increase or decrease angular velocity
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
We are developing its contents !
[Windows] Joystick Instructions
The Windows implementation of the Joystick control uses the Open Source Simple DirectMedia Layer, which supports many tethered and wireless joysticks. The Joystick driver is currently (As of January 2020) deployed as a source package, which you need to clone into your catkin workspace.
> git clone -b init_windows https://github.com/ms-iot/joystick_drivers