• ROS入门笔记(一)


    ROS入门笔记(一): ROS简介

    1 ROS是什么?
    2 ROS历史发展
        2.1 ROS参考资料
        2.2 ROS历史演变
        2.3 ROS的官方解释(重点)
    3 ROS设计目标
    4 ROS特点
    5 ROS优缺点

    1 ROS是什么?

    机器人操作系统(Robot Operating System, ROS)是一个应用于机器人上的操作系统,它操作方便、功能强大,特别适用于机器人这种多节点多任务的复杂场景。

    说明:ROS是一个适用于机器人编程的框架, 这个框架把原本松散的零部件耦合在了一起, 为他们提供了通信架构。 ROS虽然叫做操作系统, 但并非Windows、 Mac那样通常意义的操作系统, 它只是连接了操作系统和你开发的ROS应用程序, 所以它也算是一个中间件, 基于ROS的应用程序之间建立起了沟通的桥梁, 所以也是运行在Linux上的运行环境, 在这个环境上, 机器人的感知、 决策、 控制算法可以更好的组织和运行。

    2 ROS历史发展

    2.1 ROS参考资料

    1.官网:https://www.ros.org/

    2.wiki:http://wiki.ros.org

    3.问答:https://answers.ros.org

    4.源码:https://github.com/

    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(http://wiki.ros.org/),可以查阅功能包参数和提问等。
    • ROS开发的软件包已经达到数千万个,相关的机器人已经多达上千款。
    • ROS遵从BSD协议,对个人和商业应用及修改完全免费。

    5 ROS优缺点

    优点

    缺点

    提供框架、 工具和功能

    通信实时性能有限

    方便移植

    系统稳定性尚不满足工业级要求

    庞大的用户群体

    安全性上没有防护措施

    免费开源

    仅支持Linux(Ubuntu)

    目前来说, ROS更适合科研和开源用户使用, 如果在工业场景应用( 例如无人驾驶) 还需要做优化和定制。

    微信公众号:喵哥解说
    公众号介绍:主要研究机器学习、计算机视觉、深度学习、ROS等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!同时还有1200G的Python视频和书籍资料等你领取!!!
  • 相关阅读:
    slice,substr和substring的区别
    http请求方法
    Git常用命令
    IOS开发之NSLog使用技巧
    网络请求之get与post异步请求
    通知(广播)传值
    [转]->ios推送:本地通知UILocalNotification
    [转]iOS 不要使用tag传递TableViewCell的indexPath值
    UIWebView uiwebview 加载本地html
    [转]字符串编码转换
  • 原文地址:https://www.cnblogs.com/IT-cute/p/13122161.html
Copyright © 2020-2023  润新知