I am sure that, at one point or another, you have used a joystick or a gamepad of a video console.
A joystick is nothing more than a series of buttons and potentiometers. With this device, you can perform or control a wide range of actions.
![](http://imgdetail.ebookreading.net/hardware/2/9781788627436/9781788627436__ros-programming-building__9781788627436__assets__005e40a3-b088-41a6-9847-e4ad1fb863b2.jpg)
In ROS, a joystick is used to telecontrol a robot to change its velocity or direction.
Before we start, we are going to install some packages. To install these packages in Ubuntu, execute the following command:
$ sudo apt-get install ros-kinetic-joystick-drivers $ rosstack profile & rospack profile
In these packages, you will find code to learn how to use the joystick and a guide to create our packages.
First of all, connect your joystick to your computer. Now, we are going to check whether the joystick is recognized using the following command:
$ ls /dev/input/
We will see the following output:
by-id event0 event2 event4 event6 event8 js0 mouse0 by-path event1 event3 event5 event7 event9 mice
The port created is js0; with the jstest command, we can check whether it is working, using the following code:
$ sudo jstest /dev/input/js0 Axes: 0: 0 1: 0 2: 0 Buttons: 0:off 1:off 2:off 3:off 4:off 5:off 6:off 7:off 8:off 9:off 10:off
Our joystick, Logitech F710, has 8 axes and 11 buttons, and if we move the joystick, the values change.
Once you have checked the joystick, we are going to test it in ROS. To do this, you can use the joy and joy_node packages:
$ rosrun joy joy_node
If everything is OK, you will see the following output:
[ INFO] [1357571588.441808789]: Opened joystick: /dev/input/js0. deadzone_: 0.050000.