This paper introduces a novel modular architecture for ROS2 that decouples the logic required to acquire, validate, and interpolate references from the control laws that track them. The design includes a dedicated component, named Reference Generator, that receives references, in the form of either single points or trajectories, from external nodes (e.g., planners), and writes single-point references at the controller's sampling period via the existing ros2_control chaining mechanism to downstream controllers. This separation removes duplicated reference-handling code from controllers and improves reusability across robot platforms. We implement two reference generators: one for handling joint-space references and one for Cartesian references, along with a set of new controllers (PD with gravity compensation, Cartesian pose, and admittance controllers) and validate the approach on simulated and real Universal Robots and Franka Emika manipulators. Results show that (i) references are tracked reliably in all tested scenarios, (ii) reference generators reduce duplicated reference-handling code across chained controllers to favor the construction and reuse of complex controller pipelines, and (iii) controller implementations remain focused only on control laws.
翻译:本文提出了一种新颖的ROS2模块化架构,该架构将获取、验证与插值参考信号的逻辑与跟踪这些参考信号的控制律进行解耦。该设计包含一个名为参考生成器的专用组件,该组件从外部节点(如规划器)接收单点或轨迹形式的参考信号,并通过现有的ros2_control链式机制,以控制器采样周期向下游控制器写入单点参考信号。这种分离消除了控制器中重复的参考信号处理代码,并提高了跨机器人平台的可复用性。我们实现了两种参考生成器:一种用于处理关节空间参考信号,另一种用于笛卡尔空间参考信号,同时开发了一套新控制器(带重力补偿的PD控制器、笛卡尔位姿控制器和导纳控制器),并在仿真及真实的Universal Robots与Franka Emika机械臂上验证了该方法。结果表明:(i) 在所有测试场景中参考信号均能被可靠跟踪,(ii) 参考生成器减少了链式控制器间重复的参考信号处理代码,有利于复杂控制器管线的构建与复用,(iii) 控制器实现得以仅专注于控制律本身。