机器人操作系统ROS浅析

本文涉及的产品
资源编排,不限时长
简介: ROS是Robot Operating System的缩写,原本是斯坦福大学的一个机器人项目,后来由Willow Garage公司发展,目前由OSRF(Open Source Robotics Foundation, Inc)公司维护的开源项目

一、ROS简介

ROS是Robot Operating System的缩写,原本是斯坦福大学的一个机器人项目,后来由Willow Garage公司发展,目前由OSRF(Open Source Robotics Foundation, Inc)公司维护的开源项目。ROS就像手机界的安卓,电脑中的微软;ROS虽然叫操作系统,但是真正底层的任务调度、编译、寻址等任务还是由Linux操作系统完成,也就是ROS充其量是一个运行在Linux上的次级操作系统。

image.png

可以看某公司对ROS机器人算法工程师的要求:

(1)有机器人导航算法工作经验

(2)熟练掌握Slam机器人导航,实现建图、定位等功能;

(3)熟练使用ROS框架操控;

(4)熟练Linux系统、python和C++;

(5)扎实的数学功底。

ROS是一个操作系统

根据wikipedia定义,OS is system software that manages computer hardware and software resources and provides common services for computer programs。

计算机的操作系统将计算机硬件封装起来,而应用软件运行在操作系统之上,不用管计算机具体应用的是什么类型的硬件产品。这能大大提高软件开发效率(否则大家只能都写汇编了)。

同理,ROS则是对机器人的硬件进行了封装,不同的机器人、不同的传感器,在ROS里可以用相同的方式表示(topic等),供上层应用程序(运动规划等)调用。

二、学习路径

ROS主要编程语言是C++和python。

(1)ROS官方文档:http://wiki.ros.org/ROS/Tutorials

(2)中文版ROS教程:http://wiki.ros.org/cn/ROS/Tutorials(初级学前20讲)

(3)大佬的ROS学习笔记

(4)中科院ROS入门课程

(5)补充中。

三、ROS的核心概念

3.1 ROS是一种跨平台模块化软件通讯机制

ROS用节点(Node)的概念表示一个应用程序,不同node之间通过事先定义好格式的消息(Topic),服务(Service),动作(Action)来实现连接。

 image.png

(1)节点Node——执行单元

执行具体任务的进程、独立运行的可执行文件;

不同节点可使用不同的编程语言,可分布式运行在不同的主机;

节点在系统中的名称必须是唯一的

(2)节点管理器 (ROS Master)—— 控制中心

为节点提供命名和注册服务;

跟踪和记录话题/服务通信,辅助节点相互查找、建立连接;

提供参数服务器,节点使用此服务器存储和检索运行时的参数。

image.png

3.2 话题通信

话题(Topic)—— 异步通信机制

节点间用来传输数据的重要总线;

使用发布/订阅模型,数据由发布者传输到订阅者,同一个话题的订阅者或发布者可以不唯一。

消息(Message)—— 话题数据

具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型;

使用编程语言无关的.msg文件定义,编译过程中生成对应的代码文件。

image.png

3.2 服务通信

服务(Service)—— 同步通信机制

使用客户端/服务器(C/S)模型,客户端发送请求数据,服务器完成处理后返回应答数据;

使用编程语言无关的.srv文件定义请求和应答数据结构,编译过程中生成对应的代码文件。

3.3 文件系统

功能包(Package) :ROS软件中的基本单元,包含节点源码、配置文件、数据定义等

功能包清单(Package manifest):记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等

元功能包(Meta Packages):组织多个用于同一目的功能包

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
1月前
|
Ubuntu 机器人 Linux
|
10天前
|
XML 算法 自动驾驶
ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
【11月更文挑战第7天】本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。
|
15天前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
|
1月前
|
传感器 数据可视化 机器人
【ROS速成】半小时入门机器人ROS系统简明教程之可视化系统(三)
半小时入门机器人ROS系统简明教程之可视化系统
|
1月前
|
机器人
【ROS速成】半小时入门机器人ROS系统简明教程之安装测速(二)
半小时入门机器人ROS系统简明教程之安装测速
|
6月前
|
传感器 人工智能 监控
智能耕耘机器人
智能耕耘机器人
136 3
|
11天前
|
机器学习/深度学习 传感器 算法
智能机器人在工业自动化中的应用与前景###
本文探讨了智能机器人在工业自动化领域的最新应用,包括其在制造业中的集成、操作灵活性和成本效益等方面的优势。通过分析当前技术趋势和案例研究,预测了智能机器人未来的发展方向及其对工业生产模式的潜在影响。 ###
47 9
|
4天前
|
机器学习/深度学习 人工智能 运维
电话机器人源码-智能ai系统-freeswitch-smartivr呼叫中心-crm
电话机器人源码-智能ai系统-freeswitch-smartivr呼叫中心-crm
20 0
|
8天前
|
机器人 人机交互 语音技术
智能电销机器人源码部署安装好后怎么运行
销售打电销,其中90%电销都是无效的,都是不接,不要等被浪费了这些的精力,都属于忙于筛选意向客户,大量的人工时间都耗费在此了。那么,有这种新型的科技产品,能为你替代这些基本的工作,能为你提升10倍的电销效果。人们都在关心智能语音客服机器人如何高效率工作的问题,今天就为大家简单的介绍下:1、智能筛选系统:电销机器人目前已经达到一个真人式的专家级的销售沟通水平,可以跟客户沟通,筛选意向,记录语音和文字通话记录,快速帮助电销企业筛选意向客户,大大的节约了筛选时间成本和人工成本。2、高速运转:在工作效率上,人工电销员,肯定跟不上智能语音机器人,机器人自动拨出电话,跟客户交谈。电话机
80 0
|
1月前
|
人工智能 搜索推荐 机器人
挑战未来职场:亲手打造你的AI面试官——基于Agents的模拟面试机器人究竟有多智能?
【10月更文挑战第7天】基于Agent技术,本项目构建了一个AI模拟面试机器人,旨在帮助求职者提升面试表现。通过Python、LangChain和Hugging Face的transformers库,实现了自动提问、即时反馈等功能,提供灵活、个性化的模拟面试体验。相比传统方法,AI模拟面试机器人不受时间和地点限制,能够实时提供反馈,帮助求职者更好地准备面试。
55 2

热门文章

最新文章

推荐镜像

更多
下一篇
无影云桌面