9、教程-3控制器的更多方面

发布时间 2023-07-27 18:52:18作者: gary_123

现在我们开始讨论与机器人控制器编程相关的主题。我们将设计一个简单的控制器,以避免在前面的教程中创建的障碍。
本教程将向您介绍Webots中机器人编程的基础知识。在本章末尾,您应该了解场景树节点和控制器API之间的链接是什么,机器人控制器必须如何初始化和清理,如何初始化机器人设备,如何获取传感器值,如何命令执行器,以及如何编程简单的反馈环。
本教程仅介绍Webots函数的正确用法。机器人算法的研究超出了本教程的目标,因此此处不再赘述。处理本章需要一些基本的编程知识(任何C教程都应该是足够的介绍)。在本章的最后,给出了进一步的机器人算法的链接。

将之前的.wbt文件保存为新的文件epuck_avoid_collision.wbt

理解e-puck 模型

控制器编程需要一些与电子吸盘模型相关的信息。为了创建防撞算法,我们需要读取其炮塔周围的8个红外距离传感器的值,并启动其两轮。距离传感器分布在转台周围的方式和电子吸盘方向如图所示。
距离传感器由机器人层次结构中的8个DistanceSensor节点建模。这些节点由它们的名称字段(从ps0到ps7)引用。我们稍后将解释如何定义这些节点。现在,只需注意,可以通过Webots API的相关模块(通过Webots/distance_sensor.h包含文件)访问DistanceSensor节点。距离传感器返回的值在0和4096之间按比例缩放(与距离分段线性)。4096表示测量到大量的光(障碍物很近),0表示没有测量到光(没有障碍物)。
控制器API是一个编程接口,可以让您访问机器人的模拟传感器和执行器。例如,包含webots/distance_sensor.h文件允许使用wb_dinstance_sensor_*函数,并且使用这些函数可以查询DistanceSensor节点的值。有关API函数的文档可以在参考手册中找到,并附带每个节点的说明。