Note: This tutorial assumes that you have completed the previous tutorials: Keyboard Teleop.
(!) Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Joystick Teleop

Description: Joystick teleoperation of a turtlebot.

Keywords: joystick teleop

Tutorial Level: BEGINNER

Next Tutorial: Interactive Markers Teleop

Joystick

Several joystick configurations are supported - currently playstation3, xbox360 and logitech's rumblepad2. These example nodes are simple and depending on your joystick you may just need to remap the keys.

Setting up the Joystick

For the most part, this tutorial assumes you have already got your joystick plugged in and its ready to go. Some more detailed information for specific joysticks:

On the TurtleBot

Now ssh (ssh help) into the TurtleBot and start the joystick and teleop nodes

  • To ssh in to a TurtleBot from a workstation computer:

    • determine the IP_OF_TURTLEBOT by using ifconfig (Need more help)

      To determine a computer's IP address and network interface in linux:

      • ifconfig

      You will see something like:

      • lo        Link encap:Local Loopback  
                  inet addr:127.0.0.1  Mask:255.0.0.0
                  inet6 addr: ::1/128 Scope:Host
                  UP LOOPBACK RUNNING  MTU:16436  Metric:1
                  RX packets:6658055 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:6658055 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:0 
                  RX bytes:587372914 (587.3 MB)  TX bytes:587372914 (587.3 MB)
        
        wlan1     Link encap:Ethernet  HWaddr 48:5d:60:75:58:90  
                  inet addr:10.0.129.17  Bcast:10.0.129.255  Mask:255.255.254.0
                  inet6 addr: fe80::4a5d:60ff:fe75:5890/64 Scope:Link
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:101983 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:37244 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000 
                  RX bytes:49326141 (49.3 MB)  TX bytes:7588044 (7.5 MB)
      • the network interface for the wireless card is wlan1

      • the IP address of the computer is 10.0.129.17


    • use ssh to connect to the TurtleBot

      ssh turtlebot@IP_OF_TURTLEBOT

# Playstation 3
> roslaunch turtlebot_teleop ps3_teleop.launch
# Xbox360 (use the left stick while keeping the right stick pressed in)
> roslaunch turtlebot_teleop xbox360_teleop.launch
# Logitech joysticks (general configuration for all logitech joysticks)
> roslaunch turtlebot_teleop logitech_teleop.launch

Unsupported Joystick

If your joystick is not listed above, it is a simple matter remapping the keys. Use the ps3_teleop.launch as a starting point and configure the buttons (working out which button you want for the deadman_axis is the most important) appropriately. Echo the /joy topic to help observe the id's of the various buttons getting pressed.

<launch>
  <!--  smooths inputs from cmd_vel_mux/input/teleop_raw to cmd_vel_mux/input/teleop -->
  <include file="$(find turtlebot_teleop)/launch/includes/_velocity_smoother.launch"/>

  <node pkg="turtlebot_teleop" type="turtlebot_teleop_joy" name="turtlebot_teleop_joystick">
    <param name="scale_angular" value="1.5"/>
    <param name="scale_linear" value="0.5"/>
    <param name="axis_deadman" value="10"/>
    <param name="axis_linear" value="1"/>
    <param name="axis_angular" value="0"/>
    <remap from="turtlebot_teleop_joystick/cmd_vel" to="cmd_vel_mux/input/teleop_raw"/>
  </node>
  <node pkg="joy" type="joy_node" name="joystick"/>
</launch>

Once you've finalised the launcher for your custom joystick, send it to us and we'll integrate it with the official software!

Need More Help?

Show other Joystick Tutorials   

  1. Teleoperate a Turtlebot with the PS3 Joystick

    Teleoperate a Turtlebot with the PS3 Joystick

  2. Joystick Teleop

    Joystick teleoperation of a turtlebot.

  3. TurtleBot Teleoperation

    How to teleoperate your TurtleBot with a keyboard, joystick, or rviz.

  4. ジョイスティック・テレオペレーション

    turtlebotのジョイスティック・テレオペレーション.

  5. Joystick Teleop

    Joystick teleoperation of a turtlebot.

  6. How to Use a SpaceNavigator with the spacenav_node

    This tutorial is an introduction to using the 3DConnexion SpaceNavigator connected to a desktop. After reading this, you should be able to bring up the spacenav_node and display the data.

  7. Writing a Teleoperation Node for the SpaceNavigator

    This tutorial covers how to write a teleoperation node and use it to drive the turtle in the turtlesim.

  8. How to Pair the PS3 Joystick with a Bluetooth Dongle

    This tutorial is an introduction to using the PS3 DualShock 3 Joystick connected via bluetooth to a desktop computer. After reading it, you should be able to bring up the ps3joy node and display the data coming from the joystick.

  9. Writing a Teleoperation Node for the PS3 Joystick

    This tutorial covers how to write a teleoperation node and use it to drive the turtle in the turtlesim.

  10. Joystick Teleop

    Joystick teleoperation of a turtlebot.

  11. Configuring and Using a Linux-Supported Joystick with ROS

    This tutorial is an introduction to using the joystick connected to a desktop computer. After reading it, you should be able to bring up the joy node and display the data coming from the joystick over ROS.

  12. Writing a Teleoperation Node for a Linux-Supported Joystick

    This tutorial covers how to write a teleoperation node and use it to drive the turtle in the turtlesim.

  13. PS3を使ったTurtlebotのテレオペレーション

    PS3を使ったTurtlebotの遠隔操作の説明

  14. ジョイスティック・テレオペレーション

    turtlebotのジョイスティック・テレオペレーション

  15. Writing a Teleoperation Node for the Wiimote

    This tutorial covers how to write a teleoperation node and use it to drive the turtle in the turtlesim.

  16. How to Recharge the PS3 Joystick

    This tutorial explains how to recharge the PS3 DUALSHOCK 3 or SIXAXIS Joystick. The tutorial includes details on how to simultaneously use the joystick over Bluetooth and recharge it.

  17. Connecting the PS3 Joystick to the PR2

    This tutorial is an introduction to using the PS3 DualShock 3 Joystick connected via bluetooth to a PR2.

  18. No Title

    No Description

  19. How to Write a Generic Teleoperation Node

    This tutorial goes over generic teleoperation code that is used as an example in many of the teleoperation tutorials.

What Next?

Wiki: turtlebot_teleop/Tutorials/groovy/Joystick Teleop (last edited 2013-09-11 09:13:14 by jihoonl)