用途:在 Webots 中实现和调试标准机器人控制器,重点处理控制器进程模型、控制循环时序、设备查找、传感器/执行器数据流以及各语言的初始化配置。核心是把仿真循环当作主要控制结构。
主要能力:说明控制器作为独立进程运行,每个 Robot 节点通过 controller 字段绑定一个控制器,源码放在 controllers/<controller_name>/ 下并按语言命名。给出各语言的生命周期规则:先初始化运行时(Python 的 Robot()、C 的 wb_robot_init()),再循环调用步进函数,步进返回 -1 时干净退出。提供 Python 与 C 的仿真循环骨架、设备访问模式(robot.getDevice / wb_robot_get_device,名称需与 .wbt 或 .proto 中一致)、传感器启用与读取时序、执行器位置/速度/力矩控制方式,以及控制器参数读取(controllerArgs、sys.argv、argc/argv)。还包含开发调试工作流:内置编辑器、外部 IDE、Makefile 编译、gdb/lldb 附加调试、extern 控制器。
必要用法:控制步长须为 WorldInfo.basicTimeStep 的整数倍;传感器需先 enable 再读取,且至少步进一次后数据才有效;执行器命令在下一次步进边界生效。
限制与常见陷阱:一次步进前多次 setPosition 只有最后一次生效;无步进时重复 getValue 不会刷新;启用后首个循环迭代不应立即使用传感器值;控制周期须为 basicTimeStep 的整数倍。需要精确 API 签名、语言映射、Makefile 模板或终止语义时,查阅 references/controller_api_reference.md。具体收费、平台与效果信息暂未提供。