rosrun 找不到对应文件的解决方法

在学习ROS时遇到一个问题,即在编译运行ROS程序时,rosrun命令无法找到对应的文件。问题出在.bashrc文件中环境变量设置时,source命令后面缺少了空格。修正这个空格后,保存并重新加载.bashrc,就能成功执行rosrun命令。这是一个常见的配置错误,解决方法是检查.bashrc文件中的环境变量设置是否正确。

最近在跟古月老师学习ros时,发现ros在编译运行程序时,rosrun找不到对应的文件
在这里插入图片描述
CMakeList配置也没问题,后来通过弹幕发现在设置环境变量的同个终端中执行rosrun命令可以找到文件。
在这里插入图片描述
也就是图中source命令行与最后一行rosrun命令行放在同一个终端执行。

但是该方法治标不治本,后来发现是在**.bashrc中手动加入环境变量时source后面少了一个空格**,如下图所示:
在这里插入图片描述
可以发现第二行source没有改变颜色,应该在其后面加上一个空格,如下所示:
在这里插入图片描述
改正后保存,编译运行时即可找到文件。

在ROS中,若出现`rosrun`显示不到命令的问题,可尝试以下方法解决: ### 检查环境变量设置 确保ROS环境变量已正确设置,可通过查看`~/.bashrc`文件来确认是否添加了ROS环境变量。一般来说,需要添加类似如下内容: ```bash source /opt/ros/<distro>/setup.bash ``` 其中`<distro>`是你所使用的ROS版本,如`melodic`、`noetic`等。添加后,使用以下命令使配置生效: ```bash source ~/.bashrc ``` ### 检查ROS工作空间 若使用了自定义的ROS工作空间,需要确保工作空间已正确编译并设置环境变量。在工作空间根目录下执行以下命令进行编译: ```bash catkin_make ``` 编译完成后,设置工作空间环境变量: ```bash source devel/setup.bash ``` ### 检查包和可执行文件是否存在 确保要运行的包和可执行文件确实存在于ROS环境中。可使用以下命令检查包是否存在: ```bash rospack find <package_name> ``` 若该命令能正常输出包的路径,则说明包存在;若提示不到包,则需要检查包是否正确安装或是否在工作空间中。 同时,要确保可执行文件已正确添加到包的`CMakeLists.txt`文件中。例如,在`CMakeLists.txt`中添加如下内容: ```cmake add_executable(<executable_name> src/<source_file>.cpp) target_link_libraries(<executable_name> ${catkin_LIBRARIES}) ``` 其中`<executable_name>`是可执行文件的名称,`<source_file>.cpp`是对应的源文件。 ### 检查可执行文件权限 确保可执行文件具有执行权限。可使用以下命令为文件添加执行权限: ```bash chmod +x <path_to_executable> ``` 其中`<path_to_executable>`是可执行文件的路径。 ### 检查ROS版本兼容性 确保所使用的包和可执行文件与当前ROS版本兼容。不同的ROS版本可能存在一些差异,某些包可能只支持特定的ROS版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值