# omy_f3m_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-Y F3M robot arm with 6 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_trajectory` - **Type**: `trajectory_msgs/msg/JointTrajectory` - **Description**: Publishes joint trajectory commands for the 6-joint robot arm (joint1-joint6). ## Subscribers - **Topic**: `/joint_states` - **Type**: `sensor_msgs/msg/JointState` - **Description**: Subscribes to current joint states to track arm positions and gripper position (rh_r1_joint). ## Actions (Client) - **Action**: `/gripper_controller/gripper_cmd` - **Type**: `control_msgs/action/GripperCommand` - **Description**: 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 6 joints ## Example Usage ### Launch the node ```bash ros2 run open_manipulator_teleop omy_f3m_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) - **6/y**: Increase/decrease joint6 position (±0.02 rad) - **o**: Close gripper (decrease position) - **p**: Open gripper (increase position) - **ESC**: Exit the program ### Example workflow ```bash # Start the robot hardware or simulation first ros2 launch open_manipulator_bringup omy_f3m.launch.py # In a new terminal, run the teleop node ros2 run open_manipulator_teleop omy_f3m_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 ```bash # 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 ```