小海龟仿真并实现圆周运动
一、ROS基本介绍
ROS(机器人操作系统)提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。
ROS即通讯机制+开发工具+应用功能+生态系统四位一体。
特点:点对点、分布式、多语言支持、轻量级、免费和开源。
二、小海龟仿真
- 第一步,打开一个终端,输入以下命令
roscore
- 第二步,再打开一个终端,输入以下命令启动小海龟仿真器
rosrun turtlesim turtlesim_node
- 第三步,再打开一个终端,输入以下命令启动控制器
rosrun turtlesim turtle_teleop_key
此时就可以通过上下左右键进行小海龟的移动操作了。
三、编写程序让小海龟实现圆周运动
1.用话题查看器查看两个node之间的消息传递
打开话题查看器
命令行输入以下指令
rosrun rqt_graph rqt_graph
这张图中,可以看出turtle_teleop与turtlesim两个节点之间通过/strong/cmd_vel进行通信,也就是话题,按键信息会发布在这个话题上,然后turtlesim_node从这个话题接受信息控制其移动,所以需要写一个文件发送控制指令。
输入下图的代码可以看到消息的获取。
小海龟移动的基本原理
输入以下命令可以查看
rostopic type /turtle1/cmd_vel
可以看到如下,数据类型为geometry_msgs/Twist,还需要再进一步查看
输入以下代码来查看:
rosmsg show geometry_msgs/Twist
- linear的意思是线速度;
- angular的意思是角速度;
- xyz表示坐标;
如果要控制海龟转圈,就要保持匀速向前的运动,然后角速度不为0即可。
2.编写代码实现转圈
1.创建工作空间
mkdir -p ~/catkin_ws/src
cd ~