ROS入门笔记(三):二进制包与源代码包
ROS入门笔记(三):二进制包与源代码包
- 注意: 如果你是使用类似apt这样的软件管理器来安装ROS的,那么安装后这些软件包将不具备写入权限,当前系统用户比如你自己也无法对这些软件包进行修改编辑。当你的开发涉及到ROS软件包源码层面的操作或者在创建一个新的ROS软件包时,你应该是在一个具备读写权限的目录下工作,就像在你当前系统用户的home目录下一样。
- apt工具安装ROS系统以及相关的软件包 ,apt安装的软件包都是二进制形式, 可以在系统中直接运行, 它们是ROS官方提供给用户的应用程序。
- 然而很多时候我们需要自己做一些定制改写, 或者运行第三方开发的软件包, 这个时候就需要下载源代码进行编译。
1 软件包分类
软件包(Package)可以分为二进制和源代码。
- 二进制包里面包括已经编译完成, 可以直接运行的程序。 通过
sudo apt-get install
来进行下载和解包( 安装) , 执行完该命令后就可以马上使用。 并且这种方式简单快捷, 适合比较固定、 无需改动的程序。 - 源代码包里是程序的原始代码, 在你的计算机上必须经过编译, 生成了可执行的二进制文件, 方可运行。 一些个人开发的程序、 第三方修改或者你希望修改的程序都应当通过源代码包来编译安装。
2 二进制包与源代码包的区别
区别 | 二进制包 | 源代码包 |
---|---|---|
下载方式 | apt-get install /直接下载 deb | git 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
微信公众号:喵哥解说
公众号介绍:主要研究机器学习、计算机视觉、深度学习、ROS等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!同时还有1200G的Python视频和书籍资料等你领取!!!