【ROS速成】半小时入门机器人ROS系统简明教程之简单认识(一)

本文涉及的产品
资源编排,不限时长
简介: 半小时入门机器人ROS系统简明教程一

一.复杂的机器人系统

       依照我们现在的技术来看,机器人系统仍是极其复杂的,往往一个系统就需要数以百计的工程师开发。一个机器人集成了多个领域的多个人的共同智慧,例如:机械工程、电子工程、计算机科学、控制理论等。


       我们知道一个系统由通俗地简单地讲是由硬件和软件部分构成的,其中硬件部分包括控制核心,驱动器,执行器,传感器等组成;而软件部分则特定的操作系统,中间件,驱动层,应用层等组成。

二.ROS机器人系统

       要认识并理解ROS,我们必须要对Linux或Ubuntu有一些基础的认识,且要会操作,因此:建议大家先补充前置知识:


       【学习笔记】ARM64平台下的ubuntu学习总结


       1.简介

       而提到软件部分,我们就不得不提到一个在机器人领域不可避免的系统——ROS系统。ROS就是传说中的机器人操作系统(Robot Operating System),但其本身并不是一个操作系统,而是可以安装在现在已有的操作系统上(Linux、Windows、Mac)上的软件库和工具集。


       实际上,ROS的作用就是提供一个将机器人硬件部件连接起来的简易的软件系统,同时避免了机器人开发中开发者重复造轮子,大大提升了机器人工程的开发效率。


       ROS为此设计了一整套通信机制(话题、服务、参数、动作)。通过这些通信机制,ROS实现了将机器人的各个组件给的连接起来。


       其中ROS1和ROS2架构分别如下:



    首先我们要了解DDS(Data Distribution Service),这是ROS2中的最重要的协议标准。它通过类似于ROS1中的话题发布和订阅形式来进行通信,同时提供了丰富的服务质量管理来保证可靠性、持久性、传输设置等。


       围绕DDS又抽象出两层:


DDS实现层:对不同常见的DDS接口进行再次的封装,让其保持统一性,为DDS抽象层提供统一的API。

DDS抽象层:这一层将DDS实现层进一步的封装,使得DDS更容易使用。原因在于DDS需要大量的设置和配置(分区,主题名称,发现模式,消息创建,…),这些设置都是在ROS2的抽象层中完成的。

       再往上就是RCL(ROS Client Library)ROS客户端库,是ROS的一种API,提供了对ROS话题、服务、参数、Action等接口。不同语言(Python,C++等)有着不同的RCL库,对应相同的功能。

1.节点

       如果要学习ROS,我们一定要先理解Node(节点)的含义,这是ROS最常用的概念。一般来说,一个节点往往是一个可执行程序(c++,python等),负责执行一个特定的单一任务,比如发送图像数据的节点,控制车辆运动的节点。节点之间可以通过话题topic,服务service,参数parameter和动作action相互通信,形成一个网络拓扑,即 ros graph,最终完成一个复杂的任务,比如自动驾驶车辆。


2.话题

       两个节点node之间需要通信,最重要的方式就是话题 topic ,其相当于一个公共汽车 bus ,里面装载两个节点间约定好格式的消息 msg。


发布/订阅模型:话题是基于发布/订阅模型的通信方式。在这种模型中,数据的生产者(发布者)发布数据到特定的话题,而数据的消费者(订阅者)订阅该话题以接收数据。


数据流:话题可以看作是一个数据流,发布者不断地将数据发送到话题上,而订阅者则从话题上接收这些数据。


非持久性:话题上的数据是实时传输的,一旦发布者发布了数据,订阅者要么即时接收,要么数据就会丢失(除非使用特定的历史记录功能)。

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
2月前
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
94 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
22天前
|
存储 传感器 编解码
ROS机器视觉入门:从基础到人脸识别与目标检测
【11月更文挑战第9天】从本文开始,我们将开始学习ROS机器视觉处理,刚开始先学习一部分外围的知识,为后续的人脸识别、目标跟踪和YOLOV5目标检测做准备工作。
129 56
|
2月前
|
JavaScript 机器人 数据安全/隐私保护
飞牛fnOs安装autman奥特曼机器人喂饭教程
autMan奥特曼机器人是一款高度扩展的一站式解决方案,支持多种IM平台对接,包括QQ、微信、钉钉、Telegram等。具备关键词回复、事件处理、多语言插件、定时任务管理、代理池维护等功能,适用于自动化管理和开发。提供详细的安装教程,支持Docker部署。
83 2
飞牛fnOs安装autman奥特曼机器人喂饭教程
|
25天前
|
XML 算法 自动驾驶
ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
【11月更文挑战第7天】本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。
|
1月前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
|
2月前
|
传感器 机器人 数据处理
ROS 编程入门的介绍
【10月更文挑战第13天】ROS(Robot Operating System)是一种开源的机器人软件框架,广泛用于机器人开发中。通过使用 ROS,开发者可以轻松创建和管理机器人应用程序。在本节中,我们将介绍如何创建一个 ROS 功能包并实现一些基本功能。
|
2月前
|
传感器 数据可视化 机器人
【ROS速成】半小时入门机器人ROS系统简明教程之可视化系统(三)
半小时入门机器人ROS系统简明教程之可视化系统
|
7月前
|
传感器 人工智能 算法
ROS机器人操作系统
ROS机器人操作系统
181 1
|
2月前
|
机器人
【ROS速成】半小时入门机器人ROS系统简明教程之安装测速(二)
半小时入门机器人ROS系统简明教程之安装测速
|
6月前
|
机器学习/深度学习 传感器 算法
强化学习(RL)在机器人领域的应用,尤其是结合ROS(Robot Operating System)和Gazebo(机器人仿真环境)
强化学习(RL)在机器人领域的应用,尤其是结合ROS(Robot Operating System)和Gazebo(机器人仿真环境)
263 2

推荐镜像

更多