锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于Webots平台的简易智能机器人避障算法的实现

时间:2023-12-06 08:07:01 传感器bfs传感器dfs

资源下载地址:https://download.csdn.net/download/sheziqiong/85793665
资源下载地址:https://download.csdn.net/download/sheziqiong/85793665

实验目的:

熟悉机器人仿真软件(如Simbad、Webots、TeamBots、Player/Stage/Gazebo、MotionPlaner等)使用方法;掌握几种机器人路径规划算法。能更清楚地了解智能机器人软硬件组成、工作原理等基本知识;掌握机器人程序的设计和编写;综合运用基础理论和专业知识进行创新设计的能力。

实验要求:

在机器人软件平台上建立一个模拟环境,包括多个静止障碍物和运动障碍物。设置机器人的起点和终点后,机器人可以规划从起点到目标点的安全路径。查阅相关路径规划算法,实现上述算法并相互比较。需要给出源代码、测试结果和演示。

实验环境与平台:

Win10 Webots

代码语言:

python

实验过程:

1.了解软件结构和功能分区

打开界面,左栏是node添加/删除/修改世界各节点的界面。文本编辑器页面右侧为控制器代码,Webots允许使用C/C /Java/python/matlab可以选择自己熟悉的语言来编写各种编程语言。各种控制模拟按钮,包括开始/暂停/重载等。控制台在页面底部,可以看到程序运行过程中输出的信息。页面中央是视图区,可以设计世界布局,调整视角。

2.新世界

通过添加node,不同的障碍物可以放置在不同的位置。Webots提供各种内置basic node。展开node,可以设置node具体属性,包括transition,rotation,color,size等。

除了webots除了内置节点,还可以修改basic node中的children属性,添加子节点,实现自主设计。在这个实验中,我使用了内置的e-puck同时,节点还独立搭建了一个同时配备的避障实验GPS,compass, 两个发动机和8个距离传感器robot进行路径规划实验。

3.用e-puck机器人实现自动避障(包括静态障碍和动态障碍)

E-puck内置了8个距离传感器和左右两个发动机。其运动原理是通过读取位于其转塔周围的8个红外距离传感器的返回值,根据传感器读数判断周围环境并驱动两个车轮。距离传感器返回的值在0到4096之间缩放。数值越大表示障碍物越近。

现在实现了避障代码test_controller.py文件中

实现原理:

使用getDevice()各种传感器的初始化方法。enable()setPosition()setVelocity()初始化传感器和发动机的参数。

在while通过主循环getValue()该方法读取传感器值,并根据返回的传感器值判断是否发生碰撞。如果发生碰撞,则改变左右发动机的转向速度。

4.实现BFS路径规划控制器

bfs_target.py:
路径规划算法,根据给定的地图设计合理的路径,包装成BFS类

实现了getTarget()方法。该方法将返回列表类型,在规划路径后记录路径中的坐标,并传输给主控制器。

bfs.py:
控制器代码,启动各部件,控制机器人按计划路径移动

根据world障碍物布局,手动输入map列表,实例化bfs类得到target列表(通过点坐标存储目标路径)

计算robot调整发动机速度,从当前位置到目标位置的距离和方向夹角。

5.实现DFS路径规划控制器

dfs_target.py
dfs.py

通过调整robots的controller参数可以测试不同控制器的避障效果

资源下载地址:https://download.csdn.net/download/sheziqiong/85793665
资源下载地址:https://download.csdn.net/download/sheziqiong/85793665

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章