ROS入门之小海龟

本文介绍了ROS的基本概念,通过小海龟仿真展示了ROS的节点和话题通信。通过创建ROS功能包和编写C++代码,实现了让小海龟进行圆周运动的功能,详细阐述了从工作空间创建到消息发布的过程,从而帮助读者理解ROS中的消息传递和控制系统设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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 ~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值