前言:
前文给出了2进制安装2个包的方法,使用简单但不支持源码的查看和修改。此文给出源码安装方案。
一、源码安装navigation
https://gitee.com/liwuhaoooo/navigation.git
二、源码安装ros_cartographer
2.1参考:链接
2.2编译
我用的nano,编译过程中多次出现卡死机的情况,并不算代码的问题,而是处理器内存不够。建议关闭图形化界面显示从而释放内存,用远程登录的方式编译源码。具体操作流程参考。
三、环境配置
3.1功能包的运行
若电脑上已经安装了2进制的包,此时你在其他工作空间调用相关功能包,如rosrun move_base move_base,ros默认调用安装在/opt/ros/melodic/share目录下的包。若电脑上没有装2进制安装包,无法在其他工作空间调用源码安装的功能包。对此,一些博客给出的解决方案为修改.bashrc文件,但我修改后,并没有像预期的那样。我增加的路径如下
source /opt/ros/melodic/setup.bash
source ~/navigation/devel/setup.bash
source ~/caizhai1.0/lidar/devel/setup.bash
source ~/cartographer/install_isolated/setup.bash
但 echo $ROS_PACKAGE_PATH后的结果如图
并没有把我增加的全部路径都成功加入PATH。一番挣扎后放弃。改为在对应的工作空间内运行各自的包。
cartographer相关:在/home/lwh-nav/cartographer/install_isolated/share/cartographer_ros路径下的launch和configuration_files文件夹内增改自己所需的文件。
navigation相关:在/home/lwh-nav/navigation/src/move_base路径下新建launch和config文件夹,增加自己所需的文件。
3.2功能包的调用
若其他功能包需要调用源码安装的功能包,因为源码安装的功能包不在ros的默认路径,find_package无法找到相关功能包,需要自己用set设置寻找路径。样例如下:
set(amcl_DIR /home/lwh-nav/navigation/devel/share/amcl/cmake)
set(move_base_DIR /home/lwh-nav/navigation/devel/share/move_base/cmake)
find_package(catkin REQUIRED COMPONENTS
urdf
xacro
amcl
map_server
move_base
roscpp
rospy
std_msgs
tf2
tf2_ros
tf2_geometry_msgs
)
set(cartographer_DIR /home/lwh-nav/cartographer/install_isolated/share/cartographer)
find_package(cartographer REQUIRED)
4.总结
应该有将源码安装的功能包加入ros默认路径的方法,但博主水平有限,暂时不会。欢迎大家指导交流。
版权归原作者 CPU疼 所有, 如有侵权,请联系我们删除。