ROS入门笔记(三):二进制包与源代码包

  • 注意: 如果你是使用类似apt这样的软件管理器来安装ROS的,那么安装后这些软件包将不具备写入权限,当前系统用户比如你自己也无法对这些软件包进行修改编辑。当你的开发涉及到ROS软件包源码层面的操作或者在创建一个新的ROS软件包时,你应该是在一个具备读写权限的目录下工作,就像在你当前系统用户的home目录下一样。
  • apt工具安装ROS系统以及相关的软件包 ,apt安装的软件包都是二进制形式, 可以在系统中直接运行, 它们是ROS官方提供给用户的应用程序。
  • 然而很多时候我们需要自己做一些定制改写, 或者运行第三方开发的软件包, 这个时候就需要下载源代码进行编译。

1 软件包分类

软件包(Package)可以分为二进制和源代码。

  • 二进制包里面包括已经编译完成, 可以直接运行的程序。 通过 sudo apt-get install 来进行下载和解包( 安装) , 执行完该命令后就可以马上使用。 并且这种方式简单快捷, 适合比较固定、 无需改动的程序。
  • 源代码包里是程序的原始代码, 在你的计算机上必须经过编译, 生成了可执行的二进制文件, 方可运行。 一些个人开发的程序、 第三方修改或者你希望修改的程序都应当通过源代码包来编译安装。

2 二进制包与源代码包的区别

区别二进制包源代码包
下载方式apt-get install /直接下载 debgit clone /直接下载源代码
ROS包存放位置/opt/ros/kinetic/通常 ~/catkin_ws/src
编译方式无需编译通过make/cmake/caktin
来源官方apt软件源开源项目、 第三方开发者
扩展性无法修改通过源代码修改
可读性无法查看源代码方便阅读源代码
优点下载简单,安装方便源码可修改,便于定制功能
缺点无法修改编译工具、软件包依赖、版本和参数
应用场景基础软件需要查看、开发和修改的程序

3 ROS二进制包的安装

  • 在ROS中, 我们可能经常会遇到缺少相关的ROS依赖的问题。 有些时候你编译或者运行一些ROS程序, 系统会提示找不到XXX功能包 。
  • 遇到这样的问题, 请先注意阅读错误原因, 看看是否有解决方法, 也可以Google、Bing一下。 如果是缺少ROS的依赖, 通常可以用以下命令来安装:
$ sudo apt-get install ros-kinetic-PACAKGE  

将PACKAGE替换为系统提示缺啥少的软件包, 例如:

$ sudo apt-get install ros-kinetic-slam-gmapping           #GMapping-SLAM算法包  
$ sudo apt-get install ros-kinetic-turtlebot-description   #Turtlebot机器人模型包  

注:所有apt官方中的ROS功能包都是按照ros-的形式来命名。

4 适配ROS的IDE

  • 通常ROS的程序都是用C++和Python开发的, 为了提高开发的效率, 建议用IDE来写代码。
  • 目前在Ubuntu上已经有许多IDE支持ROS开发, 比如Eclipse、 Qt Creator。 不过这些IDE配置起来会比较麻烦, 推荐一款适配ROS的IDE——RoboWare Studio来开发ROS
  • ROS IDE官网推荐:http://wiki.ros.org/IDEs
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐