No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.1.15
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/jsk-ros-pkg/jsk_control.git
VCS Type git
VCS Version master
Last Updated 2019-04-16
Dev Status DEVELOPED
Released RELEASED

Package Description

jsk_teleop_joy

Additional Links

Maintainers

  • Ryohei Ueda

Authors

  • Ryohei Ueda

jsk_teleop_joy package

Introduction

This package provides physical UI for teleoperatoin such as joy sticks, game controllers and MIDI instruments.

Supported game controllers

This package supports following game controllers:

  1. XBox360 controller
  2. PS3 Controller (Bluetooth)
  3. PS3 Controller (USB)

In order to use PS3 controller via Bluetooth, see this instruction.

Architecture of jsk_teleop_joy

jsk_teleop_joy (the main script is joy_main.py) is based on plugin architecture.

ROS packages provides the plugins for jsk_teleop_joy and each plugin represents a function such as "specify 6D pose of the end effector".

You can enable some plugins and choose which plugin you want to use by "Pushing Select Button".

jsk_teleop_joy plugins out of box

  • VerboseStatus
  • JoyPose6D
  • JoyFootstep
  • JoyFootstepPlanner
  • JoyFootstepPlannerDemo
  • JoyMoveIt
  • JoyGoPos

How to implement a plugin

  1. write xml file to define plugins.
  2. Export the xml file from your ROS package using manifest.xml or package.xml.
  3. implement plugin

Write xml file to define plugins

jsk_teleop_joy reads the plugin definition from a xml file like plugin.xml.

That xml should be like:

<library>
  <class name="Foo" type="your_package.foo">
  </class>
</library>

The xml file should have <library> tag at the top level. And you can define plugins by <class> tag.

  • name attribute means the name of the plugin. You will choose plugins by this name in your launch files (example).
  • type attribute means the python class of the plugin. jsk_teleop_joy tries to instantiate plugin class using thie type name.

Export the xml file from your ROS package

You need to export that xml file using <export> tag and <jsk_teleop_joy> tag in your manifest.xml or package.xml.

These two files, manifest.xml, package.xml, are good examples.

Implement a plugin

Finally, you can implement a jsk_teleop_joy plugin.

VerboseStatus Plugin is a good example how to implement a plugin.

__init__ method

All the plugins are required to inherits jsk_teleop_joy.joy_plugin.JSKJoyPlugin and call JSKJoyPlugin.__init__ in its __init__ constructor.

class VerboseStatus(jsk_teleop_joy.joy_plugin.JSKJoyPlugin):
  def __init__(self):
    jsk_teleop_joy.joy_plugin.JSKJoyPlugin.__init__(self, 'VerbosePlugin')

joyCB method

Each time jsk_teleop_joy receives /joy message, it calls joyCB method of the active plugin.

  def joyCB(self, status, history):
    rospy.loginfo('analog left (%f, %f)' % (status.left_analog_x, status.left_analog_y))

The 2nd argument of joyCB is an instance of JoyStatus. JoyStatus is one of XboxStatus, PS3Status and PS3WiredStatus. This means the latest message from /joy. These 3 classes provide the same interface and you don't need to care about which controller the user uses.

On the other hand, the 3rd argument of joyCB (history), is a sequence of JoyStatus. it's an instance of StatusHistory. It means a hisotry of recent JoyStatus.

SELECT button

jsk_teleop_joy system occupies SELECT button so you cannot use SELECT button in your plugin. SELECT button is used for switching plugins.

MIDI controllers

interactive_midi_config.py

You can configure MIDI devices by this script interactively. movie

  1. Connect you MIDI device.
  2. First, the script asks the name of device, please choose the device you want to use.
  3. Second, please push the buttons/slide the faders in the order you want to get as sensor_msgs/Joy. The script maps those buttons to sensor_msgs/Joy/axes (and sensor_msgs/Joy/buttons if possible).
  4. Please type q to quit. And the configure will be saved into /tmp/midi.yaml.

midi_write.py

In order to control LEDs and active faders, need to output some MIDI commands from you computer. The script midi_write.py helps to dig the command and you can save the configuration to a yaml file by -w option.

midi_config_player.py

This script publishes sensor_msgs/Joy to /joy based on a yaml file configured by interactive_midi_config.py and midi_write.py.

configs directory includes some yaml files for several MIDI devices.

CHANGELOG

Could not convert RST to MD: No such file or directory - pandoc

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged jsk_teleop_joy at answers.ros.org

Package Summary

Tags No category tags.
Version 0.1.15
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/jsk-ros-pkg/jsk_control.git
VCS Type git
VCS Version master
Last Updated 2019-04-16
Dev Status DEVELOPED
Released RELEASED

Package Description

jsk_teleop_joy

Additional Links

Maintainers

  • Ryohei Ueda

Authors

  • Ryohei Ueda

jsk_teleop_joy package

Introduction

This package provides physical UI for teleoperatoin such as joy sticks, game controllers and MIDI instruments.

Supported game controllers

This package supports following game controllers:

  1. XBox360 controller
  2. PS3 Controller (Bluetooth)
  3. PS3 Controller (USB)

In order to use PS3 controller via Bluetooth, see this instruction.

Architecture of jsk_teleop_joy

jsk_teleop_joy (the main script is joy_main.py) is based on plugin architecture.

ROS packages provides the plugins for jsk_teleop_joy and each plugin represents a function such as "specify 6D pose of the end effector".

You can enable some plugins and choose which plugin you want to use by "Pushing Select Button".

jsk_teleop_joy plugins out of box

  • VerboseStatus
  • JoyPose6D
  • JoyFootstep
  • JoyFootstepPlanner
  • JoyFootstepPlannerDemo
  • JoyMoveIt
  • JoyGoPos

How to implement a plugin

  1. write xml file to define plugins.
  2. Export the xml file from your ROS package using manifest.xml or package.xml.
  3. implement plugin

Write xml file to define plugins

jsk_teleop_joy reads the plugin definition from a xml file like plugin.xml.

That xml should be like:

<library>
  <class name="Foo" type="your_package.foo">
  </class>
</library>

The xml file should have <library> tag at the top level. And you can define plugins by <class> tag.

  • name attribute means the name of the plugin. You will choose plugins by this name in your launch files (example).
  • type attribute means the python class of the plugin. jsk_teleop_joy tries to instantiate plugin class using thie type name.

Export the xml file from your ROS package

You need to export that xml file using <export> tag and <jsk_teleop_joy> tag in your manifest.xml or package.xml.

These two files, manifest.xml, package.xml, are good examples.

Implement a plugin

Finally, you can implement a jsk_teleop_joy plugin.

VerboseStatus Plugin is a good example how to implement a plugin.

__init__ method

All the plugins are required to inherits jsk_teleop_joy.joy_plugin.JSKJoyPlugin and call JSKJoyPlugin.__init__ in its __init__ constructor.

class VerboseStatus(jsk_teleop_joy.joy_plugin.JSKJoyPlugin):
  def __init__(self):
    jsk_teleop_joy.joy_plugin.JSKJoyPlugin.__init__(self, 'VerbosePlugin')

joyCB method

Each time jsk_teleop_joy receives /joy message, it calls joyCB method of the active plugin.

  def joyCB(self, status, history):
    rospy.loginfo('analog left (%f, %f)' % (status.left_analog_x, status.left_analog_y))

The 2nd argument of joyCB is an instance of JoyStatus. JoyStatus is one of XboxStatus, PS3Status and PS3WiredStatus. This means the latest message from /joy. These 3 classes provide the same interface and you don't need to care about which controller the user uses.

On the other hand, the 3rd argument of joyCB (history), is a sequence of JoyStatus. it's an instance of StatusHistory. It means a hisotry of recent JoyStatus.

SELECT button

jsk_teleop_joy system occupies SELECT button so you cannot use SELECT button in your plugin. SELECT button is used for switching plugins.

MIDI controllers

interactive_midi_config.py

You can configure MIDI devices by this script interactively. movie

  1. Connect you MIDI device.
  2. First, the script asks the name of device, please choose the device you want to use.
  3. Second, please push the buttons/slide the faders in the order you want to get as sensor_msgs/Joy. The script maps those buttons to sensor_msgs/Joy/axes (and sensor_msgs/Joy/buttons if possible).
  4. Please type q to quit. And the configure will be saved into /tmp/midi.yaml.

midi_write.py

In order to control LEDs and active faders, need to output some MIDI commands from you computer. The script midi_write.py helps to dig the command and you can save the configuration to a yaml file by -w option.

midi_config_player.py

This script publishes sensor_msgs/Joy to /joy based on a yaml file configured by interactive_midi_config.py and midi_write.py.

configs directory includes some yaml files for several MIDI devices.

CHANGELOG

Could not convert RST to MD: No such file or directory - pandoc

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged jsk_teleop_joy at answers.ros.org

No version for distro ardent. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 0.1.15
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/jsk-ros-pkg/jsk_control.git
VCS Type git
VCS Version master
Last Updated 2019-04-16
Dev Status DEVELOPED
Released RELEASED

Package Description

jsk_teleop_joy

Additional Links

Maintainers

  • Ryohei Ueda

Authors

  • Ryohei Ueda

jsk_teleop_joy package

Introduction

This package provides physical UI for teleoperatoin such as joy sticks, game controllers and MIDI instruments.

Supported game controllers

This package supports following game controllers:

  1. XBox360 controller
  2. PS3 Controller (Bluetooth)
  3. PS3 Controller (USB)

In order to use PS3 controller via Bluetooth, see this instruction.

Architecture of jsk_teleop_joy

jsk_teleop_joy (the main script is joy_main.py) is based on plugin architecture.

ROS packages provides the plugins for jsk_teleop_joy and each plugin represents a function such as "specify 6D pose of the end effector".

You can enable some plugins and choose which plugin you want to use by "Pushing Select Button".

jsk_teleop_joy plugins out of box

  • VerboseStatus
  • JoyPose6D
  • JoyFootstep
  • JoyFootstepPlanner
  • JoyFootstepPlannerDemo
  • JoyMoveIt
  • JoyGoPos

How to implement a plugin

  1. write xml file to define plugins.
  2. Export the xml file from your ROS package using manifest.xml or package.xml.
  3. implement plugin

Write xml file to define plugins

jsk_teleop_joy reads the plugin definition from a xml file like plugin.xml.

That xml should be like:

<library>
  <class name="Foo" type="your_package.foo">
  </class>
</library>

The xml file should have <library> tag at the top level. And you can define plugins by <class> tag.

  • name attribute means the name of the plugin. You will choose plugins by this name in your launch files (example).
  • type attribute means the python class of the plugin. jsk_teleop_joy tries to instantiate plugin class using thie type name.

Export the xml file from your ROS package

You need to export that xml file using <export> tag and <jsk_teleop_joy> tag in your manifest.xml or package.xml.

These two files, manifest.xml, package.xml, are good examples.

Implement a plugin

Finally, you can implement a jsk_teleop_joy plugin.

VerboseStatus Plugin is a good example how to implement a plugin.

__init__ method

All the plugins are required to inherits jsk_teleop_joy.joy_plugin.JSKJoyPlugin and call JSKJoyPlugin.__init__ in its __init__ constructor.

class VerboseStatus(jsk_teleop_joy.joy_plugin.JSKJoyPlugin):
  def __init__(self):
    jsk_teleop_joy.joy_plugin.JSKJoyPlugin.__init__(self, 'VerbosePlugin')

joyCB method

Each time jsk_teleop_joy receives /joy message, it calls joyCB method of the active plugin.

  def joyCB(self, status, history):
    rospy.loginfo('analog left (%f, %f)' % (status.left_analog_x, status.left_analog_y))

The 2nd argument of joyCB is an instance of JoyStatus. JoyStatus is one of XboxStatus, PS3Status and PS3WiredStatus. This means the latest message from /joy. These 3 classes provide the same interface and you don't need to care about which controller the user uses.

On the other hand, the 3rd argument of joyCB (history), is a sequence of JoyStatus. it's an instance of StatusHistory. It means a hisotry of recent JoyStatus.

SELECT button

jsk_teleop_joy system occupies SELECT button so you cannot use SELECT button in your plugin. SELECT button is used for switching plugins.

MIDI controllers

interactive_midi_config.py

You can configure MIDI devices by this script interactively. movie

  1. Connect you MIDI device.
  2. First, the script asks the name of device, please choose the device you want to use.
  3. Second, please push the buttons/slide the faders in the order you want to get as sensor_msgs/Joy. The script maps those buttons to sensor_msgs/Joy/axes (and sensor_msgs/Joy/buttons if possible).
  4. Please type q to quit. And the configure will be saved into /tmp/midi.yaml.

midi_write.py

In order to control LEDs and active faders, need to output some MIDI commands from you computer. The script midi_write.py helps to dig the command and you can save the configuration to a yaml file by -w option.

midi_config_player.py

This script publishes sensor_msgs/Joy to /joy based on a yaml file configured by interactive_midi_config.py and midi_write.py.

configs directory includes some yaml files for several MIDI devices.

CHANGELOG

Could not convert RST to MD: No such file or directory - pandoc

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged jsk_teleop_joy at answers.ros.org

Package Summary

Tags No category tags.
Version 0.1.15
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/jsk-ros-pkg/jsk_control.git
VCS Type git
VCS Version master
Last Updated 2019-04-16
Dev Status DEVELOPED
Released RELEASED

Package Description

jsk_teleop_joy

Additional Links

Maintainers

  • Ryohei Ueda

Authors

  • Ryohei Ueda

jsk_teleop_joy package

Introduction

This package provides physical UI for teleoperatoin such as joy sticks, game controllers and MIDI instruments.

Supported game controllers

This package supports following game controllers:

  1. XBox360 controller
  2. PS3 Controller (Bluetooth)
  3. PS3 Controller (USB)

In order to use PS3 controller via Bluetooth, see this instruction.

Architecture of jsk_teleop_joy

jsk_teleop_joy (the main script is joy_main.py) is based on plugin architecture.

ROS packages provides the plugins for jsk_teleop_joy and each plugin represents a function such as "specify 6D pose of the end effector".

You can enable some plugins and choose which plugin you want to use by "Pushing Select Button".

jsk_teleop_joy plugins out of box

  • VerboseStatus
  • JoyPose6D
  • JoyFootstep
  • JoyFootstepPlanner
  • JoyFootstepPlannerDemo
  • JoyMoveIt
  • JoyGoPos

How to implement a plugin

  1. write xml file to define plugins.
  2. Export the xml file from your ROS package using manifest.xml or package.xml.
  3. implement plugin

Write xml file to define plugins

jsk_teleop_joy reads the plugin definition from a xml file like plugin.xml.

That xml should be like:

<library>
  <class name="Foo" type="your_package.foo">
  </class>
</library>

The xml file should have <library> tag at the top level. And you can define plugins by <class> tag.

  • name attribute means the name of the plugin. You will choose plugins by this name in your launch files (example).
  • type attribute means the python class of the plugin. jsk_teleop_joy tries to instantiate plugin class using thie type name.

Export the xml file from your ROS package

You need to export that xml file using <export> tag and <jsk_teleop_joy> tag in your manifest.xml or package.xml.

These two files, manifest.xml, package.xml, are good examples.

Implement a plugin

Finally, you can implement a jsk_teleop_joy plugin.

VerboseStatus Plugin is a good example how to implement a plugin.

__init__ method

All the plugins are required to inherits jsk_teleop_joy.joy_plugin.JSKJoyPlugin and call JSKJoyPlugin.__init__ in its __init__ constructor.

class VerboseStatus(jsk_teleop_joy.joy_plugin.JSKJoyPlugin):
  def __init__(self):
    jsk_teleop_joy.joy_plugin.JSKJoyPlugin.__init__(self, 'VerbosePlugin')

joyCB method

Each time jsk_teleop_joy receives /joy message, it calls joyCB method of the active plugin.

  def joyCB(self, status, history):
    rospy.loginfo('analog left (%f, %f)' % (status.left_analog_x, status.left_analog_y))

The 2nd argument of joyCB is an instance of JoyStatus. JoyStatus is one of XboxStatus, PS3Status and PS3WiredStatus. This means the latest message from /joy. These 3 classes provide the same interface and you don't need to care about which controller the user uses.

On the other hand, the 3rd argument of joyCB (history), is a sequence of JoyStatus. it's an instance of StatusHistory. It means a hisotry of recent JoyStatus.

SELECT button

jsk_teleop_joy system occupies SELECT button so you cannot use SELECT button in your plugin. SELECT button is used for switching plugins.

MIDI controllers

interactive_midi_config.py

You can configure MIDI devices by this script interactively. movie

  1. Connect you MIDI device.
  2. First, the script asks the name of device, please choose the device you want to use.
  3. Second, please push the buttons/slide the faders in the order you want to get as sensor_msgs/Joy. The script maps those buttons to sensor_msgs/Joy/axes (and sensor_msgs/Joy/buttons if possible).
  4. Please type q to quit. And the configure will be saved into /tmp/midi.yaml.

midi_write.py

In order to control LEDs and active faders, need to output some MIDI commands from you computer. The script midi_write.py helps to dig the command and you can save the configuration to a yaml file by -w option.

midi_config_player.py

This script publishes sensor_msgs/Joy to /joy based on a yaml file configured by interactive_midi_config.py and midi_write.py.

configs directory includes some yaml files for several MIDI devices.

CHANGELOG

Could not convert RST to MD: No such file or directory - pandoc

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

Messages

No message files found.

Services

No service files found

Plugins

Recent questions tagged jsk_teleop_joy at answers.ros.org