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

本文涉及的产品
资源编排,不限时长
简介: ROS入门笔记(一): 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历史演变


aHR0cHM6Ly9naXRlZS5jb20vSVQtY3V0ZS9QaWNiZWQvcmF3L21hc3Rlci9pbWcvaW1hZ2UtMjAyMDAzMTIxMDA5MTI0MDYucG5n.png


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的官方解释(重点)


aHR0cHM6Ly9naXRlZS5jb20vSVQtY3V0ZS9QaWNiZWQvcmF3L21hc3Rlci9pbWcvaW1hZ2UtMjAyMDA1MTMxNzUxNDgyNTQucG5n.png


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优缺点


image.png


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

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
目录
相关文章
|
2月前
|
XML 存储 网络安全
ROS入门(二):launch文件解析
该文章是关于ROS入门的第二篇教程,详细解析了ROS中的launch文件,包括其运行方式、XML格式规范、标签使用、参数替代、条件属性以及通过简单和复杂案例来演示launch文件的使用,最后介绍了如何在参数服务器上设置参数。
ROS入门(二):launch文件解析
|
16天前
|
传感器 机器人 数据处理
ROS 编程入门的介绍
2.1 创建 ROS 功能包 ROS(Robot Operating System)是一种开源的机器人软件框架,广泛用于机器人开发中。通过使用 ROS,开发者可以轻松创建和管理机器人应用程序。在本节中,我们将介绍如何创建一个 ROS 功能包并实现一些基本功能。 2.1.1 使用 ROS 主题 ROS 主题(Topic)是一种发布/订阅机制,允许节点之间进行通信。每个节点可以发布主题消息或订阅主题消息来获取数据。以下是如何使用 ROS 主题的步骤: 创建功能包 首先,我们需要创建一个新的 ROS 功能包。在终端中运行以下命令: catkin_create_pkg de_ws my_r
46 0
|
算法 机器人 定位技术
ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
1059 0
ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
|
4月前
|
机器人 定位技术 C++
技术笔记:ROS中测试机器人里程计信息
技术笔记:ROS中测试机器人里程计信息
|
Ubuntu 算法 网络协议
ROS简介
机器人是一个系统工程,它涉及机械、电子、控制、通信、软件等诸多学科。以前,开发一个机器人需要设计机械、画电路板、写驱动程序、设计通信架构、组装集成、调试、以及编写各种感知决策和控制算法,每一个任务都需要花费大量的时间。然而随着技术进步,机器人产业分工开始走向细致化、多层次化,如今的电机、底盘、激光雷达、摄像头、机械 臂等元器件都由不同厂家专门生产,社会分工加速了机器人行业的发展。而各个部件的集成就需要一个统一的软件平台,在机器人领域,这个平台就是机器人操作系统 ROS。
|
传感器 JSON Ubuntu
ROS2 机器人操作系统入门和安装以及如何使用 .NET 进行开发
本文是 ROS2 入门的第一课,简单介绍了 ROS 系统,并演示了 ROS2 系统在 Ubuntu 22.04 中的安装(使用 gitee 和清华源)以及其中错误的解决。最后对其优势进行总结,为什么选择 ROS。最后介绍简单 Demo 和如何使用 .NET 接入的其中一种方式。
768 0
ROS2 机器人操作系统入门和安装以及如何使用 .NET 进行开发
ROS学习-roswtf入门
ROS学习-roswtf入门
149 0
|
XML 传感器 算法
ROS中阶笔记(二):机器人系统设计—URDF机器人建模
ROS中阶笔记(二):机器人系统设计—URDF机器人建模
699 0
ROS中阶笔记(二):机器人系统设计—URDF机器人建模
|
算法 数据可视化 机器人
ROS中阶笔记(九):Movelt!机械臂控制
ROS中阶笔记(九):Movelt!机械臂控制
636 0
ROS中阶笔记(九):Movelt!机械臂控制
|
XML 人工智能 搜索推荐
ROS中阶笔记(六):机器人感知—机器语音
ROS中阶笔记(六):机器人感知—机器语音
538 0
ROS中阶笔记(六):机器人感知—机器语音

推荐镜像

更多
下一篇
无影云桌面