MOVEIT中规划总是出现ABORTED: No motion plan found. No execution attempted.

在使用MOVEIT进行机器人运动规划时,遇到规划总是失败的问题,错误提示为'ABORTED: No motion plan found. No execution attempted.'。尝试了更改目标点、调整规划算法和逆运动学插件,但问题未解决。最终发现是URDF文件中硬件接口配置错误,将EffortJointInterface改为PositionJointInterface后,规划成功执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个鼠标、一把键盘,一个bug找半年。。。。。。

SW导出了URDF文件,配置助手生成了moveit_config文件,Rviz中拖动目标球也实现了位置到达拖动位置的轨迹规划,本以为完事大吉,但是当通过C++ interface的方式传递目标点的时候,问题来了。

geometry_msgs::Quaternion q;
  double roll=-3.127;
  double pitch=-0.512;
  double yaw=1.559;
 q=tf::createQuaternionMsgFromRollPitchYaw(roll,pitch,yaw);
	geometry_msgs::Pose target_pose;
	target_pose.position.x = 0.480988469635;
	target_pose.position.y = 3.28034542767;
	target_pose.position.z = -0.037;
	target_pose.orientation.x =  q.x;
	target_pose.orientation.y =  q.y;
	target_pose.orientation.z = q.z;    //设置末端的抓取姿态即末端朝向
	target_pose.orientation.w = q.w ; // 四元数

用这种方式将数据传递给Moveit执行的时候,moveit执行不了,不管设置规划次数多少,总是规划失败?抛出如下异常

ABORTED: No motion plan found. No execution attempted.

看到一些文章中提到,你设定的目标点根本就是机械臂到达不了的点,为避免这个情况,想到了一个简单粗暴的方法,直接在Rviz中拖动末端到一个新的位置,点击execute之后,新打开一个终端

在终端中依次输入:

rosrun moveit_commander moveit_command
<think>嗯,用户遇到了在Ubuntu系统下运行`moveit2_install.sh`脚本时出现“没有那个文件或目录”的问题。我需要根据提供的引用资料和系统指令来帮助解决这个问题。首先,用户提到的错误通常有几个可能的原因,比如文件权限、路径错误或者架构兼容性问题。 根据引用[1]和[3],在64位Ubuntu系统下运行某些32位可执行文件可能会因为缺少库文件而报错。但这里的情况是脚本文件,可能不需要考虑架构问题,但需要确认是否有执行权限。用户可能没有给脚本添加可执行权限,导致无法运行,所以第一步应该检查权限,使用`chmod +x moveit2_install.sh`命令。 然后,用户可能没有正确指定文件路径。如果当前目录不在脚本所在的路径下,直接使用`./moveit2_install.sh`会找不到文件。需要确认用户是否在脚本所在的目录下执行,或者使用绝对路径来运行。 另外,引用[2]中提到source命令的使用,虽然这里的问题不是source而是执行脚本,但可能涉及到环境变量的问题。不过更可能的是路径或权限的问题。 还需要检查脚本的第一行是否正确指定了解释器,比如`#!/bin/bash`,如果没有的话,可能导致执行问题。不过通常错误提示会是解释器的问题,而不是找不到文件,但这一步还是值得确认。 此外,可能用户下载的脚本文件名有误,或者文件本身不存在,虽然用户说确实存在,但需要再次确认文件名是否正确,包括大小写和扩展名是否正确,是否有拼写错误。 总结可能的解决步骤:检查文件是否存在,确认执行权限,检查路径是否正确,确认脚本内容是否完整,以及检查是否依赖其他库或工具。根据这些思路,分步骤引导用户排查问题。</think>### 解决 'moveit2_install.sh: 没有那个文件或目录' 的逐步方法 #### 1. 确认文件存在性与路径 - **检查当前目录**:使用 `pwd` 确认终端当前路径,并通过 `ls -l` 查看目录下是否有 `moveit2_install.sh` 文件。若文件在子目录中,需使用完整路径如 `./subdir/moveit2_install.sh`。 - **验证文件名拼写**:Linux 对文件名大小写敏感,检查是否拼写为 `Moveit2_install.sh` 或其他变体[^3]。 #### 2. 添加可执行权限 若文件存在但无权限,运行: ```bash chmod +x moveit2_install.sh ``` 此命令赋予脚本可执行权限(类似引用[3]中提到的权限问题)。 #### 3. 检查系统兼容性 - **32/64位兼容性**:若脚本是二进制文件(非文本脚本),需确认其是否支持当前系统架构。可通过 `file moveit2_install.sh` 查看文件类型。若为32位程序,需安装支持库: ```bash sudo apt install libc6-i386 ``` #### 4. 指定解释器直接运行 若 `./moveit2_install.sh` 仍报错,尝试显式调用解释器: ```bash bash moveit2_install.sh ``` 此方法绕过文件权限验证,直接通过 `bash` 执行脚本。 #### 5. 检查脚本内容完整性 - 使用 `cat moveit2_install.sh` 查看脚本内容,确认首行为 `#!/bin/bash`(或其他正确解释器路径)。 - 若脚本从网络下载,可能因下载不完整导致损坏,重新下载并校验哈希值。 #### 6. 依赖项验证 部分脚本依赖特定工具(如 `wget`、`git`),运行前需安装: ```bash sudo apt update && sudo apt install -y wget git ``` --- ### 相关问题 1. **如何调试 Linux 下脚本执行权限问题?** 2. **如何判断文件是否适用于当前系统架构?** 3. **在 Ubuntu 中如何修复损坏的脚本文件?** --- ### 引用说明 - 步骤3中关于32/64位兼容性问题参考了Ubuntu系统下缺失库文件的典型解决方案[^1]。 - 步骤4通过显式调用解释器的方法借鉴了环境变量配置错误时的调试思路[^2]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值