📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处
前言
以小乌龟历程为例。这是一个简单的示例,可供我们开始学习和探索ROS中乌龟运动的功能。通过深入了解ROS中的消息通信和相关工具,我们可以实现更复杂的乌龟活动和路径规划。
1、启动键盘控制乌龟历程所需的所有节点
终端1:
roscore
终端2:
rosrun turtlesim turtlesim_node
是在 ROS)中运行 turtlesim_node
节点的命令。
turtlesim_node
是一个仿真节点,它模拟了一个简单的乌龟机器人,可以通过发布 ROS 消息来控制乌龟机器人的移动和绘制路径。
通过运行 rosrun turtlesim turtlesim_node
命令,我们将启动 turtlesim_node
节点,并打开一个名为 “turtlesim” 的图形窗口。在该窗口中,您可以使用键盘控制乌龟机器人的移动和绘制路径,或者使用其他节点发布相关的控制指令来实现自动控制。
rosrun turtlesim turtlesim_node
终端3:
rosrun turtlesim turtle_teleop_key
启动完成后,在可视化界面中可以看到小乌龟。现在,可以使用键盘上的箭头键来控制乌龟的前进、后退、旋转等操作,观察乌龟在窗口中的移动。
2、跑小乌龟并记录数据
首先创建一个用于存放数据的文件夹,例如命名为bagfiles。
终端4:
mkdir ~/bagfiles
cd bagfiles
rosbag record -a
rosbag的作用:提供数据记录和回放的功能包。
rosbag record -a
1.意为记录所有数据的命令,从在运行这个命令后,将自动记录所有发布的数据
2.订阅所有正在发布的话题
以记录小乌龟运动轨迹的数据为例,控制小乌龟移动一段距离,然后在数据记录运行的终端输入“ctrl+c”终止记录数据。即:
终端4:
ctrl+c
进入刚才创建的文件夹可以发现存在一个以创建的时刻命名的文件,这就是记录了小乌龟运动轨迹数据的记录文件了。
3、查看数据
在创建的bagfiles文件夹中打开终端,即
终端4:
rosbag info <your bagfile>
可以查看之间生成的数据记录文件的详细信息
发现数据记录包件中能完全记录话题列表中的所有话题。
4、回放数据
在回放数据之间先
1.关闭小乌龟键盘控制节点
2.重启小乌龟显示节点,不然回放的时候没有显示窗口。
回放所记录的话题数据的命令如下,在此之前,
3.一定要先启动ros master。
4.1 默认情况下回放数据
同样在创建的bagfiles文件夹中打开终端,即
终端4:
rosbag play <your bagfile>
1.回放数据的实质是发布之前所有订阅的话题。
2.发布话题前需要等待0.2秒,这是为了在发布信息之前通知所有订阅信息的节点,以使它们能够及时地接收到rosbag play发布的信息,
4.2 快速回放数据
rosbag play -r 倍数 <your bagfile>
虽然提高了数据回放的速度,但是小海龟的运行轨迹会失真,而且倍数越大,失真越明显。
2倍速:
4倍速:
6倍数: