ROS源码研究(一):从source安装ROS和使用overlay机制进行源码修改

    最近因为项目原因要对ROS源码进行研究和修改,走了一些弯路才隐约看见正道的一丝影子,特写此文章以免事后忘记,也希望各位路过的大神能指点一二,不胜感激。

    从source安装主要是参考了ROS官方的tutorial 。

1、安装bootstrap依赖
$ sudo apt-get install python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential

    我使用的是ubuntu14.04,所以其他方法就不介绍了,ROS官方的tutorial都有。

2、初始化rosdep
$ sudo rosdep init
$ rosdep update

    如果前面已经安装过ROS的同学在第一句时会报错,大概就是已经初始化过了,问是否要删除旧的重新初始化,不管它就好了0.0(以后要是出现啥问题就再说吧,呵呵呵)。

3、新建catkin的工作空间
$ mkdir ~/ros_catkin_ws
$ cd ~/ros_catkin_ws

    使用wstool安装ROS核心软件包,因为我这里已经安装了ROS Indigo的完全版,而且研究的内容也只是ROS的核心代码部分,用不上它的扩展功能,所以这边只介绍安装ROS_Comm(ROS基础包、构建和通信的库,没有GUI工具。),其余的见官方wiki。

$ rosinstall_generator ros_comm --rosdistro indigo --deps --wet-only --tar > indigo-ros_comm-wet.rosinstall
$ wstool init -j8 src indigo-ros_comm-wet.rosinstall

    值得注意的是,这里的ros_comm可以不是官方github的,也可以是自己fork出来的(自己修改后的当然也可以啦)。只需在将第一句命令改成如下:

$ rosinstall_generator ros_comm --upstream --rosdistro indigo --deps --wet-only --tar > indigo-ros_comm-wet.rosinstall

    也就是加上 --upstream 分句,这样在执行完这句命令时会出现indigo-ros_comm-wet.rosinstall这个文件,打开会出现如下:

- tar:
    local-name: catkin
    uri: https://github.com/ros/catkin/archive/0.6.19.tar.gz
    version: catkin-0.6.19
- tar:
    local-name: cmake_modules
    uri: https://github.com/ros/cmake_modules/archive/0.3.3.tar.gz
    version: cmake_modules-0.3.3
.....................(省略数行)
- tar:
    local-name: ros_comm
    uri: https://github.com/ros/ros_comm/archive/1.11.21.tar.gz      =》这里可以改成自己的uri
    version: ros_comm-1.11.21
- tar:
    local-name: ros_comm_msgs
    uri: https://github.com/ros/ros_comm_msgs/archive/1.11.2.tar.gz
    version: ros_comm_msgs-1.11.2
......................(省略数行)
    将里面的uri改成自己需要的uri保存 即可 。然后再按照上文所说执行wstool那行命令。
4、解决依赖关系
$ rosdep install --from-paths src --ignore-src --rosdistro indigo -y

    这将查看src目录中的所有软件包并查找它们的所有依赖关系。 然后将按照依赖关系依赖关系递归安装 --from-paths选项表示我们要安装哪个目录的软件包依赖,在本例中为src。 --ignore-src选项指示rosdep不从包管理器的src文件夹中安装任何ROS软件包,因为我们正在自己构建它们。 --rosdistro选项是向rosdep指出正在构建的ROS版本。 最后,-y选项表明rosdep我们不希望受到来自软件包管理器的太多提示的困扰。

    过了一段时间(也许有一些提示输入密码),rosdep将完成安装系统依赖关系。

    如果您从源代码或pip安装了某些内容,并且不希望rosdep尝试为其安装,请使用--skip-keys选项。 例如,如果从源代码安装了引导工具(如rosdep,rospkg和rosinstall_generator),请添加参数--skip-keys python-rosdep,--skip-keys python-rospkg,--skip-keys python-catkin-pkg 。

5、构建catkin的工作空间

    调用catkin_make_isolated:

$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

    现在应该已将软件包安装到~/ ros_catkin_ws / install_isolated或安装到了使用--install-space参数指定的位置。 如果查看该目录,则会看到已生成setup.bash文件。 现在只需要设置环境变量:

$ source ~/ros_catkin_ws/install_isolated/setup.bash

   可以使用echo $ROS_PACKAGE_PATH查看是否设置成功。这样就可以用新安装的Ros_Comm覆盖之前安装的ROS的相关部分。


ref:

http://wiki.ros.org/indigo/Installation/Source

http://blog.csdn.net/heyijia0327/article/details/45841317


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值