快速 GPU 规划受扭矩限制且无碰撞的机器人运动

快速 GPU 规划受扭矩限制且无碰撞的机器人运动

Balakumar Sundaralingam, Adithyavairavan Murali, Stan Birchfield

2 分钟阅读•2026年11月5日

快速操作要求运动既能快速规划,也能快速执行。运动规划在杂乱环境中寻找无碰撞路径方面已取得长足进展。执行这些路径时,还必须安排满足速度、加速度和执行器扭矩限制的时间参数。携带的负载会改变动力学,原本可行的运动可能因此变得不可行。此外,仅凭几何路径长度无法确定执行时间:在执行器约束下,较短的路径也可能需要更慢的运动。因此,高效运动规划既要考虑生成轨迹的计算成本,也要考虑轨迹的执行时间。

已有研究证明了并行规划、平滑轨迹表示和高效机器人计算的优势。然而,规划可执行运动仍需在轨迹优化过程中反复进行碰撞与动力学评估。要降低这项成本,既要减少优化迭代次数,也要降低每次迭代中的计算开销。执行时间则带来另一项挑战:统一缩放时间步长,无法沿着受限执行器随构型变化的路径重新分配时间。因此,高效的载荷感知规划需要灵活优化轨迹几何形状和时间参数,同时快速评估约束。

我们提出 cuRoboV2-Fast,这是一款单 GPU 规划器,可规划无碰撞、受扭矩限制的运动,同时降低规划延迟和执行时间。B 样条轨迹优化以更少的迭代细化几何形状,TimeOpt 则沿生成的固定路径优化行进速度。时间样条的局部支撑性可形成带状系统,从而实现高效 GPU 优化。必要时,系统会通过并行 GPU RRT 初始化路径;加速的机器人计算则降低细化成本。可微逆动力学纳入与负载相关的扭矩限制,并支持在携带物体发生变化时于运行时更新惯性参数。

这项工作围绕快速、可执行的运动规划提出了六项贡献:

  • 使用 B 样条进行无碰撞、载荷感知、受扭矩限制的轨迹优化;在收敛基准测试中,以 25 次初始迭代达到与 cuRoboV1 相当的效果,而 cuRoboV1 使用 125 次迭代。
  • GPU 加速的 TimeOpt 使用带状牛顿系统和原始–对偶预测–校正求解器,在固定路径上依据采样的速度、加速度、jerk 和扭矩边界优化时间参数。相较于统一细化时间步长,平均运动时长进一步缩短 15.7%;在 RTX 5090 上,有效 100 g 基准查询的平均耗时为 0.28 ms。
  • 加速机器人计算和可微逆动力学,支持无需重新编译即可更新负载。文中报告称,在 RTX 5090 和 Jetson AGX Orin 上,轨迹优化迭代速度快于 cuRoboV2;所提供文本未给出加速比数值。
  • 并行 GPU RRT 可在亚毫秒级完成路径初始化,平均耗时为 0.305 ms。在粗略碰撞检查下,文中报告称其速度快于 cuRoboV1 PRM 和 pRRTC;所提供文本未给出加速比数值。将约束验证与树扩展分开,可在不更改扩展内核的情况下增加检查。
  • 在 RTX 5090 上,集成管线处理 3 kg 负载时,平均运动规划时间为 4.4 ms。文中报告称其速度快于 cuRoboV2;所提供文本未给出加速比数值,且成功率相近。在 Jetson AGX Orin 上,cuRoboV2-Fast 的规划速度也快于 RTX 5090 上的 cuRoboV1 加 TOPPRA。
  • 基于立体相机的 YAM 抓取与放置管线在单个 GPU 上集成感知、抓取生成和运动规划。平均完整周期时间为 5.93 s,比 cuRoboV2 缩短 34.6%,其中规划仅占周期时间的 1.0%。

cuRoboV2-Fast 的实现已根据 Apache 2.0 许可证开源。

相关工作

cuRoboV2-Fast 中的 TimeOpt 采用相同的固定路径动力学简化方法,并直接优化平方速度的三次 B 样条表示,约束条件为采样的速度、加速度、jerk 和扭矩边界。每个采样点仅依赖 4 个时间控制量,因此可为原始–对偶预测–校正求解器构建带状牛顿系统。这种局部支撑性与并行约束评估使 GPU 优化效率更高;在 RTX 5090 上,有效 100 g 基准查询的 TimeOpt 平均延迟为 0.28 ms。

扭矩感知优化需要反复计算动力学及其导数,增加了这项工作的计算负担。GRiD 通过面向机器人的代码生成、稀疏性和 GPU 并行计算加速这些操作。本工作重点是直接计算优化损失的梯度,并将链式调度和惯性参数作为运行时数据提供。这避免了构建完整的动力学导数矩阵;当简化后的拓扑结构保持不变时,无需重新编译即可更新负载,同时仍可针对机器人维度进行专门优化。将这些方法与样条优化和几何路径初始化结合起来,即可在单个 GPU 上进行无碰撞、受扭矩限制的运动规划和抓取规划。

方法

该运动规划器结合了无碰撞路径初始化、B 样条优化、用于轨迹重定时的 TimeOpt、高效机器人计算以及可微逆动力学。规划首先细化直线初始路径,并在需要时调用 RRT。对于抓取接近和抬升等受约束运动,代价项会对偏离指定路径施加强惩罚。

使用 RRT 进行无碰撞路径初始化

该实现将树扩展组织为同步的并行扩展轮次。相比之下,pRRTC 让 GPU 区块反复进行异步采样和树扩展,并在每个区块内执行贪心连接步骤。最近节点内核将距离计算分配到已存储节点和关节坐标上,按区块处理树节点并归约结果,从而选出每个候选点的最近节点。在 pRRTC 中,每个线程先为部分节点计算完整距离,再进行区块级最小值归约。因此,两种规划器都对最近节点搜索进行了并行化,但采用了不同的工作分配方式。

系统会一并检查所有候选边上的采样状态,然后确定每条边的有效前缀。并行扫描为接受的端点分配互不重复的存储位置,从而支持并发插入,无需像 pRRTC 那样通过原子操作逐个预留位置。每一轮还会评估从另一棵树出发的有界扩展。这种组织方式将验证与扩展分开,因此无需更改扩展内核即可增加检查。复用已分配的缓冲区,并通过 CUDA 图重放扩展操作,可减少重复调度开销。找到路径后,系统会对其缩短,并拟合样条初始轨迹以供细化。

加速机器人计算

通过预先准备依赖拓扑的数据并在计算间共享中间结果,降低反复进行机器人计算的成本。GPU 张量运算用于识别每个关节的后代节点,以及对每个工具–执行器组合有贡献的关节。利用这些结构,正向运动学先并行计算局部连杆位姿,再按树的顺序通过共享内存合成世界位姿。所得变换可用于计算工具位姿和碰撞球,并支持雅可比矩阵评估。

自碰撞检查用于检测机器人连杆上的碰撞球是否重叠。cuRoboV1 会并行评估设定的球–球对,但当机器人以大量碰撞球表示时,检查数量可能带来较大开销。规划器根据当前球体位置和扩张半径,实时为每个连杆计算轴对齐包围盒(AABB)。这些边界在各连杆间并行构建,并存储在碰撞内核的共享内存中。如果两个连杆的 AABB 不重叠,就跳过这两个连杆之间的所有球–球检查。这种开销很低的剪枝方式可以大幅减少详细的配对测试,尤其适用于连杆间距较大的情况。每个 GPU 区块会为一个机器人状态合并剩余测试、代价归约和球体梯度计算。

扫掠式世界碰撞检查采用相同原理,剔除距离较远的长方体。首先利用包含球半径、激活裕量和相邻半线段的边界排除远处长方体。剩余的半扫掠在共同的轨迹点共享距离计算,并在一次旋转至世界坐标前合并各自的梯度。这样既减少了重复的几何计算,也保留了验证时选定的离散采样分辨率。

抓取规划集成

物体可以从多种位置和姿态抓取,因此抓取规划首先要选择要规划的目标位姿。给定一组候选抓取位姿后,逆运动学(IK)会求出可行的机器人构型,并根据位姿误差和与当前构型的距离进行排序。在所评估任务中,这足以完成抓取选择,因此无需在抓取位姿目标集合上进行轨迹优化,改用成本更低的 IK 求解即可。所选位姿会作为后续运动规划的目标;仅有 IK 可行性并不能证明机器人能沿无碰撞路径到达该位姿。

随后,规划器生成三段相连的运动:移动至相对所选抓取位姿有所偏移的预抓取位姿、沿抓取轴接近,以及抬升物体。预抓取运动由样条优化生成;需要绕过障碍物时,先用 RRT 初始化。接近和抬升则通过受约束的样条优化生成笛卡尔直线运动。每段运动都从上一段运动的终止状态开始,并调整碰撞设置以允许预期接触。另一次独立的规划调用会生成将已抓取物体无碰撞地转移至放置位姿的运动。

实验

评估涵盖路径初始化、受扭矩限制的轨迹优化、机器人计算以及抓取与放置规划。运动基准测试使用 Franka Panda(7-DoF);计算基准测试还包括 G1(29-DoF);操作任务使用 YAM。离线规划在 RTX 5090 上运行,另在 Jetson 上进行计算耗时测试;真实机器人部署使用 RTX 6000 Ada。

粗略检查的路径初始化

时间和路径长度统计基于 2,101 个各方法均成功的查询。规划时间包含原生捷径优化,但不包含 IK。所提出规划器的平均路径长度为 4.93 rad;相比之下,cuRoboV1 PRM 为 5.28 rad,cuRoboV2 PRM 为 3.70 rad,VAMP 为 5.00 rad,pRRTC 为 5.32 rad。

未通过粗略碰撞检查的路径会被拒绝。通过检查的路径将作为优化初始值,仍需进一步细化和验证。

轨迹优化收敛

初始预算固定为 25 次迭代,并比较 1 次或 2 次细化过程,每次细化分别使用 25、50 或 100 次迭代;时间步长缩减因子为 0.8。所有设置的成功率均保持在 93%。在所有设置下均有效的 93 个查询中,进行两次各 25 次迭代的细化,相较于仅进行初始优化,平均运动时长缩短 5.5%。加入 TimeOpt 后,总缩短幅度达到 20.3%;相对于细化后的轨迹,进一步缩短 15.7%。更长的细化计划使加入 TimeOpt 后的运动时长改善不到 0.2%。

在 cuRoboV2-Fast 的报告耗时测试和真实机器人部署中,规划器使用 50 次初始迭代,随后进行 1 次 25 次迭代的细化。相关括号中的细节未出现在所提供的文本中。

带负载的运动规划

完整管线根据起始状态和目标位姿,生成可执行的无碰撞、受扭矩限制运动。对于规划时未考虑扭矩限制的方法,会使用 TOPPRA 对轨迹进行后处理,沿固定路径调整时间参数。比较了四种管线:cuRoboV2-Fast、cuRoboV2、cuRoboV1 加 TOPPRA,以及 VAMP 加 TOPPRA。

在不同负载下,cuRoboV2-Fast 和 cuRoboV2 的成功率相近,且高于 cuRoboV1 加 TOPPRA 和 VAMP 加 TOPPRA。在最大负载下,所有方法的成功率均下降,其中两种 TOPPRA 基线降幅更大;cuRoboV2-Fast 的成功率仍比它们高 14.5–15.7 个百分点。

在所有负载下对所有方法均有效的查询中,cuRoboV2-Fast 的平均运动时长最短;在各负载的平均值上,相较于 cuRoboV2,运动时长缩短 5.8%。仅比较路径长度可能会误导对运动效率的判断。cuRoboV2-Fast 的平均关节空间路径比 cuRoboV1 加 TOPPRA 长 0.8–4.2%,但在各负载的平均值上,运动时长反而缩短 6.8%。

轨迹优化计算

cuRoboV2-Fast 通过更快的迭代和更小的迭代预算缩短轨迹优化时间。启用逆动力学后,每次迭代据报告在 RTX 5090 和 Jetson AGX Orin 上均快于 cuRoboV2;所提供的文本未给出加速比数值。

仿真规划实验

在 RTX 5090 上,通过一个仿真 YAM 抓取与放置任务比较 cuRoboV1、cuRoboV2 和 cuRoboV2-Fast:将五个立方体从杂乱布局整理到托盘中。规划包括抓取选择、预抓取、接近、抬升和转移。三种方法均完成了全部五个立方体;保存的抬升和转移轨迹也通过了独立的持物碰撞审计和负载扭矩审计。

在另一项仿真实验中,YAM 在固定的抓取和放置位置之间转移物体,负载从 100 g 变化到 800 g。更重的负载会改变优化后的运动:为满足关节 2 的扭矩限制,运动从关节 2 转移到关节 5,这体现了载荷感知规划如何根据负载调整路径。

展示负载相关运动规划的 YAM 负载对比

真实机器人部署

cuRoboV2-Fast 部署在 I2RT YAM 上,用于桌面清理和料箱拣选。一台 RTX 6000 Ada 运行 SceneFields、GraspGenX 和规划器。SceneFields 提供深度信息、检测结果和机器人掩码。它使用 5 mm 体素构建 TSDF,为 GraspGenX 提供物体表面信息;同时使用 20 mm 体素构建 ESDF,供规划器进行碰撞检查。

用于桌面清理和料箱拣选的真实机器人 YAM 部署

测得的关节反馈表明,cuRoboV2-Fast 在机械臂执行过程中更充分地利用了可用速度范围。与 cuRoboV2 相比,速度利用率达到 90–100% 的运动时间占比接近翻倍,而利用率低于 50% 的占比下降 21.7%。使用 cuRoboV2-Fast 时,99.6% 的运动时间内扭矩利用率低于 90%;两种方法记录的所有扭矩均未超出限制。即使规划结果满足速度约束,实际执行速度仍可能超过限制,这凸显了规划可执行运动时,除速度约束外也考虑扭矩约束的重要性。

运动时间中有更大比例处于较高速度,因此机械臂执行时间更短。所提供的论文文本在“Across a”之后结束,未包含这一结果的后续内容。

常见问题

cuRoboV2-Fast 优化什么? 它规划无碰撞、受扭矩限制的运动,在考虑负载相关动力学的同时优化轨迹几何形状和行进速度。

TimeOpt 如何缩短运动时长? 它在固定路径上优化平方速度的三次 B 样条表示,并满足采样的速度、加速度、jerk 和扭矩边界。

规划器如何初始化绕过障碍物的路径? 并行 GPU RRT 会检查候选边,并生成一条经缩短后拟合为样条初始轨迹的路径,供后续细化。

负载如何影响规划出的运动? 负载会改变动力学,也可能改变优化后的路径;在一项仿真 YAM 转移任务中,为满足关节 2 的扭矩限制,更重的负载使运动从关节 2 转移到关节 5。