• Diff for "joy"
Differences between revisions 1 and 60 (spanning 59 versions)
Revision 1 as of 2009-03-13 02:29:55
Size: 846
Editor: MeloneeWise
Comment:
Revision 60 as of 2013-02-12 19:59:38
Size: 2814
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= joy =
[[RosdocHeader(joy)]]
## repository: ros-pkg
<<PackageHeader(joy)>>
Line 4: Line 4:
== Troubleshooting ==
[wiki:/Troubleshooting Troubleshooting]
<<TOC(4)>>
Line 7: Line 6:
== Package proposal ==
Fill this section in with your proposal for the package, and send the link to this page out for discussion.
== Supported Hardware ==
This node should work with any joystick that is supported by Linux.
Line 10: Line 9:
Keep this section up to date over the course of the email conversation until the proposal is accepted. == API Stability ==
The ROS API of this node should be considered stable.
Line 12: Line 12:
When appropriate, add a parallel "API proposal" section == Nodes ==
{{{
#!clearsilver CS/NodeAPI
node {
0{
name = joy_node.py
desc = The `joy_node` provides a generic Linux joystick node.
pub {
0{
name= joy
type= joy/Joy
desc= Outputs the joystick state.
}
1{
name= joy
type= sensor_msgs/Joy
desc= Outputs the joystick state. <<Version(ROS Electric)>>
}
}
param {
0{
name= ~dev
type= string
default= `/dev/input/js0`
desc= Linux joystick device from which to read joystick events.
}
1{
name= ~deadzone
type= double
default= 0.05
desc= Amount by which the joystick has to move before it is considered to be off-center. This parameter is specified relative to an axis normalized between -1 and 1. Thus, 0.1 means that the joystick has to move 10% of the way to the edge of an axis's range before that axis will output a non-zero value. Linux does its own deadzone processing, so in many cases this value can be set to zero.
}
2{
name= ~autorepeat_rate
type= double
default= 0.0 (disabled)
desc= Rate in Hz at which a joystick that has a non-changing state will resend the previously sent message.
}
3{
name= ~coalesce_interval
type= double
default= 0.001
desc=Axis events that are received within coalesce_interval (seconds) of each other are sent out in a single ROS message. Since the kernel sends each axis motion as a separate event, coalescing greatly reduces the rate at which messages are sent. This option can also be used to limit the rate of outgoing messages. Button events are always sent out immediately to avoid missing button presses.
}
}
}
}
}}}
== Using this Package ==
For an example of using '''joy_node''' to control a teleoperation node with a joystick, see the [[joy/Tutorials|tutorials]].
Line 14: Line 63:
== Package review meeting notes ==
[[FullSearch(title:"joy/" text:PackageReviewCategory)]]
In some cases, multiple joysticks may control a single robot. For example, a user may use the default joystick to drive a robot, but a second user may wish to use a different kind. Since the button mappings on each joystick may be different, it will be necessary to remap buttons on one joystick so they can match. See the [[joystick_remapper|Joystick Remapper]] package for details.
Line 17: Line 65:
== Create new package review ==
Enter the date in the appropriate box to generate a template for an API or code review meeting. Check the [:QAProcess] page for more information.
== Application ==
=== Microsoft Xbox 360 Wireless Controller for Windows ===
Table of index number of `/joy.buttons`:
||Index||Button name on the actual controller||
||0||A||
||1||B||
||2||X||
||3||Y||
||4||LB||
||5||RB||
||7||start||
||8||power||
||10||cross key up||
||11||cross key down||
||12||cross key left||
||13||cross key right||
||14||back||
Line 20: Line 83:
[[NewPage(PackageAPIReviewTemplate, API Review, joy, %s API Review)]]
[[NewPage(PackageCodeReviewTemplate, Code Review, joy, %s Code Review)]]
----
CategoryPackage
##Please create this page with template "PackageReviewIndex"
## CategoryPackage
## CategoryPackageROSPKG

  Show EOL distros: 

joystick_drivers: cwiid | joy | ps3joy | spacenav | spacenav_node | wiimote

Package Summary

The joy package contains joy_node, a node that interfaces a generic Linux joystick to ROS. This node publishes a "Joy" message, which contains the current state of each one of the joystick's buttons and axes.

joystick_drivers: cwiid | joy | ps3joy | spacenav | spacenav_node | wiimote

Package Summary

The joy package contains joy_node, a node that interfaces a generic Linux joystick to ROS. This node publishes a "Joy" message, which contains the current state of each one of the joystick's buttons and axes.

joystick_drivers: joy | ps3joy | spacenav_node | wiimote

Package Summary

ROS driver for a generic Linux joystick. The joy package contains joy_node, a node that interfaces a generic Linux joystick to ROS. This node publishes a "Joy" message, which contains the current state of each one of the joystick's buttons and axes.

joystick_drivers: joy | ps3joy | spacenav_node | wiimote

Package Summary

ROS driver for a generic Linux joystick. The joy package contains joy_node, a node that interfaces a generic Linux joystick to ROS. This node publishes a "Joy" message, which contains the current state of each one of the joystick's buttons and axes.

joystick_drivers: joy | ps3joy | spacenav_node | wiimote

Package Summary

ROS driver for a generic Linux joystick. The joy package contains joy_node, a node that interfaces a generic Linux joystick to ROS. This node publishes a "Joy" message, which contains the current state of each one of the joystick's buttons and axes.

joystick_drivers: joy | ps3joy | spacenav_node | wiimote

Package Summary

ROS driver for a generic Linux joystick. The joy package contains joy_node, a node that interfaces a generic Linux joystick to ROS. This node publishes a "Joy" message, which contains the current state of each one of the joystick's buttons and axes.

joystick_drivers: joy | ps3joy | spacenav_node | wiimote

Package Summary

ROS driver for a generic Linux joystick. The joy package contains joy_node, a node that interfaces a generic Linux joystick to ROS. This node publishes a "Joy" message, which contains the current state of each one of the joystick's buttons and axes.

joystick_drivers: joy | spacenav_node

Package Summary

ROS driver for a generic Linux joystick. The joy package contains joy_node, a node that interfaces a generic Linux joystick to ROS. This node publishes a "Joy" message, which contains the current state of each one of the joystick's buttons and axes.

Supported Hardware

This node should work with any joystick that is supported by Linux.

API Stability

The ROS API of this node should be considered stable.

Nodes

joy_node.py

The joy_node provides a generic Linux joystick node.

Published Topics

joy (joy/Joy)
  • Outputs the joystick state.
joy (sensor_msgs/Joy)
  • Outputs the joystick state. New in ROS Electric

Parameters

~dev (string, default: /dev/input/js0)
  • Linux joystick device from which to read joystick events.
~deadzone (double, default: 0.05)
  • Amount by which the joystick has to move before it is considered to be off-center. This parameter is specified relative to an axis normalized between -1 and 1. Thus, 0.1 means that the joystick has to move 10% of the way to the edge of an axis's range before that axis will output a non-zero value. Linux does its own deadzone processing, so in many cases this value can be set to zero.
~autorepeat_rate (double, default: 0.0 (disabled))
  • Rate in Hz at which a joystick that has a non-changing state will resend the previously sent message.
~coalesce_interval (double, default: 0.001)
  • Axis events that are received within coalesce_interval (seconds) of each other are sent out in a single ROS message. Since the kernel sends each axis motion as a separate event, coalescing greatly reduces the rate at which messages are sent. This option can also be used to limit the rate of outgoing messages. Button events are always sent out immediately to avoid missing button presses.

Using this Package

For an example of using joy_node to control a teleoperation node with a joystick, see the tutorials.

In some cases, multiple joysticks may control a single robot. For example, a user may use the default joystick to drive a robot, but a second user may wish to use a different kind. Since the button mappings on each joystick may be different, it will be necessary to remap buttons on one joystick so they can match. See the Joystick Remapper package for details.

Application

Microsoft Xbox 360 Wireless Controller for Windows

Table of index number of /joy.buttons:

Index

Button name on the actual controller

0

A

1

B

2

X

3

Y

4

LB

5

RB

7

start

8

power

10

cross key up

11

cross key down

12

cross key left

13

cross key right

14

back

Wiki: joy (last edited 2022-08-19 14:16:19 by Martin Pecka)