![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control | |
jsk_panda_teleop | |
drc_task_common |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control | |
jsk_panda_teleop |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status |
|
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]
Messages
Services
Plugins
Recent questions tagged jsk_teleop_joy at Robotics Stack Exchange
![]() |
jsk_teleop_joy package from jsk_control repocmd_vel_smoother contact_states_observer eus_nlopt eus_qp eus_qpoases eus_teleop joy_mouse jsk_calibration jsk_control jsk_footstep_controller jsk_footstep_planner jsk_ik_server jsk_teleop_joy |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.1.18 |
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 | 2024-12-09 |
Dev Status | DEVELOPED |
CI status | Continuous Integration |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
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:
- XBox360 controller
- PS3 Controller (Bluetooth)
- 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
- write xml file to define plugins.
- Export the xml file from your ROS package using
manifest.xml
orpackage.xml
. - 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 thietype
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
File truncated at 100 lines see the full file
Changelog for package jsk_teleop_joy
0.1.18 (2024-12-09)
- [jsk_teleop_joy] support midi launchpad X (#789)
- [jsk_teleop_joy] python3-pygame is required on noetic (#787)
- Contributors: Shun Hasegawa, Yoshiki Obinata
0.1.17 (2023-05-28)
0.1.16 (2022-10-27)
- fix for python3
(#776)
- fix with 2to3 -w -f import, and fix ValueError: Attempted relative import in non-package
- use raw_input for python2 c.f. https://stackoverflow.com/questions/5868506/backwards-compatible-input-calls-in-python
- run 2to3 -w -f has_key . for python3 check
- add from __future_ import print_function (#773)
- [README.md] delete pip instruction and recommend apt version only (#760)
- fix for python3
(#763)
- 2to3 -w -fexcept .
- 2to3 -w -fprint .
- update readme
- Update jsk_teleop_joy/README.md
- Add ipega controller support
(#716)
- Fixed a key setting mistake. Add controller_type ipega as a possible input for joy_status
- Add ipega controller support
- Contributors: Shingo Kitagawa, Iki Yo, Kei Okada, Yoichiro Kawamura
0.1.15 (2018-05-16)
- Merge pull request #693 from k-okada/fix_apt_slow remove unused build_depends
- remove unused build_depends
- Contributors: Kei Okada
0.1.14 (2018-01-15)
0.1.13 (2017-04-18)
- [jsk_footstep_planner, jsk_teleop_joy] add stack mode to footstep_marker
- [jsk_teleop_joy] Remove / from default frame_id in pose6d plugin
- [jsk_teleop_joy] update view control in rviz using teleop_joy
- Contributors: Yohei Kakiuchi
0.1.12 (2017-02-22)
0.1.11 (2017-02-09)
0.1.10 (2016-12-15)
- [jsk_teleop_joy] package.xml : add pygame run depend (#657)
- Add toggle footstep marker mode joy interface
(#607)
- src/jsk_teleop_joy/plugin/joy_footstep_marker.py: Add joy interface to toggle planning mode
- Add plugin to send cmd_vel from joystick contorller
(#600)
- [jsk_teleop_joy] src/jsk_teleop_joy/joy.py : Add plugin_package option to JoyManager to use joy plugins in other packages
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add orthogonal_axis_mode, which does not allow diagonal movement
- [jsk_teleop_joy] src/jsk_teleop_joy/plugin/joy_cmd_vel.py : Add plugin to send cmd_vel from joystick contorller
- Add utility tools for jaxon footstep planner
(#598)
- [jsk_footstep_planner] launch/joy_footstep_marker.launch : Add joy_footstep_marker launch, which control footstep_marker from joystick controller
- Project odom_init to detected floor
(#579)
- [jsk_teleop_joy] Check result of service call by exception handling
- [jsk_teleop_joy] Display OverlayMenu before execute footstep
- [jsk_teleop_joy] sync pre_pose in joy_footstep_marker only at first of the pose update sequence
- [jsk_teleop_joy] Add marker_name arg to getCurrentMarkerPose and initialize marker by initial_footstep_marker in reset process
- [jsk_teleop_joy] Add footstep marker synchonization to joy_footstep_marker
- [jsk_teleop_joy] Add joycontroller interface plugin for footstep_marker
- Contributors: Kanae Kochigami, Iory Kumagai
0.1.9 (2016-03-23)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
jsk_control |
Launch files
- launch/cmdvel.launch
-
- CMDVEL_REMAP [default: /cmd_vel]
- CONTROLLER_TYPE [default: xbox]
- launch/footstep_planner.launch
-
- POSE_REMAP [default: move_marker]
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js0]
- launch/gopos.launch
-
- POSE_REMAP [default: /marker_6dof/move_marker]
- CONTROLLER_TYPE [default: xbox]
- launch/hrp2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/joy.launch
-
- POSE_REMAP [default: pose]
- CONTROLLER_TYPE [default: auto]
- FRAME_ID [default: odom]
- DEV [default: /dev/input/js1]
- launch/joy_footstep.launch
-
- POSE_REMAP [default: pose]
- launch/joy_footstep_marker.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OUTPUT [default: /footstep_marker/pose_stamped_command]
- launch/joy_vehicle.launch
-
- CONTROLLER_DEV [default: /dev/input/js0]
- OCS_NS [default: ocs]
- launch/marker.launch
-
- CONTROLLER_TYPE [default: ps3wired]
- launch/pr2.launch
-
- DEV [default: /dev/input/js1]
- REMAPPED_JOY [default: /joy2]
- REMOTE_TF [default: /tf_low_frequency]
- launch/pr2_moveit.launch
-
- POSE_REMAP [default: /rviz/moveit/goal/move_marker]
- launch/pr2_relay.launch
-
- DEV [default: /dev/input/js0]
- CONTROLLER_TYPE [default: auto]
- joy_topic [default: $(anon joy)]
- launch/pr2_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- launch/robot_trackball_head.launch
-
- JOINT_STATES [default: /joint_states]
- JOINT_TRAJECTORY_ACTION [default: /head_traj_controller/follow_joint_trajectory]
- PITCH_JOINT [default: head_pan_joint]
- YAW_JOINT [default: head_tilt_joint]
- launch/verbose.launch
-
- CONTROLLER_TYPE [default: auto]
- DEV [default: /dev/input/js1]