考试首页 | 考试用书 | 培训课程 | 模拟考场 | 考试论坛  
  当前位置:Linux认证 > 综合辅导 > 文章内容
  

Linux教程:ROSonARM--RK3066上本地编译ROSGroovy

来源:Linux社区 [ 2016年1月23日 ] 【

4.2 构建catkin包

上面提到过,ROS Galapagos采用了新的构建工具catkin代替rosbuild,但并不是所有的包都转换成了catkin的版本,所以先构建ROS的核心包(使用catkin),然后再构建其余的使用rosbuild的部分。

4.2.1 创建catkin工作空间

mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws

下一步是下载核心包的源码并构建它们,你有三种选择:

Desktop-Full Install: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception

wstool init -j8 src //packages.ros.org/web/rosinstall/generate/raw/groovy/desktop-full

Desktop Install : ROS, rqt, rviz, and robot-generic libraries

wstool init -j8 src //packages.ros.org/web/rosinstall/generate/raw/groovy/desktop-full

ROS-Comm: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.

wstool init src -j8 //packages.ros.org/web/rosinstall/generate/raw/groovy/ros_comm

这个操作是下载catkin包的代码到~/ros_catkin_ws/src目录下,-j8是指并行下载8个包,在RK3066上是无压力的,如果是树莓派可能需要减少。

注意,在后面解决依赖关系和构建的时候很多包依赖的库可能会缺,你可以根据错误提示自行安装所缺的库。我在MK802 IIIS上只成功编译了ROS-Comm,Desktop编译失败了,而Desktop full在官网wiki中说还有问题:There are build errors in desktop-full (gazebo simulator) at the moment, so the desktop variant is suggested at this time. See: https://code.ros.org/trac/ros-pkg/ticket/5595

还可以安装其它的包,如robot:

wstool init -j8 //packages.ros.org/web/rosinstall/generate/dry/raw/groovy/robot

更多的可以在REP 131中查阅。

4.2.2 解决依赖关系

在构建包之前你必须确保你解决了所有的依赖关系

rosdep install --from-paths src --ignore-src --rosdistro groovy -y

--from-paths选项表示我们想要安装某个文件夹下的所有包,这里是src文件夹。--ignore-src选项表示rosdep不应该从包管理器安装任何src文件夹的包,因为我们现在做的就是构建它。--rosdistro选项之所以需要是因为我们没有设置好ROS的环境,所以我们必须指明我们构建的是ROS的哪个版本。最后,-y选项表示出现的提示选择都选择yes

另外如果你在安装某些包出现错误的情况下仍想安装其它所有可以安装的包,你可以使用-r选项,也就是rosdep install --from-paths src --ignore-src --rosdistro groovy -yr

4.2.3 构建catkin工作空间

调用catkin_make_isolated:

./src/catkin/bin/catkin_make_isolated --install

默认安装在~/ros_catkin_ws/install_isolated下,如果要安装到其它地方,比如/opt/ros/groovy,可以使用--install-space /opt/ros/groovy

如果编译过程中出现错误提示缺少库,需要自行安装解决。

如果构建完成了,再执行:

source ~/ros_catkin_ws/install_isolated/setup.bash

如果你只需要ROS Common那么就结束了。可以测试一下在终端里输入roscore,我运行的时候报错了,后来注释掉了一个python文件里的几行就跑起来了,具体是哪个文件也忘了,根据报错的信息修改就可以了。

本文纠错】【告诉好友】【打印此文】【返回顶部
将考试网添加到收藏夹 | 每次上网自动访问考试网 | 复制本页地址,传给QQ/MSN上的好友 | 申请链接 | 意见留言 TOP
关于本站  网站声明  广告服务  联系方式  站内导航  考试论坛
Copyright © 2007-2013 中华考试网(Examw.com) All Rights Reserved