Skip to content

Comments

Fix Servo tutorials for post-GSoC 2023 API changes#1086

Open
alltheseas wants to merge 2 commits intomoveit:mainfrom
alltheseas:fix/update-servo-tutorials-issue-996
Open

Fix Servo tutorials for post-GSoC 2023 API changes#1086
alltheseas wants to merge 2 commits intomoveit:mainfrom
alltheseas:fix/update-servo-tutorials-issue-996

Conversation

@alltheseas
Copy link

Summary

  • Realtime Servo tutorial: Fix 13 issues including wrong getNextJointState() signature (now requires robot_state param), panda_link7panda_joint7 bug, TwistCommand syntax error, add sliding window publishing pattern, document active_subgroup parameter, fix stale launch file references
  • Teleoperation guide: Full rewrite — removed references to deleted JoyToServoPub, servo_example.launch.py, and joystick_servo_example.cpp. Added keyboard teleoperation with key mapping table, gamepad section with ROS API approach and minimal Python example

Fixes #996

Test plan

Verified against ros-jazzy-moveit-servo 2.12.4 in Docker (ros:rolling image):

  • ros2 launch moveit_servo demo_ros_api.launch.py — launches cleanly, no errors
  • servo_keyboard_input executable exists
  • Topics match docs: /servo_node/delta_twist_cmds, /servo_node/delta_joint_cmds, /servo_node/pose_target_cmds
  • ros2 service call /servo_node/switch_command_type moveit_msgs/srv/ServoCommandType "{command_type: 1}" — returns success=True
  • TwistStamped commands produce joint motion (Cartesian IK working)
  • JointJog commands move individual joints only
  • Demo launch files exist: demo_joint_jog, demo_twist, demo_pose
  • active_subgroup parameter present on servo node
  • Sphinx build succeeds with zero warnings on changed files

🤖 Generated with Claude Code

alltheseas and others added 2 commits February 20, 2026 23:46
- Fix getNextJointState() signature to include robot_state parameter
- Add robot_state initialization after Servo construction
- Add trajectory_publisher declaration and #include so example compiles
- Add using namespace moveit_servo to Publishing the Output block
- Fix JointJogCommand field: joint_names -> names (matches datatypes.hpp)
- Fix panda_link7 -> panda_joint7 (was referencing link, not joint)
- Fix TwistCommand syntax error (missing closing brace)
- Update TwistCommand values to match demo code
- Add sliding window and trajectory publishing pattern
- Add getStatusMessage() to status section
- Add active_subgroup parameter documentation
- Add proper RST sub-heading underlines for command type sections
- Fix servo_example.launch.py -> demo_ros_api.launch.py display text
- Fix typo: Jacobain -> Jacobian
- Add trailing period to servo_parameters.yaml sentence
- Remove stale "This will be updated soon" note
- Fix missing space between sentences in Design overview

Addresses moveit#996

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The previous guide referenced JoyToServoPub, servo_example.launch.py,
and joystick_servo_example.cpp — all removed during the GSoC 2023
Servo refactoring.

Replace with:
- Keyboard teleoperation section using built-in servo_keyboard_input
- Key mapping table for all supported controls
- Gamepad section showing how to use ROS API topics with joy node
- Minimal Python translator example for gamepad-to-Servo bridge
- Explicit switch_command_type step so Twist commands are processed
- Scaling factors on gamepad axes (dimensionless [-1,1] to m/s, rad/s)
- Note that ~/ topic names are node-relative
- Note that xbox controller image shows old JoyToServoPub layout
- All three command topics listed (twist, joint jog, pose)
- Explanation of how ServoNode processes commands from any input source

Addresses moveit#996

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Servo docs outdated

1 participant