项目场景:
ubuntu18+melodic
问题描述:
这几天一直遇到一个问题,就是ubuntu18中ros的环境问题,最开始的时候是一直用到好好的ros系统,突然说无法识别roscore命令
搞得我一脸懵逼,最后无意中发现只要把source /opt/ros/melodic/setup.bash
这句话放到~/.bashrc文件中的最后面就行了,也是很奇怪。
但是!!!在roslaunch
或rosrun
运行自己的功能包的时候却出现找到功能包的情况。
我真的是傻了,这个问题我参考了别的博客(链接: link.),最终也解决了问题,然后这个时候我们会尝试一下将命令加入到~/.bashrc文件中,但是现在的问题是,这个文件中目前我测试的只能生效最后一行的环境。
原因分析:
这个~/.bashrc为什么只能生效最后一行的ROS环境,目前还没搞清楚,这个问题也是最近才出现的,以前从来遇到这种问题。
解决方案:
既然无法在用户环境变量中生效ROS环境,那么我首先想到的就是用暴力的方式生效环境变量,例如如下命令:
# 示例
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/a/racecar/src
# 模板
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/{hostname}/{工作空间}/src
在终端中运行了这个命令之后就可以暂时解决找不到环境变量的问题了。
如果嫌弃命令太长可以将命令放在文件中再用source
命令,我测试的时候无奈将这些命令放在了~/.bash_logout文件中,免得重复敲击。
最后为了测试了一下,也可以把export
命令放在自己的文件中,比如说我放在了自己新建的~/.a_source文件中,最后用source
命令。
如果有哪位大佬很好的对这个问题的解决办法,请教教在下吧。
以前再学习主从机配置的时候也是,一直用的好好的主从机配置,突然有一天无法正常使用,需要重新配置,当时刚学习ros,真的搞得我头皮发麻