omx_f_teleop
This file is ai generated. Do not edit this file directly. Instead, edit the node source code and run the generate-node-docs command to update this file.
Node Name
keyboard_controller
Description
Keyboard teleoperation node for controlling the OpenManipulator-X F robot arm with 5 joints and a gripper. The node provides real-time keyboard control to adjust individual joint positions and gripper state through interactive terminal input.
Publishers
Topic:
/arm_controller/joint_trajectoryType:
trajectory_msgs/msg/JointTrajectoryDescription: Publishes joint trajectory commands for the 5-joint robot arm (joint1-joint5).
Subscribers
Topic:
/joint_statesType:
sensor_msgs/msg/JointStateDescription: Subscribes to current joint states to track arm positions and gripper position (rh_r1_joint).
Actions (Client)
Action:
/gripper_controller/gripper_cmdType:
control_msgs/action/GripperCommandDescription: Sends gripper position commands with maximum effort of 10.0 N.
Parameters
This node does not expose configurable parameters. The following internal constants control behavior:
max_delta: 0.02 radians - Maximum position change per command for arm joints
gripper_delta: 0.1 - Position change increment for gripper
command_interval: 0.02 seconds - Minimum time between commands
gripper_max: 1.1 - Maximum gripper opening position
gripper_min: 0.0 - Minimum gripper opening position
Joint limits: -3.14 to 3.14 radians for all 5 joints
Example Usage
Launch the node
ros2 run open_manipulator_teleop omx_f_teleop
Keyboard controls
Once running, use the following keys to control the robot:
1/q: Increase/decrease joint1 position (±0.02 rad)
2/w: Increase/decrease joint2 position (±0.02 rad)
3/e: Increase/decrease joint3 position (±0.02 rad)
4/r: Increase/decrease joint4 position (±0.02 rad)
5/t: Increase/decrease joint5 position (±0.02 rad)
o: Open gripper (increase position)
p: Close gripper (decrease position)
ESC: Exit the program
Example workflow
# Start the robot hardware or simulation first
ros2 launch open_manipulator_bringup omx_f.launch.py
# In a new terminal, run the teleop node
ros2 run open_manipulator_teleop omx_f_teleop
# Wait for "Ready to receive keyboard input!" message
# Use keyboard keys to control joints and gripper
# Press ESC to exit cleanly
Monitor joint commands
# In another terminal, monitor the published trajectories
ros2 topic echo /arm_controller/joint_trajectory
# Monitor gripper action status
ros2 action list
ros2 action info /gripper_controller/gripper_cmd