From 8780cf75eb948b33ce5cf61676a7915ba5eb8b67 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 31 Oct 2026 11:25:18 +0000 Subject: [PATCH] docs: index shared FSM ROS 2 parameters on the controller reference page Operators searching the controller parameter reference missed Home and Hold keys that live in arms_controller_common. Add a Shared FSM parameters section before the per-controller tables, and point the how-to shared mechanisms section back at that index. Restore MyST heading-anchor metadata after sphinx-intl republishes translated snippets, so zh_CN cross-document anchors still resolve under -W. Co-authored-by: HUANG ZHENBIAO --- .../4-controllers/12-ros2_parameters.po | 278 +++--- .../controllers/8-ros2_parameters.po | 912 +++++++++++------- .../4-controllers/12-ros2_parameters.md | 2 + .../controllers/8-ros2_parameters.md | 41 + source/conf.py | 21 + 5 files changed, 777 insertions(+), 477 deletions(-) diff --git a/locale/zh_CN/LC_MESSAGES/2-how_to/4-controllers/12-ros2_parameters.po b/locale/zh_CN/LC_MESSAGES/2-how_to/4-controllers/12-ros2_parameters.po index 197e077..507818b 100644 --- a/locale/zh_CN/LC_MESSAGES/2-how_to/4-controllers/12-ros2_parameters.po +++ b/locale/zh_CN/LC_MESSAGES/2-how_to/4-controllers/12-ros2_parameters.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: FiveAges Sim \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-19 10:04+0000\n" +"POT-Creation-Date: 2026-10-31 11:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: zh_CN\n" @@ -21,12 +21,12 @@ msgstr "" "Generated-By: Babel 2.18.0\n" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:1 -#: 796150a650a34361a1deb3d80a228bad +#: f633e6abd5734eaba918511de7e6bfb0 msgid "Configure ROS 2 controller parameters" msgstr "配置 ROS 2 控制器参数" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:3 -#: be26171806254c4687a6e4bead0bd31f +#: 3c4cd8de9cb94410b2460588466fc179 msgid "" "Where controller and **hardware interface** parameters live, how to " "inspect them, and how this stack treats **startup vs runtime** changes. " @@ -40,40 +40,40 @@ msgstr "" "表在各公开驱动页 — [驱动层](../../4-reference/hardware/0-index.md)。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:5 -#: 919342c6f636425289051a00edb78840 +#: 6bab9242addc429f89e930ca5c3bc3f7 msgid "" "Topic lists and FSM integers stay on the controller pages — this guide is" " **parameters** plus the few mechanisms that several controllers share." msgstr "话题列表和 FSM 整数值仍写在各控制器页面——本指南讲**参数**,以及若干控制器共用的机制。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:7 -#: 8ccd531ba49940f89fab6f4812563db0 +#: 26e29d45f8834c2e83361f21b6f3c369 msgid "Where parameters live" msgstr "参数写在哪里" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: cf0145d5bda14b90a4e03de686c2337e +#: 8028672495f840a793a9eefad55d84d1 msgid "Place" msgstr "位置" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: fb82423247264bea8d5cf792cf11c245 +#: b7f9caf864494cd288017834e7e19ea0 msgid "What it is" msgstr "是什么" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 6ebd79e52f094443bdbb84bd7590853a +#: 4d81ae42565345a390748bf7bb1344db msgid "Typical contents" msgstr "常见内容" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 73ba610b350c4225a096157f843daf0f +#: 7d94d2d8bc7f482cb30c1d05e8deebc9 #, python-brace-format msgid "`{robot}_description/config/ros2_control/ros2_controllers.yaml`" msgstr "`{robot}_description/config/ros2_control/ros2_controllers.yaml`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 8ac4b4a92dd2473db9f2d03eb7546f93 +#: 4487a80a1e824ec7ad66060600e5ec07 #, python-brace-format msgid "" "Loaded by `controller_manager` (merged with `common.yaml` / " @@ -85,60 +85,60 @@ msgstr "" "[robot_common_launch](../../4-reference/descriptions/2-common.md))" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: ba9a8acc00b84328b71ba927b1e167bd +#: 9f0727b88eac438b97c32f4918b3e81a msgid "Controller plugin types, `joints`, Home poses, MoveL limits, 夹爪 force keys" msgstr "控制器插件类型、`joints`、Home 构型、MoveL 限幅、夹爪力控键" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 494f100c389544b9b681656a7b0e845c +#: 10f861cbad1a4f0297b8231f2abc018a msgid "`ros2 param set` / node CLI" msgstr "`ros2 param set` / node CLI" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 2ad203d2dd754fa6b48ebe4542582aa9 +#: e9830795a13742f99da07b4fa9b9d067 msgid "Live ROS 2 parameter API on a running node" msgstr "运行中节点上的 ROS 2 参数 API" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 46c229424f8c4ce5ab3fded0dc1f3b13 +#: 72640188e5c14d81b3e1167e786cf3ff msgid "Same names as YAML once the node is up" msgstr "节点起来后,名称与 YAML 中相同" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 546a984ef8ef446f8c86f1a86a61ceab +#: b97d97daed954ad8bd2cef3cfa79893c msgid "URDF / xacro `` ``" msgstr "URDF / xacro `` ``" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 07ae433725b848499387ef911b81e7a3 +#: 5500494cc6d74dcc9ed79a8589a63705 msgid "**Hardware interface** plugin arguments, not `ros2 param`" msgstr "**驱动层**插件参数,不是 `ros2 param`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: dda708ae7428426a8d2d34da359bdec3 +#: d567de7fa9594bfebf6182ffce1734d8 msgid "" "CAN device, topic names, `initialize_commands_from_state`, vendor IP — " "read at plugin load" msgstr "CAN 设备、话题名、`initialize_commands_from_state`、厂商 IP——插件加载时读取" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 6ee14086f4dc4a9f947177f369ec46f0 +#: f2447231a79540cfbb44aaeab82f72e7 #, python-brace-format msgid "`{robot}_description/config/ocs2/*.info`" msgstr "`{robot}_description/config/ocs2/*.info`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 153b0d1b71b04e5895d77f9732aca926 +#: 14fe4d3581f14bdbb500f2935d3f7e55 msgid "OCS2 **task files**" msgstr "OCS2 **任务文件**" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md -#: 5f3da8d9674e45fa9a61bf52d99c97f5 +#: e3284629591a4b5195bd5872f5309bb2 msgid "`baseFrame` / `eeFrame` defaults, MPC model. **Not** ROS 2 parameters" msgstr "`baseFrame` / `eeFrame` 默认值与 MPC 模型。**不是** ROS 2 参数" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:16 -#: d4bfc3bb9ca84715aca82da3f2ca5f4a +#: 6b3f3a05b38b493b935c70aa0ea0614c msgid "" "The **OCS2 Arm Controller** README names " "`config/ocs2_arm_controller.yaml`. At [arms_ros2_control " @@ -159,7 +159,7 @@ msgstr "" "dobot/blob/main/cr5_description/config/ros2_control/ros2_controllers.yaml))。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:18 -#: acd78610d8174e1f9b9a0b23e9f1986b +#: 29144f0b1aad4f0c95c4e27305d2b462 msgid "" "`arms_target_manager` also reads " "[`command/arms_target_manager/config/default.yaml`](https://github.com" @@ -174,7 +174,7 @@ msgstr "" " `config/ocs2/target_manager.yaml`。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:20 -#: 95bc3690a7ba442eb081bab5c8eae6b7 +#: 463968a75d004d2daf3432c5060e518f msgid "" "**Startup / Runtime** tags on the tables match the public controller " "READMEs in [arms_ros2_control #120](https://github.com/fiveages-" @@ -190,19 +190,19 @@ msgstr "" "PR 合并后,`main` 上的措辞相同。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:22 -#: 01daadb5cbe54c0a9469de842780d1a6 +#: 256e173d8496468f9a2dfcb0a5069c75 msgid "Inspect running values" msgstr "查看运行中的取值" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:24 -#: f2afd6ae2261459490d79e9f1ef2cfc3 +#: 8e268da74f504b13bf776f1ade4b502d msgid "" "Controller plugins are ROS 2 nodes named after the controller. After a " "launch:" msgstr "控制器插件是以控制器命名的 ROS 2 节点。启动后:" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 79d4ad5e916f42758cc43aaa25249d0c +#: a79432176c4c45e1a2fab24fac438f39 msgid "" "ros2 param list\n" "ros2 param list /ocs2_arm_controller\n" @@ -215,7 +215,7 @@ msgstr "" "ros2 param get /left_gripper_controller force_threshold" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:33 -#: 5e0f49a3563742b091c5592e4221c1cb +#: 8ae07afaa1814bc3badb46d6e40443cd msgid "" "Most hardware `` values do **not** appear on `ros2 param list` — " "they are baked into `/robot_description` when xacro runs. Some public " @@ -233,12 +233,12 @@ msgstr "" "list_hardware_interfaces` 和 `xacro/ros2_control/` 下的 xacro 确认插件。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:35 -#: 09bf67ae8b3d4bbfb4d3b2b576bcabbf +#: 56b6fff5ba2e48cba97dc2f3e90cd8c9 msgid "Startup vs runtime" msgstr "仅启动 vs 运行时" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:37 -#: 1935236426bf4ac09fa2ae6c92810a26 +#: eeb9116d35594c8aa4f04e4574677649 msgid "" "A YAML value is always applied when the controller or hardware interface " "plugin **starts**. Whether `ros2 param set` later changes behavior uses " @@ -248,23 +248,23 @@ msgstr "" "相同的标记:" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 876c313b6a0e4b7aa0fa4d8fa6734543 +#: a5c6d212286548409d8d177836acd58c msgid "Tag" msgstr "标记" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 4be6ac56807c49c99451dce36ec355c5 b5cca0e4b9554c7c9ce4c10cc70fc18e -#: bc1ec7053f434212a8b9a0c6ba8d0097 c1b52d4c995d47d7b47ef3178efdf2c6 +#: 04cdcbee69b74256be1690cdf739cec5 be3506a676d04eba990cbfbf3370dc19 +#: ee7826c18bd34a8787e3838c41c60d47 f98eeee8def14b1bbaba0b3bde753bc5 msgid "Meaning" msgstr "含义" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 3425961631d54288bcbc93fd323eaa57 +#: a25c7db99aea4bdf9919812130609e1e msgid "**Runtime**" msgstr "**运行时**" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 2dd7ab14b7c544248e92b50dacceee7c +#: 2ce36bcd1c244ce580ee0b2956a7ea8c msgid "" "`ros2 param set` is picked up **without** reloading. These controllers " "have no generic `add_on_set_parameters_callback` for the documented keys." @@ -278,12 +278,12 @@ msgstr "" "`run` 时重读。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 2b848438901e4be1ab54a8ff83da2d39 +#: ea57fb3fb86f46bbbdb5a6a2de6aacdd msgid "**Startup only**" msgstr "**仅启动**" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 05573cfc89bc4838a7c58eb9de7a86b1 +#: 8667095dd5ad4ee9ad1a0803031f7769 msgid "" "Loaded in `on_init` / construction / first waist-planner create / " "hardware plugin `on_init`. Change the YAML or xacro and reload or " @@ -293,29 +293,29 @@ msgstr "" "后需要重新加载或重启。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 4a6a03fb61184e91aec419ab848dd9f0 +#: a7290d3a050f455dba81a590d1809cc2 msgid "**Unverified**" msgstr "**未核实**" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 2a171e9c1eff4a7a99065694713cacc3 +#: 4b73fce0c73741118809cef99b969630 msgid "" "Declared, but there is no callback or clear re-read path. The READMEs in " "#120 mark **none** of the previously documented keys this way." msgstr "已声明,但没有回调也没有清晰的重读路径。#120 的 README **没有**把此前已文档化的键标成这一类。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:45 -#: f4df2ce0cb164745865e7a6468fc324d +#: b2b4ab37688e444bad7b89663c25ed4c msgid "These Runtime paths are **not** instant callbacks." msgstr "这些**运行时**路径**不是**即时回调。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:48 -#: 6fb6768b7a054b03b9f2accb5fa4f160 +#: 1892691527d5493fbeae984d00e7ad5f msgid "Framework-common parameters" msgstr "框架共性参数" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:50 -#: 813ecddeb6bc46d0a1727b6f043a17d1 +#: 3ad310c8678a4d68a1e5482331110c9a msgid "" "**Basic Joint Controller** and **OCS2 Arm Controller** both use the same " "ros2_control `ControllerInterface` / `controller_manager` keys. They are " @@ -326,7 +326,7 @@ msgstr "" "`ControllerInterface` / `controller_manager` 键。此处**只列一次**。各控制器表只保留包专有键。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:52 -#: 8461b2291ee24eaeae6db3ab17cdd8e3 +#: 0caf8343828546f2854e21e00bdf2671 #, python-brace-format msgid "" "**Adaptive Gripper Controller** does **not** use `joints`: it declares " @@ -337,58 +337,58 @@ msgstr "" "`{joint}/position`。`arms_target_manager` 是命令节点,不是 `ControllerInterface`。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 0bf593cfb5454126832dc792c2271f3a 49e752b3f8f2434f9e1e56367c87403c -#: 806594df7d634b80939967c70357d3dc +#: 783688e95712442f950a7a72cebc739b 94d9a6c28f10472ea13000f0b334e314 +#: a8daf97fd295467ea16df6597a1879d2 msgid "Parameter" msgstr "参数" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: a9d7622ebe5348d4acb44c9c14a4e3f8 +#: ebae4adce362427ebaae9c851972b795 msgid "Typical type / default" msgstr "常见类型 / 默认值" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 0deba3077c17400ab56cc36337e074b0 +#: c999be50229743a0b552c5f4c9a14f1e msgid "`joints`" msgstr "`joints`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 2f353a3106344d9b8ef3bcfc9d07d3f9 +#: 613e59581cc342f4bd23c1ac3b0d6b88 msgid "string[]" msgstr "string[]" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 2c1a70e5c4b64d3a9119e655ffa1aba3 +#: 0e16920a502d4231a87448ea4588fd0b msgid "Joint names for command/state interfaces. **Startup only**." msgstr "命令/状态接口的关节名" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 633cfefbea85450685fa2ece5b2842c7 +#: f32a6f69f0964be98cded565a95163e6 msgid "`update_rate`" msgstr "`update_rate`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 85f96a3dbd3b4616bfda2f76c24d313b +#: f32b5bf99ae54716bf22370c7aeed10f msgid "int (Basic Joint README example `1000`; CR5 YAML `100`)" msgstr "int(Basic Joint README 示例 `1000`;CR5 YAML `100`)" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: a2e751e55dd646078c2b115ccab3cece +#: 327f1d43ab2249b58a117b9d2a32a0c1 msgid "Hz; often the `controller_manager` value. **Startup only**." msgstr "Hz;常取 `controller_manager` 的值" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 5a6e7fd0e6254ea1ac01c36f1a6990a0 +#: 73334447d7e64a19bf99ff7aa89dfee3 msgid "`command_interfaces`" msgstr "`command_interfaces`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 2d0806e4d08c421f84eaf79e37eead44 +#: ff8e12f7502747c589e064ccf06bf317 msgid "string[] / `[\"position\"]`" msgstr "string[] / `[\"position\"]`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: bd035eee2e9149cabf255cd3814c13b5 +#: 7a6940e6146646558df5e5f860cf5887 msgid "" "Command interface names. **Startup only**. OCS2 Arm also uses the set to " "detect position vs force/MIX — [ros2_control " @@ -398,47 +398,47 @@ msgstr "" "ros2_control](../../3-concepts/1-ros2_control_here.md)。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 41cc72fe8a1e4475b2865398d3dad0fe +#: bbb6a4db0fc943f1966116eb279a0ec0 msgid "`state_interfaces`" msgstr "`state_interfaces`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 0b5a0eab365b4c18861c76e8d582fd45 +#: 4aacaeb828184333a1d86f87bbae4845 msgid "string[] / `[\"position\", \"velocity\"]`" msgstr "string[] / `[\"position\", \"velocity\"]`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: a9b6bdf410cb4ee084e656d233597e59 +#: bd301adf0481401d9e3617b8a59a9e58 msgid "State interface names. **Startup only**." msgstr "状态接口名" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: f306310c9f70406a83b7a3b34b94d099 +#: 63732db5b5a646959e1cdc4a7c8f436f msgid "`command_prefix`" msgstr "`command_prefix`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 6192b6a6b3da4b8995d25de1a092e40f +#: 8830c884a30a442bba6c6e4ac1445bdb msgid "string / empty" msgstr "string / 空" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 3ded4fc9f9a94da0bbd04d9b5f1efb07 +#: 76f231d95cf04bb19a258d95e287b407 msgid "Optional prefix on command interface names. **Startup only**." msgstr "命令接口名的可选前缀" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:62 -#: b3b65000fee74d80af35d08cb3fa52c4 +#: e9527db31eb0495d8b47235e4c0456e4 msgid "Unload and reload the controller to change these." msgstr "修改这些键需要卸载并重新加载控制器。" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:64 -#: 29e162817c4e4526a62146531c38d181 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:65 +#: b0f1bf4240054ef598e8e75fd5e151fb msgid "Shared mechanisms" msgstr "共用机制" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:66 -#: f776efb105f6443f9ed6ba660f5d70ad +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:67 +#: 7935ac7e9cb94119b68d22bfe9fbd832 msgid "" "One place for behavior that several controllers share in " "`libraries/arms_controller_common/`. MoveJ YAML keys are on the [Basic " @@ -455,8 +455,19 @@ msgstr "" "`4` 构造 `StateMoveJ`(有 `lina_planning` 时还有 IK MoveL),但 README 不把 MoveJ " "当作一等模式。" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:68 -#: 50d016fd39ee4e078ebc4b9098ad01d4 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:69 +#: bd6b5efe8ca44660904f5a65f48ca402 +msgid "" +"Shared FSM names on the reference page (Home, Hold, and which section " +"holds the MoveJ table): [Shared FSM " +"parameters](../../4-reference/controllers/8-ros2_parameters.md#shared-" +"fsm-parameters)." +msgstr "" +"参考页上的共用 FSM 参数名(Home、Hold,以及 MoveJ 表在哪一节):[共用 FSM " +"参数](../../4-reference/controllers/8-ros2_parameters.md#shared-fsm-parameters)。" + +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:71 +#: 69c8eedf2ab140fe9b96fe065ce2acfc msgid "" "运控 layering (controller vs hardware interface, 分体 vs 全身) stays on the " "existing pages — [Terminology](../../3-concepts/8-terminology.md), " @@ -470,28 +481,28 @@ msgstr "" "ros2_control](../../3-concepts/1-ros2_control_here.md)、[分体控制 vs " "全身控制](../../3-concepts/7-split_vs_wbc.md)、[驱动层](../../4-reference/hardware/0-index.md)。内部飞书运控架构图只是白板,此处不重绘。" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:70 -#: 92aa506fc53146108096a8966b68c341 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:73 +#: 972556e3324d41fabc938548d027d8b9 msgid "`/fsm_command` value `3`" msgstr "`/fsm_command` 取值 `3`" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:72 -#: 4a86c8777a2e4ebaaca415ed2d17bfbd +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:75 +#: 9218ac161c854efb82ae7ea44319613c msgid "`/fsm_command` is `std_msgs/Int32`. Canonical MOVEJ is **`4`**." msgstr "`/fsm_command` 是 `std_msgs/Int32`。规范 MOVEJ 为 **`4`**。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 4fc28411cc3a4634b62a0bf4dbfb687f +#: 7cabc848e6cc4a8dbedeae4e273731c5 msgid "Who is running" msgstr "当前运行的是" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 5227d4b6476d4438bd5905b3bea568b2 +#: b6a3e1bd013c4d1c92c872893acf55db msgid "Meaning of `3`" msgstr "`3` 的含义" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 13b4aa0e592941ed88e8dc07e5d68c31 +#: acd829a5c3584c0d9e2c5b46b3e75b7d msgid "" "Mixed OCS2 / WBC stack (分体: **OCS2 Arm Controller** + body/head **Basic " "Joint**; 全身: **OCS2 WBC Controller**)" @@ -500,24 +511,24 @@ msgstr "" "Joint**;全身:**OCS2 WBC Controller**)" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: bd06097d1d7e4b80b9918b5241cdcc6c +#: 05be371f07734ea496956227bab6e3f4 msgid "" "**OCS2** on the arm / WBC node. Body/head **Basic Joint** instances still" " treat `3` as MOVEJ." msgstr "机械臂 / WBC 节点上表示 **OCS2**。身体/头部的 **Basic Joint** 实例仍把 `3` 当作 MOVEJ。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 1d65298511ff480190cfebd63d21d2bc +#: 817254ed19f64761825d2cb075fd9405 msgid "Standalone **Basic Joint Controller** (package demo, no OCS2 node)" msgstr "独立运行的 **Basic Joint Controller**(包内 demo,无 OCS2 节点)" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: c893a36d234e4bcb9a0cbb38c2781da4 +#: 1a4698124b9348518e7d314dcab29204 msgid "**Legacy MOVEJ alias** (package README). Prefer `4`." msgstr "**遗留 MOVEJ 别名**(包 README)。请优先用 `4`。" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:79 -#: 981f9b23d01b436b8d74821d943ef9f7 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:82 +#: b076cbdf17374eadbebd1bc9025dbe0b msgid "" "Do not send `3` expecting MOVEJ on the arm / WBC controller. Full integer" " table: [FSM and Topics](../../3-concepts/4-fsm_and_topics.md)." @@ -525,13 +536,13 @@ msgstr "" "向机械臂 / WBC 控制器发送 `3` 时表示 OCS2,不会进入 MOVEJ。完整整数表:[FSM " "与话题](../../3-concepts/4-fsm_and_topics.md)。" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:82 -#: 80105724649c45149d7f4b2c8103fa2e +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:85 +#: 3f6380f21d2242b0bae039acc727e405 msgid "Home (`StateHome`)" msgstr "Home(`StateHome`)" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:84 -#: 41134bfb5b694679bca7a413fe6b07c2 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:87 +#: 07b2b8cfd14d4e20ae62df6d8cba8550 msgid "" "Both **Basic Joint Controller** and **OCS2 Arm Controller** use " "`arms_controller_common::StateHome`. Names, defaults, and **When** tags: " @@ -544,54 +555,54 @@ msgstr "" "sim/arms_ros2_control/blob/e1b7a147effca2f29f7cced0b2942837b096c1ff/libraries/arms_controller_common/README.md)。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 2a24ef25049241d5be7939009707b158 ce4c518ec613408d8119129afcfd7a8a +#: 80f6e3c9b2144d79925e0109c6d28795 dc9bbd2c0cc840e19460f81225de4b49 msgid "Default" msgstr "默认值" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: b2e6508041df43bb8fb3210a4f22eb03 +#: e2049c69982e4736bbda055c495ff669 msgid "`home_1` … `home_10`" msgstr "`home_1` … `home_10`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 1da57e975a1d4d40aa1111dbbcbd6735 +#: a35d82f6beba4d52b42c6978c59e41ad msgid "from YAML (`home_1` required)" msgstr "由 YAML 提供(必须有 `home_1`)" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 39a409fa3dc44479ba39b1ac95257479 +#: c1e35190437a4d9da16319cff8455372 msgid "Preset configurations. **Startup only** (`StateHome::init`; not re-read)." msgstr "预设构型。**仅启动**(`StateHome::init`;之后不再重读)。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 5ab432e19ccb4cf7aa410dc101ff0181 +#: 8ace85635e274edfb9e1c54155e16a1c msgid "`home_duration`" msgstr "`home_duration`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 21cb056352c848b98ce749513912ab89 f3afde2d68fb4c6e814e51af519e1c49 +#: 176a97b1895c4f87997af6822ef4b294 47ab255b29384d83b395cb22eb925ac1 msgid "`3.0`" msgstr "`3.0`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: f34e43610bd3479597277a831b0f3737 +#: 98e73fda10b14689a00695f7cfdb68b0 msgid "" "Interpolation duration (s). **Runtime** (next HOME enter or config " "switch)." msgstr "插值时长(秒)。**运行时**(下次进入 HOME 或切换构型)。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 400e9ee49b8f4b899b85b57d49675691 +#: 2acb497f15b64af79493c4e18bbf478b msgid "`home_interpolation_type`" msgstr "`home_interpolation_type`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: cadc1fe962a6482f94b1ad44d1a5e62c +#: 98eebc3f40ab4f6f95281f815b34752e msgid "`\"linear\"` (`auto_declare` and Basic Joint README YAML)" msgstr "`\"linear\"`(`auto_declare` 与 Basic Joint README YAML)" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: ca975a48d81f4c14a303912ee467af42 +#: 7036307ed6aa4c0382072218656da2e8 msgid "" "`\"tanh\"` | `\"linear\"` | `\"doubles\"` | `\"none\"` (Home has no " "`\"servo\"`). **Runtime**." @@ -600,61 +611,61 @@ msgstr "" "`\"servo\"`)" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: f60cd0240f214ca0b034bbe297580166 +#: 82ef086813ff499ca12561a661555a7e msgid "`home_tanh_scale`" msgstr "`home_tanh_scale`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: fdaff4c1809f457abce1de220a5c0040 +#: 1996a9de34564a31b1e9ba9727251673 msgid "tanh scale. **Runtime**." msgstr "tanh 尺度" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 2c71e4305cc04ae6a4f178e21092eac8 +#: 397b383be9864b5da10ed36c4444a8ae msgid "`home_max_velocity` / `home_max_acceleration` / `home_max_jerk`" msgstr "`home_max_velocity` / `home_max_acceleration` / `home_max_jerk`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 3d11aee266244db592722b65827aa9e8 +#: 991b71c445314f28963ac44b5ae63cbc msgid "`2.0` / `4.0` / `20.0`" msgstr "`2.0` / `4.0` / `20.0`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: c3fe23fa2b014325ba7b19fad8bea748 +#: 4c9e4071a0b44b7cbd0344460edd9a80 msgid "" "Limits. **Runtime**. In the common README; Basic Joint §3 YAML example " "omits them." msgstr "限幅。**运行时**。写在共性 README;Basic Joint §3 YAML 示例未列出。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 1bd2acc861d84e72966df1911c6d01ab +#: b1ddf0d4ab1d4033bcd6d42238c30e27 msgid "`switch_command_base`" msgstr "`switch_command_base`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: ca2dd3a9787940a4ad1e4ddbb5c2628f +#: 8ce888021c6c4da89418cc8e56d072be msgid "`100`" msgstr "`100`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 55a80ad240ca499a8f20819c865e2f9a +#: abf44bf5ac0a4da181425f9b50c0740a msgid "HOME config switching. **Startup only** (constructor)." msgstr "HOME 构型切换。**仅启动**(构造时)。" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:95 -#: 5f7b990cbb7546799ee2cc22e3bb2fc0 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:98 +#: 33a39a47ab3d4aec8b0e0c026b4c1204 msgid "" "OCS2 Arm extra slots `home_pos` / `rest_pos` stay on that controller’s " "table." msgstr "OCS2 Arm 额外槽位 `home_pos` / `rest_pos` 写在该控制器自己的表里。" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:98 -#: eaf296edb2c0454b9e41c6a744dd9ffe +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:101 +#: d6ca7444567748d7aa2a027f63c427a5 msgid "Hold (`StateHold`)" msgstr "Hold(`StateHold`)" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:100 -#: 77a09cdba2a841a5bcad602f24d7e372 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:103 +#: 565ce99f729741e0970af665c5f363af msgid "" "**Basic Joint Controller** and **OCS2 Arm Controller** both " "`auto_declare` these keys (default `0.1`) and use " @@ -669,58 +680,57 @@ msgstr "" "这些键(默认 `0.1`),并使用 `arms_controller_common::StateHold`。行为见 [`9a1da3ba` 上的 " "`StateHold.cpp`](https://github.com/fiveages-" "sim/arms_ros2_control/blob/9a1da3ba3747b3042866422c2269c1d49bb02f48/libraries/arms_controller_common/src/FSM/StateHold.cpp)。它们是**运行时**:`StateHold::updateParam()`" -" 在进入 HOLD 以及每个 HOLD `run` 时调用 `get_parameter`。MIX 下 HOLD 阻抗" -"(`default_gains`)仍写在 OCS2 Arm 自己的表里。" +" 在进入 HOLD 以及每个 HOLD `run` 时调用 `get_parameter`。MIX 下 HOLD " +"阻抗(`default_gains`)仍写在 OCS2 Arm 自己的表里。" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:102 -#: bf87e95d6179412ba55291731799356f +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:105 +#: 5dba26f63e124cd98c7d458c93cbff4f msgid "" "On enter, hold targets start as last-sent joint commands. Diff is the " "absolute joint-position error (rad)." msgstr "进入时,保持目标取自上次下发的关节命令。差值是关节位置绝对误差(弧度)。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 0fecf7ca50b447268623700af1acef3c +#: caee7b7ba9974cd594d809bdaebaa2b8 msgid "`hold_first_check_position_threshold`" msgstr "`hold_first_check_position_threshold`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: ced99f9a7efe42db94f39f949182c646 f1b3aa730a3e434bb9bba4b8adfb0edf +#: 4b6a2e5b738b44d988f66973cbeffa9f 5e9e8927075f449ba4fccfbe5ab8d089 msgid "double / `0.1`" msgstr "double / `0.1`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 8a7522e137094cf8a94fd95cfd8629e6 +#: f3a088cf11e44297ae4706709ec521a3 msgid "" "First HOLD check after enter (measured vs hold targets). If any joint " "exceeds this, retarget hold to current measured positions to avoid a " "startup jump, then mark the first check passed. `≤ 0` skips the first " "check. **Runtime**." msgstr "" -"进入 HOLD 后的首次检查(实测位置相对保持目标)。任一关节超过此阈值时,把保持目标改成当前实测位置以避免启动跳变,并标记首次检查已通过。" -"`≤ 0` 跳过首次检查。**运行时**。" +"进入 HOLD 后的首次检查(实测位置相对保持目标)。任一关节超过此阈值时,把保持目标改成当前实测位置以避免启动跳变,并标记首次检查已通过。`≤ " +"0` 跳过首次检查。**运行时**。" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: f8cc1e39d00d4b039671a10041d8f0f4 +#: d6bc1a02382d4729b291ecec36efc75f msgid "`hold_position_threshold`" msgstr "`hold_position_threshold`" #: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:26 -#: 9359651286144fbba68e8ff4a56735fe +#: a73ea877a4bb4f34a2b4feaa1c691756 msgid "" "After the first check has passed, if measured vs hold target exceeds " "this, retarget hold to current measured positions. `≤ 0` disables " "automatic adjustment. **Runtime**." -msgstr "" -"首次检查通过后,若实测位置相对保持目标超过此阈值,把保持目标改成当前实测位置。`≤ 0` 关闭自动调整。**运行时**。" +msgstr "首次检查通过后,若实测位置相对保持目标超过此阈值,把保持目标改成当前实测位置。`≤ 0` 关闭自动调整。**运行时**。" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:109 -#: 902b7d009fa94b529677a56c387a45b9 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:112 +#: 3bdbaf3e663e4ff4b059cd301c86cd01 msgid "Related" msgstr "相关" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:111 -#: ab9067ef5afe4aa3bed30310f0073141 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:114 +#: 4a4822fd291445ba9d646ac59802e9cb msgid "" "[Controller ROS 2 " "parameters](../../4-reference/controllers/8-ros2_parameters.md)" @@ -728,30 +738,30 @@ msgstr "" "[Controller ROS 2 " "parameters](../../4-reference/controllers/8-ros2_parameters.md)" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:112 -#: ca81f95a81d54f33b675353d87b665d3 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:115 +#: 45515da4b20d497ab7b038e8cbd1c5bd msgid "" "[Hardware Interfaces](../../4-reference/hardware/0-index.md) — per-driver" " `` tables" msgstr "[驱动层](../../4-reference/hardware/0-index.md) — 各驱动页 `` 表" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:113 -#: 9ae692aa77904e2bb9118ad36512dd04 +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:116 +#: 8d1a870145e6487dbe9c9fd67554bc2b msgid "[Use Basic Joint Controller](11-basic_joint.md)" msgstr "[使用 Basic Joint Controller](11-basic_joint.md)" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:114 -#: b0fbc2f89b1343d0a003aa21d81a490e +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:117 +#: ca00c034f5c643bdad44860df6968caf msgid "[ros2_control in This Stack](../../3-concepts/1-ros2_control_here.md)" msgstr "[本栈中的 ros2_control](../../3-concepts/1-ros2_control_here.md)" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:115 -#: 167c4d4e8ff74ecba294f73bafa6163c +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:118 +#: 4e92bf1d991a4ab7967f0e0a5ada9ab2 msgid "[FSM and Topics](../../3-concepts/4-fsm_and_topics.md)" msgstr "[FSM 与话题](../../3-concepts/4-fsm_and_topics.md)" -#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:116 -#: b6966affc8ec41668983bf25128cfa5b +#: ../../source/2-how_to/4-controllers/12-ros2_parameters.md:119 +#: 21889fe615bb44a292aaf26321b65988 msgid "" "[robot_common_launch](../../4-reference/descriptions/2-common.md) — YAML " "merge order" diff --git a/locale/zh_CN/LC_MESSAGES/4-reference/controllers/8-ros2_parameters.po b/locale/zh_CN/LC_MESSAGES/4-reference/controllers/8-ros2_parameters.po index bd21bd9..0e77699 100644 --- a/locale/zh_CN/LC_MESSAGES/4-reference/controllers/8-ros2_parameters.po +++ b/locale/zh_CN/LC_MESSAGES/4-reference/controllers/8-ros2_parameters.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: FiveAges Sim \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-31 08:49+0000\n" +"POT-Creation-Date: 2026-10-31 11:16+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: zh_CN\n" @@ -20,12 +20,12 @@ msgstr "" "Generated-By: Babel 2.18.0\n" #: ../../source/4-reference/controllers/8-ros2_parameters.md:1 -#: 1ab996a1b890418ba353df7c0b24db70 +#: 8b137a4116d94060aa93415617fc58ed msgid "Controller ROS 2 parameters" msgstr "控制器 ROS 2 参数" #: ../../source/4-reference/controllers/8-ros2_parameters.md:3 -#: 611804e0996247418611567021c13bf0 +#: 2552d5b7cf7043bd81ff46b5b1907f27 msgid "" "ROS 2 parameters for public controllers in " "[arms_ros2_control](https://github.com/fiveages-sim/arms_ros2_control). " @@ -46,12 +46,12 @@ msgstr "" "整数见各控制器页面(此处不重复)。" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: d3217bb237244201959bb8ce2d72dbe6 +#: 5a532501864f404fa4e24fe48433ce33 msgid "Source of truth" msgstr "权威来源" #: ../../source/4-reference/controllers/8-ros2_parameters.md:8 -#: 3b0d28142a4e43959fc0229b14b714a7 +#: c9f7bfb671b54feb8874a021b5ed1553 msgid "" "Names, types, and defaults come from the linked README (or `auto_declare`" " / `declare_parameter` at the code pin when the README says so). **When**" @@ -69,34 +69,34 @@ msgstr "" "#framework-common-parameters)。" #: ../../source/4-reference/controllers/8-ros2_parameters.md:11 -#: 8eded84cc8b74cbf817ddf50072c1d67 +#: 16a14482fc88423e942611a2975e5737 msgid "How to read the tables" msgstr "如何读这些表" #: ../../source/4-reference/controllers/8-ros2_parameters.md:13 -#: f2b31bc7dfcf41cc8b4d460fae1a48e9 +#: b0b4cfa634424a079b2a96450e14f013 msgid "" "Three columns: **Parameter**, **Type / default**, **Meaning** (the " "**When** tag is the last sentence of Meaning)." msgstr "三列:**参数**、**类型 / 默认值**、**含义**(**何时生效**写在含义的最后一句)。" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c2ff3db9391e4f5c80fedff510e049d5 +#: ccc9728f5d0d44699b2a901c38cbe578 msgid "Tag" msgstr "标记" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: dbc3248f6fb643fea0995b6fc6502741 +#: d9c54a3329024726b4043cde0e4cf1c6 msgid "Evidence (#120)" msgstr "依据(#120)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2511237ccd1344ceaf832aecbe958d4a +#: 8b7c124b63ef40cdbc30e4a336b2fc7d msgid "**Runtime**" msgstr "**运行时**" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e58c5143d77f4a869cd973fbfeab35d7 +#: 6652917481114e7595dc1b8e659904a3 msgid "" "`get_parameter` on the next HOME enter, MOVEJ enter / joint command, " "waist position plan, interpolating MoveL, MOVEJ `cartesian_defaults`, or " @@ -106,29 +106,29 @@ msgstr "" "HOLD / 每个 HOLD `run`(`StateHold::updateParam`)时 `get_parameter`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 1886aeddf6984b3db0dedaeff8292b65 +#: 8cb60fb36be24e6eabd451d346def8cf msgid "**Startup only**" msgstr "**仅启动**" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: d79607d68ed74e29b0e542307b10c0f2 +#: 4b57a37b8a8a4f7589420ec7a1713232 msgid "" "Member set in `on_init` / constructor / first waist-planner create; or " "README “reload / restart”" msgstr "在 `on_init` / 构造函数 / 首次创建腰部规划器时写入成员;或 README 所说的「重新加载 / 重启」" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: b7002806e2f54a5f86fb3cd98a5d9718 +#: ebfe2055fda04e7bb7b047c8d12f8be9 msgid "**Unverified**" msgstr "**未核实**" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 84eccd5477e24437b7efe1c9bc86b760 +#: b7d03b6044ce45d8893f2f196a339d50 msgid "No documented key in these tables is Unverified in #120" msgstr "#120 中这些表里已文档化的键都不是未核实" #: ../../source/4-reference/controllers/8-ros2_parameters.md:21 -#: 9ce2c00284944226a6924310b5c847ef +#: 1c7eebf9c1fa4d5b97643f6572dc09ec #, python-brace-format msgid "" "`config/ocs2/*.info` is **not** the ROS 2 parameter server. `robot_name` " @@ -140,12 +140,325 @@ msgstr "" "YAML 设置了 `info_file_name`。" #: ../../source/4-reference/controllers/8-ros2_parameters.md:24 -#: 7f2b1529fe2d4081b22ef406ce5f9459 +#: ef42c3a023364514bb8fb02f2b01fb6f +msgid "Shared FSM parameters" +msgstr "共用 FSM 参数" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:26 +#: d7b7c857d88f41469682e68b6f8bacc9 +msgid "" +"**Basic Joint Controller** and **OCS2 Arm Controller** both use " +"`libraries/arms_controller_common/` (`StateHome`, `StateHold`, " +"`StateMoveJ`). This section indexes those shared ROS 2 names. Package-" +"specific keys, and a second copy of the Hold rows, stay in the controller" +" sections below. Fuller prose: [Shared " +"mechanisms](../../2-how_to/4-controllers/12-ros2_parameters.md#shared-" +"mechanisms)." +msgstr "" +"**Basic Joint Controller** 与 **OCS2 Arm Controller** 都使用 " +"`libraries/arms_controller_common/`(`StateHome`、`StateHold`、`StateMoveJ`)。本节是这些共用 " +"ROS 2 参数名的索引。包专有键仍写在下面各控制器小节,Hold 行也会在那里再列一份。更完整的说明:[共用机制](../../2-" +"how_to/4-controllers/12-ros2_parameters.md#shared-mechanisms)。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:28 +#: 46bf4c73ec43465184559c464c99cf40 +msgid "" +"Separate lists on this page: [framework-common " +"parameters](../../2-how_to/4-controllers/12-ros2_parameters.md#framework-" +"common-parameters) (`joints`, `update_rate`, `command_interfaces`, " +"`state_interfaces`, optional `command_prefix`); [Adaptive Gripper " +"Controller](#adaptive-gripper-controller) (`joint` and the force keys); " +"[arms_target_manager](#arms-target-manager) (command node). [OCS2 WBC " +"Controller](#ocs2-wbc-controller) names are the private `ocs2-wbc-" +"controller` README after access. At pin [`9a1da3ba`](https://github.com" +"/fiveages-" +"sim/arms_ros2_control/tree/9a1da3ba3747b3042866422c2269c1d49bb02f48) the " +"public tree’s Home / Hold `auto_declare` calls are in Basic Joint and " +"OCS2 Arm, so this index stops at those two controllers. Waist keys stay " +"in each controller section (only `waist_lifting_duration` is " +"**Runtime**)." +msgstr "" +"本页上的其他清单:[框架共性参数](../../2-how_to/4-controllers/12-ros2_parameters.md" +"#framework-common-parameters)(`joints`、`update_rate`、`command_interfaces`、" +"`state_interfaces`,以及可选的 `command_prefix`);[Adaptive Gripper " +"Controller](#adaptive-gripper-controller)(`joint` 与力相关键);" +"[arms_target_manager](#arms-target-manager)(命令节点)。[OCS2 WBC " +"Controller](#ocs2-wbc-controller) 的参数名在开通后见私有 `ocs2-wbc-controller` README。" +"在代码钉 [`9a1da3ba`](https://github.com/fiveages-" +"sim/arms_ros2_control/tree/9a1da3ba3747b3042866422c2269c1d49bb02f48) 上,公开仓库里 " +"Home / Hold 的 `auto_declare` 调用位于 Basic Joint 与 OCS2 Arm,因此本索引只收录这两个控制器。腰部键仍写在各控制器小节(只有 " +"`waist_lifting_duration` 是**运行时**)。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:30 +#: cc260c92b566486ba49dcf0c034eab5c +msgid "Home (`StateHome`)" +msgstr "Home(`StateHome`)" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:32 +#: a40b2e45148048d7b04857e1630a25c3 +msgid "" +"Both controllers pass `auto_declare` into `StateHome::init`, which reads " +"`home_1` … `home_10` from YAML overrides and stops at the first missing " +"name. They also `auto_declare` `home_duration`, `home_interpolation_type`" +" (`\"linear\"`), `home_tanh_scale`, and `switch_command_base`. The " +"`StateHome` constructor calls `declare_parameter` for " +"`home_max_velocity`, `home_max_acceleration`, and `home_max_jerk` when " +"those names are absent (defaults `2.0` / `4.0` / `20.0`). The common " +"README lists those limits; the Basic Joint §3 YAML example omits them. " +"Same defaults and **When** tags: [shared " +"Home](../../2-how_to/4-controllers/12-ros2_parameters.md#home-statehome)." +" OCS2-only `home_pos` / `rest_pos` are rows on the [OCS2 Arm " +"Controller](#ocs2-arm-controller) table." +msgstr "" +"两个控制器都把 `auto_declare` 传给 `StateHome::init`,由它从 YAML 覆盖项读取 `home_1` … " +"`home_10`,遇到第一个缺失的名字即停止。它们还 `auto_declare` 了 `home_duration`、" +"`home_interpolation_type`(`\"linear\"`)、`home_tanh_scale` 和 " +"`switch_command_base`。节点上还没有这些名字时,`StateHome` 构造函数会为 " +"`home_max_velocity`、`home_max_acceleration`、`home_max_jerk` 调用 " +"`declare_parameter`(默认 `2.0` / `4.0` / `20.0`)。共性 README 列出了这些限幅;Basic Joint " +"§3 的 YAML 示例未列出。相同的默认值与**何时生效**:[共用 " +"Home](../../2-how_to/4-controllers/12-ros2_parameters.md#home-statehome)。仅 " +"OCS2 的 `home_pos` / `rest_pos` 写在 [OCS2 Arm Controller](#ocs2-arm-controller) 表中。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 248c5a3e7310481aabab8f94e5aa3777 25584e4032d141d79407189a35d7d5ec +#: 4fa1716393d04c20b3cf851b7756a42d 5855aeb6b1484db2a13c765d48ae68e6 +#: 6f436774ef7d4f7fa755e22f09fd4e73 a256d994719c4693837aa4734ca64433 +#: a6c7f50453b649f7887da36799a3d034 b3e4201463ad408e915995878669d192 +#: fa188efb62594d38a258e8cb60d1a69d fc6807c420634a4b9841707e7dedfe40 +msgid "Parameter" +msgstr "参数" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 40bf0ffcc3e543a8aae2d7c3d01d20e1 4d631408e4d044bbbde065cfeedc2078 +#: 5c807df76bc44a64819fedba05fa6f4d 9665252c70274de8a0038e9d346cf2d1 +#: 9c7d28c25c9e46c183e49275c34a8323 bf576111efb64030b3a94c1ea2afb006 +#: c9f06caf312f40b49f4d9f2223b157af df852154ad5849f09a57343e86d9fb08 +#: e38bd1f803334a0194574897f6084e5c +msgid "Type / default" +msgstr "类型 / 默认值" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 0bd9accffed046a5997c26f67b5950fd 200a25556f77438bb9ad2243f36a4426 +#: 2ab1ad09440b4b998f73c056c2913253 3685d090f2f644ad9258290ec2a6d8d6 +#: 3782659df87a4fd1808fdd3f42771ca9 62548d577543407599deac961cebd35d +#: aba35e91c9014369a574bec6013e7319 ac91341b68a74e0b9ab36fad15685699 +#: b303fdfa1f3640fe9eac361dca6c8909 fc6a4b5f3089429183c38bf0955af4fe +msgid "Meaning" +msgstr "含义" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: ad6f9ff25e6b4902afc3998e8e590fae +msgid "`home_1` … `home_10`" +msgstr "`home_1` … `home_10`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 40b802d1baf24b2aad8c6194b7122604 +msgid "double[] / from YAML (`home_1` required)" +msgstr "double[] / 由 YAML 提供(必须有 `home_1`)" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 35f88649ee434a82a7c0341aa1203236 +msgid "Preset configurations. **Startup only** (`StateHome::init`; not re-read)." +msgstr "预设构型。**仅启动**(`StateHome::init`;之后不再重读)。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: b21aa4a289334b26a266961c0ba6828f +msgid "`home_duration`" +msgstr "`home_duration`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 0c6e64ff2e574a3b98774db4c8d46165 3220085bec984088963fccbfedc68f6a +#: 93e851d6ec4f4935ae032229cfacb698 a03cfb6f10bd4458b43c9ae8d0366735 +#: acd28bd56492467690c2419a484f41c8 bf0aa34aef1f49d29fe6f2559a0026fc +msgid "double / `3.0`" +msgstr "double / `3.0`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 34aab388768247bc98afdcb87da15fc8 +msgid "" +"Interpolation duration (s). **Runtime** (next HOME enter or config " +"switch)." +msgstr "插值时长(秒)。**运行时**(下次进入 HOME 或切换构型)。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 9d1172939d9c457fa53f0c18cec84a71 +msgid "`home_interpolation_type`" +msgstr "`home_interpolation_type`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: e60f5e0e2f544e49a9b5146bead34bef +msgid "string / `\"linear\"`" +msgstr "string / `\"linear\"`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: c2b853ab37814930964cba0cd9282cde +msgid "" +"`\"tanh\"` | `\"linear\"` | `\"doubles\"` | `\"none\"` (Home has no " +"`\"servo\"`). **Runtime**." +msgstr "" +"`\"tanh\"` | `\"linear\"` | `\"doubles\"` | `\"none\"`(Home 没有 " +"`\"servo\"`)。**运行时**。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 0b8e48cfdb394481afbb1d6cc2b6264d +msgid "`home_tanh_scale`" +msgstr "`home_tanh_scale`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 6e264de2284f440b9fcbd83eccd4bb66 fb0cabdbfc76447e90beb0cd594fd45f +msgid "tanh scale. **Runtime**." +msgstr "tanh 尺度。**运行时**。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 83c5e1d6eaee4687a3093583701ee168 +msgid "`home_max_velocity`" +msgstr "`home_max_velocity`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 34ad701f714741eeaf40fc337f1c9837 59a8228629f14cb5b14bcab7b4f545ab +msgid "double / `2.0`" +msgstr "double / `2.0`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: eab69265ea82425590d41ee14f4a85fc +msgid "Speed limit. **Runtime**." +msgstr "速度上限。**运行时**。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 6db7831d50e54216a57a7dba6355220f +msgid "`home_max_acceleration`" +msgstr "`home_max_acceleration`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 12e07d0e53464ad1b0a1e1f44522b628 4ef21dc6634448c995e75612cba9455a +msgid "double / `4.0`" +msgstr "double / `4.0`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 01974bc1c8704e89a3c28889805b4dcc +msgid "Acceleration limit. **Runtime**." +msgstr "加速度上限。**运行时**。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 2e294e060c194142b450522bac579dc9 +msgid "`home_max_jerk`" +msgstr "`home_max_jerk`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 243a6a97568843f1b520ec4283c3b01c 987ed9e2161246c2b27800c47a323d29 +msgid "double / `20.0`" +msgstr "double / `20.0`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: f9bc4c20785f4211a71d27f25b0c3ff0 +msgid "Jerk limit. **Runtime**." +msgstr "jerk 上限。**运行时**。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 31f01d826959443fabfcb3c258611255 +msgid "`switch_command_base`" +msgstr "`switch_command_base`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 639d0527da2448fa9dca4ddb76817c85 +msgid "integer / `100`" +msgstr "integer / `100`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 40cb4f3a9f6c41f491aa96d0c6fb42d8 +msgid "HOME config switching. **Startup only** (constructor)." +msgstr "HOME 构型切换。**仅启动**(构造时)。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:45 +#: e99ff436945f4b96a4f841a8b5a06abb +msgid "Hold (`StateHold`)" +msgstr "Hold(`StateHold`)" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:47 +#: 1ebdb0ef039c484c8bfe1b96a685f01c +msgid "" +"Both controllers `auto_declare` these keys (default `0.1`) and use " +"`arms_controller_common::StateHold`. The same rows: [Basic Joint Hold" +"](#basic-joint-hold) and [OCS2 Arm Hold](#ocs2-arm-hold). Enter and each " +"HOLD `run`: [shared " +"Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-statehold)." +" MIX HOLD impedance (`default_gains`) stays on the OCS2 Arm table." +msgstr "" +"两个控制器都 `auto_declare` 这些键(默认 `0.1`),并使用 " +"`arms_controller_common::StateHold`。同一组行:[Basic Joint " +"Hold](#basic-joint-hold) 与 [OCS2 Arm Hold](#ocs2-arm-hold)。进入 HOLD 以及每个 " +"HOLD `run`:[共用 " +"Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-statehold)。MIX " +"下 HOLD 阻抗(`default_gains`)仍写在 OCS2 Arm 自己的表里。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 25d89b5d623141d9b69271d7250f66fd cbc7acd199164655b29d4295b09ab6a1 +#: e7e682dafd954fc3b54c4a8b4d4e2cfc +msgid "`hold_first_check_position_threshold`" +msgstr "`hold_first_check_position_threshold`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 1ac512672899458a8f60c14a54d22f87 1d1b1607d52941db98e4c78a33b9f0c2 +#: 4d0f98bb39cf4acfb555674026a62763 972d149f6d604234bfda4cbf8c13db88 +#: b72b19a37d244e63a4b58a869826e59c eccf8f131afc4d289b3d5d1012830241 +#: ed27c089d24b477d8fc2636e27b4d020 +msgid "double / `0.1`" +msgstr "double / `0.1`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 1dd418aff95c476b9f4069ce593e6b4c cf33d881a520496890b7e6e6f8a93eaa +#: ebe3e55b75bd4047b0da2c7a64cc0887 +msgid "" +"First HOLD check after enter (measured vs hold targets). If any joint " +"exceeds this, retarget hold to current measured positions to avoid a " +"startup jump, then mark the first check passed. `≤ 0` skips the first " +"check. **Runtime**." +msgstr "" +"进入 HOLD 后的首次检查(实测位置相对保持目标)。任一关节超过此阈值时,把保持目标改成当前实测位置以避免启动跳变,并标记首次检查已通过。`≤ " +"0` 跳过首次检查。**运行时**。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 1005573834a54d668f29dd2558862caf a928a41056a14c55accea5ddfbbe94d9 +#: b0225b14de514870a991bf079beef163 +msgid "`hold_position_threshold`" +msgstr "`hold_position_threshold`" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 +#: 2895b419630e4503a90ea0ba14180802 28a3c735b2e44e0dbbb5412dcdd108d9 +#: c598bc48e0b0466f8033c2103f8a9d3d +msgid "" +"After the first check has passed, if measured vs hold target exceeds " +"this, retarget hold to current measured positions. `≤ 0` disables " +"automatic adjustment. **Runtime**." +msgstr "首次检查通过后,若实测位置相对保持目标超过此阈值,把保持目标改成当前实测位置。`≤ 0` 关闭自动调整。**运行时**。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:54 +#: ca19c18a5102463692c6098be437c9dc +msgid "MoveJ (`StateMoveJ`)" +msgstr "MoveJ(`StateMoveJ`)" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:56 +#: 54486e0e56b44fac81e1fa1546fdc639 +msgid "" +"The primary MoveJ parameter table is [Basic Joint → MoveJ](#basic-joint-" +"movej). **OCS2 Arm Controller** declare-time deltas against that table " +"are `movej_interpolation_type` `\"linear\"` and " +"`movej_trajectory_blend_ratio` `0.2`, stated on the [OCS2 Arm " +"Controller](#ocs2-arm-controller) section." +msgstr "" +"MoveJ 参数主表是 [Basic Joint → MoveJ](#basic-joint-movej)。**OCS2 Arm " +"Controller** 相对该表、在声明时的差异是 `movej_interpolation_type` `\"linear\"` 与 " +"`movej_trajectory_blend_ratio` `0.2`,见 [OCS2 Arm " +"Controller](#ocs2-arm-controller) 一节。" + +#: ../../source/4-reference/controllers/8-ros2_parameters.md:59 +#: 4291975401ad4fad9e3265bab1893bbf msgid "Basic Joint Controller" msgstr "Basic Joint Controller" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:26 -#: df2f79e102814ec1a82b92fac5fca0a6 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:61 +#: ae7f0864ae2e4f43b4c27a55637bb1d2 msgid "" "Plugin `basic_joint_controller/BasicJointController`. Also declares the " "[framework-common " @@ -175,8 +488,8 @@ msgstr "" " Joint Controller](7-basic_joint_controller.md)。操作:[使用 Basic Joint " "Controller](../../2-how_to/4-controllers/11-basic_joint.md)。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:28 -#: d662e3e0c0db46ceac53e0aaa96633f9 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:63 +#: 9e13facd58f2471c9d557db661936fc5 msgid "" "This is the **primary MoveJ parameter table**. 灵巧手 uses " "`target_command_*` on this controller (not **Adaptive Gripper " @@ -185,13 +498,13 @@ msgstr "" "这是 **MoveJ 参数主表**。灵巧手的 `target_command_*` 也在本控制器上(不是 **Adaptive Gripper " "Controller**)。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:30 -#: 6e0676712cb84d5e909b219cf583d274 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:66 +#: a4ce36e0b31147bd98eddf07760b1b5f msgid "MoveJ" msgstr "MoveJ" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:32 -#: 8f8e241c9de848e4a4ebde47bbdbb053 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:68 +#: 9deee5f634ec41c9b90e8b05ec42722f msgid "" "README defaults below. Shared C++ `auto_declare` on **OCS2 Arm " "Controller** uses `movej_interpolation_type` `\"linear\"` and " @@ -203,59 +516,29 @@ msgstr "" "`0.2` — 见该页差值,不要再复制一张 MoveJ 表。" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2024bd2b692c44c79655900cb1001049 2dba643b5200479f8042e98c0de4e58f -#: 3ce2853ddb534cdb93c371a3b5944051 87a2595ad69e476bb7ce4a202052d20c -#: 9afa2d2492ef4986922dbd51b658ffdc bc75fe5031104033bb6c7ff4ed9fb8e9 -#: c2c195bb858240f3943e47e99e97b29f ce5c6650fe93440ba4dedac5fbded6c4 -msgid "Parameter" -msgstr "参数" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 0472c58a564d4cd4a8534532c1b25f51 3dc9eebb208d48c4bfbd45940c891828 -#: 699562a91c774bd2ab42df3653c3551e 8365366cf0f14cc09645e3c25c7ac67e -#: 96868ec489774a2fbeab783a6bd45568 976d01b60a2b44fa9a8bdcc61fb1e2e7 -#: fddd529b8b7e4c88884923afea581093 -msgid "Type / default" -msgstr "类型 / 默认值" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 3605c2570c7b4fbe8eaf07f713731da7 560565c8fef04b56873f1e89dea0d734 -#: 6161c0d9fcc24c7aa3d667b64b08224a 6e6ba47ba6b847cc84f50cdd5f346e8a -#: aff02b11f88341a19fc1ab82cb7e8195 c0833b3c2d344123a3c116c30c40a122 -#: f0550112484444518bcd1186dd75ea3a fe7576b491e74f8dbeefa7799ab02aa9 -msgid "Meaning" -msgstr "含义" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2aa18dd7b7cd49c1bbc9b993ae85b357 +#: b0c1a97bf8c9403caaae07f55bd19b29 msgid "`movej_duration`" msgstr "`movej_duration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 008f82293c5c44cdaea5b2558c2e4577 89818b96c95d4ca09bdf3a42d6ce775c -#: a175a4411b37420db2b13e6211b66da0 d1ab1ccf12e94b37ac553a3d47efc8ae -msgid "double / `3.0`" -msgstr "double / `3.0`" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c8f007e50bb04159b2a405c508f02d4f +#: c0f322c7864a44df8abe86667e594394 msgid "" "Lower bound for `target_joint_position` (tanh / linear / doubles). " "**Runtime**." msgstr "`target_joint_position` 的时长下限(tanh / linear / doubles)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c515ab071a2c415284ba5be9419aee5a +#: a53635cdb8d84e4abc8c134b7f072d85 msgid "`movej_interpolation_type`" msgstr "`movej_interpolation_type`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: b7e845ba42e546da864a08b159a83dfe +#: 679bf80c858543e0b266099589b7dc17 msgid "string / `\"tanh\"` (README YAML)" msgstr "string / `\"tanh\"`(README YAML)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 9d5fa92d6be34ba19590d7c1b640346c +#: 8c62991c16814b4e9e6bafc4a9e70570 msgid "" "`\"tanh\"` | `\"linear\"` | `\"doubles\"` | `\"none\"` (README_zh also " "`\"servo\"`). **Runtime**." @@ -264,98 +547,78 @@ msgstr "" "`\"servo\"`)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e6b691aa93b04e9fa10469f4c63e1b07 +#: 4f37becc8b0140a79b30a26d9f840a0d msgid "`movej_tanh_scale`" msgstr "`movej_tanh_scale`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 9142d3d3b298418b92458b5dafee79d2 -msgid "tanh scale. **Runtime**." -msgstr "tanh 尺度" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: d28fd05e873443848d4b9242436ee6c7 +#: 5b5657c263bf4f2bbc5ea8e664a54261 msgid "`movej_trajectory_duration`" msgstr "`movej_trajectory_duration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 46036cdaedfd4e45920fdf4c20393e0d +#: 94c918f48b44481197eef10790005abb msgid "Multi-waypoint duration. **Runtime**." msgstr "多路点时长" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 7bc8e0ae655841a8b5ce6b1a63f3453e +#: 04a2b024e0b14d779fa2cd280af9930d msgid "`movej_trajectory_blend_ratio`" msgstr "`movej_trajectory_blend_ratio`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 098f524f0bf54235b37e2da8960bb159 86a2d151774a4dc8b2e88816a178ed8c -#: d50e7a951ce5451c9c9e5d317ad067c5 +#: 3c943b2672064cdb82510eefd0f6edbb 807184a8ddf7422c946ffee6939798d9 +#: a258d99220a84de8bbc400f3352d7952 msgid "double / `0.0`" msgstr "double / `0.0`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ba1465f71f6a4bcc97d879eeb035a9a3 +#: 2eb5ae2045ed4770bcd7dae4ad0acd04 msgid "Waypoint blend. **Runtime**." msgstr "路点融合" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 687d10688b5445569718a2bb14798ede +#: 2ab4266bce2745b0a1b6f5669bbc211d msgid "`movej_max_velocity`" msgstr "`movej_max_velocity`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 4223d1372b204aeeb6828ab5880e9e9b -msgid "double / `2.0`" -msgstr "double / `2.0`" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: b6b6350824784f9cb267d91f8d8be34b +#: a3800c7cfc68409fa1b82d7a8a13f1ae msgid "Peak joint speed; may extend duration. **Runtime**." msgstr "关节峰值速度;可能拉长 duration" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 6afefceb14e84a5f9b486b0fe7f25180 +#: ce5f6315740448279ac3cf90305b5005 msgid "`movej_max_acceleration`" msgstr "`movej_max_acceleration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 60836a1de9bd448296b48b8b961d635a -msgid "double / `4.0`" -msgstr "double / `4.0`" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 51cabc3f24c74130a0569ac27392e961 99b9d4a15f654732af99992651ed787f +#: 07df602af121406aa01d8cd20e26ed73 81565bcbe0f04bd69e0035712ac9fcdb msgid "doubles only. **Runtime**." msgstr "仅 doubles" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 52b607cd988641da89f72fbbc30630aa +#: d984c469829144818e364a55d97842b8 msgid "`movej_max_jerk`" msgstr "`movej_max_jerk`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: d796600025a64a4da49a9bd83fcc7674 -msgid "double / `20.0`" -msgstr "double / `20.0`" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: afdd607279b74a7b87a04412047ac4eb +#: 59d4062595a546b9b3e6cb675dfd68eb msgid "`movej_auto_extend_duration`" msgstr "`movej_auto_extend_duration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2daed86a38854cbca402262dacba7fe7 8a13d01da7334798b4dd096fb48c03bd +#: 416bda47e0254e839cc12fdc6aa39067 813b64af70fd4ca582265e872421941f msgid "bool / `true`" msgstr "bool / `true`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 07cc85d92a49423e899fc68a1eef4b15 +#: 5e8429996d654405a28fbcd8143b003a msgid "`false` keeps a fixed duration. **Runtime**." msgstr "`false` 保持固定时长" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:46 -#: e656793e98cb45a2b0025f12bdd234e7 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:82 +#: cd6192aaf332420c98a0ad4c64b72f43 msgid "" "`none` is not duration-extended. `joint_trajectory_with_para` uses the " "same vel/acc/jerk when a waypoint omits those arrays." @@ -363,8 +626,8 @@ msgstr "" "`none` 不会按 duration 拉长。路点省略这些数组时,`joint_trajectory_with_para` 仍用同一套 " "vel/acc/jerk。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:48 -#: e6619319f6184b35b608f5ba115c7a71 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:84 +#: 5ed51da971a04edaa22303d26ed249b0 msgid "" "MOVEJ `cartesian_defaults.*` (IK MoveL when `lina_planning` is present) " "are **Runtime** on the next MOVEJ command — [`arms_target_manager` README" @@ -376,63 +639,63 @@ msgstr "" "/fiveages-" "sim/arms_ros2_control/blob/e1b7a147effca2f29f7cced0b2942837b096c1ff/command/arms_target_manager/README.md)。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:50 -#: f4317d5da1f04f36b89021efee14da02 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:86 +#: f972a203842d4d03aab6abbadba7712d msgid "灵巧手 (`target_command`)" msgstr "灵巧手(`target_command`)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 40f3a45803d74419a8c2d06dc2c898e2 +#: c948247680084a9484bbdd5c854a467b msgid "`target_command_enabled`" msgstr "`target_command_enabled`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 16b73aeb635b4de283f04fba1ce7ca63 763466c42362458f9c82589c1f368802 +#: 183fea944cb3439997419c7d2856c669 3f4eb535d0874bb5ac88509b0ada5c9d msgid "bool / `false`" msgstr "bool / `false`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e37326ee282240bb91e8a770a7de8571 +#: 4f0179ca95854005af2cd3cb3a492c05 msgid "Switch/percent topics. **Startup only**." msgstr "开关/比例话题" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ddbfc99079ff47e19a89b8a069ff4d41 +#: 016ef5d2c71d4cd4993b13264f0f6b5b msgid "`target_command_close_config`" msgstr "`target_command_close_config`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 384674202dc2455295fd9a3cba1589a5 +#: f092d40d5f3a4659a24b651109dfb84d msgid "int / `1`" msgstr "int / `1`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 233394a7763d4bad89639a1463253011 +#: 78f2ffe2b4204362b6648ab465db1045 msgid "Close pose index in Home configs (0-based). **Startup only**." msgstr "Home 构型中的闭合位索引(从 0 计)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e2ba25e14af24a7ab9f3efe2c3878816 +#: b819bda859034151a461bb72a879e330 msgid "`target_command_open_config`" msgstr "`target_command_open_config`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 4b3ef4179b7f4e539a4554c20e9fbda3 +#: db3016561e1849e18a84e2e6925426d1 msgid "int / `0`" msgstr "int / `0`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 127671e8e5564718b4ee1c679d358659 +#: fae64de9058a446a970608dc7ed2d36f msgid "Open pose index. **Startup only**." msgstr "张开位索引" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:58 -#: 5e626bb09f10482a94c0b0db42ccca81 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:94 +#: 14413490842545ea8105ce9e6c8307f6 msgid "Waist" msgstr "腰部" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:60 -#: 2cd80db34b5947efacf0a5fe1bd9073c +#: ../../source/4-reference/controllers/8-ros2_parameters.md:96 +#: efba2f7717e941408727b5a98b0912d9 msgid "" "Only `waist_lifting_duration` is **Runtime**. Type, speed triples, " "kinematics, and TF frames are **Startup only** (first planner create or " @@ -442,181 +705,181 @@ msgstr "" "**仅启动**(首次创建规划器或 `on_init`)。" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 728a6378cf224be29eb7adc621f8030f +#: 386ac605929b4590be7cd44518329eca msgid "`waist_lifting_enabled`" msgstr "`waist_lifting_enabled`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2ab95061641649ce8d83ac6021c2569a +#: 687bacc405b5450c8c40922442e8602b msgid "Declares waist params and topics. **Startup only**." msgstr "声明腰部参数和话题" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 269a2649eec4471b9578380b6f01d3fe +#: 70ecfc3c8f6a471d86c4f25373cb3a2e msgid "`waist_lifting_type`" msgstr "`waist_lifting_type`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 3aa4007cc8f84aad951322b01b8de075 +#: cfa2df2cdc974290b45724451276afcf msgid "string / `\"three_joint\"`" msgstr "string / `\"three_joint\"`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: f9aacb1d2c3847aa81c70776c594a3f8 +#: 8661d78242d74cc09201ceadcb0e1cc0 msgid "`\"three_joint\"` | `\"single_joint\"`. **Startup only**." msgstr "`\"three_joint\"` | `\"single_joint\"`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 40ca5c8cf05140628cd996bf99f796b9 +#: 47f90ddfaa4747c79a9980f464b66260 msgid "`waist_lifting_duration`" msgstr "`waist_lifting_duration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 6d2aa7c463f84c29affb5a5d2d59e055 +#: 383cf8c8db64441fbe9bb2fe32f8efb2 msgid "Re-read on the next waist position plan. **Runtime**." msgstr "下次腰部位置规划时重读" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 0584b2385eb04a4d87aa7d1f6ece566c +#: 104ab1a7fd284757adfdb0d4d2f76dcd msgid "`waist_lifting_default_parameter`" msgstr "`waist_lifting_default_parameter`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2378a927770e4a2d912ae37b4d6b85e5 5e2bc5c4d4e74727901324742ae1fd6a +#: 6721940575ab41fbb72b0475a185fe72 a98fdc9332a2435d982a4e9a2dabf5f1 msgid "double[3] / `[0.25, 1.0, 5.0]`" msgstr "double[3] / `[0.25, 1.0, 5.0]`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 50829a3e7bed45888678ebc3e91dec29 9e647e4f4934487d880ec39f945afd16 +#: 9fbea974ec314709a0ae74800dbbb350 e8511b87543242dfb9c3a126c86e9273 msgid "`[max_speed, accel, decel]`. **Startup only**." msgstr "`[max_speed, accel, decel]`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 57f3241f5720443485f65d134a4af8e2 +#: 874a2d39b13b4a53a8940fc798c65d3a msgid "`waist_turning_default_parameter`" msgstr "`waist_turning_default_parameter`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 8d8c376991694d24af8fcd925981676d +#: 43cef86111534c62ab915bd673798d33 msgid "`waist_absolute_source_frame`" msgstr "`waist_absolute_source_frame`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 0ac0fed083534b3c9fae60aa58dd715e +#: 3173576ae2354d80bc02791f728dd2b8 msgid "string / `\"base_footprint\"`" msgstr "string / `\"base_footprint\"`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 62ef1cf418f147a7bec754277f79172d +#: c5deef9e7f604797864ecf29690eed36 msgid "Absolute `(x, z)` (W2 default). **Startup only**." msgstr "绝对 `(x, z)`(W2 默认)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e9e23a2b117144a9a9e1b97ba8dbd3ec +#: 94dfbd15cf324468a58d6f045da21319 msgid "`waist_absolute_target_frame`" msgstr "`waist_absolute_target_frame`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 5ece4162ca1445f7af3cc3444ed5b79d +#: 7a92195e0ede460299ae4d692ca60abc msgid "string / `\"body_base\"`" msgstr "string / `\"body_base\"`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 1fbec3f7b9874f4eb70ffe658091f9d7 +#: d52ccc734f264556a8f6746dca408cad msgid "`phi` / relative planning. **Startup only**." msgstr "`phi` / 相对规划" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 83941b1fdcb1465296d1fe0c633b225f +#: 4c473000cbbf43a8a58fd933e566c1c3 msgid "`waist_l1` / `waist_l2`" msgstr "`waist_l1` / `waist_l2`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 01ccfcc0a09c46c4a28846104269138d +#: de32f2d60a19487e86e05244057b4216 msgid "double / `0.322` / `0.355`" msgstr "double / `0.322` / `0.355`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: d611e804e4f84014872f38fc1084cb91 d92381174940426484d46cd542537ad4 -#: f46e948b39c84840a8208f793b63f01b +#: 4a0dafe446894afe84b90d731bf1e317 5cc3833648b24b3fb778eea80a0c7ee8 +#: ce41596ac4ed4481b8b258a1d55150a9 msgid "three_joint. **Startup only**." msgstr "three_joint" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 0188e20f31564abd9e1764703b51c7a2 +#: a11fee9e70ca45a2ae4cae88754169a5 msgid "`waist_rotation_direction`" msgstr "`waist_rotation_direction`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: b64c42e473cc43d4955c8600f87c114a +#: 281ce6f7fbad47b98d9561853f317317 msgid "double[3] / `[1, 1, 1]`" msgstr "double[3] / `[1, 1, 1]`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e7827ff0aebf46ae9242e6c841df2145 +#: 0db2c703df8c4b1fad65f157316de9ae msgid "`waist_angle_offset`" msgstr "`waist_angle_offset`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 8c5239b38da849ac88d694e7d4ea976b +#: c3b84c16f4874b6eaf199cd30c733253 msgid "double[3] / `[0, 0, 0]`" msgstr "double[3] / `[0, 0, 0]`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 8d4fac5e737b44ab9476c39c4587720e +#: db9e507fa6f54f05be17f0beb6f379f2 msgid "`waist_single_joint_direction`" msgstr "`waist_single_joint_direction`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 56544ca98b1541d1abd0432f8144d003 56ea2e3181234ad197b813e96efbc9aa +#: 04156c29754b456582fd138dd4baf52e a94b5b505fa945108cc15a534e6667d9 msgid "double / `1.0`" msgstr "double / `1.0`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e4a390b79373479498e97b035e225f45 +#: 5316a2ed685843cba2b9a3139f3d736c msgid "single_joint (ARX Lift / Lift 2S). **Startup only**." msgstr "single_joint(ARX Lift / Lift 2S)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 48c534ec881743efb1cd340e17907390 +#: 7539801381e44d8496bf6ac3f638a8c9 msgid "`waist_single_joint_offset`" msgstr "`waist_single_joint_offset`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 65e8d87da1f647608df02013b16c239f 8ac3ca7c4b5d41608348e0d56c3fb3ac -#: 97dd0c0a85e14830a8fe9e48d8ddad92 +#: 0d016f36047f40489bdcec187ddbfe8e 17c763972833479c8a784607de3886fb +#: a7e2310275954a7fb7ac8d5e42eb44a8 msgid "single_joint. **Startup only**." msgstr "single_joint" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e7f16c0e9e554eb2b731d4703267f7f4 +#: 5baf98c8136e4fe49db5198f1ab55195 msgid "`waist_single_joint_pitch_joint`" msgstr "`waist_single_joint_pitch_joint`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: adbef5c78a7c4c6cbc76f98e3d889d01 +#: 4659e3cd4b7649e19c302739b8276299 msgid "string / `\"_no_pitch_\"` (README)" msgstr "string / `\"_no_pitch_\"`(README)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: dcb06380ed424bf6afdb1b12ddac6097 +#: fd585a4dc47a44be870da05192d6b421 msgid "" "Name not in `joints` → pitch disabled. Source `auto_declare` default is " "`\"body_joint2\"`. **Startup only**." msgstr "名称不在 `joints` 中则禁用 pitch。源码 `auto_declare` 默认是 `\"body_joint2\"`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 32669465b86b456893de52fb299f140a +#: 642ccfc7bc884f38ba30875224ba4bde msgid "`waist_single_joint_pitch_direction`" msgstr "`waist_single_joint_pitch_direction`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 78bc242fa91b4c7c8974776c8063c246 +#: f8f80352cf064f8eae8c8e1464d3008d msgid "`waist_single_joint_pitch_offset`" msgstr "`waist_single_joint_pitch_offset`" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:80 -#: 9bcc360db79749f6a97236e4e07654cc +#: ../../source/4-reference/controllers/8-ros2_parameters.md:116 +#: 9c524072e66d4b2aa8005ea8807bc77a msgid "" "Lift 2S example (`body_joint_controller`): `waist_lifting_enabled: true`," " `waist_lifting_type: single_joint`, `waist_absolute_source_frame: " @@ -632,14 +895,14 @@ msgstr "" "/fiveages-sim/robot-descriptions-" "arx/blob/main/arx_lift2s_description/config/ros2_control/ros2_controllers.yaml)。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:82 -#: ../../source/4-reference/controllers/8-ros2_parameters.md:135 -#: 12a1259e53dc42c0aafb45325bf51bed 5651f1da8b084b96ade8a9ec712a6757 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:119 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:175 +#: 984df1640d304c2ca5309485225641e8 b513147aa6a34101b77c332e3827557e msgid "Hold" msgstr "Hold" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:84 -#: 3b70f2a8b21c40d3b259171ca64bbf9c +#: ../../source/4-reference/controllers/8-ros2_parameters.md:121 +#: 62da9ba66404464e8c8dc88aeb17cb30 msgid "" "`arms_controller_common::StateHold` keys. Fuller prose and enter/`run` " "behavior: [shared " @@ -648,50 +911,13 @@ msgstr "" "`arms_controller_common::StateHold` 键。更完整的说明与 enter/`run` 行为:[shared " "Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-statehold)。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 639493b8fdbb4962b8ad0c265d2deff5 dec5c150064b44d0b64df11d3ffb27c6 -msgid "`hold_first_check_position_threshold`" -msgstr "`hold_first_check_position_threshold`" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 06c4d8507df445679ed3d974190d43bf 1b934a38ba8145b09aa3f5dff6b35df3 -#: 1e4123b7ed4f4cbf8c7e074849e04efe 299136ff387c42bba02f2d4b1445d832 -#: 9303adc6840041cbaa3c7427ef6ca35a -msgid "double / `0.1`" -msgstr "double / `0.1`" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 468f32c9f01c48e194e8e44c8c4cbf7f 9a96ae42640f4b4ab09f26017cce965b -msgid "" -"First HOLD check after enter (measured vs hold targets). If any joint " -"exceeds this, retarget hold to current measured positions to avoid a " -"startup jump, then mark the first check passed. `≤ 0` skips the first " -"check. **Runtime**." -msgstr "" -"进入 HOLD 后的首次检查(实测位置相对保持目标)。任一关节超过此阈值时,把保持目标改成当前实测位置以避免启动跳变,并标记首次检查已通过。" -"`≤ 0` 跳过首次检查。**运行时**。" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 3fff82d8c7ff4704bc3c7007ef34782d a31a6074145d4da2a9a22ddf16552035 -msgid "`hold_position_threshold`" -msgstr "`hold_position_threshold`" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 8463f3779c124ae8bd30422beecbe9c3 e438063739aa439cab4056cd60266342 -msgid "" -"After the first check has passed, if measured vs hold target exceeds " -"this, retarget hold to current measured positions. `≤ 0` disables " -"automatic adjustment. **Runtime**." -msgstr "" -"首次检查通过后,若实测位置相对保持目标超过此阈值,把保持目标改成当前实测位置。`≤ 0` 关闭自动调整。**运行时**。" - -#: ../../source/4-reference/controllers/8-ros2_parameters.md:91 -#: 70e89c0391e3402cb93e054b0a8c131a +#: ../../source/4-reference/controllers/8-ros2_parameters.md:129 +#: b0d964e73cbb45c5b7eebd9b8e99f97d msgid "Adaptive Gripper Controller" msgstr "Adaptive Gripper Controller" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:93 -#: edecef60ff7d43f7b49a09197d21816d +#: ../../source/4-reference/controllers/8-ros2_parameters.md:131 +#: cd56d87de0d340b0a0fd42f8d437eaae msgid "" "夹爪. Plugin `adaptive_gripper_controller/AdaptiveGripperController`. " "README [配置参数](https://github.com/fiveages-" @@ -706,8 +932,8 @@ msgstr "" " Gripper Controller](6-gripper_teleop_plugins.md)。开合限位来自 " "`/robot_description`。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:95 -#: 063816da0a32412a97d18f3cb6a4184b +#: ../../source/4-reference/controllers/8-ros2_parameters.md:133 +#: 71ec92fc4c89455196027856a6d50acc msgid "" "Uses `joint` (singular), not `joints`. `update_rate` and " "ControllerInterface command/state lists are **Startup only** at load. No " @@ -717,64 +943,64 @@ msgstr "" "的命令/状态列表在加载时 **仅启动**。没有 `on_set_parameters` 回调,`update()` 里也不重读。" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ba9e71e3a7a34ec8a5d929de256d476b +#: 0b0d6438f7454ffc885abc945483d4a1 msgid "`joint`" msgstr "`joint`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 4ce6a79685434c8293ca8f9e7345ea9e +#: 147a745e6aa24741bcf588e0bae1909c msgid "string / `\"gripper_joint\"`" msgstr "string / `\"gripper_joint\"`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c8c1bca78dbb423f9f416762c8ad1420 +#: dc241ec037f54893819b6c2fc396b73b msgid "Controlled joint. **Startup only**." msgstr "被控关节" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 6e5dcd099984433e94358e2c40821f3f +#: 950eb87b50b04d3e911fcb8c18a9f1ad msgid "`use_effort_interface`" msgstr "`use_effort_interface`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c0b574a348704024bc556c170132bc42 +#: be542b6cf00f4617bf785e4eb114a64a msgid "Bind effort state for force feedback. **Startup only**." msgstr "绑定 effort 状态以做力反馈" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: f3d129738c3e4f3db3c8aef48a4b177a +#: a55e05f881df4a36b2253cca9236dd2a msgid "`force_threshold`" msgstr "`force_threshold`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 75800033743f4f07a198a5cbfcca78d5 +#: 735876d9bd414a39bda335a407c85af8 msgid "Effort magnitude that triggers feedback. **Startup only**." msgstr "触发反馈的 effort 幅值" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 76256b6c03b24eeaa8471924c4002731 +#: eb0d1ad311c043408bcf897485827177 msgid "`force_feedback_ratio`" msgstr "`force_feedback_ratio`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 0158056e95e84e6bbb1710b94161ab7f +#: b935d4c1634042998fd93dc7dafb8860 msgid "double / `0.5`" msgstr "double / `0.5`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 3bf3b8b54b5140cc8bdda726a63ba59d +#: 8caf6e741fbb4f80975730438a1e81e4 msgid "" "After trigger: `0.0` stop here, `1.0` continue to original target. " "**Startup only**." msgstr "触发后:`0.0` 停在当前位置,`1.0` 继续到原目标" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:104 -#: 7637f19edc0c478dbf3095c255477c0d +#: ../../source/4-reference/controllers/8-ros2_parameters.md:143 +#: eff3c8592a7141868f1fb32adf811e41 msgid "OCS2 Arm Controller" msgstr "OCS2 Arm Controller" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:106 -#: 84fe02e451cc404692a0d9fc7ca66847 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:145 +#: db23af19802f4e15a3be69970002b35e msgid "" "Plugin `ocs2_arm_controller/Ocs2ArmController`. Also declares the " "[framework-common " @@ -810,8 +1036,8 @@ msgstr "" "/fiveages-" "sim/robot_descriptions/blob/feature/agilex/humanoid/Dyna/taku_description/config/ros2_control/ros2_controllers.yaml)。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:108 -#: c1e00579300644469d959dd3a68f5c4c +#: ../../source/4-reference/controllers/8-ros2_parameters.md:147 +#: ff178e709ac74d91b966a6cd4697df6e msgid "" "README FSM is **HOME / HOLD / OCS2** (`3` = OCS2). Source also constructs" " `StateMoveJ` for canonical `/fsm_command` `4` (and IK MoveL when " @@ -828,8 +1054,8 @@ msgstr "" "`waist_lifting_enabled` 时腰部键沿用 Basic Joint 腰部表(只有 " "`waist_lifting_duration` 是运行时)。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:110 -#: c1424d598f1f4acd9d6bea974d48b805 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:149 +#: 78f8d8d737654c06926c1487b528a833 msgid "" "Older README names that are **not** parameters at this pin: `zero_pos` " "(use `rest_pos`), `robot_pkg` (use `robot_name`), `force_gains` (use " @@ -839,275 +1065,275 @@ msgstr "" "`robot_name`)、`force_gains`(改用 `default_gains` / `pd_gains`)。" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: b87774179b354d78bf82cacabb562aba +#: b660d49225204db984c6bf492aea3528 msgid "`home_pos`" msgstr "`home_pos`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 126fcb2f5d3e450ab2227594bd93313f 1f1a55a64d6345ea93de9dc285669241 -#: 63d6c84b0f3b4d2aa4fd9586371c091b b318a03239da4f9ab9daa662d026163c +#: 339beff6b47740a9b884bb89df6d6142 8791de58354945e19a77a559aa7a53fa +#: 9794521fd62842c0a70178793e5a6151 f011a9f892c54b92911277f2249d0cc7 msgid "double[]" msgstr "double[]" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ab6b274a48bc4f3ca49171023a8d1738 +#: b36f7d9e2c9e495ca866982a3b3fa842 msgid "Legacy single Home if `home_1`… are absent. **Startup only**." msgstr "没有 `home_1`… 时的遗留单组 Home" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2689bfdbc39a4856a307154c7dccec27 +#: ceba2675b4c14973b2cc1c5be2af3c5a msgid "`rest_pos`" msgstr "`rest_pos`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ace849479cbd4612b980dcb2672f7807 +#: 496603801b724b94b879c6589e20995c msgid "Extra Home slot when `home_1` is already set. **Startup only**." msgstr "已有 `home_1` 时的额外 Home 槽" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: bf9e54e083374d0bbc50f34043c3cd70 +#: 5b7f4731b8dd4ce2bca19641509050b8 msgid "`robot_name`" msgstr "`robot_name`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 872fabd28a4a4054968abb5f403159c2 +#: 890b9671af15430abc5caa0569abd93a msgid "string / `\"cr5\"`" msgstr "string / `\"cr5\"`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 01d3c5cdb9ce48d9bb9d2b4cf1180ac6 +#: aaf17ecc276c44e7a4d0ae74838482b3 #, python-brace-format msgid "Selects `{robot_name}_description` and OCS2 files. **Startup only**." msgstr "选择 `{robot_name}_description` 和 OCS2 文件" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 66a4b4c9511e430a8a5bce29f1874aee +#: 8118d342929f4db691af844cb826f087 msgid "`default_gains`" msgstr "`default_gains`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ac9ef7951f664937a7a21ddc7987fb03 +#: fbfbe5b4f0f74135988b2f37cea5c120 msgid "" "HOME / HOLD impedance `[kp, kd]` when MIX interfaces are present. " "**Startup only**." msgstr "存在 MIX 接口时,HOME / HOLD 阻抗 `[kp, kd]`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 40cc2470d50846eea5ba659ee2c413fc +#: 2f0592b3e780424c89411ea626d04ee7 msgid "`pd_gains`" msgstr "`pd_gains`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 3c39ecae8bfb406290f3d8d18004d298 +#: b488b340758e46c0ad66975c5bd34c57 msgid "OCS2-state impedance `[kp, kd]`. **Startup only**." msgstr "OCS2 状态阻抗 `[kp, kd]`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c0e6569e2d4d4b12aecc79b98c2c5ef6 +#: d87954f9023a47dea82c47ba09c5fe7e msgid "`base_frame`" msgstr "`base_frame`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 5fa639271a60498e8dfdbff486859875 +#: a82d899a9f1540c4a86a0fb6f1de7520 msgid "`task.info` `baseFrame`" msgstr "`task.info` `baseFrame`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 18113b1ed1904f9fb13f79991db92de5 +#: f561be67aa7d4d6483c1066c8aa56a62 msgid "" "Model / reference base. **Startup only** — not hot like `movel_duration`;" " change tip → restart." msgstr "模型 / 参考基座" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 67faa60e51674cfe99905b85b7a742f2 +#: c2e2650816d04e25bc03c4cc23c12630 msgid "`left_ee_frame`" msgstr "`left_ee_frame`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 620b8d1e587640ea80880d4513de549d +#: 608143799eae4d0aaf78054d199d457e msgid "`task.info` `eeFrame`" msgstr "`task.info` `eeFrame`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2ab2cc0fb71449fba6af6f3df2ca7d5c +#: 16eff79948084c0083613789895e5c8e msgid "Left tip (YAML may set `left_tcp`). **Startup only**." msgstr "左末端(YAML 可写成 `left_tcp`)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 7c3fd8d4def0471d8c481d07b72541cc +#: 38272aafb4524b2fbac74d17dc81e5e7 msgid "`right_ee_frame`" msgstr "`right_ee_frame`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 3c754b062b8e476f9a808be5ed8f2b1f +#: eb457d7791f64151bd5335aec904a78d msgid "`task.info` `eeFrame1`" msgstr "`task.info` `eeFrame1`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c9033c875e0a48f29fae4a797134d1bd +#: 71bcb70ba2d14f0eba2b536acf0b82fc msgid "Right tip. **Startup only**." msgstr "右末端" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ff1f2c4a75cd41b2a2e867b4f5494955 +#: 7d0efad622cf406fb80c8e31a1d1e8a2 msgid "`movel_duration`" msgstr "`movel_duration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: b1694306ce11408b81ed459fc6710c8e +#: 67aadd3c8a74417392c6120f60763a5f msgid "`2.0` (CR5 YAML `0.5`)" msgstr "`2.0` (CR5 YAML `0.5`)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c1d069568d5343faad21f904e4f24b4f +#: e4dc78f5f057431dbe8067b4802d52a6 msgid "MoveL duration (s). **Runtime** (next interpolating / stamped command)." msgstr "MoveL 时长(秒)。**运行时**(下一条插值 / 带时间戳命令)。" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 87ec7ec439b84aa495644c3020ad9f27 +#: 8e46acdffcff45618322c50033f0158e msgid "`movel_trajectory_duration`" msgstr "`movel_trajectory_duration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 56af31d49da34e1ca2563bb01f3d44af 97377da9b7894e8f991276d869d461ae -#: f61728b8ef894814bbcb3f75a9849ca8 +#: eec30559d5a6470698cd725202a169a1 f55723fe53dc471b9ba42a70a67e5e27 +#: f5687aa51157432f928a58d52446640d msgid "`2.0`" msgstr "`2.0`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e6bdd699a27c4226a8ca7f3f342936d0 +#: 254af7518c9445679e1e3209afa95578 msgid "MoveL trajectory duration. **Runtime**." msgstr "MoveL 轨迹时长" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 0557aec1b3fd4959adb2058187f65e93 +#: bc7c9fc30f484c5597b95176c1be0ef5 msgid "`movel_sample_interval`" msgstr "`movel_sample_interval`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 66b532e213ce48e89a6d681639ab3e42 +#: 64eb82f224ef42c58e3442463b8af7ce msgid "`0.04`" msgstr "`0.04`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2084008999bc4781a35234b61becf760 +#: 64d779e0f1eb4b949a64504e8d004b49 msgid "Sample interval. **Runtime**." msgstr "采样间隔" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2574244e03714a4da4c80bcf734f5a01 +#: 364ee5dd70ee4452aeecc85cda6cd267 msgid "`movel_max_linear_velocity`" msgstr "`movel_max_linear_velocity`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 4967a8e79e7b4bc58e820824ea653831 +#: 19b9881764b9497c98edfcc1a9fec792 msgid "`0.3`" msgstr "`0.3`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 11f73779f01946009d39c8b7ac0194c7 +#: 9674f76dc50a4bd0b4e5045b95456e42 msgid "Linear vel limit. **Runtime**." msgstr "线速度上限" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: cfd848d326a64c6398a9f3bb653f0c84 +#: 74833b384e0d412c9fa62c902aaaf252 msgid "`movel_max_linear_acceleration`" msgstr "`movel_max_linear_acceleration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 64bb994effdb4184a2eb5372d28803cd b9277ffe1261447c8bdde44caf8232dd +#: 7876f3182e264b169e79697fe8df9614 de05c6ac1228475b9a35190c20dac0e2 msgid "`1.0`" msgstr "`1.0`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 0c054063bd2d4d1d810291174ea050ab +#: 5a215d9f975147b8a3fe14c30b19213f msgid "Linear acc limit. **Runtime**." msgstr "线加速度上限" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: d53e551338ef490b8f6dcf0f70b1c998 +#: e7e46ffcd16f45c28ee73f0ce92f5744 msgid "`movel_max_linear_jerk`" msgstr "`movel_max_linear_jerk`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 0d43c59265534b3a81bc15ed1af78719 +#: f88afc54586a4c1d8b45c45f1d1bcea3 msgid "Linear jerk limit. **Runtime**." msgstr "线 jerk 上限" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e9fdf441c6254c53bd592f8d242289e4 +#: 7c4f3c304363450486ffa1b20ab8c120 msgid "`movel_max_angular_velocity`" msgstr "`movel_max_angular_velocity`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e2185234e34248c7ab5db0ab0f9c2234 +#: 3ccdd689cb2e4868a52059b15c22a9dd msgid "Angular vel limit. **Runtime**." msgstr "角速度上限" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 564b5ac477bb45348ac18ce6972c1378 +#: 1cd16cca242e4943bdd03f8f4111559b msgid "`movel_max_angular_acceleration`" msgstr "`movel_max_angular_acceleration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 44b867e0589842179c4a67c67f561cb0 +#: 8739f7b6c6194c7380ec52541720a0ad msgid "Angular acc limit. **Runtime**." msgstr "角加速度上限" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: d65536f780bb4758af623d252fd315fc +#: 2da37858ce914c28981c670bbbc14747 msgid "`movel_max_angular_jerk`" msgstr "`movel_max_angular_jerk`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 486abe2c33054db691a586c66d49d762 +#: eb266dcdb54a445293fae1184609439c msgid "`4.0`" msgstr "`4.0`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 4b24111dd08f4975a4d9c5e0eac1eebe +#: 3f088e02f7dd4aad936e6ade95fd7afd msgid "Angular jerk limit. **Runtime**." msgstr "角 jerk 上限" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 8368d27c74b1429bb96d625aef800818 +#: dae3a096f6d14fe0b7294f923fbc2022 msgid "`movel_auto_extend_duration`" msgstr "`movel_auto_extend_duration`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: eea24ca781ff4d1bac40580ae39c8030 +#: 3ac4a875dbd7424e9e09488becfa9462 msgid "`true`" msgstr "`true`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: df92cfb7f75942cb902dbcec302abad4 +#: a0099ffabbd64a8ea04f74da9fafb259 msgid "Extend MoveL duration when limits require it. **Runtime**." msgstr "限幅需要时拉长 MoveL duration" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:133 -#: fb6a6f13086e4b6c82b5e2133e3c8597 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:172 +#: 5a5c33fcfc144ad4925bb64aae5a51d3 msgid "YAML frame overrides are injected in memory at Interface construction." msgstr "YAML 坐标系覆盖在 Interface 构造时注入内存。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:137 -#: ac2324a2590c4df0bb28d49c3e79cc63 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:177 +#: 27654a88540e4b2ab4259b5dcfeda16b msgid "" "Same `StateHold` keys as Basic Joint. Fuller prose: [shared " "Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-statehold)." " MIX HOLD impedance (`default_gains`) stays in the table above." msgstr "" "与 Basic Joint 相同的 `StateHold` 键。更完整的说明:[shared " -"Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-statehold)。MIX " -"HOLD 阻抗(`default_gains`)仍在上表。" +"Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-" +"statehold)。MIX HOLD 阻抗(`default_gains`)仍在上表。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:144 -#: d8fc5169fe8f47e8b510e303b64c8aa6 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:185 +#: bbc579d8b2e24b6e86ca192622fa366e msgid "arms_target_manager" msgstr "arms_target_manager" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:146 -#: 3b1523361a03407083f0f513c7751884 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:187 +#: 95e955a9b9c34497a8952d2121ed09e2 msgid "" "This is a **command node**, not a ros2_control controller. README: " "[#120](https://github.com/fiveages-" @@ -1121,8 +1347,8 @@ msgstr "" " 与话题](../../3-concepts/4-fsm_and_topics.md)、[Adaptive Gripper " "Controller](6-gripper_teleop_plugins.md)。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:148 -#: 24eb4db62ace468b93f9775f8c78eaf1 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:189 +#: 125d82c4bcb64730badc5d12455231f7 msgid "" "YAML: package [`config/default.yaml`](https://github.com/fiveages-" "sim/arms_ros2_control/blob/9a1da3ba3747b3042866422c2269c1d49bb02f48/command/arms_target_manager/config/default.yaml)," @@ -1132,8 +1358,8 @@ msgstr "" "sim/arms_ros2_control/blob/9a1da3ba3747b3042866422c2269c1d49bb02f48/command/arms_target_manager/config/default.yaml),或机型" " `config/ocs2/target_manager.yaml`。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:150 -#: 35618f2e98234b28887557910818f7a8 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:191 +#: d00519104f9a4bc6beda321d984014f5 msgid "" "`declare_parameter` in `main` then values go into constructors. No " "`on_set_parameters` callback and no later `get_parameter`. Every row " @@ -1147,77 +1373,77 @@ msgstr "" "`body_frame`)属于**控制器**节点——那边也是" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e91856c04d7e41d98cc194715236313c +#: 89d77482ff494d28b7b7f78091c263c4 msgid "Default" msgstr "默认值" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 489a42522a2c4a4e87512bbb01346f84 +#: a243bbdf7d4643d3ac4f450e65e01fea msgid "`dual_arm_mode`" msgstr "`dual_arm_mode`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: b6ffbf1ff2ce4421bf6bc3b9dd312a03 +#: f3caf91d212947b89b706e71bdf08570 msgid "launch / task.info; C++ `false`" msgstr "launch / task.info;C++ 为 `false`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ec4ca9c12b6d4dc3b514f99af8b165dd +#: 89c78b9766f8436a945dc01c9852818c msgid "Dual-arm markers. **Startup only**." msgstr "双臂标记" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 7cae2070fb204fffb3736cead86b6ffb +#: e9fd3f80610346e8aa199e75ef368e1a msgid "`control_base_frame`" msgstr "`control_base_frame`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 9d37aa9b4c094b7cade2e027356f4734 +#: 3357b69cd6e14fceb1cef21360a5df9f msgid "launch / task.info; C++ `\"world\"`" msgstr "launch / task.info;C++ 为 `\"world\"`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 10c801ddea074da19a270bb7f4f1078b +#: daf7c577c51445af877e3bd1e7b19564 msgid "Control base. **Startup only**." msgstr "控制基座" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 1b5e18ad2ca54dc98c19036d1ae81b40 +#: 9af74911392c480aa2eaaeb001f04aeb msgid "`hand_controllers`" msgstr "`hand_controllers`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ccb60d662c474d87ad7e79c92aaf43aa +#: af276ad196864fa0aa9a8aba16687950 msgid "launch / task.info; C++ `[]`" msgstr "launch / task.info;C++ 为 `[]`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 791284acc5f64720befce383481483ee +#: f653f8f91ff242f1b31f303867ddf89a msgid "Hand controller names. **Startup only**." msgstr "手部控制器名称" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 8f6adae00dd643749183261463ae12b0 +#: 62d53714005a42ec9ae88f227b46c2fa msgid "`marker_fixed_frame`" msgstr "`marker_fixed_frame`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 1838a903a6fb4576a78d214d1062d0df +#: fdd079d6f444437cab122e214ed58bd4 msgid "`\"base_link\"`" msgstr "`\"base_link\"`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 5aafb4dee0a64fca9fa21cd1b254b925 +#: 436df2f0d85249b290f3b72b36442c15 msgid "RViz marker fixed frame. **Startup only**." msgstr "RViz 标记的固定坐标系" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 579d93c521364404afb70d2a82a5c9df +#: b1be1dcb6caf44099e9e4ee6e7361bf0 msgid "`enable_movej_cartesian_markers`" msgstr "`enable_movej_cartesian_markers`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 68ca1c0bb5f44fc8b122f6fcb4571009 +#: 688296dcd9db4daab919e965ae5ce6d8 msgid "" "`true` if `lina_planning`, else `false`; `full_body.launch.py` sets " "`false` under WBC" @@ -1226,138 +1452,138 @@ msgstr "" "`false`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 4451eccf81ce400a9a1fac37c4dba508 +#: 1e986a7f18384a33863b3fd6052854e3 msgid "MOVEJ arm markers → stamped IK MoveL. **Startup only**." msgstr "MOVEJ 机械臂标记 → 带时间戳的 IK MoveL" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: fc9a4cda4a414e35879f8f0c15a2baa3 +#: 272cbbfd39d441188d8ceb9d4cee2ffd msgid "`enable_head_control`" msgstr "`enable_head_control`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 3128f9937ca44615b04dd5bcac4634bf ebd48eeb3f5c46009c369ebbb558fc36 +#: d477fb1e765b40329f2ae7a2147ef993 e225f06240d94df99ca972db93d37da6 msgid "`false`" msgstr "`false`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: ec9f3870488b4092a418aabf92b570b0 +#: 7bddc606221448b48c6973633323c007 msgid "" "Legacy head RPY-to-joint marker " "(`/head_joint_controller/target_joint_position`). **Startup only**." msgstr "遗留的头部 RPY 转关节标记(`/head_joint_controller/target_joint_position`)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 1476f3dfeae94baaae637f22cf28b9cc +#: 57006dd0b40e4a13bf304ee825721be5 msgid "`enable_wbc_head_tracking_marker`" msgstr "`enable_wbc_head_tracking_marker`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 7e53ab3f425248249df355d2221bfb4e +#: 473e87bb900646939aa04f2890be4647 msgid "" "WBC Head 6D marker; still needs FSM=OCS2 and `HEAD_TRACKING`. **Startup " "only**." msgstr "WBC 头部 6D 标记;仍需 FSM=OCS2 且 `HEAD_TRACKING`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 1c195337b2044e86ba76a940ee4f2269 +#: 6d9a6004e5a1403d9a18fbf8735d2fcc msgid "`linear_scale`" msgstr "`linear_scale`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 3bcd74819676465b97e830801ed250fc +#: 541b845449684256b61eb34e5ce07243 msgid "`0.1`" msgstr "`0.1`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c2d23987dbef4c85a538226bce7bc5fe +#: 76c25be668bb40ad96db22284c3409f1 msgid "Full-stick linear twist (m/s). **Startup only**." msgstr "满杆线速度 twist(m/s)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 2553d116a56246a29ae0dc5c4ef38a91 +#: e096be700bc34b41bcdc214b3f094de4 msgid "`angular_scale`" msgstr "`angular_scale`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c2cb66a3374e4b2c9ac08c58ffda14f7 +#: f8c398d6d4544bbb81eb7eecf5056385 msgid "`0.25`" msgstr "`0.25`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: a2ac8cc86a57446aa80862296ad7dba6 +#: 3e724143a2fd4f0ab5499047c0e67275 msgid "Full-stick angular twist (rad/s). **Startup only**." msgstr "满杆角速度 twist(rad/s)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e99864e0d8f6404eb7a716d693f4adbc +#: 01421ca7c3ef488aa2848930a9016523 msgid "`control_input_rate`" msgstr "`control_input_rate`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: bc8b0fc5a334472bb675d0a43c0803a4 +#: b556825996f64f6ab8e90ff5ba14cf0f msgid "`50.0`" msgstr "`50.0`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 50b1d67720354e05b8ef8fc20f464300 +#: 83d88e9293594d088fdeba09655537fe msgid "Typical `control_input` Hz (feel only). **Startup only**." msgstr "典型 `control_input` Hz(手感,无硬实时保证)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: c2d5bfeed2254251b364e414602e1e6d +#: 667ce323300d428aac91271493e3d983 msgid "`vr_thumbstick_linear_scale`" msgstr "`vr_thumbstick_linear_scale`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 7e48e5f942734dd881d1f3b55bfa1194 +#: cd17e9a0d716420da9b5002b1fbab253 msgid "`0.005`" msgstr "`0.005`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 09d3f4eee7c24d238c64d4113340adf6 +#: 4b043535c01c46da8e6071a9ea98c569 msgid "VR stick linear step (m/step). **Startup only**." msgstr "VR 摇杆线位移步进(m/step)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 8d53e6e825fa4e06a78c12d58fd4c956 +#: 0bbbce2e85e74cf197de5ac77b506d09 msgid "`vr_thumbstick_angular_scale`" msgstr "`vr_thumbstick_angular_scale`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: f679df3d91bf452d8defae6174c93bfa +#: dfa59d4b62c340d084a311b9279e54b6 msgid "`0.05`" msgstr "`0.05`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 02f840d1d0de45e88d57a7976aa3b477 +#: 1cac0a587867490cb1c0e3d37b056fad msgid "VR stick angular step (rad/step). **Startup only**." msgstr "VR 摇杆角位移步进(rad/step)" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: e3d55dc6695144259773ce69c343dd48 +#: ef77601e5dd9475aa4a673ee34b324d2 msgid "`enable_vr`" msgstr "`enable_vr`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 6f43670dc86143b79326801476564446 +#: db0c70d2f59a42aa8c73c9cd0930e1cf msgid "`false` in `default.yaml`; C++ declare `true`" msgstr "`default.yaml` 为 `false`;C++ declare 为 `true`" #: ../../source/4-reference/controllers/8-ros2_parameters.md:5 -#: 8febc6ee6fe341709fd5727fcaa28320 +#: d424012f63b74e5f8ecd152141bb9efc msgid "" "Enable VR handler. Launch YAML overrides the C++ default. **Startup " "only**." msgstr "是否启用 VR 处理。Launch YAML 会覆盖 C++ 默认值" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:168 -#: 7966a80f18bc497d8c4c637c728b9804 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:210 +#: b60c5097923449a6bb5584c54cf6f9e5 msgid "OCS2 WBC Controller" msgstr "OCS2 WBC Controller" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:170 -#: 4995986b675e4e348ac2efbcc1e479e9 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:212 +#: 0606e2554b394e3faaf16a567ecff353 msgid "" "`controller/ocs2_wbc_controller` is a **private** submodule. Parameter " "names after access: that package README. Public launch: `ros2 launch " @@ -1369,8 +1595,8 @@ msgstr "" "launch ocs2_arm_controller full_body.launch.py` — [OCS2 WBC " "Controller](3-ocs2_wbc.md)。额外坐标系 `body_frame` 按 #120 的 target-manager 说明为" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:172 -#: b0f8668bb26b446697e342bacdf0c68a +#: ../../source/4-reference/controllers/8-ros2_parameters.md:214 +#: 101f047176404978b78082b8305a6089 msgid "" "Public YAML may still list an `ocs2_wbc_controller:` block (Lift 2S " "`home_3` / `home_4`; Taku on `feature/agilex`). Treat those keys as " @@ -1379,13 +1605,13 @@ msgstr "" "公开 YAML 仍可能有 `ocs2_wbc_controller:` 块(Lift 2S 的 `home_3` / " "`home_4`;`feature/agilex` 上的 Taku)。把这些键当作机型 overlay;参数清单以私有 README 为准。" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:174 -#: 0e96c5a69f0f43838636f7a1244b8558 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:216 +#: 7a486d74fbdc47e9bb5d444c1a80a97a msgid "Related" msgstr "相关" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:176 -#: e982ede2628e4bdc967700f1627b27dc +#: ../../source/4-reference/controllers/8-ros2_parameters.md:218 +#: 5a153611983145a19ec902ef0ef6a83f msgid "" "[Configure ROS 2 controller " "parameters](../../2-how_to/4-controllers/12-ros2_parameters.md)" @@ -1393,35 +1619,35 @@ msgstr "" "[Configure ROS 2 controller " "parameters](../../2-how_to/4-controllers/12-ros2_parameters.md)" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:177 -#: 6ac2d5f594d84be180d2e258e86e65f3 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:219 +#: 967d4e5f92a84465ad65dc69038fa28f msgid "" "[Hardware Interfaces](../hardware/0-index.md) — per-driver `` " "tables" msgstr "[驱动层](../hardware/0-index.md) — 各驱动页 `` 表" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:178 -#: bb3959783253404fb56382fb5bae5019 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:220 +#: 378743dc472a400d8eb48926fc33fc5b msgid "[Basic Joint Controller](7-basic_joint_controller.md)" msgstr "[Basic Joint Controller](7-basic_joint_controller.md)" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:179 -#: 7f6fe3eacc2e428e898f5bf86780d0f2 +#: ../../source/4-reference/controllers/8-ros2_parameters.md:221 +#: d2f0cc92ecf949aaa395b3e6c25ac9a5 msgid "[OCS2 Arm Controller](2-ocs2_arm_controller.md)" msgstr "[OCS2 Arm Controller](2-ocs2_arm_controller.md)" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:180 -#: dd55eb73a4634d46a9e0042d921c8a6a +#: ../../source/4-reference/controllers/8-ros2_parameters.md:222 +#: 7e5fbc73ea9d4123b64cfed5c363d03a msgid "[Adaptive Gripper Controller](6-gripper_teleop_plugins.md)" msgstr "[Adaptive Gripper Controller](6-gripper_teleop_plugins.md)" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:181 -#: ba8042b7b9df464bb8150ea28d99a6ee +#: ../../source/4-reference/controllers/8-ros2_parameters.md:223 +#: d61b6ffc4e1341378776079a06d05adc msgid "[OCS2 WBC Controller](3-ocs2_wbc.md)" msgstr "[OCS2 WBC Controller](3-ocs2_wbc.md)" -#: ../../source/4-reference/controllers/8-ros2_parameters.md:182 -#: dbb4a28c0f6d4e5fbb383ec4055afb6e +#: ../../source/4-reference/controllers/8-ros2_parameters.md:224 +#: 1ae1f68c6eba4cf9b0477d184a66ad65 msgid "[FSM and Topics](../../3-concepts/4-fsm_and_topics.md)" msgstr "[FSM 与话题](../../3-concepts/4-fsm_and_topics.md)" diff --git a/source/2-how_to/4-controllers/12-ros2_parameters.md b/source/2-how_to/4-controllers/12-ros2_parameters.md index 64a1183..ad0ec61 100644 --- a/source/2-how_to/4-controllers/12-ros2_parameters.md +++ b/source/2-how_to/4-controllers/12-ros2_parameters.md @@ -65,6 +65,8 @@ Unload and reload the controller to change these. One place for behavior that several controllers share in `libraries/arms_controller_common/`. MoveJ YAML keys are on the [Basic Joint Controller](../../4-reference/controllers/8-ros2_parameters.md) parameter table (the primary MoveJ page). **OCS2 Arm Controller** README FSM is HOME / HOLD / OCS2; it constructs `StateMoveJ` for canonical command `4` (and IK MoveL when `lina_planning` is present) but does not treat MoveJ as a README first-class mode. +Shared FSM names on the reference page (Home, Hold, and which section holds the MoveJ table): [Shared FSM parameters](../../4-reference/controllers/8-ros2_parameters.md#shared-fsm-parameters). + 运控 layering (controller vs hardware interface, 分体 vs 全身) stays on the existing pages — [Terminology](../../3-concepts/8-terminology.md), [ros2_control here](../../3-concepts/1-ros2_control_here.md), [分体控制 vs 全身控制](../../3-concepts/7-split_vs_wbc.md), [Hardware Interfaces](../../4-reference/hardware/0-index.md). The internal Feishu 运控架构图 is whiteboard-only and is not redrawn here. ### `/fsm_command` value `3` diff --git a/source/4-reference/controllers/8-ros2_parameters.md b/source/4-reference/controllers/8-ros2_parameters.md index 635ff1d..bdcd7bd 100644 --- a/source/4-reference/controllers/8-ros2_parameters.md +++ b/source/4-reference/controllers/8-ros2_parameters.md @@ -20,6 +20,40 @@ Three columns: **Parameter**, **Type / default**, **Meaning** (the **When** tag `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`. +## Shared FSM parameters + +**Basic Joint Controller** and **OCS2 Arm Controller** both use `libraries/arms_controller_common/` (`StateHome`, `StateHold`, `StateMoveJ`). This section indexes those shared ROS 2 names. Package-specific keys, and a second copy of the Hold rows, stay in the controller sections below. Fuller prose: [Shared mechanisms](../../2-how_to/4-controllers/12-ros2_parameters.md#shared-mechanisms). + +Separate lists on this page: [framework-common parameters](../../2-how_to/4-controllers/12-ros2_parameters.md#framework-common-parameters) (`joints`, `update_rate`, `command_interfaces`, `state_interfaces`, optional `command_prefix`); [Adaptive Gripper Controller](#adaptive-gripper-controller) (`joint` and the force keys); [arms_target_manager](#arms-target-manager) (command node). [OCS2 WBC Controller](#ocs2-wbc-controller) names are the private `ocs2-wbc-controller` README after access. At pin [`9a1da3ba`](https://github.com/fiveages-sim/arms_ros2_control/tree/9a1da3ba3747b3042866422c2269c1d49bb02f48) the public tree’s Home / Hold `auto_declare` calls are in Basic Joint and OCS2 Arm, so this index stops at those two controllers. Waist keys stay in each controller section (only `waist_lifting_duration` is **Runtime**). + +### Home (`StateHome`) + +Both controllers pass `auto_declare` into `StateHome::init`, which reads `home_1` … `home_10` from YAML overrides and stops at the first missing name. They also `auto_declare` `home_duration`, `home_interpolation_type` (`"linear"`), `home_tanh_scale`, and `switch_command_base`. The `StateHome` constructor calls `declare_parameter` for `home_max_velocity`, `home_max_acceleration`, and `home_max_jerk` when those names are absent (defaults `2.0` / `4.0` / `20.0`). The common README lists those limits; the Basic Joint §3 YAML example omits them. Same defaults and **When** tags: [shared Home](../../2-how_to/4-controllers/12-ros2_parameters.md#home-statehome). OCS2-only `home_pos` / `rest_pos` are rows on the [OCS2 Arm Controller](#ocs2-arm-controller) table. + +| Parameter | Type / default | Meaning | +|-----------|----------------|---------| +| `home_1` … `home_10` | double[] / from YAML (`home_1` required) | Preset configurations. **Startup only** (`StateHome::init`; not re-read). | +| `home_duration` | double / `3.0` | Interpolation duration (s). **Runtime** (next HOME enter or config switch). | +| `home_interpolation_type` | string / `"linear"` | `"tanh"` \| `"linear"` \| `"doubles"` \| `"none"` (Home has no `"servo"`). **Runtime**. | +| `home_tanh_scale` | double / `3.0` | tanh scale. **Runtime**. | +| `home_max_velocity` | double / `2.0` | Speed limit. **Runtime**. | +| `home_max_acceleration` | double / `4.0` | Acceleration limit. **Runtime**. | +| `home_max_jerk` | double / `20.0` | Jerk limit. **Runtime**. | +| `switch_command_base` | integer / `100` | HOME config switching. **Startup only** (constructor). | + +### Hold (`StateHold`) + +Both controllers `auto_declare` these keys (default `0.1`) and use `arms_controller_common::StateHold`. The same rows: [Basic Joint Hold](#basic-joint-hold) and [OCS2 Arm Hold](#ocs2-arm-hold). Enter and each HOLD `run`: [shared Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-statehold). MIX HOLD impedance (`default_gains`) stays on the OCS2 Arm table. + +| Parameter | Type / default | Meaning | +|-----------|----------------|---------| +| `hold_first_check_position_threshold` | double / `0.1` | First HOLD check after enter (measured vs hold targets). If any joint exceeds this, retarget hold to current measured positions to avoid a startup jump, then mark the first check passed. `≤ 0` skips the first check. **Runtime**. | +| `hold_position_threshold` | double / `0.1` | After the first check has passed, if measured vs hold target exceeds this, retarget hold to current measured positions. `≤ 0` disables automatic adjustment. **Runtime**. | + +### MoveJ (`StateMoveJ`) + +The primary MoveJ parameter table is [Basic Joint → MoveJ](#basic-joint-movej). **OCS2 Arm Controller** declare-time deltas against that table are `movej_interpolation_type` `"linear"` and `movej_trajectory_blend_ratio` `0.2`, stated on the [OCS2 Arm Controller](#ocs2-arm-controller) section. + (basic-joint-controller)= ## Basic Joint Controller @@ -27,6 +61,7 @@ Plugin `basic_joint_controller/BasicJointController`. Also declares the [framewo This is the **primary MoveJ parameter table**. 灵巧手 uses `target_command_*` on this controller (not **Adaptive Gripper Controller**). +(basic-joint-movej)= ### 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. @@ -79,6 +114,7 @@ Only `waist_lifting_duration` is **Runtime**. Type, speed triples, kinematics, a 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`](https://github.com/fiveages-sim/robot-descriptions-arx/blob/main/arx_lift2s_description/config/ros2_control/ros2_controllers.yaml). +(basic-joint-hold)= ### Hold `arms_controller_common::StateHold` keys. Fuller prose and enter/`run` behavior: [shared Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-statehold). @@ -88,6 +124,7 @@ Lift 2S example (`body_joint_controller`): `waist_lifting_enabled: true`, `waist | `hold_first_check_position_threshold` | double / `0.1` | First HOLD check after enter (measured vs hold targets). If any joint exceeds this, retarget hold to current measured positions to avoid a startup jump, then mark the first check passed. `≤ 0` skips the first check. **Runtime**. | | `hold_position_threshold` | double / `0.1` | After the first check has passed, if measured vs hold target exceeds this, retarget hold to current measured positions. `≤ 0` disables automatic adjustment. **Runtime**. | +(adaptive-gripper-controller)= ## Adaptive Gripper Controller 夹爪. Plugin `adaptive_gripper_controller/AdaptiveGripperController`. README [配置参数](https://github.com/fiveages-sim/arms_ros2_control/blob/e1b7a147effca2f29f7cced0b2942837b096c1ff/controller/adaptive_gripper_controller/README.md). Command channels: [Adaptive Gripper Controller](6-gripper_teleop_plugins.md). Open/close limits come from `/robot_description`. @@ -101,6 +138,7 @@ Uses `joint` (singular), not `joints`. `update_rate` and ControllerInterface com | `force_threshold` | double / `0.1` | Effort magnitude that triggers feedback. **Startup only**. | | `force_feedback_ratio` | double / `0.5` | After trigger: `0.0` stop here, `1.0` continue to original target. **Startup only**. | +(ocs2-arm-controller)= ## OCS2 Arm Controller Plugin `ocs2_arm_controller/Ocs2ArmController`. Also declares the [framework-common keys](../../2-how_to/4-controllers/12-ros2_parameters.md#framework-common-parameters), the [shared Home](../../2-how_to/4-controllers/12-ros2_parameters.md#home-statehome) names, and the [shared Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-statehold) keys. README [#120](https://github.com/fiveages-sim/arms_ros2_control/blob/e1b7a147effca2f29f7cced0b2942837b096c1ff/controller/ocs2_arm_controller/README.md). FSM / launch: [OCS2 Arm Controller](2-ocs2_arm_controller.md). Public YAML: [`cr5_description/.../ros2_controllers.yaml`](https://github.com/fiveages-sim/robot-descriptions-dobot/blob/main/cr5_description/config/ros2_control/ros2_controllers.yaml). Optional dual-arm overlay on `robot_descriptions` **`feature/agilex` only**: [`taku_description/.../ros2_controllers.yaml`](https://github.com/fiveages-sim/robot_descriptions/blob/feature/agilex/humanoid/Dyna/taku_description/config/ros2_control/ros2_controllers.yaml). @@ -132,6 +170,7 @@ Older README names that are **not** parameters at this pin: `zero_pos` (use `res YAML frame overrides are injected in memory at Interface construction. +(ocs2-arm-hold)= ### Hold Same `StateHold` keys as Basic Joint. Fuller prose: [shared Hold](../../2-how_to/4-controllers/12-ros2_parameters.md#hold-statehold). MIX HOLD impedance (`default_gains`) stays in the table above. @@ -141,6 +180,7 @@ Same `StateHold` keys as Basic Joint. Fuller prose: [shared Hold](../../2-how_to | `hold_first_check_position_threshold` | double / `0.1` | First HOLD check after enter (measured vs hold targets). If any joint exceeds this, retarget hold to current measured positions to avoid a startup jump, then mark the first check passed. `≤ 0` skips the first check. **Runtime**. | | `hold_position_threshold` | double / `0.1` | After the first check has passed, if measured vs hold target exceeds this, retarget hold to current measured positions. `≤ 0` disables automatic adjustment. **Runtime**. | +(arms-target-manager)= ## arms_target_manager This is a **command node**, not a ros2_control controller. README: [#120](https://github.com/fiveages-sim/arms_ros2_control/blob/e1b7a147effca2f29f7cced0b2942837b096c1ff/command/arms_target_manager/README.md). Cartesian topics: [FSM and Topics](../../3-concepts/4-fsm_and_topics.md), [Adaptive Gripper Controller](6-gripper_teleop_plugins.md). @@ -165,6 +205,7 @@ YAML: package [`config/default.yaml`](https://github.com/fiveages-sim/arms_ros2_ | `vr_thumbstick_angular_scale` | `0.05` | VR stick angular step (rad/step). **Startup only**. | | `enable_vr` | `false` in `default.yaml`; C++ declare `true` | Enable VR handler. Launch YAML overrides the C++ default. **Startup only**. | +(ocs2-wbc-controller)= ## 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](3-ocs2_wbc.md). Extra frame `body_frame` is **Startup only** per the target-manager notes in #120. diff --git a/source/conf.py b/source/conf.py index 196fe7a..8a4035c 100644 --- a/source/conf.py +++ b/source/conf.py @@ -118,5 +118,26 @@ def _inject_language_switcher( def setup(app: Any) -> dict[str, Any]: + from sphinx.transforms import SphinxTransform + + class RestoreMystSlugs(SphinxTransform): + # MyST stores heading anchors in env.metadata[docname]["myst_slugs"]. + # sphinx-intl republishes each translated snippet under the same + # docname, and a snippet that itself contains a heading replaces that + # map. zh_CN cross-doc ``#anchors`` then fail under ``-W`` even though + # the HTML id is still on the page. Copy the full map back after Locale. + default_priority = 30 # after sphinx.transforms.i18n.Locale (20) + + def apply(self, **kwargs: Any) -> None: + source = str(self.document.get("source") or "") + if "" in source: + return + slugs = getattr(self.document, "myst_slugs", None) + if not slugs: + return + meta = self.env.metadata.setdefault(self.env.docname, {}) + meta["myst_slugs"] = slugs + + app.add_transform(RestoreMystSlugs) app.connect("html-page-context", _inject_language_switcher) return {"parallel_read_safe": True}