☰
机械臂只能规划不能执行的问题
2026/9/27 23:01:40 网站建设 项目流程

机械臂只能规划不能执行的问题

moveit_controllers.yaml中

arm_controller: type: FollowJointTrajectory joints: - joint1 - joint2 - joint3 - joint4 - joint5 - joint6

这个type是一个数据类型

ros2_controllers.yaml中

arm_controller: type: joint_trajectory_controller/JointTrajectoryController

这个type是控制插件的类型

解决方案:

加action的命名空间

arm_controller: type: FollowJointTrajectory joints: - joint1 - joint2 - joint3 - joint4 - joint5 - joint6 action_ns: follow_joint_trajectory

原因:

关系是这样的

JointTrajectoryController 是 ros2_control 里的一个控制器插件,而 FollowJointTrajectory 是它提供出来的 ROS 2 Action 接口数据类型。

action_ns 主要取决于使用的控制插件类型(比如 JointTrajectoryController)所提供的 Action 接口名

<controller_name>/follow_joint_trajectory[control_msgs::action::FollowJointTrajectory]

这是该 Action 的名称格式。<controller_name> 是一个占位符,需要替换成实际控制器的名字。

例如上面的控制器名称arm_controller,

那么这里的实际名称就arm_controller/follow_joint_trajectory。

方括号里的 control_msgs::action::FollowJointTrajectory 是这个 Action 的数据类型(消息接口),它规定了发送的指令和接收的反馈长什么样

所以是moveit_controllers缺少“follow_joint_trajectory”这一段Action名称空间

以下是官方文档

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询