目录
一、源码安装理由
我们知道在一个Package中要利用Navigation一般是直接使用sudo apt install方式来进行安装,但是我们并不能看到里面的源码与原理。
安装后在Navigation后,一般使用直接在Workspace/Src中新建一个Navigation包,其中写入yaml配置文件与launch直接使用即可。
但不可避免的会出现看、改代码的问题,所以我摒弃了这种安装方式。
第一种安装方式:
sudo apt install ros-melodic-navigation
二、第二种安装方式
由于我之前源码安装了Cartographer,位置为:
/SLAM/cart_ws/src
所以我们在src中新建一个navigation,然后cd到navigation中,执行以下命令:
//默认melodic版本
git clone https://github.com/ros-planning/navigation.git
执行完成后将所有的子文件剪切至navigation功能包中,然后在navigation中新建src,将子文件放入其中,具体结构如图所示:
此时将目录索引到刚刚创建好的Navigation中,也就是说将Navigation当作一个Package,因为与Cartographer共存,所以只编译Navigtaion即可(
注:后面所有操作皆在此目录下
)。
cd /自己的路径/Navigation
因为Navigation需要安装依赖,执行(二选一,我使用下面那个)。
rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
rosdep install --from-paths src --ignore-src -r -y
安装依赖后执行,catkin_make,发现报错,然后再次执行。
rosdep install --from-paths src --ignore-src -r -y
发现对Amcl定位模块使用Python3,然后我在ROS Wiki中找了一下,运行以下两条命令即可完美解决。
sudo apt-get install ros-melodic-sensor-msgs
sudo apt-get install ros-melodic-tf2-sensor-msgs
此时执行catkin_make,即可完美编译。
不积跬步无以至千里,不积小流无以成江河 ————————2:03