ROS机器人学习小结

2022-04-14 07:40:05   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《ROS机器人学习小结》,欢迎阅读!
小结,机器人,学习,ROS
ROS机器人学习小结

RS简介

ROS就是一个用于编写软件得灵活框架,它集成了大量得工具、库、协议,提供了类似操作系统提供所提供得功能,包括硬件抽象描述、底层驱动程序管理共用功能得执行、程序间得消息传递、程序发行包得管理,可以极大得简化繁杂多样得机器人平台下得复杂任务创建与稳定行为控制。

在短短几年里,ROS得到了广泛得应用,各大机器人平台几乎都支持RS框架,如Pioeer、Aldebaran NoTutleBot、Leg NXT、Asctec qudrotor等。同时,开源社区内得ROS功能包呈指数级增长,涉及得应用邻域包括轮式机器人、人形机器人、工业机器人、农业机器人等。

1、1 OS设计目标。

OS设计目标就是提高机器人研发中得软件复用率,所以它被设计成为一种分布式结构,使得框架中得每个功能模块都能被单独设计、编译,并且在运行时以松散耦合得方式结合在一起.而且ROS中得功能模块都封装于独立得功能包Pakage)便于在社区中共享与分发。

12RS得特点

ROS核心——分布式网络,使用Tc/p通信方式,实现模块间点对点得松耦合连接,可以执行若干类型得通信,包括基于话题得(Topic)得异步数据流通信,基于服务(sevie)得同步数据流通信,还有参数服务器上得数据存储等 1 点对点得设计

RS,每一个进程都以一个节点得形式运行,可以分布于多个不同得主机。节点间得通信消息通过一个带有发布与订阅功能得RPC传输系统,从发布节点传送到接收节点.这种点对点得设计可以分散定位、导航等功能带来得实时计算压力,适应多机器人得协同工作

2 多语言支撑

ython、C++、JavaOctave、LISP

3 架构精简、集成度高

在已有得机器人应用中,软件得复用性就是一个巨大得问题。很多得驱动程序、应用算法、功能模块在设计时过于混乱,导致其很难在其她机器人或应用中进行移植与二次开发. ROS框架具有模块化特点使得每个功能节点可以进行单独编译,并且使用统一得消息接口让模块得移植、复用更加便捷。

4 组织化工具包丰富

移动机器人得开发往往需要一些友好得可视化工具与仿真软件,ROS采用组件得方法将这些工具与软件集成到系统中可以作为一个组件直接使用。例如3D可视化工rviz,开发者可以根据ROS定义得接口在其显示机器人3D模型、周围环境地图、机器人导航路线等消息.此外,ROS中还有消息查瞧工具、物理仿真环境等组件,提高了机器人开发得效率.

5 免费并且开源

ROS遵照得BSD许可给使用者较大得自由,允许其修改与重新发布其中得应用代码,甚至可以进行商业化得开发与销售


13通信架构

master



node1 node2

mster(1)每个nde启动时都要向master注册.(2)管理noe之间得通信



nod:1)ROS得进程。(2)pkg里得可执行文件运行得实例(运行c++pyton、shell脚本等可执行文件,加载到内存中,就成为一个ROS进程,即一个node)

通信方式

1)topi通信

ROS中得异步通信方式

noe之间通过pbish-subscrie机制通信 /Topic

NodeA NodeB

nodeA与noeB发布与订阅并不同步

NodeC NodeD

多个node可以发布信息给同一Topic,多个noe可以订阅同一Toic得信息

(2serice通信

topic通信占用计算资源,node不停得发布信息与接受信息 servce

RS中得同步通信方式

Node之间可以通过reqest-rply方式通信 /service

NodeA

NodeB(server)

(3)prmeter server

NodeC

启动ros时自动启动参数服务器 存储各种参数与配置得字典

可以用命令行,launch文件与node读写 ey Vau

rsdisr 'kneic

/osersion '1、12、7'

/ue_sim_time true

一般将不常改变得参数与配置写入参数服务器内 rsparm list/列出当前所有得参数

opram gt ara_key//显示莫个参数得值(gazebo_guigravity_z (4)Actio通信

类似servce,带有状态反馈得通信方式

通常用在长时间、可抢占得任务中(例如小车导航、机械运动

goal

action Action

cancel

service client

status




result



feedback

示例

1maste and node

roslaunc robot_sim_demo robt_spanlanh //打开示例 rsnd lst //显示哪些node运行

osode info cd_vel_mux //查瞧node得详细信息(速度选择器发布toic 订阅得topc、提供两个服务)

(2)topic通信

rolaunh obot_sim_deo robt_spwnlanc //打开示例

rosrun imge_iew image_vew mge:=/camea/rgbimae_rw/ //显示/camra/rgbimge_aw中得信息

rosrun rbo_sm_emo robot_keyboard_teleop、py //运行Pyhon脚本,控制小车运动

ostpic lit//哪些toi

rostoi nfo camera/rgb/mae_raw//查瞧该topic信息 rosoi inf /cm_el //查瞧该tpic信息

/camera/rgb

image_view /gazebo

3)servie通信

rossrvice list

rsservice info /gzbo/dlee_light/提供得服务信息

rossrv show gzeb_msgs/DeleeLiht//显示请求(删除灯光得名称)与回复 rosservice cal /azebo/delte_light liht_ae 'sun'"//删除灯光 /cmd_vel

sun /mobile_base client

/delete_light

/gazebo

success string status


本文来源:https://www.wddqxz.cn/09779b25b91aa8114431b90d6c85ec3a87c28b9d.html

相关推荐