【ROS入门21讲二刷古月居】学习笔记1 ROS命令行工具

系列文章目录



前言

为学习ros雷达小车做准备,我装的是ubuntu18.04对应的ROS Melodic,安装ros参考: 输入roscore报错:“roscore” not found 输入 sudo apt install ros-melodic-roslaunch

准备工作

安装完之后,先使用一个ROS的欢迎程序来向大家展示我们的ROS系统。 ROS系统的启动需要一个ROS Master,即节点管理器,我们可以在终端输入roscore指令来启动ROS Master。

roscore

然后我们来启动一个小海龟的例程。新打开一个终端,输入 //(Simulation模拟) 海龟模拟节点

rosrun turtlesim turtlesim_node

即可出现一个小海龟的画面,我们再打开一个终端,输入 //(teleoperation远程操作)

rosrun turtlesim turtle_teleop_key

来启动键盘控制,通 过↑、↓、←、→来控制小乌龟的移动。 我们可以再开启一个终端,查看一下节点关系和话题列表。

rqt_graph

ROS命令行工具

rostopic rosservice rosnode rosparam rosmsg rosssrv

rosnode

rosnode list 将所有用到的节点都列出来的指令,/rosout主要采集所有ros节点的日志信息,主要提交给上面的界面做显示的,只要roscore运行就有这个rosout,是默认的话题,不用关心它。 rosnode info /turtlesim查看具体node信息是什么样的,publications是发布的话题,subscriptions是订阅的话题,控制海龟做移动。services是一些服务来完成一些配置 后面还有一些它的主页号,pid号,还有一些底层方面的信息,最重要的还是前面一些描述

rostopic

rostopic list可以打印当前系统所有话题列表 rostopic pub /turtle1/cmd_vel 发布数据到话题。双击tab键补全,rostopic pub + 话题名 + 消息数据结构 ,双引号框起来的是消息数据结构里的数据 ,linear线速度,angular角速度(单位ros一般跟行路相关的是m/s,角度相关的是弧度/s) -r 10 意思是10hz的频率发布话题 ,-r (rate频率)海龟就会一直走,不加的话,海龟走一次就会停止 angular 的z轴是垂直于屏幕的轴,写1会画一个圆,

rosmsg

rosmsg show geometry_msgs/Twist 显示消息数据结构

rosservice

rosservice list服务列表 rosservice call /spawn 产生另外一个海龟 spawn(产卵) 先空格,再两下tab键补全,x,y轴是基于左下角零点坐标,theta是角度,name是名字 产生之后就有第二个海龟的话题

rosbag

话题记录的工具,记录当前所有话题数据,并且保存下来,在我们下次用的时候再复现出来,主要用于无人机想做调试,不可能每次都让无人机飞起来做调试,这个非常方便,一般做一次飞行,把所有数据都保存下来,回到实验室里面再把数据复现出来,rosbag就是干这样的事情。 rosbag record -a -O cmd_record -a就是-all 把所有数据保存下来,-O就是把数据打成一个压缩包,这个压缩包名字叫什么,就叫cmd_record,就会把当前所有数据都保存下来,默认保存在当前目录下。执行命令后,手动敲键盘使海龟移动,然后ctrl +c 退出 保存在当前目录home下 然后重新启动roscore 启动 rosrun turtlesim turtlesim_node 不启动键盘节点, rosbag play cmd_record.bag执行这个海龟就会沿着上次的路线跑。


总结

这就是第一节要讲的。

经验分享 程序员 微信小程序 职场和发展