(二)ROS理论与实践 -- 认识ROS

参考资料

深蓝学院 – ROS理论与实践

ROS的定义与组成

ROS,Robot Operating System,机器人操作系统。(具体定义可以参见ROS官网
ROS = 通信机制 + 开发工具 + 应用功能 + 生态系统。

ROS使用的好处 – 提高机器人研发中的软件复用率

  1. 点对点的设计。
  2. 多语言支持。
  3. 架构精简、集成度高。
  4. 组件化工具包、功能包丰富。
  5. 免费并且开源。

通信机制松耦合分布式通信。
开发工具:TF坐标变换、QT工具箱、Gazebo、Rviz、命令行&编译器。
应用功能:Navigation、SLAM、Movelt。
生态系统:发行版、软件源、ROS wiki、邮件列表、ROS Answers、博客。

ROS核心概念与通信机制

节点(Node)- - 执行单元

  • 执行具体任务的进程、独立运行的可执行文件;
  • 不同节点可使用不同的编程语言,可分布式运行在不同的主机;
  • 节点在系统中的名称必须是唯一的。

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

  • 为节点提供命令和注册服务;
  • 跟踪和记录话题/服务通信,辅助节点相互查找、建立连接;
  • 提供参数服务器,节点使用此服务器存储和检索运行时的参数。

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

  • 节点间用来传输数据的重要总线;
  • 使用发布/订阅模型,数据由发布者传输到订阅者,同一个话题和订阅者或发布者可以不唯一。

消息(Message)- - 话题数据

  • 具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型;
  • 使用编程语言无法的.msg文件定义,编译过程中生成对应的代码文件。

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

  • 使用客户端/服务器(C/S)模型,客户端发送请求数据,服务器完成处理后返回回答数据;
  • 使用编程语言无关的.srv文件定义请求和应答数据结构,编译过程中生成对应的代码文件。

参数(Parameter)- - 全局共享字典

  • 可通过网络访问的共享、多变量字典;
  • 节点使用此服务器来存储和检索运行时的参数;
  • 适合存储静态、非二进制的配置参数。不适合存储动态配置的数据。

功能包(Package)

  • ROS软件中的基本单元,包含节点源码、配置文件、数据定义等。

功能包清单(Package manifest)

  • 记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等。

元功能包(Meta Packages)

  • 组织多个用于同一目的功能包。

话题与服务的区别:

话题服务
同步性异步同步
通信模式发布/订阅服务器/客户端
底层协议ROSTCP/ROSUDPROSTCP/ROSUDP
反馈机制
缓冲区
实时性
节点关系多对多一对多(一个server)
适用场景数据传输逻辑处理

第一个ROS例程–小海龟仿真分析

常用命令rostopic、rosservice、rosnode、rosparam、rosmsg、rossrv

小海龟仿真启动步骤:

启动ROSMaster
启动小海龟仿真器
启动海龟控制节点

启动ROS Master,在终端执行:roscore

在这里插入图片描述
启动小海龟仿真器,在终端执行:rosrun turtlesim turtlesim_node

在这里插入图片描述

启动海龟控制节点,在终端执行:rosrun turtlesim turtle_teleop_key

在这里插入图片描述

查看系统中运行的计算图rqt_graph

在这里插入图片描述
查看话题列表rosnode list

在这里插入图片描述

查看某个节点的具体信息rosnode info 节点名称

在这里插入图片描述

查看话题的具体信息rostopic echo 话题名称

在这里插入图片描述

终端发布话题信息rostopic pub -r 频率 话题名称 数据类型 具体数据

在这里插入图片描述

发布服务请求rosservice call 服务名称 服务数据

在这里插入图片描述
在这里插入图片描述

打开绘图工具rqt_plot

在这里插入图片描述

问题解决

运行roscore的时候,出现如下错误:

ROS环境
经检查,因为自己安装CUDA后导致ROS系统环境没有放在文件的底部,修改步骤:

# 打开 ~/.bashrc文件
sudo gedit ~/.bashrc

# 文件最后添加
source /opt/ros/noetic/setup.bash

# 重新启动环境文件
source ~/bashrc

结语

怕什么真理无穷,进一寸有一寸的欢喜!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值