ros智能小车diy专题:机器人操作系统ros基础知识

hiram-zhang hiram-zhang     2023-02-14     330

关键词:

###文章更新记录###

2018/12/26 创建文章《机器人操作系统ROS基础知识》

 

###写在前面###

ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便。我们的机器人“miiboo中的大部分程序也采用ROS进行开发,所以本文就重点对ROS基础知识进行详细的讲解,给不熟悉ROS的朋友起到一个抛砖引玉的作用。本文主要内容:

1.ROS是什么

2.ROS系统整体架构

3.ubuntu16.04中安装ROS kinetic

4.如何编写ROS的第一个程序hello_world

5.编写简单的消息发布器和订阅器

6.编写简单的serviceclient

7.理解tf的原理

8.理解roslaunch在大型项目中的作用

9.熟练使用rviz

10.在实际机器人上运行ROS高级功能预览

 

###正文###

1.ROS是什么

技术分享图片

 

(图1ROS的图标

ROS是一个适用于机器人的开源的元操作系统。其实它并不是一个真正的操作系统,其底层的任务调度、编译、寻址等任务还是由Linux操作系统完成,也就是说ROS实际上是运行在Linux上的次级操作系统。但是ROS提供了操作系统应用的各种服务(如:硬件抽象、底层设备控制、常用函数实现、进程间消息传递、软件包管理等),也提供了用于获取、编译、跨平台运行代码的工具和函数。ROS主要采用松耦合点对点进程网络通信,目前主要还是支持Ubuntu系统,windowsMac OS目前支持的还不好,所以推荐在Ubuntu系统上安装使用ROS

1.1 ROS的特性

技术分享图片

(图2ROS的特性

总结起来就是,使用ROS能够方便迅速的搭建机器人原型。ROS使用了BSD许可证,这是一个很宽松的开放许可证,允许在商业和闭源产品中使用,这一点对开发产品的创业公司很重要。ROS当前的代码统计量,总行数超过1400万,作者超过2477名。代码语言以C++为主,63.98%的代码是用C++编写的,排名第二的是python,占13.57%,可以说ROS基本上都是使用这两种语言,来实现大部分的功能。

 

1.2 ROS的结构

 

这里主要从四个方面来解读ROS的结构,设计思想、核心概念、核心模块、核心工具。

 

ROS的设计思路主要是分布式架构,将机器人的功能和软件做成一个个节点,然后每个节点通过topic进行沟通,这些节点可以部署在同一台机器上,也可以部署在不同机器上,还可以部署在互联网上。

 

ROS的核心概念主要是节点和用于节点间通信的话题与服务。管理器Master管理节点与话题之间通信的过程,并且还提供一个参数服务用于全局参数的配置。ROS通过功能包集stack和功能包package来组织代码。

 

ROS的核心模块包括:通信结构基础、机器人特性功能、工具集。通信结构基础主要是消息传递、记录回放消息、远程过程调用、分布式参数系统;机器人特性功能主要是标准机器人消息、机器人几何库、机器人描述语言、抢占式远程过程调用、诊断、位置估计、定位导航;工具集主要是命令式工具、可视化工具、图形化接口。

 

 

 

 

 

 ROS核心工具很丰富,ROS常用命令工具是rostopicrosservicerosnoderosparamrosmsgrossrvroswtfROS常用可视化工具是rqtrvizROS用于存储与回放数据的工具rosbagROSlog系统记录软件运行的相关信息;ROS还拥有强大的第三方工具支持:三维仿真环境Gazebo、计算机视觉库OpenCV、点云库PCL、机械臂控制库MoveIt、工业应用库Industrial、机器人编程工具箱MRPT、实时控制库Orocos

 

1.3 ROS的学习资源

 

官网:  www.ros.org

 

源码:  github.com

 

Wiki:  wiki.ros.org

 

问答:  answers.ros.org

 

 

ros学习-从零开始搭建一台ros小车

references基于STM32的ROS智能移动机器人构建地图、定位以及自主导航研发从零搭建ROS机器人平台rosapp下载、rosandroidapp下载、ROS机器人控制app下载 查看详情

ros学习-从零开始搭建一台ros小车

references基于STM32的ROS智能移动机器人构建地图、定位以及自主导航研发从零搭建ROS机器人平台rosapp下载、rosandroidapp下载、ROS机器人控制app下载 查看详情

slam+语音机器人diy系列:ros入门——1.ros是什么

...sp;          ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便。我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所... 查看详情

diy你的低成本ros机器人

...仿真环境中进行slam_gmapping,导航等。但是对于那些没有机器人平台的同学离真正操作ROS机器人还有一些疑惑,目前ROS机器人普遍的价格都在2500以上,(以淘宝某款与笔者采用相同配置,设计思路相同的机器人相比,能够节约近... 查看详情

0基础搭建ros智能移动机器人小车

为什么要写这个文章呢,因为我花了999在赵虚左老师的店铺买了他的底盘,然后我想加一层底盘,问客服要一下底盘的一个CAD图,他不给,把我气坏了。然后我想让其他小伙伴少走一点坑。就是这样没错,... 查看详情

slam+语音机器人diy系列:ros入门——8.理解roslaunch在大型项目中的作用(代码片段)

...sp;          ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便。我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所... 查看详情

slam+语音机器人diy系列:ros入门——4.如何编写ros的第一个程序hello_world(代码片段)

...sp;          ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便。我们的机器人“miiboo”中的大部 查看详情

ros概述

...是一个机器人软件平台,它能为异质计算机集群提供类似操作系统的功能。ROS系统是起源于2007年斯坦福大学人工智能实验室的项目与机器人技术公司WillowGarage的个人机器人项目PR2(PersonalRobotsProgram)之间的合作,2008 查看详情

slam+语音机器人diy系列:slam建图与自主避障导航——3.ros-navigation机器人自主避障导航(代码片段)

...   通过前面的基础学习,本章进入最为激动的机器人自主导航的学习。在前面的学习铺垫后,终于迎来了最大乐趣的时刻,就是赋予我们的miiboo机器人能自由行走的生命。本章将围绕机器人SLAM建图、导航避障、巡航... 查看详情

ros暑期学校暨人工智能与机器人视频回放和分享信息(2022)

...m/all/5562029 ROS机器人培训基地和暑期学校证书样例机器人操作系统(ROS)暑期学校自2015年举办以来,被中国机器人业界和学界,以及ROS开源基金会誉为除了ROSCon之外规模最大、参与人数最多、最成功的ROS线下活动。过去八... 查看详情

ros暑期学校暨人工智能与机器人视频回放和分享信息(2022)

...m/all/5562029 ROS机器人培训基地和暑期学校证书样例机器人操作系统(ROS)暑期学校自2015年举办以来,被中国机器人业界和学界,以及ROS开源基金会誉为除了ROSCon之外规模最大、参与人数最多、最成功的ROS线下活动。过去八... 查看详情

自动驾驶中ros操作系统的重要性

...下热门的技术。那么,你知道自动驾驶中用到机器人操作系统ROS到底是什么吗?什么是机器人操作系统ROS1.ROS(Robot Operating System)是一个操作系统ROS是对机器 查看详情

ros2机器人程序设计课程大纲-chatgpt版本

...说明:ROS2机器人程序设计课程是一门教授ROS2机器人操作系统的课程,旨在帮助学习者掌握ROS2的基础知识和编程技能,从而能够开发和运行自己的ROS2机器人应用程序。在课程中,学习者将学习ROS2的核心概念和工... 查看详情

ros2机器人程序设计课程大纲-chatgpt版本

...说明:ROS2机器人程序设计课程是一门教授ROS2机器人操作系统的课程,旨在帮助学习者掌握ROS2的基础知识和编程技能,从而能够开发和运行自己的ROS2机器人应用程序。在课程中,学习者将学习ROS2的核心概念和工... 查看详情

ros的安装与使用(代码片段)

...过程中的代码复用提供支持.ROS是RobotOperatingSystem(机器人操作系统)的简称.ROS开始于2007年,在斯坦福大学人工智能实验室斯坦福AI机器人项目的支持下开发了ROS。从2010年3月2日发布的第一版ROSBoxTurtle至今(截止到2018年8月)已有... 查看详情

机器人编程实践-ros2基础与应用-第⑦版

...: 摘要:LearnRightNow,PrepareForFuture课程围绕机器人操作系统(ROS2)的应用展开,包括机器人学的基础理论和常用工具。借助立体多样的示例,课程可以为使用ROS2进行机器人开发设计的学员提供一个扎实的... 查看详情

《slam机器人基础教程》第六章ros入门

第六章ROS入门本章以激光雷达为例讲解ROS基础。本章内容规划:6.1节,ROS概述6.2节,ROS安装及常用指令6.3节,ROS工具6.4节,ROS编程基础6.5节,发布话题和订阅话题6.6节,服务器和客户端6.7节,TF  查看详情

第二天:slam智能小车diy乐趣-小车控制stm32软件基础

SLAM智能小车DIY乐趣-小车控制stm32软件基础####写在前面####前面介绍了小车控制stm32硬件基础,本文就来介绍配套的小车控制stm32软件基础。关于stm32开发相关的基础知识这里就不多说了,有需要的小伙伴可以查阅相关资料进行学习... 查看详情