跟古月居学ros:让小海龟turtlesim移动

// 开启一个终端,启动ros
roscore

// 新开启一个终端,开启一个turtlesim节点
rosrun turtlesim turtlesim_node

// 新开启一个终端,启动键盘控制小海龟功能
rosrun turtlesim turtle_teleop_key 

// 查看节点
rqt_graph
// 节点相关
rosnode

以下是rosnode的参数

跟古月居学ros:让小海龟turtlesim移动_第1张图片
// 话题相关
rostopic

以下是rostopic的参数

跟古月居学ros:让小海龟turtlesim移动_第2张图片

给小海龟发布指令:线性(linear)速度移动

rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
跟古月居学ros:让小海龟turtlesim移动_第3张图片

将x轴方向的线性速度修改为1.0,会观察到小海龟移动一小段距离就停下来了(修改x的值时使用键盘左右键移动)

跟古月居学ros:让小海龟turtlesim移动_第4张图片

-r设置循环执行频率,10代表每1秒钟发布10次,此时小海龟一直移动。撞墙终端会出现警告信息。ctrl+c停止该指令

rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
跟古月居学ros:让小海龟turtlesim移动_第5张图片
//消息相关
rosmsg

以下是rosmsg的参数

跟古月居学ros:让小海龟turtlesim移动_第6张图片
// 服务相关
rosservice

以下时rosservice的参数

跟古月居学ros:让小海龟turtlesim移动_第7张图片

使用rosservice添加另外一只小海龟。左右方向键移动光标,修改参数

跟古月居学ros:让小海龟turtlesim移动_第8张图片

rosbag话题记录

a:all

rosbag record -a -O cmd_record
跟古月居学ros:让小海龟turtlesim移动_第9张图片

接着鼠标点击小海龟键盘控制的终端,键盘方向键让小海龟运动几下,产生一些数据。然后鼠标点击你输入rosbag命令的终端,ctrl+c退出。小海龟键盘控制终端是这个:

跟古月居学ros:让小海龟turtlesim移动_第10张图片

打开home文件夹,会看到cmd_record.bag文件。这个文件保存了我们刚才对小海龟的操作。

跟古月居学ros:让小海龟turtlesim移动_第11张图片

接下来找到启动roscore,turtlesim的终端,ctrl+c退出。再先后在相应终端重新启动roscore,turtlesim

跟古月居学ros:让小海龟turtlesim移动_第12张图片
退出后重新启动

复现rosbag记录写来的操作数据,在原来输入rosbag的终端输入

rosbag play cmd_record.bag

小海龟就会根据记录下的操作按照时间顺序执行

跟古月居学ros:让小海龟turtlesim移动_第13张图片

你可能感兴趣的:(跟古月居学ros:让小海龟turtlesim移动)