Controller ROS 2 parameters¶
ROS 2 parameters for public controllers in arms_ros2_control. Code pin: 9a1da3ba. Startup / Runtime wording matches the READMEs in pull request #120 (e1b7a147). How to load and inspect: Configure ROS 2 controller parameters. Topics and FSM integers: the per-controller pages (not repeated here).
Source of truth
Names, types, and defaults come from the linked README (or auto_declare / declare_parameter at the code pin when the README says so). When tags are Runtime / Startup only / Unverified as in #120. Framework commons (joints, update_rate, command_interfaces, state_interfaces, optional command_prefix) are on the how-to only.
How to read the tables¶
Three columns: Parameter, Type / default, Meaning (the When tag is the last sentence of Meaning).
Tag |
Evidence (#120) |
|---|---|
Runtime |
|
Startup only |
Member set in |
Unverified |
No documented key in these tables is Unverified in #120 |
config/ocs2/*.info is not the ROS 2 parameter server. robot_name selects {robot_name}_description; the task file is {pkg}/config/ocs2/task.info unless launch YAML sets info_file_name.
Basic Joint Controller¶
Plugin basic_joint_controller/BasicJointController. Also declares the framework-common keys. Home keys: shared Home. README #120 / README_zh. Topics: Basic Joint Controller. How-to: Use Basic Joint Controller.
This is the primary MoveJ parameter table. 灵巧手 uses target_command_* on this controller (not Adaptive Gripper Controller).
MoveJ¶
README defaults below. Shared C++ auto_declare on OCS2 Arm Controller uses movej_interpolation_type "linear" and movej_trajectory_blend_ratio 0.2 — see that page’s delta, not a second MoveJ table.
Parameter |
Type / default |
Meaning |
|---|---|---|
|
double / |
Lower bound for |
|
string / |
|
|
double / |
tanh scale. Runtime. |
|
double / |
Multi-waypoint duration. Runtime. |
|
double / |
Waypoint blend. Runtime. |
|
double / |
Peak joint speed; may extend duration. Runtime. |
|
double / |
doubles only. Runtime. |
|
double / |
doubles only. Runtime. |
|
bool / |
|
none is not duration-extended. joint_trajectory_with_para uses the same vel/acc/jerk when a waypoint omits those arrays.
MOVEJ cartesian_defaults.* (IK MoveL when lina_planning is present) are Runtime on the next MOVEJ command — arms_target_manager README in #120.
灵巧手 (target_command)¶
Parameter |
Type / default |
Meaning |
|---|---|---|
|
bool / |
Switch/percent topics. Startup only. |
|
int / |
Close pose index in Home configs (0-based). Startup only. |
|
int / |
Open pose index. Startup only. |
Waist¶
Only waist_lifting_duration is Runtime. Type, speed triples, kinematics, and TF frames are Startup only (first planner create or on_init).
Parameter |
Type / default |
Meaning |
|---|---|---|
|
bool / |
Declares waist params and topics. Startup only. |
|
string / |
|
|
double / |
Re-read on the next waist position plan. Runtime. |
|
double[3] / |
|
|
double[3] / |
|
|
string / |
Absolute |
|
string / |
|
|
double / |
three_joint. Startup only. |
|
double[3] / |
three_joint. Startup only. |
|
double[3] / |
three_joint. Startup only. |
|
double / |
single_joint (ARX Lift / Lift 2S). Startup only. |
|
double / |
single_joint. Startup only. |
|
string / |
Name not in |
|
double / |
single_joint. Startup only. |
|
double / |
single_joint. Startup only. |
Lift 2S example (body_joint_controller): waist_lifting_enabled: true, waist_lifting_type: single_joint, waist_absolute_source_frame: base_link, waist_absolute_target_frame: lift_link. Overlay: arx_lift2s_description/.../ros2_controllers.yaml.
Adaptive Gripper Controller¶
夹爪. Plugin adaptive_gripper_controller/AdaptiveGripperController. README 配置参数. Command channels: Adaptive Gripper Controller. Open/close limits come from /robot_description.
Uses joint (singular), not joints. update_rate and ControllerInterface command/state lists are Startup only at load. No on_set_parameters callback and no re-read in update().
Parameter |
Type / default |
Meaning |
|---|---|---|
|
string / |
Controlled joint. Startup only. |
|
bool / |
Bind effort state for force feedback. Startup only. |
|
double / |
Effort magnitude that triggers feedback. Startup only. |
|
double / |
After trigger: |
OCS2 Arm Controller¶
Plugin ocs2_arm_controller/Ocs2ArmController. Also declares the framework-common keys and the shared Home names. README #120. FSM / launch: OCS2 Arm Controller. Public YAML: cr5_description/.../ros2_controllers.yaml. Optional dual-arm overlay on robot_descriptions feature/agilex only: taku_description/.../ros2_controllers.yaml.
README FSM is HOME / HOLD / OCS2 (3 = OCS2). Source also constructs StateMoveJ for canonical /fsm_command 4 (and IK MoveL when lina_planning is present). Do not copy the Basic Joint MoveJ table here. Declare-time deltas vs Basic Joint: movej_interpolation_type default "linear", movej_trajectory_blend_ratio 0.2. Waist keys, when waist_lifting_enabled, follow the Basic Joint waist table (only waist_lifting_duration is Runtime).
Older README names that are not parameters at this pin: zero_pos (use rest_pos), robot_pkg (use robot_name), force_gains (use default_gains / pd_gains).
Parameter |
Type / default |
Meaning |
|---|---|---|
|
double[] |
Legacy single Home if |
|
double[] |
Extra Home slot when |
|
string / |
Selects |
|
double[] |
HOME / HOLD impedance |
|
double[] |
OCS2-state impedance |
|
|
Model / reference base. Startup only — not hot like |
|
|
Left tip (YAML may set |
|
|
Right tip. Startup only. |
|
|
MoveL duration (s). Runtime (next interpolating / stamped command). |
|
|
MoveL trajectory duration. Runtime. |
|
|
Sample interval. Runtime. |
|
|
Linear vel limit. Runtime. |
|
|
Linear acc limit. Runtime. |
|
|
Linear jerk limit. Runtime. |
|
|
Angular vel limit. Runtime. |
|
|
Angular acc limit. Runtime. |
|
|
Angular jerk limit. Runtime. |
|
|
Extend MoveL duration when limits require it. Runtime. |
YAML frame overrides are injected in memory at Interface construction.
arms_target_manager¶
This is a command node, not a ros2_control controller. README: #120. Cartesian topics: FSM and Topics, Adaptive Gripper Controller.
YAML: package config/default.yaml, or a robot config/ocs2/target_manager.yaml.
declare_parameter in main then values go into constructors. No on_set_parameters callback and no later get_parameter. Every row below is Startup only. Controller frames (base_frame, left_ee_frame, right_ee_frame, WBC body_frame) belong to the controller node — Startup only there.
Parameter |
Default |
Meaning |
|---|---|---|
|
launch / task.info; C++ |
Dual-arm markers. Startup only. |
|
launch / task.info; C++ |
Control base. Startup only. |
|
launch / task.info; C++ |
Hand controller names. Startup only. |
|
|
RViz marker fixed frame. Startup only. |
|
|
MOVEJ arm markers → stamped IK MoveL. Startup only. |
|
|
Legacy head RPY-to-joint marker ( |
|
|
WBC Head 6D marker; still needs FSM=OCS2 and |
|
|
Full-stick linear twist (m/s). Startup only. |
|
|
Full-stick angular twist (rad/s). Startup only. |
|
|
Typical |
|
|
VR stick linear step (m/step). Startup only. |
|
|
VR stick angular step (rad/step). Startup only. |
|
|
Enable VR handler. Launch YAML overrides the C++ default. Startup only. |
OCS2 WBC Controller¶
controller/ocs2_wbc_controller is a private submodule. Parameter names after access: that package README. Public launch: ros2 launch ocs2_arm_controller full_body.launch.py — OCS2 WBC Controller. Extra frame body_frame is Startup only per the target-manager notes in #120.
Public YAML may still list an ocs2_wbc_controller: block (Lift 2S home_3 / home_4; Taku on feature/agilex). Treat those keys as machine overlays; the private README is the parameter list.