环境准备
如果你已经安装过二进制的ROS,可以跳过环境准备步骤
如果没有,请按照以下步骤进行
打开终端,输入 以下代码代码
sudo apt-get install python-rosdep python-rosinstall-generator python-vcstool python-rosinstall build-essential
sudo rosdep init
rosdep update
注意:如果除了下面官方给出的依赖包外,自己安装过其他包(例如pcl 无论是源码编译安装还是二进制安装),建议卸载。否则可能会在编译ROS时出现错误,并且很难排查
下载源码
新建一个工作空间
mkdir ~/catkin_ws
cd ~/catkin_ws
以下操作都是在catkin_ws文件夹内进行的,请不要关闭当前终端。
你可以从下面选择一种版本进行下载:
桌面完全版 : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
rosinstall_generator desktop_full --rosdistro melodic --deps --tar > melodic-desktop-full.rosinstall
vcs import src < melodic-desktop-full.rosinstall
桌面版 (官方推荐): ROS, rqt, rviz, and robot-generic libraries
$ rosinstall_generator desktop --rosdistro melodic --deps --tar > melodic-desktop.rosinstall
$ vcs import src < melodic-desktop.rosinstall
ROS核心版(只有ROS骨架): ROS package, build, and communication libraries. No GUI tools.
$ rosinstall_generator ros_comm --rosdistro melodic --deps --tar > melodic-ros_comm.rosinstall
$ vcs import src < melodic-ros_comm.rosinstall
我选择了桌面完全版,如果提示src文件不存在,请在catkin_ws文件夹内自行建立src文件夹。然后重新执行上面的代码。
注意:上面代码的第一行会在catkin_ws文件夹下建立一个后缀为 .rosinstall的文件,该文件包含了各种包的名称以及下载地址
由于网络原因,部分包可能无法下载。请找到catkin_ws文件夹内的 melodic-desktop-full.rosinstall 文件,里面包含包的名称以及下载链接,根据终端中的报错信息(即红色部分,上方给出了文件位置),自行下载,然后剪切到给定的位置下。
例如:
根据终端提示信息发现image_common没有下载成功,在catkin_ws/melodic-desktop-full.rosinstall 文件中搜索找到image_common,根据下方的url地址,下载压缩包,解压缩并更改文件夹名称为image_common,然后将该文件夹剪切到catkin_ws/src/image_common文件夹内。其他未能成功下载的包按照同样的方式处理。
注意,不要先修改压缩文件家名称再解压缩,不然会多一级文件夹
不要重复执行上述代码,重复执行好像会覆盖掉已经下载好的包
安装依赖
下载完成以后,输入以下代码
rosdep install --from-paths src --ignore-src --rosdistro melodic -y
等待依赖包安装完成。结束以后就可以开始编译源码了
编译
输入以下代码
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Debug
等待编译完成,时间会很长,请耐心等待。
然后执行
source ~/ros_catkin_ws/install_isolated/setup.bash
检查更新
修改旧的 rosinstall 文件名称,避免新的rosinstall文件将其覆盖掉,输入以下代码
cd ~/catkin_ws
mv -i melodic-desktop-full.rosinstall melodic-desktop-full.rosinstall.old
然后再输入以下 代码
检查新的源
rosinstall_generator desktop_full --rosdistro melodic --deps --tar > melodic-desktop-full.rosinstall
然后输入以下 代码
比较新的rosinstall文件和旧的rosinstall文件,查看哪些包将要被更新
diff -u melodic-desktop-full.rosinstall melodic-desktop-full.rosinstall.old
之后执行
vcs import src < melodic-desktop-full.rosinstall
下载源码包,并输入以下 代码
进行重新编译