# incrementer_server *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.* ## Description The `incrementer_server` node provides an action server that increments joint positions by a specified amount. It listens to the current joint controller state, adds the requested increment to the current positions, and publishes the new joint trajectory goal. This is useful for incremental joint control using joystick or other teleoperation interfaces. ## Subscribers | Topic | Type | Description | |-------|------|-------------| | `controller_state` | `control_msgs/msg/JointTrajectoryControllerState` | Receives the current state of the joint trajectory controller including current joint positions | ## Publishers | Topic | Type | Description | |-------|------|-------------| | `joint_trajectory` | `trajectory_msgs/msg/JointTrajectory` | Publishes joint trajectory commands with incremented positions | ## Actions | Action | Type | Description | |--------|------|-------------| | `increment` | `teleop_tools_msgs/action/Increment` | Action server that accepts increment values for each joint and sends the incremented trajectory | ## Parameters The node runs in the `joint_trajectory_controller` namespace by default and does not have configurable parameters. ## Example Usage ### Basic Launch ```bash ros2 run joy_teleop incrementer_server ``` ### Launch with Custom Namespace ```bash ros2 run joy_teleop incrementer_server --ros-args -r __ns:=/custom_controller ``` ### Send Increment Action Goal ```bash # Using ros2 action command-line tool ros2 action send_goal /joint_trajectory_controller/increment teleop_tools_msgs/action/Increment "{increment_by: [0.1, 0.0, -0.1, 0.0, 0.0, 0.0]}" ``` ### Example Launch File ```python from launch import LaunchDescription from launch_ros.actions import Node def generate_launch_description(): return LaunchDescription([ Node( package='joy_teleop', executable='incrementer_server', name='incrementer', namespace='torso_controller', output='screen' ) ]) ``` ### Integration with joy_teleop ```yaml joy_teleop: ros__parameters: increment_joint: type: action interface_type: teleop_tools_msgs/action/Increment action_name: /joint_trajectory_controller/increment buttons: [5] action_goal: increment_by: - 0.1 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 ``` ## Notes - The node waits for a valid controller state message before processing increment requests - The increment values array should match the number of joints in the controller - The trajectory point uses a 0.1 second duration from start by default - The node automatically determines joint names from the controller state - Typically used in conjunction with `joy_teleop` for joystick-based joint control