ROS简介
1、ROS:适用于机器人编程的框架,连接操作系统和ROS应用程序的中间件,是运行在Linux上的运行时环境。
2、ROS特点:
1)分布式点对点:分布式的框架,通过点对点的设计让机器人的进程可以分别运行,便于模块化的修改和定制,提高了系统的容错能力。
2)多种语言支持:C++、Python等,ROS采用了一种语言中立的接口定义语言来实现各模块之间消息传递。
3)开源 区
3、ROS优缺点
优点 | 缺点 |
---|---|
提供框架、工具和功能 | 通信实时性能有限 |
方便移植 | 系统稳定性尚不满足工业级要求 |
庞大的用户群体 | 安全性上没有防护措施 |
免费开源 | 仅支持Linux |
ROS是一个适用于机器人编程的框架,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。ROS虽然叫做操作系统,但并非WindowsMac那样通常意义的操作系统,它只是连接了操作系统和你开发的ROS应用程序,所以它也算是一个中间件。基于ROS的应用程序之间建立起了沟通的桥梁,所以也是运行在LINUX上的运行时环境,在这个环境上,机器人的感知、决策、控制算法可以更好的组织和运行。
ROS安装选择
kinetic ubuntu16.04
Melodic ubuntu18.04
Noetic ubuntu20.04
ROS的全称就是:Robot Operating System
ROS的特点:1)开源 2)分布式架构 3)模块化
ROS系统不具有强实时性,它不是一个RTOS, 因此ROS不适合去做对实时性有严格要求的任务。
ROS文件系统
1、Catkin编译系统
gcc、g++,随着源文件的增加,直接用gcc/g++命令方式显得效率低下,人们开始用Makefile来进行编译。
然而随着工程体量的增大,Makefile也不能满足需求,于是便出现了CMake,CMake是对make工具的生成器,是更高层的工具,它简化了编译构建过程,能够管理大型项目,具有良好的扩展性。
对ROS平台来说,就采用的是CMake,并且ROS对CMake进行了扩展,于是便有了Catkin编译系统
主题
服务

参数服务器
参数服务器特殊的“通信方式”,特殊点在于参数服务器是节点存储的地方、用于配置参数,全局共享参数。
Actionlib
Actionlib是ROS中一个很重要的库,类似service通信机制,actionlib也是一种请求响应机制的通信方式,actionlib主要弥补了service通信的一个不足,就是当机器人执行了一个长时间的任务时,假如利用service通信完成,那么publisher会很长时间接受不到反馈reply,致使通信受阻。当service通信不能很好的完成任务时候,actionlib则可以比较适合实现长时间的通信过程,actionlib通信过程可以随时被查看过程进度,也可以终止请求。
我们可以看到,客户端会向服务器发送目标指令 和 取消动作指令,而服务器则可以给客户端发送实时的状态信息,结果信息,反馈信息等等,从而完成了service没法做到的部分。
Action规范:
a) 目标 机器人执行一个动作,应有明确的移动目标信息,包括一些参数的设定,方向,角度,速度等等。从而使机器人完成动作任务。
b) 反馈 动作执行过程中,应该有实时的状态信息反馈给服务器的实施者,告诉实施者动作完成的状态,可以使实施者做出准确的判断去修正指令
c) 结果 当运动完成时,动作服务器把本次运动的结果数据发送给客户端,使客户端得到本次动作的全部信息,例如可能包含机器人的运动时长,最终姿势等等。
机器人的坐标变换一直以来是机器人学的一个难点
首先是坐标转换的前提数学知识:三维空间刚体运动,包括旋转矩阵、欧拉角、四元数等。
旋转矩阵:一个欧式变换可以由旋转 和 平移两个部分组成。
欧拉角 例如:先绕x轴旋转,再绕y轴旋转,最后绕z轴旋转。
航偏-俯仰-翻滚(yaw-pitch-roll)
可以简单记忆
rpy-xyz
”**
四元数
旋转矩阵用9个量来描述3自由度的旋转,具有冗余性。
欧拉角虽然用3个量来描述3自由度的旋转,但是具有万向锁的问题,因此我们选择用四元数,ROS当中描述转向的都是采用的四元数。
机器人研究的问题包含许许多多的领域,我们常见的几个研究的问题包括:建图(Mapping)、定位(Localization)和 路径规划(Path Planning)。
Navigation是机器人最基本的功能之一,ROS为我们提供了一整套Navigation的解决方案,包括全局与局部的路径规划、代价地图、异常行为恢复、地图服务器等等。
Navigation Stack是一个ROS的metapackage,里面包含了ROS在路径规划、定位、地图、异常行为恢复等方面的package,其中运行的算法都堪称经典。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!