【ROS21讲】:第二部分 核心概念(6-8讲)


ROS是目前使用最广泛的开源机器人操作系统之一,ROS主要用于自动驾驶的系统架构与仿真平台。目前,许多自动驾驶系统仍然选择在ROS系统上进行改进,如Apollo,Autoware等。本文主要记录基础知识并讨论ROS的入门方法。

第6讲:ROS是什么?

1、ROS=通信机制+开发工具+应用功能+生态系统

①通信机制:ROS提供了一种松耦合分布式通信机制
②开发工具:ROS提供了大量的工具组合用以配置、启动、自检、调试、可视化、登录、测试、终止分布式计算系统;
③应用功能:ROS提供控制,规划,预测,定位操纵等功能
④生态系统:ROS的支持与发展依托着一个强大的社区。ros.org尤其关注兼容性和支持文档,提供了一套“一站式”的方案使得用户得以搜索并学习来自全球开发者数以千计的ROS程序包。
在这里插入图片描述

2、通信机制

ROS中具有松耦合分布式通信机制
在这里插入图片描述

3、开发工具

在这里插入图片描述

4、应用功能

在这里插入图片描述

5、生态系统

在这里插入图片描述

第7讲:ROS中的核心概念?

1、节点与节点管理器

在这里插入图片描述

2、通信机制

ROS中具有两种通信机制,分别为:话题通信和服务通信
在这里插入图片描述在这里插入图片描述
加粗样式

3、参数

在这里插入图片描述

4、文件系统

图片: https://uploader.shimo.im/f/syqhUuSkP2iZnz0n.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTAyNDk2MjEsImZpbGVHVUlEIjoiNXJrOWRneEtlUkYxNTdxeCIsImlhdCI6MTY1MDI0OTMyMSwidXNlcklkIjo1Mjg5MzE0OH0.QvURvkSMux_GEmNFyK6rlWAMmyMGKhCkz7TMMji2J54

第8讲:ROS命令行的工具使用?

运行小海龟程序的样例:

roscore
rosrun turtlesim turtlesim_node 
rosrun turtlesim turtle_teleop_key

1、节点运行

rosrun【功能包】【节点名】
rosrun [功能包] 双TAB有提示

图片: https://uploader.shimo.im/f/rM9DPNaKfOF67HCf.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTAyNDk2MjEsImZpbGVHVUlEIjoiNXJrOWRneEtlUkYxNTdxeCIsImlhdCI6MTY1MDI0OTMyMSwidXNlcklkIjo1Mjg5MzE0OH0.QvURvkSMux_GEmNFyK6rlWAMmyMGKhCkz7TMMji2J54

2、绘制节点通信图

rqt_grapy

图片: https://uploader.shimo.im/f/HV9rclXnj4IBTl4Q.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJhY2Nlc3NfcmVzb3VyY2UiLCJleHAiOjE2NTAyNDk2MjEsImZpbGVHVUlEIjoiNXJrOWRneEtlUkYxNTdxeCIsImlhdCI6MTY1MDI0OTMyMSwidXNlcklkIjo1Mjg5MzE0OH0.QvURvkSMux_GEmNFyK6rlWAMmyMGKhCkz7TMMji2J54

3、常见的命令行功能

命令:rostopic rosservice rosnode rosparam rosmsg rossrv
格式:命令 【动作】【对象】
TIPS:命令+enter===>可以提示所有
TIPS:命令 【动作】+两个TAB======
rosnode list
rosnode info /teleop_turtle
rostopic
rostopic list
rosmsg show geometry_msgs/Twist
rosservice list
rosservice info /spawn

1)、rostopic echo [topic]
显示某话题的数据

$ rostopic echo /turtle1/cmd_vel

2)、rostopic type
显示某话题的消息类型

$ rostopic type /turtle1/cmd_vel
geometry_msgs/Twist

3)、rosmsg show
查看消息类型的详细信息

$ rosmsg show geometry_msgs/Twist

geometry_msgs/Vector3 linear
  float64 x
  float64 y
  float64 z
geometry_msgs/Vector3 angular
  float64 x
  float64 y
  float64 z

4)、rostopic hz [topic]
rostopic hz报告数据发布的速率。

$ rostopic hz /turtle1/pose
subscribed to [/turtle1/pose]
average rate: 59.354
        min: 0.005s max: 0.027s std dev: 0.00284s window: 58
average rate: 59.459
        min: 0.005s max: 0.027s std dev: 0.00271s window: 118
average rate: 59.539
        min: 0.004s max: 0.030s std dev: 0.00339s window: 177
average rate: 59.492
        min: 0.004s max: 0.030s std dev: 0.00380s window: 237
average rate: 59.463
        min: 0.004s max: 0.030s std dev: 0.00380s window: 290

5)、rqt_plot
动态绘制话题的数据

$ rosrun rqt_plot rqt_plot

这会弹出一个新窗口,可以在左上角的文本框里面添加任何想要绘制的话题。在里面输入/turtle1/pose/x后,之前不能按下的加号按钮将会变亮。按一下该按钮,并对/turtle1/pose/y重复相同的过程。现在你会在图中看到turtle的x-y位置。
在这里插入图片描述6)查找ros功能包的路径rospack find

$ rospack find turtlesim
/opt/ros/noetic/share/turtlesim

4、利用命令行发布话题与服务请求

发布话题消息
rostopic  pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:    
  x: 1.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.0" 
发布服务请求
rosservice call /spawn "x: 10.0
y: 10.0
theta: 0.0
name: ''" 
name: "turtle2"
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后厂村路蔡徐坤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值