<<PackageHeader(joy_teleop)>>
<<TOC(4)>>




## AUTOGENERATED DON'T DELETE
## CategoryPackage

== Usage ==

`joy_teleop` takes the output of the [[joy|joy_node]], and publishes topics or calls actions according to it's configuration.
An example of using `joy_teleop` with TIAGo can be found on the video below.

{{attachment:joy_teleop_drawing.png}}

== ROS API ==

The ROS API consists of the configuration file, the input topic, and the several output topics and actionclients which get dyamically set up according to the configuration file.

=== Parameters ===

{{{
#!clearsilver CS/NodeAPI
param {
  0.name=~teleop
  0.type=array
  0.default=
  0.desc=Array of axis/button to topic and action bindings
}
}}}

==== Example configuration file ====

{{{
#!yaml

teleop:
  move:
    type: topic
    message_type: geometry_msgs/Twist
    topic_name: cmd_vel
    axis_mappings:
      -
        axis: 1
        target: linear.x
        scale: 1.0
      -
        axis: 2
        target: angular.z
        scale: 1.0

  joy_priority:
    type: action
    action_name: joy_priority_action
    buttons: [9]

  joy_turbo_decrease:
    type: action
    action_name: joy_turbo_decrease
    buttons: [1, 4, 5]

  joy_turbo_increase:
    type: action
    action_name: joy_turbo_increase
    buttons: [3, 4, 5]

  torso_up:
    type: action
    action_name: /torso_controller/increment
    action_goal:
      increment_by: [0.05]
    buttons: [4] # right pad, top button

  torso_down:
    type: action
    action_name: /torso_controller/increment
    action_goal:
      increment_by: [-0.05]
    buttons: [6] # right pad, bottom button

  close_hand:
    type: action
    action_name: /play_motion
    action_goal:
      motion_name: 'close_hand'
      skip_planning: True
    buttons: [7]

}}}

=== Topic interface ===

{{{
#!clearsilver CS/NodeAPI
sub {
  0.name=~joy
  0.type=sensor_msgs/Joy
  0.desc=Listens to the joystick state
}
}}}