ubuntu使用入门教程ROS⼊门笔记(⼀):ROS简介
ROS⼊门笔记(⼀): ROS简介
⽂章⽬录
1 ROS是什么?
机器⼈操作系统(Robot Operating System, ROS)是⼀个应⽤于机器⼈上的操作系统,它操作⽅便、功能强⼤,特别适⽤于机器⼈这种多节点多任务的复杂场景。
说明:ROS是⼀个适⽤于机器⼈编程的框架, 这个框架把原本松散的零部件耦合在了⼀起, 为他们提供了通信架构。 ROS虽然叫做操作系统, 但并⾮Windows、 Mac那样通常意义的操作系统, 它只是连接了操作系统和你开发的ROS应⽤程序, 所以它也算是⼀个中间件,基于ROS的应⽤程序之间建⽴起了沟通的桥梁, 所以也是运⾏在Linux上的运⾏环境, 在这个环境上, 机器⼈的感知、 决策、 控制算法可以更好的组织和运⾏。
2 ROS历史发展
2.1 ROS参考资料
5.各⼤论坛和博客
2.2 ROS历史演变
2012年组织第⼀届ROS开发者⼤会,以后每年⼀届,会由不同的国家主办;之后Willow Garage经营不善,团队解散,2013年ROS的维护者成⽴了⼀个开源机器⼈基⾦这样⼀个组织来继续推进ROS的发
展,并先后在2014年和2016年发布两款长期⽀持版(Long Term Support)的ROS(Indigo和Kinetic)和Ubuntu(乌班图)长期⽀持版保持同步的维护时间,可以得到5年的更新维护,⽬前官⽅推荐2016 ROS Kinetic。
2018年ROS2 1.0版将发布,互联⽹+,ROS将起着⾄关重要的作⽤。
2.3 ROS的官⽅解释(重点)
1)通信机制(框架):
分布式:扩展性好,软件复⽤率⾼
进程管理
进程间通信
2)开发⼯具
仿真
数据可视化
图形界⾯
数据记录
3)应⽤功能
控制
规划
视觉
建图
4)⽣态系统(社区)
软件包管理:apt-get,apt,包管理⼯具
⽂档
教程
3 ROS设计⽬标
①尽量提⾼机器⼈研发中的软件复⽤率
②框架中的每个功能模块能够被单独设计、编译、运⾏时松耦合⽅式结合
③功能模块都封装于独⽴的功能包或元功能包,便于社区共享与分发
④ROS由核⼼通信机制、开发⼯具、应⽤功能和⽣态系统四个部分构成
⑤为机器⼈开发提供了硬件抽象、底层驱动、消息传递、程序管理、应⽤原型等机制,整合了第三⽅⼯具及库⽂件,便于⽤户快速完成机器⼈应⽤的建⽴、编写和多机整合等
4 ROS特点
1)点对点的设计
ROS中每⼀个进程都以⼀个节点的形式运⾏,可分布于不同主机(分散计算压⼒,协同⼯作),节点的通信消息通过⼀个带有发布和订阅功能的RPC传输系统来传送。
2)多语⾔⽀持
C++、Python作为最⼴泛的ROS开发语⾔、C、Java及C#和Lisp等,每个模块可以⽤不同的语⾔实现。为了⽀持多语⾔编程,ROS采⽤了⼀种语⾔中⽴的接⼝定义语⾔来实现各模块之间消息传送。 通俗的理解就是, ROS的通信格式和⽤哪种编程语⾔来写⽆关, 它使⽤的是⾃⾝定义的⼀套通信接⼝。
3)架构精简、集成度⾼
每个功能节点可以单独编译
集成众多开源项⽬
接⼝统⼀、提⾼软件复⽤性
4)组件化⼯具包丰富
3D可视化⼯具—rviz
物理仿真环境—gazebo
数据记录⼯具—rosbag
Qt⼯具箱⼀rqt_*
5)免费并且开源
ROS具有⼀个庞⼤的社区ROSwiki(/),可以查阅功能包参数和提问等。
ROS开发的软件包已经达到数千万个,相关的机器⼈已经多达上千款。
ROS遵从BSD协议,对个⼈和商业应⽤及修改完全免费。
5 ROS优缺点
优点缺点
提供框架、 ⼯具和功能通信实时性能有限
⽅便移植系统稳定性尚不满⾜⼯业级要求
庞⼤的⽤户体安全性上没有防护措施
免费开源仅⽀持Linux(Ubuntu)
⽬前来说, ROS更适合科研和开源⽤户使⽤, 如果在⼯业场景应⽤( 例如⽆⼈驾驶) 还需要做优化和定制。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。