关于ROS路径规划插件环境变量无法生效的问题

问题描述

当自己构建的路径规划插件和自己调用move_base的工程并不在一个目录下时,因为source操作覆盖掉前一个source操作,所以并不能在一个终端部两次source两个工程的setup.bash文件,会导致自己的movebase工程找不到插件,搜索注册插件库也看不到该插件。下面这位博主的也是碰到了这种问题

我为了测试我的规划器,从github上git了一个turtlebot的仿真程序,把里面的规划器替换成了我的规划器,想着能见识一下自己写的规划器好不好,可以一运行就报错说找不到我写的规划器。What the Hell?
我赶快运行rospack plugins --attrib=plugin nav_core命令看看我的规划器还在不在。结果我的规划器消失了,取而代之的是git下来的那个程序里的规划器。我一想,我的规划器是写在环境配置文件中的,ros内置的规划器是在ros/kinetic目录下。那肯定是我在source git下来的那个程序的时候把我的规划器给覆盖掉了,看来只能source一次。所以我把这两个程序——我的规划器和git下来的那个规划器——都写进环境配置文件中,这部就好了?连source都不用source了。
结果我一试。。。头痛。发生什么事了?怎么还是只有git下来的一个?我把它们两个在环境配置文件中的位置交换了一下,结果只有我的规划器了,git下来的那一个又不见了。我一想就明白了,这是给覆盖掉了呀。
https://blog.csdn.net/qq_41845878/article/details/120019381

解决方案

在自己的工程终端导入路径规划插件的src目录,如下

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/{hostname}/{工作空间}/src

然后在source自己工程的setup.bash,使自己工程的环境变量生效。
也可以将自己写的规划器加入ros 的内置规划器中,如这位博主的做法。

我眉头一皱,计上心来。既然ros内置的规划器雷打不动,那我干脆把我的规划器变成ros内置的规划器不就行了?但是我怎么知道怎样才能把我的规划器变成ros内置规划器呢?我眉头又一皱,又是一计上心来,我看看carrot_planner规划器在ros中是怎么配置的不就行了?
说干就干,我进到opt/ros/kinetic目录下,搜索一下carrot_planner,看看出来那些文件,在什么位置,照猫画虎,一样来一遍不久OK?
总共分成4步,步骤如下:
(1)将自己的规划器文件下的include文件夹里面的那个文件夹拷贝到kinect/include下
(2)将自己的devel/share下的那个cmake文件夹拷贝到kinect/share之下,并把那两个描述文件package.xml
和global_planner_plugin.xml拷贝到kinect/share里面
(3)将devel/lib下的那个so文件拷贝到kinect/lib目录之下
(4)将devel/lib/pkgconfig下的那个pc文件拷贝到kinect/lib/pkconfig之下
搞完这些,我心想,应该没问题了吧。结果结果结果。。。。
opt/ros/kinetic/lib//libglobal_planner.so
这是什么鬼?我的路径写错了?检查了一个遍,也没有发现哪里路径写错了。上网一搜,怀疑可能是cMakelist.txt文件的问题,导致链接的时候,出现了问题。
我一看我的cMakelist.txt文件,还真有可能,在写到项目名称的时候,我全是写的informed_rrt_star_globalplanner,再看人家carrot_planer的cMakelist.txt,凡是需要项目名称的时候,写的全是PROJECT_NAME。其实照我看都一样嘛?这也能出问题?先试试再说,把informed_rrt_star_globalplanner全换成PROJECT_NAME,一看成了,通了。看来cMakelist.txt的写法相当重要啊。一不留神就是一个大坑。

引用

该文章引用了
https://blog.csdn.net/qq_41845878/article/details/120236122?spm=1001.2014.3001.5501
的部分章节。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值