Size: 846
Comment:
|
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:
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.
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts and Blaise Gassend
- License: BSD
- Repository: ros-pkg
- Source: svn https://code.ros.org/svn/ros-pkg/stacks/joystick_drivers/tags/joystick_drivers-1.4.2
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.
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts and Blaise Gassend
- License: BSD
- Source: svn https://code.ros.org/svn/ros-pkg/stacks/joystick_drivers/branches/electric_devel
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.
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts and Blaise Gassend
- License: BSD
- Source: git https://github.com/ros-drivers/joystick_drivers.git (branch: joystick_drivers-1.8)
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.
- Maintainer status: maintained
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts, Blaise Gassend
- License: BSD
- Bug / feature tracker: https://github.com/ros-drivers/joystick_drivers/issues
- Source: git https://github.com/ros-drivers/joystick_drivers.git (branch: joystick_drivers-1.9)
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.
- Maintainer status: maintained
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts, Blaise Gassend
- License: BSD
- Bug / feature tracker: https://github.com/ros-drivers/joystick_drivers/issues
- Source: git https://github.com/ros-drivers/joystick_drivers.git (branch: hydro-devel)
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.
- Maintainer status: maintained
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts, Blaise Gassend
- License: BSD
- Bug / feature tracker: https://github.com/ros-drivers/joystick_drivers/issues
- Source: git https://github.com/ros-drivers/joystick_drivers.git (branch: indigo-devel)
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.
- Maintainer status: maintained
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts, Blaise Gassend
- License: BSD
- Bug / feature tracker: https://github.com/ros-drivers/joystick_drivers/issues
- Source: git https://github.com/ros-drivers/joystick_drivers.git (branch: indigo-devel)
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.
- Maintainer status: maintained
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts, Blaise Gassend
- License: BSD
- Bug / feature tracker: https://github.com/ros-drivers/joystick_drivers/issues
- Source: git https://github.com/ros-drivers/joystick_drivers.git (branch: indigo-devel)
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.
- Maintainer status: maintained
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts, Blaise Gassend
- License: BSD
- Bug / feature tracker: https://github.com/ros-drivers/joystick_drivers/issues
- Source: git https://github.com/ros-drivers/joystick_drivers.git (branch: indigo-devel)
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.
- Maintainer status: developed
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts, Blaise Gassend
- License: BSD
- Bug / feature tracker: https://github.com/ros-drivers/joystick_drivers/issues
- Source: git https://github.com/ros-drivers/joystick_drivers.git (branch: melodic-devel)
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.
- Maintainer status: maintained
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Morgan Quigley, Brian Gerkey, Kevin Watts, Blaise Gassend
- License: BSD
- Bug / feature tracker: https://github.com/ros-drivers/joystick_drivers/issues
- Source: git https://github.com/ros-drivers/joystick_drivers.git (branch: main)
Contents
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.
- Outputs the joystick state. New in ROS Electric
Parameters
~dev (string, default: /dev/input/js0)- Linux joystick device from which to read joystick events.
- 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.
- Rate in Hz at which a joystick that has a non-changing state will resend the previously sent message.
- 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 |