关于matlab地图规划的一些想法

一些关于matlab 做地图规划的想法

 

机器需要劳力的日子一去不复返了。如今,大多数机器都足够聪明,可以通过自己的程序创建或更改车道。有了这些自动驾驶的机器,我们的生活变得越来越方便。在仓库内,例如中国的顺丰快递和京东仓库,货物机器人能自动将货物从一个点运送到所需的点。这些机器人的导航系统组成一个网络,这样可以防止机器人相互碰撞。还有在人们家中使用的扫地机器人也是如此。他们根据计算出来的路径清洁房屋。它们通过安装在它们前面的传感器来探测障碍物并将数据输入计算机。传感器检测到的障碍越多,机器人的路径就越有效。因此,经过多次探测,机器人将有一个有效的路径。自动驾驶的汽车也可以看作是一个导航机器人。现在,越来越多的汽车使用自动驾驶系统。这种自动驾驶可以在没有司机的情况下把乘客带到目的地。在路上,当红绿灯亮时,这些车就会停下来。虽然这养的安全性还有待考验,但是它提供了一种对于未来的新思路。

但使用机器人的同时也带来了一些社会和伦理问题。随着移动机器人的增加,越来越多的人将失去工作。由于这些机器人可以一天工作24小时,一年365天不休息,越来越多的工厂将选择机器人代替人工。更有甚者,有消息称自动驾驶仪因其系统原因造成交通事故。因此,谁对交通事故负责仍是一个严重的道德问题。

 

仿真的目的是在给定的二维地图上找到适合三种车辆行驶的路径。给出了该方法的起点和终点。本报告由以下五部分组成:

 

 

首先说一下基于概率路线图(PRM)的导航系统路径图。这种算法的原理是在给定映射的自由空间中创建随机采样的节点,然后将它们连接起来。一旦节点连接起来,系统就可以计算从给定起点到终点的路径。创建路径后,将对其应用机器人运动学模型。

 

除此之外,快速探索随机树(RRT)是在给定映射的自由空间中逐步生成一棵树,最终树跨越自由空间,连接给定的起始点和目标点

 

机器人运动学模型普遍用于模拟车辆如何沿着创建的路径移动的情况。对于每辆车来说,它们都安装了各种传感器。其中一种传感器用于防止车辆与障碍物碰撞。一般来说,每辆车转向的方式和能力各不相同,应用在他们之上的算法也不相同。本文将讨论两个机器人的运动模式。

 

应用机器人运动学模型后,MATLAB应用程序设计器将创建图形用户界面(GUI)。在这个GUI中,用户可以自由选择他们想要的地图和选择他们想要的机器人运动学模型。

 

 

规划算法包括两个方面。首先是路径规划。路径规划方法有两种实现方式。一种是随机方式,在定义的地图中生成随机点。随机方法在PRM和RRT方法中具有重要意义。首先说一下基于概率路线图(PRM)的导航系统路径图。这种算法的原理是在给定映射的自由空间中创建随机采样的节点,然后将它们连接起来。一旦节点连接起来,系统就可以计算从给定起点到终点的路径。创建路径后,将对其应用机器人运动学模型。

 

除此之外,快速探索随机树(RRT)是在给定映射的自由空间中逐步生成一棵树,最终树跨越自由空间,连接给定的起始点和目标点。

除随机方法外,另一种方法是启发式搜索,由Dijkstra算法和A-star[4]表示。这类方法通过探测原点周围的区域来扩展,直到目标被发现。这非常类似于我们在迷宫中所做的,这是第一个视图中的方法。A-start算法是对Dijkstra算法的改进,通过判断与目标的距离,省去了对不必要区域的探测。

 

第二个方面是运动学模型,它允许物体沿着计划的路径移动而不发生碰撞。机器人运动学模型普遍用于模拟车辆如何沿着创建的路径移动的情况。对于每辆车来说,它们都安装了各种传感器。其中一种传感器用于防止车辆与障碍物碰撞。在本文中,距离传感器和激光雷达是用来探测未知区域的两部分。距离传感器定义了从物体中心开始的探测范围。激光雷达传感器可以扫描周围的环境来识别障碍物。激光雷达传感器总是可以帮助机器人建立一个未知工作空间的二进制占用地图。然后,可以规划关键路径。

 

 

//

 

在实践中,第一步,也是assignment中第一个要求,是生成计算机可以识别的地图。我们在计算机上看到的通用图(图1(a))是png格式的(有时也是jpg格式)。这类图片我们人眼可以识别,但是计算机无法识别,因此需要将利用Excel来转换图片(图1(b))。在这种形式中,地图的自由空间由数字0组成,而1则用来表示障碍物,在Excel地图表创立完成之后,它被转换成CSV表格,从而使得计算机可以识别。然后使用该CSV表格生成地图。为避免与障碍物发生碰撞,填充1号的墙壁应按机器人半径充气。因此,在运动过程中,机器人可以尽可能安全地移动。

 

 

第二步是实现路径规划算法。在这个assignment中,PRM算法是第一个被运用的。通过应用图( )所示的功能,可以自动生成随机节点和关键路径。根据matlab教程的内容,(图2)中的代码将被用来输入地图,代码:read matrix('navigation map 2')用于将CSV表单映射输入MATLAB。在完成地图创建以后,需要确保机器人不会与障碍物相撞。为此,通过代码将机器人的尺寸设置为0.2米:根半径=0.2。(就像之前说的,填充1号的墙壁应按机器人半径充气)。在运行之前,应设置随机节点的初始数目和连接距离。因为在PRM算法中,没有考虑机器人的尺寸。为了使PRM能够考虑机器人的尺寸,需要对其进行膨胀映射。可以通过以下代码创建膨胀地图:mapInflated=copy(map);充气(mapInflated,robotRadius);。如(图3(a))所示,膨胀的地图有更宽的障碍物。下一步是定义路径规划器并通过以下代码创建mobileRobotPRM对象:prm=mobileRobotPRM;。然后设置节点数和两个连接节点之间的最大距离。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值