更换系统后无法catkin_make universal robot 包

本文介绍了一种在ROS环境中遇到的URDriver权限错误,并详细解释了如何通过调整git配置、重新clone项目、安装依赖和执行catkin_make命令来解决该问题。

1、终端出现的错误如下:

/home/lx/catkin_workspace/build/universal_robot/ur_driver/setup_custom_pythonpath.sh: 4: exec: /home/lx/catkin_workspace/src/universal_robot/ur_driver/cfg/URDriver.cfg: Permission denied
make[2]: *** [/home/lx/catkin_workspace/devel/include/ur_driver/URDriverConfig.h] Error 126
make[1]: *** [universal_robot/ur_driver/CMakeFiles/ur_driver_gencfg.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 10%] Built target ur5_kin
[ 13%] Built target add_collision_objct
[ 16%] Built target check_collision
make: *** [all] Error 2

2、问题原因及解决办法

这个问题的出现是本地git命令在使用回车键后造成的,执行

git config --global core.autocrlf input

命令,完成切换。

使用git命令重新把universal_robot包clone到workspace/src文件下。

git clone https://github.com/ros-industrial/universal_robot.git

在ws/下再执行命令

rosdep install --from-paths src --ignore-src --rosdistro $DISTRO
安装工作空间的依赖文件。

执行catkin_make.

<think>嗯,用户遇到了rosrun找不到可执行文件的问题,具体是运行`rosrun ur_planning moveitServer.py`时报错。我之前在引用里看到过类似的问题,比如引用[1]和引用[2],都是关于路径或构建的问题。需要先理清楚可能的原因。 首先,用户提到`.py`文件无法被rosrun识别,可能是因为文件权限问题。ROS在执行Python脚本时需要它们有可执行权限。所以第一步应该检查moveitServer.py是否有执行权限,如果没有的话,用`chmod +x`命令添加权限。 接下来,如果权限没问题,可能问题出在package.xml文件。ROS在构建时,需要确保Python脚本被正确安装。通常需要在package.xml中添加`<exec_depend>python3-your-package</exec_depend>`之类的依赖,同时确保CMakeLists.txt中有`catkin_install_python(PROGRAMS scripts/moveitServer.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})`这样的配置,这样安装时才会把脚本放到正确的位置。 然后,用户可能需要重新构建工作空间。有时候即使修改了配置文件,如果没有重新构建,ROS还是找不到可执行文件。应该使用`catkin_make`或者`catkin build`来重新构建。但根据引用[2]提到的案例,有时候构建过程中可能会有其他依赖问题,比如缺少某些ROS,这时候需要安装缺失的依赖,例如用`sudo apt-get install ros-noetic-moveit`之类的命令。 另外,还要检查脚本的实际路径是否正确。比如,脚本是否真的放在ur_planning的scripts目录下。如果路径不对,ROS自然找不到。还有,检查名是否正确,有时候名和目录名可能有拼写错误。 还有可能的情况是Python的环境问题,比如Python版本不兼容,或者没有正确声明Python解释器。在Python脚本的第一行应该加上`#!/usr/bin/env python3`,确保使用正确的Python版本。如果用户混合使用了Python2和Python3,可能需要调整这个声明。 最后,如果以上步骤都检查过了还是有问题,可能需要查看具体的构建日志,看看是否有其他错误导致没有被正确安装。有时候构建过程中的错误会被忽略,导致部分文件没有被正确部署。 总结下来,解决步骤应该是:检查权限→检查安装配置→重新构建→检查路径和名→检查Python环境和脚本声明→处理依赖问题。根据用户提供的引用,尤其是引用[2]中提到的catkin build的问题,可能需要特别关注构建步骤是否正确完成,以及是否有依赖未安装。</think>针对ROS运行Python脚本报错"Couldn't find executable"的问题,可通过以下步骤排查解决: ### 一、检查文件权限 1. 确认Python脚本具有可执行权限: ```bash chmod +x ~/catkin_ws/src/ur_planning/scripts/moveitServer.py ``` 2. 检查文件属性是否显示为可执行: ```bash ls -l ~/catkin_ws/src/ur_planning/scripts/moveitServer.py ``` ### 二、配置ROS安装规则 1. 在`package.xml`中添加Python依赖声明: ```xml <exec_depend>python3-numpy</exec_depend> <exec_depend>rospy</exec_depend> ``` 2. 在`CMakeLists.txt`添加安装指令: ```cmake catkin_install_python( PROGRAMS scripts/moveitServer.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) ``` ### 三、重新构建工作空间 ```bash cd ~/catkin_ws catkin_make --force-cmake # 强制重新构建 source devel/setup.bash # 更新环境变量 ``` ### 四、验证安装路径 1. 检查编译生成的可执行文件路径: ```bash ls ~/catkin_ws/devel/lib/ur_planning/ ``` 应含`moveitServer.py`文件[^1] ### 五、处理依赖问题 若出现类似引用[2]中的构建错误: 1. 安装缺失的MoveIt依赖: ```bash sudo apt-get install ros-noetic-moveit-msgs ros-noetic-moveit-core ``` 2. 清除旧构建产物后重新编译: ```bash cd ~/catkin_ws rm -rf build devel catkin_make ``` ### 六、Python环境验证 1. 检查脚本首行的解释器声明: ```python #!/usr/bin/env python3 ``` 2. 测试直接运行脚本: ```bash python3 ~/catkin_ws/src/ur_planning/scripts/moveitServer.py ``` ### 附:典型错误排查流程 $$ \begin{cases} \text{文件存在但无权限} \rightarrow \text{chmod +x} \\ \text{路径配置错误} \rightarrow \text{检查CMakeLists.txt} \\ \text{依赖缺失} \rightarrow \text{apt安装相关} \\ \text{Python环境冲突} \rightarrow \text{检查shebang声明} \end{cases} $$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值