CVM避障算法 翻译

时间:2019-05-14 02:34:28下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《CVM避障算法 翻译》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《CVM避障算法 翻译》。

第一篇:CVM避障算法 翻译

基于曲率速度的局部避障方法(草稿)

作者:Reid Simmons 翻译:Luo Qijun 本文提出了一种新的室内移动机器人的局部避障方法,它将避障问题描述为速度空间的约束优化问题。将速度和加速度的物理限制和障碍物分布的环境约束置于机器人的线速度和角速度上,机器人选择满足所有约束,并使得目标函数最大化的速度指令,目标函数折中考虑速度、安全性和目标方向。这种方法的高效实时的应用,已经经过广泛测试,表明其在办公室环境下可以可靠、平滑而快速的导航。这种避障方法可以作为更复杂导航行为的基础,从简单的漫游到基于地图的导航都可以使用。

1,引言

局部避障算法针对 未知的 或 部分已知的环境。

(1)机器人应该能够安全的导航,即使面临感知器的噪声 和 航迹的错误

(2)机器人应该在试图避障的同时趋向目标;

(3)算法必须高效的运算,以至于实时运行于机器人主机 另外,有一些其他算法没有考虑在内的内容:

(1)机器人的动态性应该纳入计算,使之能够以高速运动于拥挤的环境中(2)算法应该明确的尽量最大化机器人的前进进程(3)算法应该同时控制机器人的方向和速度

我们的方法,CVM算法,针对上述的内容。该算法的主要特点是它在机器人的速度空间操作,而不是Cartesian或者配置空间,它通过最大化目标函数来选择命令,用于综合考虑车体安全性、速度和目标导向性。这种方法认为机器人能够控制线速度和角速度,但是不能瞬间转向。也就是说,它只能沿着圆弧走。满足这种方式的机器人包括差动机器人,差速驱动机器人,和多种 非完整车辆。然而 我们的论述忽略了加速度的影响,实际上,对于以步行速度运行的室内机器人来说,这是一个好的近似。

曲率速度算法通过在速度空间添加约束,并在此空间中选择满足所有约束并且最大化目标函数的点进行工作的。约束条件来源于机器人速度和加速度的物理限制,和表示障碍物分布的传感器数据。后者(对于每个可能的曲率),用于表示机器人在撞上障碍物之前能运行多远。

为了达到实时性能,到障碍物的曲线距离用一个分段函数来近似描述。这种近似将速度空间划分为多个离散的区间,每个区间考虑一个确定的距离。该算法在各个区间中找到一个点,使目标函数最大化。这个全面最大化的点用于操作机器人。几个简单的扩展使该基本算法对于传感器噪声更具鲁棒性,并减小了机器人陷入困境的可能性。在我们室内机器人上的测试证明:它能在有人办公室环境内快速、平滑和安全行驶。相关工作

一些著名的局部避障通过计算机机器人将要朝向的方向进行的,但是没有将车体的动态特性计算在内。例如:势场趋近法使用排斥和吸引特性的向量和来计算期望的机器人朝向。速度控制 通过按势向量大小比例选择速度来确定。在该算法基础上改进得到的向量场直方图方法,通过计算一个一维极性直方图进行的,处理该直方图以检测开放区域以便机器人行进。在方向被选择后,再根据到障碍物的距离按比例选择机器人速度。虽然该方法可以产生平滑的轨迹并能同时处理窄、宽的开放处。就像势场趋近法,它没有把下列情况计算在内:当机器人转向时沿着圆弧移动,而不是沿着直线。在混乱复杂的环境中,它忽略了车辆的动态特性,而这时很关键的。

那些引入车辆动态特性和非完整约束计算的方法已经在线下路径规划中作了研究[],对于快速的局部避障来说,这些方法通常计算代价太高。

然而,最近报告了一些局部避障方法,通过选择一些驾驶命令而不是行驶方向来引入车辆的动力学特性。驾驶角度场算法,跟我们的算法类似,使用到障碍物的曲率正切 来约束一个连续的空间(在那个情况下的驾驶角度一维空间)。曲率和连接弧的距离,在驾驶角度范围内用于阻止行驶。该算法计算几个距离阈值的约束,并试图行驶到最自由的空间。速度控制是一个在驾驶者模块和局部避障模块间的迭代“商议、谈判”过程,与此相反,在我们的算法中,速度和转向弧度通过仿真选择,速度空间的点使得目标函数最大化。针对室内高速导航,有一个类似的基于速度空间操作的算法,就有人作了更早但是独立的研究。该算法针对受车辆动力学约束的弧线的离散集合,并选择其中一个最接近目标方向,保证机器人不会在几秒行驶范围内不会撞上障碍物。初始方法采用两步趋近法来选择曲率和速度;后来,他们研究出了一步选择曲率和速度的算法[6]。针对室外导航,也有一种类似的的方法[7]。考虑了所有的车体动力学,所以路径不必是一个圆弧,为每条路径计算一个可行度量,并选择其中一个最好的结果。但是这些方法的问题在于:仅仅通过分析弧线的离散集合,好的路径可能淹没在碰撞中,并且不被考虑到。曲率速度法

我们描述局部避障问题为一个在机器人的速度空间内的约束优化问题。机器人的速度空间就是可控制速度的稽核。对于差速驱动机器人来说,就像我们的机器人,速度空间包括线速度和角速度的正交空间。通过约束优化,我们试图使机器人选择某个(tv, rv)对,使得目标函数最大化,同时在允许的速度情况下满足所有的约束。

用这种公式描述局部避障问题有几个优点:首先,通过在速度空间内的计算,我们能够同时控制机器人的速度和朝向,并得到一个直接产生命令用于控制机器人的解决方法。通过将此问题作为一个约束优化问题,我们能够很简单地合并来自于环境和机器人动力学的约束条件,并能够得到使速度和安全折中的描述(公式)(规则)。

首先,我们假设机器人总是沿着圆弧线行驶,该弧线曲率由c = rv/tv得到,正的曲率表示顺时针的移动。所以,速度空间中的每个点,对应于笛卡尔空间中的约束曲率的运动。然而,这实际上是一种近似,如果考虑加速度的影响因素的话,如果在绝大所属室内移动机器人的相对较低速度和高加速度的情况下这些影响都被忽略。[6] 机器人的物理限制包括两种类型的速度空间约束。一个是机器人有最大角速度和线速度:tv<=tv(max), tv>=-tv(max), rv<=rv(max), rv>=-rv(max).在我们的方案中,我们又加入了一个约束条件:tv〉=0,以此防止机器人的后退运动。角加速度和线加速度的限制,ra(max)和ta(max)构成了另外一些约束。给定机器人当前速度 rv(cur)和tv(cur),和时间间隔T(accel)(基于CVM算法周期来选择),我们再加入3个约束条件,这些条件给出了在下一时刻可达的速度:

考虑到安全原因,tv的明显的其他约束没有加入。我们试图保证tv=0是速度空间中可以达到的部分。另外一个重要的约束源是由环境障碍物构成的。我们可以按照如下方式将笛卡儿空间障碍物转换为速度空间的约束:首先,转化障碍物到配置空间,并且对所有曲率c,计算机器人在碰到障碍物obs可能行驶的距离dc(c,obs).然后定义每个障碍物在速度空间的距离函数:

给定障碍物集合OBS, 累积距离函数定义为:

最后,由于传感器探测距离的限制(为了避免无限值的计算),我们修剪了函数D,利用某个限制距离L(3m, 在我们的实现中)

通常,计算障碍距离函数dc(c,obs)将会非常复杂,由于任意形状的障碍物。为了解决此,我们将障碍物近似为圆形。这是一个有根据的接近,在给定传感器输入-声纳和激光测距仪的情况下。由于我们的机器人也是圆形,笛卡空间到配置空间的转化仅仅通过机器人的半径增加障碍物的半径。现在,计算dc是直接进行的。由于在原始位置的机器人面向y轴正半轴,给定曲率c在(xj,yj)与障碍物相交,我们可以得到:

给定这些物理的和环境的速度空间的约束,通过优化目标函数来选择机器人的命令。从第1节的要求中,可以清楚的发现目标函数会偏好更高的速度,在碰到障碍物前可以行驶更远距离的曲率,并且试图使机器人面向期望的目标方向。我们利用一个简单的线性目标函数来描述这些准则,其中,每项都要在0和1间进行归一化:

速度项简单地表明了对更快速运行的偏好,而其他的则一般。距离项表明沿着给定曲率rv/tv无碰撞运行更远的距离。朝向项是与目标朝向的偏差,它对期望的目标朝向的速度转动时间Tc后将要达到的朝向之间的区别作了解释。

值表示每一项在目标函数中的相关权重。利用目标函数机器人可以展示不同的行为,这依赖于权重和障碍物分布,从为了避障急转弯的减速到除了为了躲避同一障碍物而进行提前转向外的全速行驶。第6节展示了关于选择权重值对算法敏感性的试验结果。

(在机器人局部坐标内)和机器人如果以rv 实时实现

在前述章节中描述的曲率速度法,满足局部避障的所有准则,除了他不是计算高效的外。计算Dlimit 是很困难的,即使在圆形障碍物的简化假设条件下。另外,给定Dlimit的一个通用描述,函数f寻优也是耗时的,即使使用如模拟退伙的近似技术。在这一节里,我们描述了实现细节以解决计算的相关问题。

利用一个区间的有限集合的近似Dlimit可以达到实时性能,这种区间是等距划分的。这种曲率区间集合,通过使用障碍物的切线曲率,将速度空间划分为常量距离的区间,进而划分那些重叠区域,以使 与区间对应的距离是所有重叠区域中的最小距离。最小和最大速度、加速度约束加入到这个空间,并且,对于每个曲率区间,求出在约束上限的最高点(因为使目标函数最大化的点必在上限边界处)。机器人在所有曲率区间中选择使目标函数最大化的命令。

我们通过速度距离函数dv来计算Dlimit。需要注意的是 对于一个给定的障碍物obs,dc(c, obs)在障碍物曲率切线区外是无限大的。所以,我们仅仅需要考虑Cmin和Cmax之间的那些曲率:

交点(用于计算dc)是:

注意:公式6没有定义 障碍物圆覆盖的区域

。因为,在实际中,障碍物和机器人是不可能占据同一位置的,这仅仅会在传感器噪声或者确定障碍时的圆形近似的情况下产生。另外一种方式,我们通过定义半径robs为

(这里e设置为1厘米)来处理这样一个障碍物。那么我们就可以使用公式6来计算所有障碍物的最小最大曲率。

给定切线曲率,第一个近似(接下来将被精确计算)是将dv置为最大至最小曲率间的常量:

每个确定的距离将产生一个障碍物区间的集合。为了计算Dlimit的精确确定近似值,我们通过分裂重叠障碍物区间和用更大的联合距离去除重叠片找到了障碍物区间的最小合并。针对此的一个有效算法使用了一种曲率区间数据结构(,d1,2)其中c1,c2是两个曲率,d1,2时区间内的确定的距离值。从几何学上来说,每个曲率区间定义为速度空间上的一对直线,直线间的距离是确定的值。

最小合并算法从曲率区间个新的曲率区间:

开始,对于每个障碍物,用一对切线曲率与其关联距离算法组成一,根据该区间与已存在区间的关系,修改该区间

将切线曲率间的距离函数近似为常量,不是很合适的,因为dv实际上是完全非线性的。在某些情况下,这种近似太过保守,特别是在两个切线曲率的距离值是非常不同的。更重要的是,这种近似常常太过自由主义,实际最小值可能比每个切线曲率距离都要小。

为了修正这些问题,我们精炼dv的近似为一个分段常量。思想为:将区间

分裂为多个区间,对每个区间计算出一个常量距离值,然后使用上述描述的最小合并算法来近似全部的Dlimit函数。我们的方法是要选择障碍物圆上离原点直线距离最近的一个点,并从该点开始把障碍物划分为四个象限。为最小和最大切线曲率的邻近点,定义曲率区间,每个区间的距离值设为两个端点曲率的最小值。

为了使目标函数最大化,我们注意到:每个曲率区间提供了速度空间的一对线性不等式。在上述章节中描述的速度和加速度约束也是一些线性不等式。因此,我们有了一个线性不等式稽核和一个线性目标函数---一种通常容易求解的形式。然而,在我们的问题里,有一个附加问题的附加结构,它会使的计算更加简化:因为曲率线对间的距离值是常量,目标函数对于tv是单调递增的,对于每个曲率区间的函数优化值,存在于约束线的边界上。这导向了一个非常高效的算法:对于每个曲率区间,在每个关联约束的上边界的顶点计算目标函数,并在所有曲率区间中选择全局最优值(利用一个小的扩张:我们也需要在朝向误差dthata是零,时,计算目标函数)扩展

在前述两节中描述的曲率速度法,有一些实际问题。首先,由于传感器噪声,障碍物可能不是很精确,他们可能在内部显现。因此,我们可能要让机器人与障碍物保持接近,并使之减速,如果不能在他们旁边行驶的话。第二,虽然目标函数通常能够很好的获得趋向目标方向并且躲避障碍物行为,有两种情况不能很好的工作:当所有的选择都一样糟糕时,表示机器人被挂住,和当机器人离目标方向很远时。在这一节内容里,我们描述基本曲率速度算法的简单的扩充,以解决上述每个问题。一个简单的扩充,帮助补偿传感器噪声,它使用一个安全区来生长障碍物。我们使用一个相对小的安全区(5cm),因为安全区的大小与机器人可通过开放区间宽窄成反比例的。安全区太大,机器人通过房间门和在拥挤的走廊里经过人群会有困难。

另外一个扩充,文献3,6提出,帮助机器人保持远离障碍物(或者,至少,使它更小心,当从障碍物边行驶时),它添加了一个最大的可允许的线速度,该速度与到障碍物距离成比例。特别是,对于每个曲率区间,我们约束最大线速度tv<=d/Timp, 以致机器人能够行使至少Timp秒,在碰到障碍物前。

对于一些曲率区间,距离d 比极点 ,中的一个或两个都大,表示机器人将擦边障碍物经过,如果它沿着此极点曲率行驶的话。(例如,d1, 的值图3中,比dc(C3,B)大)。虽然添加一个安全区能够有所帮助,我们通过增加一个约束进一步增加了安全性,机器人仅在它离所有障碍物距离至少为S时,才全速行驶。

我们通过首先计算远离障碍物S的曲率,它在距离d正切于曲率c,来确定这个约束:

然后,我们添加约束,线速度减低到由点()组成的直线下。

这就确保机器人将不会全速行驶,除非它保留与障碍物至少距离S经过。一个类似的约束,使用公式9中的r+S,针对曲率区间的下界被加入。

有时候,使目标函数最优的值使其机器人行驶很慢,或者完全不动。这常常发生,例如,当机器人在三面被障碍物包围而它的目标朝向就在正前方,就在障碍物区域。为了处理这一情况,我们采用了原地转身算法,机器人原定不动并且作旋转直到最好的角速度命令为零。这将允许机器人终于看到前方开放的区间并且向前移动,足够使其移动到距离陷阱外。

最后一个扩充,目标函数权重参数的选择,是必要的。选择的权重工作良好,当机器人面向目标方向很近时(在正负60度以内),但是当它面向相反方向时却效果很差。在这种情况下,我们要强烈鼓励机器人开始转动,从而面向目标方向。我们通过增加朝向项的权重来实现,该权重正比于机器人离目标方向的大小。

特别是,我们用

代替目标函数中的。下一节,讨论各参数值对算法的灵敏性。试验结果

CVM算法已经在在Xavier移动机器人上实现和测试。Xavier是一个四轮同步驱动底盘的机器人,由RWI制造,可以独立控制其线速度和角速度。他使用一圈24个声纳传感器(1-2Hz)和一个30度激光测距仪(5-10Hz)。声纳和激光数据组合起来并采用一个简单的20cm精度histogram grid 文献[2]。

底盘得到8 Hz的航迹推算信息,cvm算法也以此速度运行。但接受到一个新的数据报时,每一个被占的格子单元被转化为自身局部坐标并处理产生曲率约束。一般有15-30个障碍物,产后10-15个不同的曲率区间(由于曲率区间重叠,区间数小于障碍物数)。相应的速度约束被添加进去,最优的(tv,rv)发给底盘计算机。算法(包括感知数据处理)运行于在66MHz主频的486计算机上,大概耗时12毫秒。

CVM依赖一些参数,特别是目标函数中的。为了确定这些参数对算法的灵敏度,我们在仿真环境下做一个一系列测试。环境被设置为测试算法的逃离局部最优和避障趋向目标的能力。每次开始机器人在一个点和给定方向,并向前直线运行,当机器人越过虚线时结束。

改变参数完成了一些列路径。基于完成路径的平均时间,我们总结出算法对于目标朝向权重参数 a3的相对值比较敏感,而对a1, a2的相对值不敏感。如果a3置为0,a3/(a1+a2)的值大于15%的话,算法进展缓慢(机器人常陷入局部陷阱)。在此范围内,每个路径中的标准差比 其值和最优设置的值的差 一般较大,但是在a1>a2时平均稍大。

改变a4执行类似的路径,额外的权值鼓励机器人在远离前进运行。结果显示CVM是相对不敏感的,对于a4>0但小于3(此时,机器人又容易陷入局部)。最优好的设置是a1=0.6, a2 = 0.3, a3 =0.1 a4=1.0(平均完成时间67.5s, 标准10.2s), 该设置用于图8的显示结果。

图9为Xavier的不同运行轨迹。为更好的强调差别,图中,障碍物(2个盒子,一个圆的垃圾罐,一个消防门)用机器人半径进行了生长,而机器人为一个点。在每种情况下,机器人从图上方开始,面向底部,且要求其转90度面向左侧。每种情况下,机器人必须环绕围墙并导航绕过三个离散的障碍物。我们在30,45,60cm/s的速度行驶对CVM算法与60cm/s运行的势场法进行了对比。结果显示,CVM较势场法产生更为显著的平滑轨迹。另外,在更高速度下,机器人保持离障碍物更远,而且路径较为平滑。这主要归结与 “靠近障碍物”约束在高速情况更加重要,这使机器人较早对目标做出响应。

局部避障算法供几个更高级别的行为使用。“漫游”通过设置机器人局部目标朝向为0,这偏向是机器人持续沿着当前方向行驶。“朝向方向”行为通过设置为当前机器人朝向和目标方向的差值来实现。最后,为机器人朝向到局部目标点的角“朝向目标”行为通过变换全局目标位置到机器人坐标框架,并且设置度 来实现。对于最后那个行为,我们需要一个附加的扩充:如果目标点在曲率区间内,其相关距离较到目标点的直线距离小,那么目标朝向项的权重被设置为很高以强烈鼓励机器人瞄向目标行驶。

这些行为,逐个构成基于地图导航规划的基础[文献10,11]。最后系统展示出在人类办公室、走廊环境下的可靠、快速导航。讨论

我们描述了针对局部避障的曲率速度算法,它将此问题视为机器人速度空间的约束优化问题。这种描述的优点包括 同时控制速度和机器人朝向的能力,合成环境和机器人动力学、以及处理速度、安全和目标朝向的平衡能力约束的简化。

CVM实现了实时性能,通过近似化机器人在碰到障碍物前能够行驶多远的弧线距离来实现。近似处理是一个分段常量函数,由到障碍物切线曲率来定义。附加的速度约束被加入,在机器人物理限制和保持远离障碍物的期望的基础上,或者至少慢速行驶当接近障碍物时。

该方法已经被实现,并且在Xavier上进行了测试,Xavier是一个差速驱动机器人(它可以使用差分驱动车,并且是沿圆弧行驶的非完整约束车辆。)实现是高校的,并能使机器人在人员办公室环境下达到60CM/s的速度行驶。速度限制的原因,在于声纳传感器的速率(激光视场范围限制阻碍它成为障碍物检测的主要传感器)。通过提高传感器的检测周期,我们希望达到一米每秒(travel)。

基于该算法的下一步工作包括:找到更好的距离函数的近似方法,尝试更精炼的目标函数。我们也要致力于扩展以曲率为基础的速度空间算法来进行多步导航规划问题。

本文展示了通过考虑测量动力学,和使平衡速度、安全和目标趋向的目标函数最大化,我们可以创造一种高效的、实时的局部避障算法,用于在布满障碍物的环境中产生安全、平滑、快速的轨迹。

第二篇:智能避障机器人设计外文翻译

外文翻译

INTELLIGENT VEHICLE

Our society is awash in “machine intelligence” of various kinds.Over the last century, we have witnessed more and more of the “drudgery” of daily living being replaced by devices such as washing machines.One remaining area of both drudgery and danger, however, is the daily act ofdriving automobiles 1.2 million people were killed in traffic crashes in 2002, which was 2.1% of all globaldeaths and the 11th ranked cause of death.If this trend continues, an estimated 8.5 million people will be dying every year in road crashes by 2020.In fact, the U.S.Department of Transportation has estimated the overall societal cost of road crashes annually in the United States at greater than $230 billion.When hundreds or thousands of vehicles are sharing the same roads at the same time, leading to the all too familiar experience of congested traffic.Traffic congestion undermines our quality of life in the same way air pollution undermines public health.Around 1990, road transportation professionals began to apply them to traffic and road management.Thus was born the intelligent transportation system(ITS).Starting in the late 1990s, ITS systems were developed and deployed.In developed countries, travelers today have access to signifi-cant amounts of information about travel conditions, whether they are driving their own vehicle or riding on public transit systems.As the world energy crisis, and the war and the energy consumption of oil--and are full of energy, in one day, someday it will disappear without a trace.Oil is not in resources.So in oil consumption must be clean before finding a replacement.With the development of science and technology the progress of the society, people invented the electric car.Electric cars will become the most ideal of transportation.In the development of world each aspect is fruitful, especially with the automobile electronic technology and computer and rapid development of the information age.The electronic control technology in the car on a wide range of 1

外文翻译

applications, the application of the electronic device, cars, and electronic technology not only to improve and enhance the quality and the traditional automobile electrical performance, but also improve the automobile fuel economy, performance, reliability and emissions purification.Widely used in automobile electronic products not only reduces the cost and reduce the complexity of the maintenance.From the fuel injection engine ignition devices, air control and emission control and fault diagnosis to the body auxiliary devices are generally used in electronic control technology, auto development mainly electromechanical integration.Widely used in automotive electronic control ignition system mainly electronic control fuel injection system, electronic control ignition system, electronic control automatic transmission, electronic control(ABS/ASR)control system, electronic control suspension system, electronic control power steering system, vehicle dynamic control system, the airbag systems, active belt system, electronic control system and the automatic air-conditioning and GPS navigation system etc.With the system response, the use function of quick car, high reliability, guarantees of engine power and reduce fuel consumption and emission regulations meet standards.The car is essential to modern traffic tools.And electric cars bring us infinite joy will give us the physical and mental relaxation.Take for example, automatic transmission in road, can not on the clutch, can achieve automatic shift and engine flameout, not so effective improve the driving convenience lighten the fatigue strength.Automatic transmission consists mainly of hydraulic torque converter, gear transmission, pump, hydraulic control system, electronic control system and oil cooling system, etc.The electronic control of suspension is mainly used to cushion the impact of the body and the road to reduce vibration that car getting smooth-going and stability.When the vehicle in the car when the road uneven road can according to automatically adjust the height.When the car ratio of height, low set to gas or oil cylinder filling or oil.If is opposite, gas or diarrhea.To ensure and improve the level of driving cars driving stability.Variable force power steering system can significantly change the driver for the work efficiency and the state, so widely used

外文翻译

in electric cars.VDC to vehicle performance has important function it can according to the need of active braking to change the wheels of the car, car motions of state and optimum control performance, and increased automobile adhesion, controlling and stability.Besides these, appear beyond 4WS 4WD electric cars can greatly improve the performance of the value and ascending simultaneously.ABS braking distance is reduced and can keep turning skills effectively improve the stability of the directions simultaneously reduce tyre wear.The airbag appear in large programs protected the driver and passenger's safety, and greatly reduce automobile in collision of drivers and passengers in the buffer, to protect the safety of life.Intelligent electronic technology in the bus to promote safe driving and that the other functions.The realization of automatic driving through various sensors.Except some smart cars equipped with multiple outside sensors can fully perception of information and traffic facilities and to judge whether the vehicles and drivers in danger, has the independent pathfinding, navigation, avoid bump, no parking fees etc.Function.Effectively improve the safe transport of manipulation, reduce the pilot fatigue, improve passenger comfort.Of course battery electric vehicle is the key, the electric car battery mainly has: the use of lead-acid batteries, nickel cadmium battery, the battery, sodium sulfide sodium sulfide lithium battery, the battery, the battery, the flywheel zinc-air fuel cell and solar battery, the battery.In many kind of cells, the fuel cell is by far the most want to solve the problem of energy shortage car.Fuel cells have high pollution characteristics, different from other battery, the battery, need not only external constantly supply of fuel and electricity can continuously steadily.Fuel cell vehicles(FCEV)can be matched with the car engine performance and fuel economy and emission in the aspects of superior internal-combustion vehicles.Along with the computer and electronic product constantly upgrading electric car, open class in mature technology and perfected, that drive more safe, convenient and flexible, comfortable.Electric cars with traditional to compete in the market, the car will was electric cars and intelligent car replaced.This is the question that day

外文翻译

after timing will come.ABS, GPS, and various new 4WD 4WS, electronic products and the modern era, excellent performance auto tacit understanding is tie-in, bring us unparalleled precision driving comfort and safety of driving.The hardware and software of the intelligent vehicle are designed based on AVR.This system could set the route in advance.The vehicle could communicate with the PC vianRF401 and could run safely with the help of ultra sound detection and infrared measuring circuit.Neural network self-study is used to improve the intelligence of the vehicle.The performance of servo systems will determine the property of the robot.Based on AVRseries MCU,the velocity servo system for driving motor is created in this paper,including a discrete PIregulator which will work out a PWM control signal with applying the skill of integral separation.The velocities of motors will be controlled real-time with the speed sampling frequency set for 2KHz by using the AVR-GCC compiler software development.Compared to the servo system development based on the 51 Series MCU,the system here has these advantages of simpler peripheral circuit and faster data processing.The experiments demonstrate that,the mobile robot runs stably and smoothly by the control of AVR units,and that the design proposal especially benefits the development of intelligent mobile robots,also can be widely used in the development of other smart devices and product lines.A new design of contest robot control system based on AVR Atmega8 was put forward.According to the character of contest robot , the main control unit , motor drive unit , sense detection unit and LCD display unit were introduced.Furthermore the servo driver system based on MCBL3006S , the line t racker sensor system and the obstacle avoidance sensor system were presented in detail.Finally the performance shows

that

the

control

system

is

open,simple,easy programming,intelligent and efficiency.Avoidance rules of intelligent vehicle obstacle are intro ducted.Through the collection of infrared sensor formation,the rules use diode D1 to launch and diode D2 to receive infrared signals.Infrared transmitter signal without a dedicated circuit

外文翻译

comes directly from the MCU clock frequency, which not only simplifier the circuit and debugging, but also make the circuit stability and anti-jamming capability greatly enhanced.After the experimental verification,the system runs reliably meet the design requirements.A smart car control system of the path information identified based on CCD camera was introduced.The hardware structure and scheme were designed.The control strategy of s teering mechanism was presented.The smart car not only can identify the road precisely, but also have ant-interference performance, and small steady state error.This article designed smart car system,includes the aspects of the sensor information acquisition and processing, motor drive, control algorithm and control strategy etc.Using laser sensor to collect the road information which can feedback to the micro-controller control system,then making analytical processing combined with the software.With velocity feedback and PID control algorithms to control steering engine and the speed of smart car.Verified by actual operation, this method makes smart car travel stably and reliably,and its average speed to reach 2.6m /s, and get a satisfied results.By the aid of the professional know ledge of control, patter n recognition, sensor technology, aut omotive electronics, electricity, computer, machinery and so on, an intelligent vehicle system is designed with PID control algorithm,CCD detection system and HC9SDG128 MCU.Code Warrior IDE integrated development programming environment is taken as a basic softy are platform that can automatically deal with the traffic and image pro cessing, and then adjust the moving direction along the scheduled or bit by t he aid of a CCD camera.The system has many advantages, such as high reliability , high stability, good speed ability and scalability.Based on the research background of the Free-Scale smart car competition,a smart track following car is designed.In the car, the photo electricity sensor is used to check the path and obtain the information of racing road, and calculate the error

外文翻译

between the car and the black line.The fuzzy control is used to control the velocity of the car.The experiments show that the smart car based on the fuzzy control has high accuracy on the judgment of the path, stability and velocity control.外文翻译

智能车

我们的社会充斥着各种各样的“机器智能“。在过去的世纪,我们目睹越来越多日常生活中的“苦差事“被机器设备解决,如洗衣机。

然而,一个既枯燥又危险的保留区域就是日常驾驶汽车。2002年,120万人死于交通事故,这是所有全球2.1%死亡,死因排名第11。如果这种趋势继续下去,估计从2020年起每一年死于道路交通统(ITS)。20世纪90年代中后期开始,它的系统进行了开发和部署。在发达国事故的人将达到850万人。事实上,美国交通部估计交通事故的整体社会成本每年超过2300亿美元。

数百或数千辆车共享相同的道路时,就导致了大家都熟悉的交通挤塞。交通挤塞破坏了我们的生活质量就像空气污染损害公众健康。1990年左右,公路运输的专业人士开始申请让他们在交通和道路管理。于是诞生了智能交通系家,旅客今天能够获得旅行条件的信息,无论是驾驶自己的车或乘坐公共交通系统。

随着世界能源危机的持续,以及战争和能源-----石油的消耗及汽车饱有量的增加,能源在一天一天下降,终有一天它会消失的无影无踪。石油不是在生资源。所以必须在石油耗净之前找到一种代替品。随着科技的发展社会的进步,有人发明了电动汽车。电动汽车将成为人们最为理想的交通工具。

世界在各各方面的发展都取得丰硕成果,尤其是随着汽车电子技术和计算机以及发展迅速的信息时代。电子控制技术在汽车上得到了广泛应用,汽车上应用的电子装置越来越丰富,电子技术不仅用来改善和提高传统汽车电器的质量和性能,而且还提高了汽车的动力性、燃油经济性、可靠性以及废气排放的净化性。汽车上广泛使用电子产品不仅降低了成本,并且减少维护的复杂性。从发动机的燃油喷射点火装置、进气控制、废气排放控制、故障自诊断到车身辅助装置都普遍采用了电子控制技术,可以说今后汽车发展主要以机电一体化。汽车上广泛采用的电子控制点火系统主要有电子控制燃油喷射系统、电子控制点火系统、电子控制自动变速器、电子控制防滑(ABS/ASR)控制系统、电子控制悬架系统、电子控制动力转向系统、车辆动力学控制系统、安全气囊系统、主动安全带系统、电子控制自动空调系统、导航系统还有GPS等。有了这些系

外文翻译

统汽车响应敏捷,使用功能强,可靠性高,既保证发动机动力又降低燃油的消耗,而且又满足排放法规的标准。

汽车是现代人必不可少的交通工具。而电动汽车给我们带来无限乐趣外还能给我们劳累一天的身心得以放松。就拿自动变速器来说吧,汽车在行驶时,可以不踩离合器踏板,就可以实现自动换档而发动机不会熄火,这样有效的提高驾驶方便性减轻驾驶员的疲劳强度。自动变速器主要由液力变矩器、齿轮变速器、油泵、液压控制系统、电子控制系统、油冷却系统等组成。电子控制的悬架主要是用来缓冲路面对车身的冲击力以及减少振动保证汽车平顺性和操纵稳定性。当汽车行驶在不平坦的道路时汽车能能根据底盘和路面高度自动调整。当车高比设置的高度低时,就向气室或油缸充气或充油。如果是相反,就放气或泻油。从而保证汽车的水平行驶,提高行驶稳定性。可变力动力转向系统因能显著改变驾驶员的工作效率和状态,所以在电动汽车上广泛使用。VDC对汽车性能有着至关重要的作用它能根据需要主动对车轮进行制动来改变汽车的运动状态,使汽车达到最佳的行驶状态和操纵性能,并增加了汽车的附着性,控制性和稳定性。除了这些之外4WS、4WD的出现大大提高了电动汽车的价值与性能同步提升。ABS具有减少制动距离并能保持转向操作能力有效提高行驶方向的稳定性同时减少轮胎的磨损。安全气囊的出现在很大程序上保护了驾驶员和乘客的安全,大大降低汽车在碰撞时对驾驶员和乘客的缓冲,以过到保护生命安全的目的。

智能电子技术在汽车上得以推广使得汽车在安全行驶和其它功能更上一层楼。通过各种传感器实现自动驾驶。除些之外智能汽车装备有多种传感器能充分感知交通设施及环境的信息并能随时判断车辆及驾驶员是否处于危险之中,具备自主寻路、导航、避撞、不停车收费等功能。有效提高运输过程中的安全,减少驾驶员的操纵疲劳度,提高乘客的舒适度。当然蓄电池是电动汽车的关键,电动汽车用的蓄电池主要有:铅酸蓄电池、镍镉蓄电池、钠硫蓄电池、钠硫蓄电池、锂电池、锌―空气电池、飞轮电池、燃料电池和太阳能电池等。在诸多种电池中,燃料电池是迄今为止最有希望解决汽车能源短缺问题的动力源。燃料电池具有高效无污染的特性,不同于其他蓄电池,其不需要充电,只要外部不断地供给燃料,就能连续稳定地发电。燃料电池汽车(FCEV)具有可与内燃机汽车媲美的动力性能,在排放、燃油经济性方面明显优于内燃机车辆。

外文翻译

随着计算机和电子产品不断开级换代,电动汽车技术也在日趋成熟与完善,使得驾驶更安全、方便、灵活、舒适。电动汽车真正能够与传统的燃油汽车相竞争,今后汽车市场终会被电动汽车和智能汽车所取代。这只是时间性的问题这一天终究会来到的。ABS、GPS、4WS、4WD以及各种新时代的电子产品与现代高性能汽车默契组合、绝妙搭配,带给我们无与伦比的精准驾驶舒适性和行驶安全性。

以AVR 单片机为核心, 提出了一种智能探测小车的软硬件设计方案。系统可以预先设定小车的行走路线, 能够实现小车与计算机之间的无线通讯, 通过超声测物和红外测障电路使小车安全行走。另外, 系统通过JTAG 接口在线调试程序。软件设计中采用神经网络自学习, 大大增强了小车的智能化.执行元件的伺服系统性能将决定机器人的性能。基于AVR 系列单片机,并应用积分分离技术,设计离散PI 调节器,输出PWM 控制信号,建立驱动电机的速度伺服控制系统。使用AVR - GCC 编译软件开发伺服系统软件,设定速度采样频率为2KHz,实现对电机速度的实时控制。与基于51 系列单片机开发的伺服系统相比,本系统所需的外围电路更简单,数据处理速度更快。实现了机器人响应快速,移动平稳。该伺服系统的开发尤其适用于智能移动机器人,还可以广泛应用于其它智能设备和生产线。

提出了一种基于AVR 单片机Atmega8 为核心控制器的比赛机器人控制系统,通过比赛机器人的特征分析,阐述了构成控制系统所需的主控单元、电机驱动单元、传感检测单元及LCD 显示单元,其中详细分析了以MCBL3006S 为核心的伺服电机驱动单元,以及关系比赛机器人基本功能实现的循线传感系统及避障传感系统,并给出部分程序。最后通过实践表明,该控制系统开放性好、结构简单、编程容易、智能并高效。

智能车的避障规则,通过对红外传感器的信息进行采集,使用二极管D1 发射红外线,二极管D2 接收红外信号。红外线发射部分不设专门的信号发生电路,直接从单片机实现时钟频率,既简化了线路和调试工作,又能使电路的稳定性和抗干扰能力大大加强。经实验验证,该系统运行可靠,达到了设计要求。

介绍一种基于CCD 摄像头的路径识别的智能车控制系统, 设计了硬件结构与方案, 提出了转向机构的控制策略, 该智能车能准确实现自主寻迹, 具备抗干扰性极强, 稳态误差小等特点。

外文翻译

智能车系统,包括传感器信息采集与处理、电机驱动、控制算法及控制策略等方面。采用激光传感器采集道路信息并反馈给单片机控制系统,通过软件进行相关分析处理,通过速度反馈和PID 算法控制舵机转向和智能车速度。通过实际运行验证,本方法使智能车运行稳定、可靠,其平均速度达到2.6m/s,得到比较理想的效果。

为了综合利用控制、模式识别、传感器技术、汽车电子、电气、计算机、机械等专业领域知识, 设计实现了一个基于PID 控制算法, CCD 检测系统, 并采用H C9SDG128 单片机作为主控芯片的智能车系统。该系统使用Codewar rio r IDE 集成开发环境作为程序设计的基本软件平台, 能利用摄像头自动识别路况, 进行图像处理, 进而调整方向沿预定轨道前行, 具有很强的可靠性、稳定性、快速性、扩展性。

以“飞思卡尔”杯智能车大赛为研究背景,开发了一种智能循迹小车。该小车采用光电传感器检测路径,获得赛道信息,求出小车与黑线间的偏差,采用模糊控制对小车的速度进行控制,使小车能够自动跟随直道和弯道。实践表明,采用模糊控制的智能小车在路径识别的精准度,稳定性,及速度控制上具有明显优势。

第三篇:无人艇避障研究总结

航行器海面避障研究

一. 历史上海中航行器的导航方式 世纪,美国战略潜艇导航技术一直发展,舰船惯性技术是在不断满足潜基导弹的射程和命中精度的要求及核潜艇的隐蔽性要求而不断发展的。具有灵活性、隐蔽性,是发射弹道导弹的活动基地。世纪导航技术发展的主要方向。从总的发展趋势看可以概括为:区域冲突多极化;军队综合现代化;武器信息制导化。系统组合智能化;电子信息数字化;价格便宜小型化。操作可靠傻瓜化;测试手段现代化;维修维护模块化。与露出水面获取 GPS 定位点一样, 用有源声呐发射也会牺牲隐蔽性。但是利用声呐的回波, 可得到非常重要的导航信息。

【我得总结】导航方式多种多样,我国目前水平比较一般,跟在发达国家后面飞奔,但也是望尘莫及。导航精确确保航行器大方向准确。在大方向正确的前提下,我来进一步研究小范围突发情况如何正确避让等一系列动作的合理实施。我国无人艇有一部分安装国产北斗导航。

二. 海面海浪波动探究

自然界中的海浪是一种相当复杂不规则波动现象。由于自然条件复杂 , 加上波浪运动本身的随机性 , 到目前为止 , 有些实际问题不能单纯用数学分析方法很好地解决;并且 , 由于经济和技术等的限制 , 现场观测也会遇到很多困难 , 甚至无法实现。只有按不规则波来研究海洋 , 才能正确地描述海浪。

【我得总结】海面波浪及其形式无法预知,随机性很大。所以我决定对其进行进一步研究并且分类,逐一击破。无人艇行驶在海面上,海水波浪是一个因素,暴风雨一类天气又是一类因素,除此之外,可能还有未知情况,待进一步探究。

三. 针对海面无人艇避障方法探究(主要)

⊙ 避碰规划是高速无人艇研究领域中的核心问题之一。高速无人艇的避碰规划就是在特定的环境中给定初始位置和目标位置,按照策略无碰的从起点运动到终点,并满足一定的附加条件,如路径最短等。

⊙高速无人艇的避碰规划可以分为2类:基于环境先验知识的全局规划和基于传感器信息的局部规划。全局规划不能满足动目标避碰的要求,因为障碍物很可能出现在规划好的路径上,这样在高速无人艇的导航系统中,就需要基于传感器(多波束前视声纳)信息以在线方式进行的避碰规划。⊙无人艇动目标避碰就是基于前视声纳的实时信息,属于局部规划范畴。⊙蚁群算法: 自然界的蚂蚁群体是具有智能特点的,能够通过群体所释放出来的一种叫做信息素(pheromone)的物质,在没有任何视觉线索的情况下找到从食物源到蚁穴的最短路径。蚁群算法就是模拟自然界中真实蚁群的觅食行为而形成的一种模拟进化算法,并且该算法有一个统一的框架结构模型;其不仅具有很好的鲁棒性(Robust),良好的正反馈特性,而且具有并行分布计算的特点。因此,可以运用蚁群算法进行避碰路径的优化搜索。

⊙在复杂的海洋环境中,一般情况下高速无人艇沿着全局路径规划器规划的路径运动,当前视声纳测到障碍物,就需要启动局部避碰规划器。局部规划器首先在前视声纳视域范围内选定一个空间点作为局部规划子目标,一般选择声纳全局规划的航程点作为规划子目标点。高速无人艇当前的位置作为局部避碰规划的起点,避碰规划就在该起点与规划子目标点之间进行。

【我得疑问】前视探测器这里用的声呐,在实际应用当中,用的是声呐还是摄像头? ⊙路径生成

现讨论二维空间的避碰规划问题。以避碰规划的起点作为原点,起点与规划子目标的连线作为x轴,建立直角坐标系xOy。将起点(xO,yO)与规划子目标点(xG,yG)连线m等分,则每个点的坐标可表示为(xi,yi),其中i=0~m。在每个等分点作x轴的垂线,就得到线段L1,L2,,Lm,再以x轴零点为起点,将每条线段进行n等分,每条垂线上就有n个点。在避障区域内,就有m,n个点

即:L1(x1,y1)L2(x2,y2)L3(x3,y3),L1(x1,yn), ,Lm(xm,y1)Lm(xm,y2)Lm(xm,y3),Lm(xm,yn)其中Li(xi,yi)表示第i条垂线上的第j点,则从起始点到终点的路径可以表示为:Path={O,L1(x1,yk1),L2(x2,yk2),Lm1(xm1,yk(m1)),G}(ki=1,2,,n+1)避碰规划问题就是使得由该路径点序列组成的路径满足条件。由于不同路径上的相应位置的x的坐标是相同的,所以每条路径的区别仅仅在于相应位置处的y坐标不同。

【我得总结】以自我为中心,探测到障碍物后自动规划航向,简言之绕过障碍物,这种“绕”过是实时检测并且动态计算的,计算通过一个方程式构成,即上述公式,虽然难以读懂,但不难理解。⊙目标函数 讨论的动目标避碰规划路径需要满足3个约束条件:动态避碰、保持航迹和路径最短。由于避碰规划区间较短,在避碰规划周期内,假定动态障碍物做匀速运动,且速度可根据前视声纳探测的实时信息估计得到。高速无人艇保持当前的航速不变,通过选择不同的路径点即调整高速无人艇的航向来避碰。避碰规划区间内高速无人艇的航迹由全局规划器给出。

【我得总结】此类实验通过仿真可得出结论,目前对matlab了解不够,对各种各样的算法了解不精,是以后需要提高之处。

第四篇:自动避障小车技术报告2

自动避障小车

技术报告

校:乐山师范学院成员:郑素仙

朱平

吴志 指导老师:张九华

前言

设计背景:在科学探索和紧急抢险中经常会遇到对与一些危险或人类不能直接到达的地域的探测,这些就需要用机器人来完成。而在机器人在复杂地形中行进时自动避障是一项必不可少也是最基本的功能。因此,自动避障系统的研发就应运而生。

我们的自动避障小车就是基于这一系统开发而成的。随着科技的发展,对于未知空间和人类所不能直接到达的地域的探索逐步成为热门,这就使机器人的自动避障有了重大的意义。我们的自动避障小车就是自动避障机器人中的一类。自动避障小车可以作为地域探索机器人和紧急抢险机器人的运动系统,让机器人在行进中自动避过障碍物。

目录

一、设计目标:.........................................................4

二、方案设计:.........................................................4

2.1直流调速系统.................................................4 2.2检测系统.....................................................5 三 硬件设计.............................................................6 3.1、SPCE061A单片机最小系统.....................................6

3.1.1.SPCE061A时钟电路...........................................................................................8

3.1.2.PLL锁相环...........................................................................................................9 3.1.3.看门狗Watchdog..................................................................................................9 3.1.4.低电压复位(LVR).........................................................................................10 3.1.5.I/O端口..............................................................................................................10 3.1.6.时基与定时器.....................................................................................................11 3.1.7.SPCE061A的定时器/计数器............................................................................11 3.1.8.ADC、DAC........................................................................................................12 3.2、超声波传感器..............................................12 四 软件设计...........................................................16 4.1软件设计各模块..............................................16 4.2速度控制....................................................17 4.3障碍物检测..................................................17 4.4看门狗......................................................17 4.5基频中断....................................................18 4.6程序设计流程图..............................................19 五:测试数据、测试结果分析及结论.......................................19 程序附录...............................................................21 1.主程序:....................................................21 2.中断程序....................................................24

3、测距程序....................................................28

一、设计目标:

1.小车从无障碍地区启动前进,感应前进路线上的障碍物后,能自动避开障碍物。

2.根据障碍物的位置选择下一步行进方向,选择左拐还是右拐,若障碍物在左边则自动右拐,若障碍物在右边则左拐,若障碍物在正前方可任意选择左拐或者是右拐,以达到避开障碍物的目的。

3.通过利用单片机内时钟源的控制设定左拐和右拐的时间,从而能持续前进。

4.为达到速度的可控性,需设置两个独立按键对小车进行控速。

二、方案设计:

根据设计要求,确定如下方案:在现有玩具电动车的基础上,加装超声波传感器,实现对电动车的运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。

这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。

2.1直流调速系统

采用脉宽调速系统

脉宽调速系统的主电路采用脉宽调制式变换器,简称PWM变换器。

脉宽调速也可通过单片机控制继电器的闭合来实现,但是驱动能力有限。为顺利实现电动小汽车的前行与倒车,本设计采用了可逆PWM变换器。可逆PWM变换器主电路的结构式有H型、T型等类型。我们在设计中采用了常用的双极式H型变换器,它是由4个三极电力晶体管和4个续流二极管组成的桥式电路。如附录一:

2.2检测系统

检测系统主要实现红外传感器,超声波传感,光电传感器对车的运行进行实时测量,即利用这种传感器对电动车的避障、位置、行车状态进行测量。行车开始、结束及超声波检测:

在车的开始和结束阶段,都是用红外式的光电传感器,当按下此光电开头,小车就开始行驶,在完成任务后,再按下此开关,小车就停止前进。在前进的过程中不断的发送超声波,并对接到的进行处理计算。如果处理得到的结果是发现前面的障碍时,再行进一次距离的处理,当距离小是40CM时,让小车倒退一段时间,再进行避障处理,如果距离大于40CM,就直接进避障处理。

三 硬件设计

3.1、SPCE061A单片机最小系统

我们用的是凌阳的SPCE061A单片机最小系统其概述如下: SPCE061A 是继μ’nSP™系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使μ’nSP™能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以μ’nSP™为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。

性能

16位μ’nSP™微处理器;

工作电压(CPU)VDD为2.4~3.6V(I/O)VDDH为2.4~5.5V ;

CPU时钟:0.32MHz~49.152MHz ;

内置2K字SRAM;

内置32K FLASH;

可编程音频处理;

晶体振荡器;

系统处于备用状态下(时钟处于停止状态),耗电仅为2μA@3.6V;

2个16位可编程定时器/计数器(可自动预置初始计数值);

2个10位DAC(数-模转换)输出通道;

32位通用可编程输入/输出端口;

14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒;

具备触键唤醒的功能;

使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;

锁相环PLL振荡器提供系统时钟信号;

32768Hz实时时钟;

7通道10位电压模-数转换器(ADC)和单通道声音模-数转换器;

声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;

具备串行设备接口;

具有低电压复位(LVR)功能和低电压监测(LVD)功能;

内置在线仿真电路ICE(In-Circuit Emulator)接口;

具有保密能力;

具有WatchDog功能;

16位μ’nSP™微处理器硬件结构图

ICE_ENICE_SCKICE_SDA16位微控制器u'nSPFLASH双16位定时器/计数器时基中断控制+ICERAMVCPXI/RXO锁相环振荡器CPU时钟实时时钟7通道10位ADC单通道ADC+AGCMIC_IN低电压监测/低电压复位Watchdog串行异步通讯接口IOB7(RXD)IOB10(TXD)双通道10位DAC串行输入输出接口IOB0(SCK)IOB1(SDA)AUD1AUD232管脚通用输入输出端口IOA150 3.1.1.SPCE061A时钟电路

SPCE061A时钟电路采用晶体振荡器。下图为SPCE061A时钟电路的接线图。外接晶振采用32768Hz。

3.1.2.PLL锁相环

PLL电路的作用是将系统提供的实时时钟的基频(32768Hz)进行倍频,输出系统时钟Fosc

32768Hz晶振锁相环(PLL)系统时钟发生器频率:20.48M,24.576M,32.768M,40.96M,49.152Mb7b6b5Fosc(默认值24.576MHz)系统时钟选频P_SystemClock单元的第7,6,5位

3.1.3.看门狗Watchdog SPCE061A的清狗周期为0.75S;清看门狗操作寄存器:P_Watchdog_Clear(0x7012H)清狗操作:在每个0.75S的清狗周期里P_Watchdog_Clear写入0x0001。

3.1.4.低电压复位(LVR)

通过某种方式,使单片机内存各寄存器的值变为初始的操作称为复位。SPCE061A的复位方式为低电压复位。

3.1.5.I/O端口 OA口:

IOA0~IOA6:7路普通AD输入端口,IOA0~IOA7:触键唤醒功能

IOB口:

外部中断输入,串行接口、PWM输出等复用端口

3.1.6.时基与定时器

时基信号可提供常用的、现成的频率信号,完成部分定时器的功能

时间基准信号部分时基选频时基中断32768Hz RTCPLL倍频定时器/计数器Fosc时钟源 3.1.7.SPCE061A的定时器/计数器

递增计数方式,自动重载定时器/计数器初始值,输出4位可调脉宽比PWM信号,溢出频率/2的方波输出,多种时钟源 11

输入。

3.1.8.ADC、DAC SPCE061A的特色是其强大灵活的语音功能;而单片机对语音处理的支持,除了其处理能力外,还有片内集成的ADC、DAC;特别是集成有AGC电路的MIC通道。ADC转换过程:

启动自动方式 RDY=0SAR = 10 0000 0000BDAC0输出Vdac0与Vin逐次比较比较结束,RDY=1结果存入结果寄存器等待读取结果寄存器

3.2、超声波传感器

1.基本特性与参数指标

超声波传感器谐振频率:40KHz; 模组传感器工作电压:4.5V~9V 模组接口电压:4.5V~5.5V 2.主要功能

三种测距模式选择跳线J1(短距、中距、可调距):

短距:20cm~100cm左右(根据被测物表面材料决定),精度1cm;

中距:70cm~400cm左右(根据被测物表面材料决定); 可调:范围由可调节参数确定,当调节在合适的值时,最远测距700cm左右; 3.结构示意图

一般应用时,只需要用两条10PIN排线把J5与SPCE061A的IOB口低八位连接,J4与IOB口高八位连接,同时设置好J1、J2跳线就完成硬件的连接了。不同测距模式的选择只需改变测距模式跳线J1的连接方法即可。模组工作的性能与被测物表面材料有很大关系,如毛料、布料对超声波的反射率很小,会严重影响测量结果 实物图: 13

J1为选择工作模式,J2选择电源接口 4.电路原理图介绍:

超声波谐振频率调理电路

由单片机产生40KHz的方波,并通过模组接口(J4)送到模组的CD4049,而后面的CD4049则对40KHz频率信号进行调理,以使超声波传感器产生谐振。

超声波回波接收处理电路

超声波接收处理部分电路前级采用NE5532构成10000倍放大器,对接收信号进行放大;后级采用LM311比较器对接收信号进行调整,比较电压为LM311的3管脚的输入,可由J1跳线选择不同的比较电压以选择不同的测距模式。

测距程序流程图

超声波测距的功能函数流程图如图。用户只需进行六次测距操作,这六次的测量结果需要经过处理后才可得到最终的测距返回值,然后将返回值化成距离。

软件设计

4.1软件设计各模块

void RunTime2Hz(void);设置2HZ基频中断向量函数。

void OffTime2Hz(void);清2HZ基频中断向量函数。void Clear_WatchDog(void);清看门狗函数

unsigned int SP_GetCh(void);取键值函数 void delay2s(int timer)可调的延迟函数

4.2速度控制

速度控制用TIMERA的PWM输出控制,当它前进时设PWM为12/16,当它转弯时设为8/16。其代码为:*P_TimerA_Ctrl=0x0333;*P_TimerA_Data=0xff9f;

4.3障碍物检测

用TIMERB的TONT输出给超声波提供出射频率,并给它延迟一段时间,发射完时,清TIMERB,让它工作在计时方式,当计到10000时!没有收到回波,则说明前在无障碍。如果有收到回波则说明有障碍。

4.4看门狗

看门狗只要一定时间给其喂狗,就可以保证程序不会跑飞,跑飞就会自动复位。其代码就只有一句: *P_Watchdog_Clear = 0x0001;

4.5基频中断

采用2HZ的基频中断,实现实时控制;一次中断,中断时间为0。5S,其代码如下:

[P_INT_Ctrl] = r1;

INT IRQ;

//开中断

4.6程序设计流程图

五:测试数据、测试结果分析及结论

测试方法与仪器: 1.测试仪器

测试仪器包括数字万用表、信号发生器、示波器、直流稳压电源等。

2.测试方法

数字万用表主要用来测试各个IO口的状态;

信号发生器与示波器用于测试超声波传感器信号的接收与传输;

试验测试能不能完成固定避障。

结论:

经过了我们的努力,我们基本上能完上避障的功能!当然我们之后还有很长的路要走,在之后我们会自己做一个最小系统,此次我们更侧重于软件方面的设计。同时我们还要设计更多的外围电路,实现更多的功能。其中包括:红外光电检测用来检测旁边的物体;还有红外遥控器,用来控制小车的运行与停止;再加一个显示器,用来显示路程和时间等等。

附录一:

程序附录:

程序设计中包括:主程序,测距程序,中断程序组成;

1.主程序:

#include “SPCE061A.h” #include “ceju.h”

unsigned char INTflag;

//定时标识

unsigned int sum;

//2hz 计数器

1次为0。5秒 void RunTime2Hz(void);void OffTime2Hz(void);void Clear_WatchDog(void);void delay2s(int timer)

//设置基频为2HZ的中断,就是一次定时0。5S {

sum=timer;RunTime2Hz();

//运行中断

while(!INTflag)

{

Clear_WatchDog();//清看门狗

}

INTflag = 0;

OffTime2Hz();

//结束中断

} void delay2s(int timer);int main(void){ unsigned int Back_data;

*P_IOB_Dir=0x1f00;

IOB,IOB8~12同向输出

*P_IOB_Attrib=0x1f00;*P_IOB_Data=0x0000;INTflag = 0;Clear_WatchDog();

while(1){

*P_TimerA_Ctrl=0x0373;

*P_TimerA_Data=0xff9f;

这14/16

Back_data = measure_Times(0);if(Back_data==0)

//装距离 //

//清看门狗

//设前进PWM

//测距

//判断是否为0,为0则为前进

{

*P_TimerA_Ctrl=0x0373;

*P_TimerA_Data=0xff9f;

}

else if(Back_data<=40)

40CM,小于则进行倒车

{

*P_TimerA_Ctrl=0x006;

*P_IOB_Data=0x1000;

delay2s(0);

*P_IOB_Data=0x0100;

delay2s(3);

}

else if(Back_data<=100)

1M,小于则进行避障

{

*P_TimerA_Ctrl=0x0333;

*P_IOB_Data=0x0400;

delay2s(1);

*P_IOB_Data=0x0800;

delay2s(1);

//判断是否小于

//倒车

//前进 //判断是否小于//左转

//右转 23

*P_IOB_Data=0x0400;

//左转

delay2s(1);*P_TimerA_Ctrl=0x006;

//停止PWM运行

*P_IOB_Data=0x0000;

//停车

while(1)

{;}

}

else

Clear_WatchDog();

}

}

2.中断程序: #include “SPCE061A.h” #include “ceju.h”

void IRQ3(void)__attribute__((ISR));

void IRQ3(void){ *P_INT_Clear = 0x0100;

//

//IRQ中断服务程序 24

EXT1_IRQ_ult();

//调用超声波测距的外部中断服务程序 }

.TEXT.include SPCE061A.inc;.external _sum;.external _INTflag;.public _IRQ5;_IRQ5:

push r1,r4 to [sp];

r1 =0x0008;

test r1,[P_INT_Ctrl];

jnz L_4Hz;

r1 = 0x0004;

[P_INT_Clear] = r1;

r1 = [_sum]

r1 += 1;

//定时3秒的中断程序

// Timer A FIQ entrence

//清中断

//取时基信号量

cmp r1,4;

je loop0;

[_sum]=r1

//保存时基信号量

pop r1,r4 from [sp];

reti;

loop0:

r1 = 0x0001;

[_INTflag] = r1;

r1 = 0

[_sum] = r1 pop r1,r4 from [sp];

reti;

L_4Hz:

r1 = 0x0008;

[P_INT_Clear] = r1;

pop r1,r4 from [sp];reti;

//设置中断标识

//清中断 26

.external _sum;.include SPCE061A.inc;.CODE.public _Clear_WatchDog;_Clear_WatchDog:.PROC

R1=0x0001;

[P_Watchdog_Clear]=R1;

//清看门狗

retf;.ENDP

.public _RunTime2Hz;//初始化中断为2HZ定时中断源_RunTime2Hz:

.proc r1 = 0x0004;

[P_INT_Ctrl] = r1;

INT IRQ;

//开中断

retf.endp;

.public _OffTime2Hz;_OffTime2Hz:.proc

r1 = [P_INT_Ctrl]

r1 &= 0xfffb;

[P_INT_Ctrl] = r1;

r1 = 0x0000

[_sum] = r1;

retf;.endp;

3、测距程序

#include “SPCE061A.h” #define LONG_SEND_TIMER 40KHz信号发射时长

#define LONG_SEND_TIMER2 测距时的40KHz信号发射时长#define LONG_WAIT_DELAY 的防余波干扰延时时长

#define LONG_WAIT_DELAY2 测距时的防余波干扰延时时长

1000 3000

600 1500

//中距测距时的//中距测距的补充

//中距测距

//中距测距的补充

#define LONG_RES_ADD 补偿值

0x00B0 //中距测距的结果#define LONG_RES_ADD2 充测距时的结果补偿值

#define LOW_SEND_TIMER 40KHz信号发射时长 #define LOW_SEND_TIMER2

0x0220 //中距测距的补

250

//短距测距时的 1000 //短距测距的补充测距时的40KHz信号发射时长 #define LOW_WAIT_DELAY 余波干扰延时时长

#define LOW_WAIT_DELAY2

400

//短距测距

180

//短距测距的防的补充测距时的防余波干扰延时时长 #define LOW_RES_ADD 果补偿值

#define LOW_RES_ADD2 测距时的结果补偿值

unsigned int Counter_buf;

//超声波测距当中,用于0x00B0

//短距测距的补充

0x0034

//短距测距的结保存TimerB计数的变量,相当于时长 unsigned int EXT1_IRQ_flag=0;

//外部中断标志变量,用于EXT1的IRQ中断程序和测距程序同步

void Delay_ult(unsigned int timers){ unsigned int i;for(i=0;i

__asm(“nop”);} } unsigned int Resoult_ult(unsigned int Counter){ unsigned int uiTemp;unsigned long ulTemp;ulTemp =(unsigned long)Counter*33500;度,以厘米为单位 ulTemp = ulTemp/196608;

ulTemp = ulTemp>>1;

//除二 uiTemp =(unsigned int)ulTemp;return uiTemp;} unsigned int measure2_ult(unsigned int type);unsigned int measure_ult(unsigned int type)

声波测距模组的测距程序,完成一次测距

//计算距离 //*以声音的速

// 超30

{

unsigned int Exit_flag = 1;unsigned int uiTemp;unsigned int uiResoult;unsigned int uiSend_Timer,uiWait_Timer,uiRes_Add;unsigned int uiSystem_Clock;uiSystem_Clock = *P_SystemClock;//将当前的系统时钟设置暂时保存起来 *P_SystemClock = 0x0088;

//将系统时钟设置为49MHz,分频比为1,强振模式 if(type)

//根据type即测距类型,选择不同的测距参数

{

} else {

uiSend_Timer = LOW_SEND_TIMER;uiWait_Timer = LOW_WAIT_DELAY;uiRes_Add = LOW_RES_ADD;

uiSend_Timer = LONG_SEND_TIMER;uiWait_Timer = LONG_WAIT_DELAY;uiRes_Add = LONG_RES_ADD;

} *P_TimerB_Data = 0xfed2;*P_TimerB_Ctrl = 0x03c0;

//发40KHz的信号触发超声波传感器

率 while(*P_TimerB_Data

//TrB 工作在192KHz频

//等待发送 //关定时器B 再打开TimerA的计数(来源于EXT1)

*P_INT_Ctrl = *P_INT_Ctrl_New|0x0100;*P_INT_Clear = 0xffff;__asm(“IRQ ON”);

//清除中断发生标志 //打开总中断使能

//TimerA的溢出中断{

} *P_INT_Clear = 0x0100;

//开中断前先清中

//以避开余波的干扰

*P_Watchdog_Clear = 0x0001;EXT1_IRQ_flag = 0;的标志变量置0

while(Exit_flag)

{ if(EXT1_IRQ_flag==1)

//当该变量在timerA的FIQ中断中被置1时表示接收到了回波

{ Exit_flag = 0;

//退出标示

Counter_buf = Counter_buf+uiRes_Add;//计数值加上一定的调整数据

uiResoult = Resoult_ult(Counter_buf);//对计数值进行处理,得出距离值

} if(*P_TimerB_Data>10000)

//如计数值大于10000,表示超时

{ Exit_flag = 0;

uiResoult = measure2_ult(type);//再进行一次补充的测距,将会加长40KHz信号发射的量

} } *P_TimerB_Ctrl = 0x0006;//停止定时器B uiTemp = *P_TimerB_Data;*P_Watchdog_Clear = 0x0001;*P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);//关掉外部

中断

} void EXT1_IRQ_ult(void)

//超声波测距模组的测距程序的EXT1中断服务程序 {

Counter_buf = *P_TimerB_Data;*P_TimerB_Ctrl = 0x0006;

return uiResoult;__asm(“IRQ OFF”);

*P_SystemClock = uiSystem_Clock;//恢复系统时钟的设

//关掉总中断

*P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);//关掉外部中断

*P_INT_Clear = 0xffff;EXT1_IRQ_flag = 1;

//清除中断发生标志

//通知测距程序,外部中断已发生 } unsigned int measure2_ult(unsigned int type)

//补充进行一次远距的测量,以保证能够获取测量结果 {

unsigned int Exit_flag = 1;

unsigned int uiResoult;unsigned int uiSend_Timer,uiWait_Timer,uiRes_Add;*P_TimerB_Ctrl = 0x0006;

*P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);//关掉外部中断

__asm(“IRQ OFF”);

//关掉总中断

//清除掉中断发生标志 *P_INT_Clear = 0xffff;

if(type)

//根据type即测距类型,选择不同的测距参数

{

} else {

}

uiSend_Timer = LONG_SEND_TIMER2;uiWait_Timer = LONG_WAIT_DELAY2;uiRes_Add = LONG_RES_ADD2;uiSend_Timer = LOW_SEND_TIMER2;uiWait_Timer = LOW_WAIT_DELAY2;uiRes_Add = LOW_RES_ADD2;

*P_TimerB_Data = 0xfed2;*P_TimerB_Ctrl = 0x03c0;Delay_ult(uiSend_Timer);*P_TimerB_Ctrl = 0x0006;*P_TimerB_Data = 0x0000;*P_TimerB_Ctrl = 0x0001;

while(*P_TimerB_Data

*P_INT_Ctrl = *P_INT_Ctrl_New|0x0100;//打开外部中断 *P_INT_Clear = 0xffff;__asm(“IRQ ON”);

EXT1_IRQ_flag = 0;

//TimerA的溢出中断

//清除中断发生标志 //打开总中断使能 { } *P_Watchdog_Clear = 0x0001;的标志变量置0

while(Exit_flag){ if(EXT1_IRQ_flag==1)

//当该变量在timerA的FIQ中断中被置1时表示接收到了回波

{ Exit_flag = 0;

//exit Counter_buf = Counter_buf+uiRes_Add;//计数值加上一定的调整数据

uiResoult = Resoult_ult(Counter_buf);//对计数值进行处理,得出距离值

} if(*P_TimerB_Data>10000)

//如计数值大于10000,表示超时

} unsigned int measure_Times(unsigned int type)

//组合进行共6次的测距程序,包括对6次测量结果的取平均值处理 {

} {

} Exit_flag = 0;uiResoult = 0;

*P_TimerB_Ctrl = 0x0006;return uiResoult;unsigned int uiResoult=0,uiMeasure_Index=0,i;unsigned int uiTemp_buf[6],uiTemp;

unsigned int uiSystem_Clock;

for(;uiMeasure_Index<6;uiMeasure_Index++){

//循环进行四次测量

//进行一次测uiTemp = measure_ult(type);

量,测量类型由type决定

if(uiMeasure_Index==0)

//如果为本次测量的第一次测距,则直接保存在缓冲区第一个单元

uiTemp_buf[0] = uiTemp;

else {

//否,则对结果进行比较,进行排序,从大到小排

i = uiMeasure_Index;while(i){

if(uiTemp>uiTemp_buf[i-1]){

} else {

//以下为排序的代码

uiTemp_buf[i] = uiTemp_buf[i-1];uiTemp_buf[i-1] = uiTemp;

}

}

}

uiTemp_buf[i] = uiTemp;break;

//退出排序

i--;

//两次测量之间的延时等待,利用以下代码软仿真时的cycles数结合设置的CPUCLK进行计算,大概72ms uiSystem_Clock = *P_SystemClock;

//将之前的系统时钟的设置用变量保存

*P_SystemClock = 0x000b;

//

为24.576MHz 分频比为8

for(i=0;i<5;i++){

} *P_SystemClock = uiSystem_Clock;

//恢复系统时钟Delay_ult(1000);

//调用延时程序

*P_Watchdog_Clear = 0x0001;设置

} //此处延时结束

//对6次测距的结果进行处理

if(uiTemp_buf[5]==0){

//如果缓冲区中的最小的测距值为0,则采用中间4个数据进行平均

uiResoult

= uiTemp_buf[1]+uiTemp_buf[2]+uiTemp_buf[3]+uiTemp_buf[4];

} else {

//否则就取后5个数据uiResoult = uiResoult/4;进行平均

uiResoult

= uiTemp_buf[1]+uiTemp_buf[2]+uiTemp_buf[3]+uiTemp_buf[4]+uiTemp_buf[5];

} } return uiResoult;uiResoult = uiResoult/5;40

第五篇:基于Arduino单片机避障小车机器人毕业论文

论文编码:TP39

Capital Normal University

首都师范大学本科毕业设计论文

基于行为设计的移动机器人设计与实现

——机器人机械设计模块

Design and Implementation of Mobile Robot

Based on Behavior Design —— Robot Mechanical Solutions

论文作者: 张倩颖 院 系: 信息工程学院 专 业: 计算机科学与技术 学 号: 1111000055 指导老师: 徐敏 完成日期: 2015年 4月 25日

首都师范大学本科毕业设计论文

摘要

本文简要介绍了基于行为设计的移动机器人设计与实现----一种基于Arduino新型集成开发环境的超声波避障小车的工作原理。其中包括对小车的执行组件、搭建结构、传感器、Arduino单片机软件编程及试验结果的介绍。

本方案以Arduino单片机为控制核心,基于蝙蝠超声波测距的原理,利用超声波传感器,检测小车前方障碍物的距离,然后把数据传送给单片机。当超声波检测到距离小车前方25CM有障碍物时单片机就发出指令让小车左转一定角度,然后停止行进继续探测.如果前方25CM没有障碍物则直行,否则继续左转一定角度。如此通过超声波不断的循环检测周边环境的情况进行自动避障。

本系统在硬件设计方面,以Arduino单片机为控制核心,以超声波传感器检测前方障碍物,从而自动避障。在软件方面,利用Arduino语言进行编程,通过软件编程来控制小车运转。该系统在驱动方面采用L298N驱动2个直流电机带动小车运行。并且,用PWM系统调速,控制小车前进的速度。实现小车根据外部环境,做出前进、后退和转向等动作,从而完成避障的功能,本设计具有有一定的实用价值。

关键词:Arduino单片机;超声波传感器;避障

I

基于行为设计的移动机器人设计与实现

ABSTRACT This paper describes the design of mobile robot behavior-based design and implement----A new ultrasound-based integrated development environment Arduino obstacle avoidance car works.These include the implementation of car components, building structures, sensors, Arduino microcontroller software programming and test results presentation.The program to Arduino microcontroller core, based on the principle of ultrasonic distance measurement bats using ultrasonic sensors to detect obstacles in front from the car, and then transmits the data to the microcontroller.When the ultrasonic distance in front of the car detects obstacles 25CM SCM issued a directive to make the car turn left on an angle, then continue probing stop traveling.If there is no obstacle in front of the 25CM straight, turn left or continue certain angle.So the case of the ultrasonic continuous loop through the surrounding environment to automatically detect avoidance.The system hardware design to Arduino microcontroller core, with ultrasonic sensors detect obstacles in front, so that automatic obstacle avoidance.On the software side, the use of Arduino programming language to control the car running through software programming.The system uses the driver side L298N drive two DC motors drive the car running.And, with the PWM system speed, speed control car forward.Realize the car according to the external environment, made forward, backward, and steering movements, thus completing the obstacle avoidance function, the design has a certain practical value.Key words: Arduino;ultrasonic sensors;obstacle avoidance

II

首都师范大学本科毕业设计论文

第一章 绪论....................................................................................................................................1 1.1 论文的选题背景...................................................................................................................1 1.2 Arduino单片机概述.............................................................................................................2 1.3 Arduino机器人发展现状.....................................................................................................3 1.4 Arduino智能避障机器人研究意义和目的.........................................................................4 1.5项目主要研究内容...............................................................................................................5 第二章 避障小车机器人的总体设计............................................................................................6 2.1设计原理与方法...................................................................................................................6 2.2硬件设计...............................................................................................................................6 2.3 软件设计...............................................................................................................................7 2.3.1 Arduino语言..................................................................................................................7 2.3.2 Arduino IDE....................................................................................................................8 2.4 实验前期准备.....................................................................................................................10 第三章 硬件模块..........................................................................................................................12 3.1 各模块的的基本性能.........................................................................................................12 3.1.1 单片机模块...................................................................................................................12 3.1.2 电机、电机驱动模块...................................................................................................12 3.1.3避障模块......................................................................................................................14 3.1.4电源模块......................................................................................................................15 3.2 小车的基本搭建.................................................................................................................15 3.3连线.....................................................................................................................................17 3.3.1电机的连线..................................................................................................................17 3.3.2舵机的连线..................................................................................................................18 3.3.3超声波的连线..............................................................................................................19 3.3.4 Arduino超声波小车总体连线图:.............................................................................20

III

基于行为设计的移动机器人设计与实现

第四章 软件模块..........................................................................................................................21 4.1 软件设计思路.....................................................................................................................21 4.2 电机前进模块.....................................................................................................................22 4.2 电机后退模块.....................................................................................................................22 4.3 电机停止工作模块.............................................................................................................23 4.4 电机左转模块.....................................................................................................................23 4.5 电机右转模块.....................................................................................................................24 4.6 防卡死模块.........................................................................................................................25 第五章 实验及结果分析..............................................................................................................26 5.1预期目标.............................................................................................................................26 5.2遇到的问题和解决方法.....................................................................................................26 5.3 硬件的调试与整合.............................................................................................................27 5.3.1调试思路......................................................................................................................27 5.3.2调试超声波模块..........................................................................................................27 5.3.3电机调试......................................................................................................................28 5.4 心得体会.............................................................................................................................28 第六章 设想与展望......................................................................................................................30 参考文献.......................................................................................................................................31 致谢...............................................................................................................................................32 附录...............................................................................................................................................33 超声波智能避障车程序(ARDUINO)...................................................................................33

IV

首都师范大学本科毕业设计论文

第一章 绪论

1.1 论文的选题背景

随着现代计算机技术的不断发展和普及,机器人的发展已经遍及近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。小到智能玩具,大到机械、电子、冶金、交通、宇航、国防等各个领域。人们将计算机技术更加广阔的运用的人类生活中,制造能替代人劳动的机器一直是人类的梦想,并一直在为之努力。在我们的生活里,有很多的机器人,如图1.1所示,这两种机器人分别是扫地机器人和灭火机器人。他们在我们的生活中非常常见也很实用,他们的特点就是无需人们的控制,能够自行运动完成他们的任务。那么这就需要一个非常必要的基础功能,那就是能够感知并躲避前方的障碍物。

因此,在本次的设计中,我们将设计出一个能够避障机器人,在具有这个基本功能的基础上,我们就可以为他附加更多的功能,赋予它更多的实用价值。选用Arduino单片机作为控制核心,使用仿生超声波技术传感器进行避障的实现。“智能避障机器人”作为现代社会的新产物,也是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。

图1.1

基于行为设计的移动机器人设计与实现

1.2 Arduino单片机概述

Arduino,是一个基于开放原始码的软硬件平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java,C语言的Processing/Wiring开发环境。它包含两个主要的部分:硬件部分是可以用来做电路连接和Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。

Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,收录进微控制器。对Arduino的编程是利用Arduino编程语言(基于 Wiring)和Arduino开发环境(based on Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信(比如 Flash, Processing, MaxMSP)来实现。可以自己动手制作,也可以购买成品套装;Arduino所使用到的软件都可以免费下载.硬件参考设计(CAD 文件)也是遵循availableopen-source协议, 你可以非常自由地根据你自己的要求去修改他们.Arduino可以使用开发完成的电子元件例如Switch或sensors或其他控制器、LED、步进马达或其他输出装置。Arduino也可以独立运作成为一个可以跟软件沟通的接口,例如说:flash、processing、Max/MSP、VVVV或其他互动软件…。Arduino开发IDE接口基于开放源代码原,可以让您免费下载使用开发出更多令人惊艳的互动作品。

其主要特点如下:

1)开放源代码的电路图设计,程序开发接口免费下载,也可依个人需求自己修改。2)使用低价格的微处理控制器(AVR系列控制器),可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。

3)Arduino支持ISP在线烧,可以将新的“bootloader”固件烧入AVR芯片。有了bootloader之后,可以通过串口或者USB to Rs232线更新固件。

4)可依据官方提供的Eagle格式PCB和SCH电路图简化Arduino模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:红外线,超音波,热敏电阻,光敏电阻,伺服马达,…等)5)支持多种互动程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。

首都师范大学本科毕业设计论文

6)应用方面,利用Arduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。

我们为什么要使用Arduino?有很多的单片机和单片机平台都适合用做交互式系统的设计。例如:Parallax Basic Stamp,Netmedia’s BX-24,Phidgets,MIT’s Handyboard和其它等等提供类似功能的。所有这些工具,你都不需要去关心单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。Arduino同样也简化了同单片机工作的流程,但同其它系统相比Arduino在很多地方更具有优越性,特别适合老师,学生和一些业余爱好者们使用:和其它平台相比,Arduino板算是相当便宜了。最便宜的Arduino版本可以自己动手制作,即使是组装好的成品,其价格也不会超过200元。而且Arduino软件可以跨平台运行在Windows,Macintosh OSX,和Linux操作系统。而大部分其它的单片机系统都只能运行在Windows上。另外,它具有简易的编程环境。初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的使用Processing 编程环境,所以如果学生学习过使用Processing 编程环境的话,那他们在使用Arduino开发环境的时候就会觉得很相似很熟悉。

软件开源并可扩展-Arduino软件是开源的,对于有经验的程序员可以对其进行扩展。Arduino编程语言可以通过C++库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino语言而直接使用AVR C 编程语言(因为Arduino语言实际上是基于AVR C的)。类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C 代码。

Arduino基于AVR平台,对AVR库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。大大降低了软件开发难度,适宜非专业爱好者使用。优点和缺点并存,因为是二次编译封装,代码不如直接使用AVR代码编写精练,代码执行效率与代码体积都弱于AVR直接编译。

1.3 Arduino机器人发展现状

我国目前的发展现状是研制中的智能移动机器人智能水平并不高,只能说是智能移动机器人的初级阶段。智能移动机器人研究中当前的核心问题有两方面:一方面是,提高智能移动机器人的自主性,这是就智能移动机器人与人的关系而言,即希望智能

基于行为设计的移动机器人设计与实现

移动机器人进一步独立于人,具有更为友善的人机界面。从长远来说,希望操作人员只要给出要完成的任务,而机器能自动形成完成该任务的步骤,并自动完成它。另一方面是,提高智能移动机器人的适应性,提高智能移动机器人适应环境变化的能力,这是就智能移动机器人与环境的关系而言,希望加强它们之间的交互关系。

智能移动机器人涉及到许多关键技术,这些技术关系到智能移动机器人的智能性的高低。这些关键技术主要有以下几个方面:多传感信息耦合技术,多传感器信息融合就是指综合来自多个传感器的感知数据,以产生更可靠、更准确或更全面的信息,经过融合的多传感器系统能够更加完善、精确地反映检测对象的特性,消除信息的不确定性,提高信息的可靠性;导航和定位技术,在自主移动机器人导航中,无论是局部实时避障还是全局规划,都需要精确知道机器人或障碍物的当前状态及位置,以完成导航、避障及路径规划等任务;路径规划技术,最优路径规划就是依据某个或某些优化准则,在机器人工作空间中找到一条从起始状态到目标状态、可以避开障碍物的最优路径;机器人视觉技术,机器人视觉系统的工作包括图像的获取、图像的处理和分析、输出和显示,核心任务是特征提取、图像分割和图像辨识;智能控制技术,智能控制方法提高了机器人的速度及精度;人机接口技术,人机接口技术是研究如何使人方便自然地与计算机交流。

在各国的智能移动机器人发展中,美国的智能移动机器人技术在国际上一直处于领先地位,其技术全面、先进,适应性也很强,性能可靠、功能全面、精确度高,其视觉、触觉等人工智能技术已在航天、汽车工业中广泛应用。日本由于一系列扶植政策,各类机器人包括智能移动机器人的发展迅速。欧洲各国在智能移动机器人的研究和应用方面在世界上处于公认的领先地位。中国起步较晚,而后进入了大力发展的时期,以期以机器人为媒介物推动整个制造业的改变,推动整个高技术产业的壮大

1.4 Arduino智能避障机器人研究意义和目的

机器人的感觉传感器种类非常多,其中视觉传感器成为研制自动行走和驾驶机器人的重要部件。机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。本设计以超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科

首都师范大学本科毕业设计论文

技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。

本设计主要体现多功能小车的智能避障功能,本设计中的理论方案、分析方法及特色与创新点等可以为自动运输机器人、采矿勘探机器人、家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济收益,形成商业价值。我们所设计的智能移动机器人利用超声波能够在路面上顺利躲避障碍物,从而在导盲和辅助人类行动方面也有着重要意义。

1.5项目主要研究内容

本设计题目为《基于行为设计的移动机器人设计与实现》是以Arduino单片机为控制核心,主要研究小车的避障功能。利用超声波传感器检测道路上的障碍,然后把数据传送给单片机,当超声波检测到距离小车前方有障碍物时单片机就发出指令让小车左转一定角度,然后停止运行继续探测.如果前方没有障碍物就直走,否则继续左转一定角度。如此通过超声波不断的循环检测周边环境的情况进行自动避障。该功能的小车能够实现在无人操作的情况下在比较宽阔平坦的环境中避开障碍物。当机器人在行走过程中遇到前方障碍时,能够根据有效范围内的距离作出相应处理,由单片机软件发出转弯、直行、后退指令,避免机器与障碍物相撞。

基于行为设计的移动机器人设计与实现

第二章 避障小车机器人的总体设计

2.1设计原理与方法

本设计中直流电机PWM控制系统的主要功能包括实现对直流电机的加速、减速,并且可以调整电机的转速,能够很方便的实现电机的智能控制。主体电路:即直流电机PWM 控制模块。这部分电路主要由AT89S52 单片机的 I/O 端口、定时计数器、外部中断扩展等控制直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,能够很方便的实现电机的智能控制。其间是通过 AT89S52 单片机产生脉宽可调的脉冲信号并输入到L298 驱动芯片来控制直流电机工作的。该直流电机PWM 控制系统由以下电路模块组成:设计控制部分:主要由AT89S52 单片机的外部中断扩展电路组成。直流电机PWM控制实现部分主要由一些二极管、电机和L298 直流电机驱动模块组成。智能小车采用后轮驱动,两个后轮各用一个电机,前轮是万象轮,起到支撑和转向的作用。

2.2硬件设计

本小车的硬件部分分为几个模块:超声波传感器、Arduino单片机、电源、两个直流电动机、电机驱动板、车身。电源连接在Arduino单片机上给整个小车供电。小车以Arduino单片机为核心,连接电机驱动板控制两个直流电动机的运转,从而实现小车的前进。将超声波传感器安置在车身的最前端,用于探测前方是否有障碍物。当超声波传感器遇到障碍物,将反馈提供到单片机里从而做出向左旋转的反应,再次检测前方是否有障碍物,若有障碍物则继续旋转,没有障碍物则电机驱动器驱动电机前进,从而实现整个小车的避障功能。硬件框架图如图2.1。

首都师范大学本科毕业设计论文

图2.1 硬件设计框架

2.3 软件设计

2.3.1 Arduino语言

Arduino语言具有如下特点:

1、开放源代码的电路图设计,程序开发接口免费下载,也可依需求自己修改。

2、使用低价格的微处理控制器(AVR系列控制器),可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。

3、Arduino支持ISP在线烧,可以将新的“bootloader”固件烧入AVR芯片。有了bootloader之后,可以通过串口或者USB to Rs232线更新固件。

4、可依据官方提供的Eagle格式PCB和SCH电路图简化Arduino模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:红外线,超音波,热敏电阻,光敏电阻,伺服马达,„等)

5、支持多种互动程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。

6、应用方面,利用Arduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。Arduino的功能:

基于行为设计的移动机器人设计与实现

Arduino可以让我们快速使用与Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider等软件结合,作出互动作品。Arduino可以使用现有的电子元件例如开关或者传感器或者其他控制器件、LED、步进马达或其他输出装置。Arduino也可以独立运行,并与软件进行交互,例如:Macromedia Flash, Processing,Max/MSP, Pure Data,VVVV或其他互动软件,Arduino的IDE界面基于开放源代码,可以让我们免费下载使用,开发出更多令人惊艳的互动作品。

Arduino可使用ICSP线上烧入器,将「bootloader」烧入新的IC晶片;可依据官方电路图,简化Arduino模组,完成独立运作的微处理控制;可简单地与传感器,各式各样的电子元件连接(例如:红外线,超声波,热敏电阻,光敏电阻,伺服马达等);支援多样的互动程序例如: Macromedia Flash、Max/Msp、VVVV、PD、C、Processing等;使用低价格的微处理控制器(ATMEGA 8-168);USB接口,不需外接电源。另外有提供9V直流电源输入;在应用方面,利用Arduino,突破以往只能使用鼠标,键盘,CCD等输入的装置进行互动内容的设计,可以更简单地达成单人或多人游戏互动。

2.3.2 Arduino IDE 如图2.3这是运行界面。Arduino语言是一种类c的语言。在这个界面里有我们编程时最常用的东西。当我们把鼠标放在上面就会在右侧出现按键的功能。

图2.3 Arduino IDE运行界面

首都师范大学本科毕业设计论文

图2.4就是upload上传功能。最右边的图标是我们需要熟知的串口监视器,快捷键是:Ctrl+Shift+M。点这个图标有用的前提是插上了串口设备,当然Arduino插在USB上也可以,因为板上的Atmega16U2就是USB转串口的功能。

图2.4 upload

上传功能

如图2.5这就是串口监视器的运行画面相对于网上流传的众多串口调试软件,它的功能可以说较为简单。右下角是波特率,波特率接收端和发射端要相同,要不然收到的会是乱码。

图2.5 串口监视器

如果电脑没找到串口或者驱动没装好,就会有如图2.6的提示。serial port的意思是串行通讯接口。

图2.6 Arduino IDE的菜单栏中有很多选项,例如“文件”“编辑”等英文界面。其中Sketch是草图的意思,在Arduino IDE中,每个Arduino程序都称为sketch,他是一个

基于行为设计的移动机器人设计与实现

可以上传进Arduino Board中的程序包,当然经过编译以后他就不是代码包了。Tools里面第一项,自动格式,当你把一段从网上下载的源代码放到sketch里面,会有一些缩进的乱码,这时,Auto Format就起到了很好的作用。

当我们编写好程序后,点击Update,IDE会自动编译,上传。如果程序有错误,就会有如图2.7的显示,标出了行号。修改程序后就可以继续编译上传了。

图2.7

2.4 实验前期准备

搭建小车的零件清单如下: 1.减速电机 2个 2.优质轮胎2个 3.电机固定件2个 4.万向轮1个

5.100*150*2.6MM有机玻璃板 2片 6.L298N电机驱动板1个 7.ARDUINO 328给力板 1个 8.云台 1个 9.舵机 1个 10.超声波模块1个 11.迷你面包板1个 12.6节5号电池盒一个 13.杜邦线 12条 14.1米长USB线1条

15.铜柱 35MM长 3个 12MM 4个

首都师范大学本科毕业设计论文

16.3MM螺丝螺母若干

基于行为设计的移动机器人设计与实现

第三章 硬件模块

3.1 各模块的的基本性能

3.1.1 单片机模块

本设计采用Atmel Atmega328微处理控制器。其性能为:Digital I/O 数字输入/输出端共 0~13。Analog I/O 模拟输入/输出端共 0~5。支持ISP下载功能。输入电压:接上电脑USB时无须外部供电,外部供电7V~12V 直流电压输入。输出电压:5V 直流电压输出和3.3V 直流电压输出。

图3.1 Arduino单片机实物图

3.1.2 电机、电机驱动模块

本设计采用由双极性管组成的H桥电路(L298N)。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,则效率非常高;H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。而且它有更强的驱动能力。而且L298N有过电流保护

首都师范大学本科毕业设计论文

功能,当出现电机卡死时,可以保护电路和电机。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。

图 3.2 L298N引脚图

图3.3 L298N电路原理图

基于行为设计的移动机器人设计与实现

图3.4 L298N实物图

3.1.3避障模块

本设计采用HC-SR04超声波测距模块,该原件可提供2CM-400CM的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器,接收器和控制电路。

基本工作原理:(1)采用IO口TRIG触发测距,给至少10us的高电平信号;(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;

图3.5避障模块实物图

首都师范大学本科毕业设计论文

3.1.4电源模块

本设计采用的电源为车载电源。为保证电源工作可靠,单片机系统与动力伺服系统的电源采用了大功率、大容量的蓄电池;而传感器的工作电源则采用了小巧轻便的干电池。

图3.6 电源模块实物图

3.2 小车的基本搭建

舵机,云台和超声波的连接步骤如下图:

1.如图3.7准备好云台舵机超声波安装所需配件。

图3.7 2.图3.8取出舵机配件之一“十字胶体”将十字剪成四边对等的长度,打磨成宽度一样。

基于行为设计的移动机器人设计与实现

图3.8 3.将2*8mm的和1.2*5mm的螺丝安装到十字的第二个孔,装到云台底座上。在云台底部的螺丝位套上螺母,并用热熔胶固定如图3.9。

图3.9 4.将舵机装上云台的两个边翼,并用螺丝紧固如图3.10。

图3.10 5.将装好的舵机放进固定好的十字胶体调整好方向后,从舵机组件包里取出2*6mm的螺丝安装到舵机固定孔中。完成云台安装后用扎带将超声波模块固定在云台前端如图3.11。

首都师范大学本科毕业设计论文

图3.11 6.将6mm铜柱装在云台底座安装孔并将装好的云台组件直接安装到小车底盘上,小车搭建成品如图3.12。

图3.12 小车搭建成品

3.3连线

3.3.1电机的连线

L298N的供电处理:

用6节5号电池盒取一路电源给L298N电机驱动模块供电,另一路给ARDUINO主板供电给L298N电机驱动模块供电的电源+极接L298N的VMS接口,电源的-接L298N的GND接口,L298N板上的+5V接口放空不接。电机一接L298N的MOTOA,电机二接L298N的MOTOB。

基于行为设计的移动机器人设计与实现

图3.13 电机的连线

3.3.2舵机的连线

首先设置函数:myservo.attach(5);// 定义伺服马达输出第5脚位。

舵机需要连接的有三条线,分别是+,-,信号。三条线均直接连接到Arduino板上。

接线方法:将+5V接到J5位,-位接到J6位,信号位接到J4位PWM口的第五脚。

连线方式如图3.14所示:

图3.14舵机的连线

首都师范大学本科毕业设计论文

3.3.3超声波的连线

超声波传感器有四个脚,如图3.15所示: 四个引脚的功能分别是: 1:VCC 接+5V。2:TRIQ 信号输入。3:ECHO信号输出。4:GND 接地。

图3.15超声波的引脚示意图

超声波模块四个引脚直接与Arduino单片机连接,接线方法如图3.16所示:

图3.16超声波与Arduino单片机接线

基于行为设计的移动机器人设计与实现

3.3.4 Arduino超声波小车总体连线图:

电机A和电机B将正负两端接在L298N电机驱动板上,若正负两级接反则车轮反转。电机驱动板、舵机、超声波模块直接与Arduino核心控制板相连,电源模块分别给电机驱动板和Arduino板供电。

图3.17 Arduino超声波小车总体连线图

首都师范大学本科毕业设计论文

第四章 软件模块

4.1 软件设计思路

在软件设计方面,采用Arduino语言编程,编写程序流程图4.1

图4.1 软件编译流程图

基于行为设计的移动机器人设计与实现

4.2 电机前进模块

在定义好各个引脚之后,进入主程序的编写部分。我在程序控制模块里主要编写的是电机的控制函数。本程序中提及的digitalWrite函数的作用是设置引脚的输出的电压为高电平或低电平。该函数也是一个无返回值的函数,函数有两个参数pin和value,pin参数表示所要设置的引脚,value参数表示输出的电压HIGH(高电平)或LOW(低电平)。

首先定义为advance前进函数: void advance(int a){ 编写模拟信号,定义马达右后动作为低电平,即不给电: digitalWrite(pinRB,LOW);编写模拟信号,定义马达右前动作为高电平: digitalWrite(pinRF,HIGH);编写模拟信号,定义马达左后动作为低电平: digitalWrite(pinLB,LOW);编写模拟信号,定义马达左前动作为高电平: digitalWrite(pinLF,HIGH);定义延时,即将前进动作保持一段时间,直到开始执行下一程序。delay(a * 100);延时 } 4.2 电机后退模块

将函数定义为back后退函数 void back(int g)//后退 { 编写模拟信号,定义马达右后动作为高电平: digitalWrite(pinRB,HIGH);编写模拟信号,定义马达右前动作为低电平: digitalWrite(pinRF,LOW);

首都师范大学本科毕业设计论文

编写模拟信号,定义马达左后动作为高电平: digitalWrite(pinLB,HIGH);编写模拟信号,定义马达左前动作为低电平: digitalWrite(pinLF,LOW);定义延时,即将电机的后退动作保持一段时间,直到开始执行下一程序。delay(g * 100);} 4.3 电机停止工作模块

将函数定义为stopp停止函数 void stopp(int f){ 编写模拟信号,定义马达右后动作为高电平: digitalWrite(pinRB,HIGH);编写模拟信号,定义马达右前动作为高电平digitalWrite(pinRF,HIGH);编写模拟信号,定义马达左后动作为高电平digitalWrite(pinLB,HIGH);编写模拟信号,定义马达左前动作为高电平digitalWrite(pinLF,HIGH);定义延时,即将电机的停止动作保持一段时间,直到开始执行下一程序。delay(f * 100);}

4.4 电机左转模块

将函数定义为left左转函数 void left(int c){

基于行为设计的移动机器人设计与实现

编写模拟信号,定义马达右后动作为高电平 digitalWrite(pinRB,HIGH);编写模拟信号,定义马达右前动作为高电平 digitalWrite(pinRF,HIGH);编写模拟信号,定义马达左后动作为低电平 digitalWrite(pinLB,LOW);编写模拟信号,定义马达左前动作为高电平 digitalWrite(pinLF,HIGH);定义延时,即将电机的左转动作保持一段时间,直到开始执行下一程序。delay(c * 100);}

4.5 电机右转模块

将函数定义为right右转函数 void right(int b){ 编写模拟信号,定义马达右后动作为低电平 digitalWrite(pinRB,LOW);编写模拟信号,定义马达右前动作为高电平 digitalWrite(pinRF,HIGH);编写模拟信号,定义马达左后动作为高电平 digitalWrite(pinLB,HIGH);编写模拟信号,定义马达左前动作为高电平 digitalWrite(pinLF,HIGH);定义延时,即将电机的右转动作保持一段时间,直到开始执行下一程序。delay(b * 100);}

首都师范大学本科毕业设计论文

4.6 防卡死模块

该模块为防止避障小车卡死的编译,即当小车发生与障碍物距离过近的情况而无法转弯时,该程序会指引小车向后倒退,倒退一定距离后左转前进,若仍有障碍物则继续倒退,若无障碍物则左转后直行。即可防止车在行进途中卡在死巷里。

if(directionn == 2)//假如directionn(方向)= 2(倒车){ back(8);// 倒退(车)turnL(2);//些微向左方移动(防止卡在死巷里)Serial.print(“ Reverse ”);//显示方向(倒退)}

基于行为设计的移动机器人设计与实现

第五章 实验及结果分析

5.1预期目标

总体来说本次试验达到预期目标。

(1)在车前方没有障碍物时,小车沿直线向前走。

(2)在车前方有障碍物时,小车能避开障碍物,避障方法如下:超声波检测到障碍物后,先向左边旋转,检测。如果旋转后前面没有检测障碍物,则沿直线向前走;如果旋转后检测到前方仍有障碍物,则继续旋转,如果前面没有障碍物,则沿直线向前行走;

但是该超声波避障小车还存在着许多的不足,比如说只能对正前方一定角度内进行探测,使用的是一路超声波而不是多路超声波探测,并且为了简化,默认的只是向同一个方向转弯等,这些都是有待进一步发展和提高的。

5.2遇到的问题和解决方法

在此之前我们并没有制作过任何智能的机器人。初定避障小车这个题目时,最初我们采用乐高机器人搭建了一个循迹避障的机器人,由于操作较为简单,后来我们决定尝试采用Arduino芯片,利用超声波传感器搭建出一台智能的避障小车。最初我们对硬件的原理不够明白,不知道采用哪些原件,课程设计指导书上介绍的也并不详细,因此我们利用大量时间去图书馆查阅了许多资料,对其电机驱动、Arduino控制板以及超声波传感器的引脚、电路设计等各方面都做了近一步的了解之后才开始进行小车的搭建。

在选择硬件设施上,我们也花了很大功夫。在最初我们设计了两个驱动方案的选择。一个是采用ULN2003驱动,它是由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,一般用于高速大功率驱动电路。另个一就是采用由双极性管组成的H桥电路(L298N)。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,则效率非常高;H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。而且它有更强的驱动能力。此驱动板体积小,重量轻,而且它有一个外加的续流二极管,可以防止电机线圈在断电时的方向电势损坏芯片,同时也也安装有散热

首都师范大学本科毕业设计论文

片能使芯片温度降低,尽量防止他自动断电,让驱动性能更加稳定。板子设有两个电流反馈检测接口、内逻辑取电选择端、4个上拉电阻选择端、2路直流电机接口、控制电机方向指向灯等等。这个板子不仅适用于智能程控小车、轮式机器人等,还可以配合各种控制器使用。因此经过一番对比和考虑,最终我们选择了L298N电机驱动板。在超声波的选择上我们也出现了分期,本设计最终采用的是HC-SR04超声波测距模块。而最初我们选择的事红外传感装置。之所以最终没有选择红外线传感,是因为红外线对使用环境有较高的要求,当遇上浅色或是深色的家居物品它无法反射回来,会造成机器人无法正常避障。而这款HC-SR04则采用仿生超声波技术,类似鲸鱼,蝙蝠采用声波来侦测判断障碍物以及及空间方位,该超声波避障模块包括超声波发射器,接收器和控制电路,灵敏度较高,但技术成本也较高。

在搭建方面,我们完成程序的编译通电之后,小车发生了原地旋转的现象,经过观察,我们发现小车在感应障碍物方面并没有问题。问题出现在左侧轮前转,而右侧轮后转。所以我们将控制右侧车轮的电机的接线进行改接,这个问题便得以解决。

在软硬件调试方面,我们也遇到了一些问题。首先是避障小车的旋转角度不够,也许是因为地面摩擦力的关系,小车的旋转角度并达不到我们所设定的左转九十度。后来我们又将程序进行改进,设置的旋转角度比九十度多一些,小车就可正常避障了。还有一个问题就是小车在遇到障碍物之后的反应速度并不是很快,需要障碍物在前面平行持续1,2秒才可以做出转向的判断,这个延迟反应也经常造成小车和障碍物发生碰撞,这也是我们遇到的最大问题,在这个问题上我们做了很多程序上的调试,但终究达不到很理想的效果,在后续的试验中,我们准备尝试换一个感测避障模块进行尝试改进。

5.3 硬件的调试与整合

5.3.1调试思路

本设计的智能避障小车,难点重点有两大模块。分别是:L298驱动模块和超声波测距模块。我们在调试的时候我们把两大模块分别调试,最后再把所有模块和硬件组合起来再进行最后的整机调试这样一个调试的思路。

5.3.2调试超声波模块

超声波模块一共有四个脚,一个是VCC,一个是GND,还有两个分别是超声波的发射和接收引脚。连接电路时候只需引出四根插线,分别连接到89S52的对应引脚,烧制好

基于行为设计的移动机器人设计与实现

测试程序,测试结果图如5.2.2。本设计四根插线分别连接到VCC,GND,还有发射和接收引脚分别为:P3.0和P3.2。

5.3.3电机调试

在电机驱动板上。有EA,I1,I2,EB,I3,I4六个端子用于控制电机。EA,EB为两路电机的控制使能,通过PWM可以控制电机转速,高电平有效。我们完成程序的编译通电之后,小车发生了不停地旋转的现象,我们观察到小车在感应障碍物方面并没有问题。问题出现在左侧轮前转,而右侧轮后转。所以我们将控制右侧车轮的电机的接线进行修改,这个问题便得以解决。

图5.1电机驱动板的引脚及其功能

5.4 心得体会

通过这次的项目实训,我学习到了很多的电子知识,提高了我对于陌生硬件的学习能力。超声波传感器在此之前我没有接触过,对我来说非常的陌生,从一无所知慢慢查资料到能够熟练应用,让我知道了面对新的硬件应该怎么学习,在以后的工作学习中,我一定会遇到非常多的不熟悉的硬件,我相信,通过不断地锻炼积累,学习能力会进一步提高。这次实训同时还加强了我实践动手能力,特别培养了出现问题、分析问题、解决问题的能力,我相信这些能力的提高对我以后在从事任何工作都将会有极大的帮助。

这次的项目实训让我感触最深的是:作为电子爱好者,电子制作中不管遇到什么问题和困境都要有一颗平静的心和坚持不懈的精神,一颗浮躁的心是不会到达成功的彼岸。这次课程设计,给我更多的是一种模块化的思想,将系统按我们所需的功能和系统所能提供的功能进行模块化的分类,将会使我们的工作变得一目了然,非常清晰。比如说这次我选的避障小车,可以分成超声波测速模块,电机驱动模块,单片机核心模块三个,首都师范大学本科毕业设计论文

三个部分各司其职,无论从硬件上还是软件上,都能够比较清晰地将他们的功能区分开,从而有利于硬件的连接和程序的编写。

从以后工作来看,这种模块化处理问题的方式将会更加的有用,在公司和以后得科研项目中,系统一定是越来越复杂,不可能一个人完成所有的任务,一定是一个团队来做这些系统的设计,所以模块化之后,能够将任务分配给每个人,最后大家还能够很好的综合到一起,大大的缩短了开发周期。这次的毕设实践学习让我受益匪浅。

基于行为设计的移动机器人设计与实现

第六章 设想与展望

随着科技的迅猛发展,智能已经成为了现在的高科技的热词,智能机器人可以解决无数人类无法或者是很难解决的难题。本智能小车系统最诱人的前景就是可用于未来的智能汽车上了,当驾驶员因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用。如果汽车偏离车道或距障碍物小于安全距离时,汽车就会发出警报,提醒驾驶员注意,如果驾驶员没有及时作出反应,汽车就会自动减速或停靠于路边,这样就大大增大了驾车的安全系数,想的再长远一点,这个避障功能可以作为无人驾驶机动的一个基本功能。无人驾驶的机动车行驶在路上,拥有定位和导航的功能后就可以将人或物品送到我们所需要送到的位置。这样智能机器人的应用,就大大的减少了人力和物力,并且方便了更多不会驾驶机动车的市民。

这样的避障小车还可以用于月球探测等的无人探月车,帮助我们传达月球上更多的信息,让我们更加的了解月球,为将来登月做好充分准备。这样的小车在科学考察探测车上也有广阔的应用前景,在科学考察中,有很多危险且人们无法涉足的地方,这时,智能科学考察车就能够派上用场,在它上面装上摄像机,代替人们进行许多无法进行的工作。智能车的应用减少了人们的工作危险系数,解决了恶劣环境下勘探的需求,实现了即是没有人操作应用机器也能很好的完成工作,这项研发可谓是一举多得。

在未来的社会中智能也是大势所趋,而智能车作为智能机器人中一类必不可少的组成部分。最近几年发展更是迅速,各个国家更是投入大量资金。它广泛涉及人工智能、计算机视觉、自动控制、精密仪器、传感和信息等一系列学科的创新研究,其研究成果可广泛应用于工业、农业、医药、军事、航空、信息技术等实际领域,智能机器人的发展水平可反映出一个国家的高科技水平和综合国力,是国家综合国力强大的标志,也是人类文明进步的标志。在我们未来的工作与生活中,会越来越多的需要机器人代替人力来工作和完成一些难度较大或较为费力的任务,对这些实用的机器人的需求也会越来越大。因此,机器人研发的前景是不可估量的。

首都师范大学本科毕业设计论文

参考文献

[1] 袁新娜,与红英编着.超声波传感器在智能小车避障系统中的应用.[A]中北大学(2009)08-0085-04 [2] 邵贝贝.单片机嵌入式应用的在线开发方法[M].北京.清华大学出社.2004 [3] 王晓明.电动机的单片机控制[M].北京.北京航空航天大学出版社.2002 [4] 臧杰,阎岩.汽车构造[M].北京.机械工业出版社.2005 哈尔滨工业大学课程设计说明书

[5] 安鹏,马伟.S12单片机模块应用及程序调试[J].电子产品世界.2006.第211期. 162-163 [6] 童诗白,华成英.模拟电子技术基础[M].北京.高等教育出版社.2000 [7] 沈长生.常用电子元器件使用一读通[M].北京.人民邮电出版社.2004 [8] 宗光华.机器人的创意设计与实践[M].北京.北京航空航天大学出社.2004 [9] 张伟等.Protel DXP高级应用[M].北京.人民邮电出版社.2002 [10] 张文春.汽车理论[M].北京.机械工业出版社.2005 [11] 江海波,王卓然,耿德根编着.深入浅出AVR单片机.中国电力出版社,2008.31

基于行为设计的移动机器人设计与实现

致谢

历时三个月的毕业设计已经告一段落。在我和我组成员张硕的共同努力下,本避障小车的任务已经基本完成。在这段时间里,非常感谢在遇到困难时我的同学们所给予的支持和鼓励,给我提供专业的意见和建议。还有和我同组的同学张硕,我们共同查阅资料,克服许多在选择小车部件、小车搭建和编程上的种种困难。也正是这次毕业设计使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学四年的学习成果。我更明白了团队合作的重要性。两个人不仅有两个大脑和更多的主意和知识,最重要的事能够在遇到困难时可以相互鼓励学习,互相分担。也正是这种团结合作的精神促使了我们这次毕设任务的圆满成功。

这三个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。也非常感谢指导老师徐老师的支持和指导,每次我给徐老师发邮件她都会认真的给我批改,指出我的不足。也正是因为在老师的指导下我的论文进行不断的改正,才有机会变得越来越好。

由于自身水平有限,设计中一定存在很多不足之处。虽然这次的毕业设计对于知识的运用和衔接还不够熟练,但是我将在以后的工作和学习中继续努力、不断完善。敬请各位老师批评指正。

首都师范大学本科毕业设计论文

附录

超声波智能避障车程序(ARDUINO)

L = 左 R = 右 F = 前 B = 后 */ #include int pinLB=6;// 定义6脚位左后 int pinLF=9;// 定义9脚位左前

int pinRB=10;// 定义10脚位右后 int pinRF=11;// 定义11脚位右前

int inputPin = A0;// 定义超音波信号接收脚位 int outputPin =A1;// 定义超音波信号发射脚位

int Fspeedd = 0;// 前速 int Rspeedd = 0;// 右速 int Lspeedd = 0;// 左速

int directionn = 0;// 前=8 后=2 左=4 右=6 Servo myservo;// 设 myservo int delay_time = 250;// 伺服马达转向后的稳定时间

int Fgo = 8;// 前进 int Rgo = 6;// 右转 int Lgo = 4;// 左转 int Bgo = 2;// 倒车

基于行为设计的移动机器人设计与实现

void setup(){ Serial.begin(9600);// 定义马达输出脚位 pinMode(pinLB,OUTPUT);// 脚位 8(PWM)pinMode(pinLF,OUTPUT);// 脚位 9(PWM)pinMode(pinRB,OUTPUT);// 脚位 10(PWM)pinMode(pinRF,OUTPUT);// 脚位 11(PWM)

pinMode(inputPin, INPUT);// 定义超音波输入脚位 pinMode(outputPin, OUTPUT);// 定义超音波输出脚位

myservo.attach(5);// 定义伺服马达输出第5脚位(PWM)} void advance(int a)// 前进 { digitalWrite(pinRB,LOW);// 使马达(右后)动作 digitalWrite(pinRF,HIGH);digitalWrite(pinLB,LOW);// 使马达(左后)动作 digitalWrite(pinLF,HIGH);delay(a * 100);}(电机前进函数)

void right(int b)//右转(单轮){ digitalWrite(pinRB,LOW);//使马达(右后)动作右后方的引脚的低电频 digitalWrite(pinRF,HIGH);右前引脚高电频 digitalWrite(pinLB,HIGH);digitalWrite(pinLF,HIGH);delay(b * 100);}

首都师范大学本科毕业设计论文

void left(int c)//左转(单轮){ digitalWrite(pinRB,HIGH);digitalWrite(pinRF,HIGH);digitalWrite(pinLB,LOW);//使马达(左后)动作 digitalWrite(pinLF,HIGH);delay(c * 100);}(high高频是向前 low低频向后)void turnR(int d)//右转(双轮){ digitalWrite(pinRB,LOW);//使马达(右后)动作 digitalWrite(pinRF,HIGH);digitalWrite(pinLB,HIGH);digitalWrite(pinLF,LOW);//使马达(左前)动作 delay(d * 100);} void turnL(int e)//左转(双轮){ digitalWrite(pinRB,HIGH);digitalWrite(pinRF,LOW);//使马达(右前)动作 digitalWrite(pinLB,LOW);//使马达(左后)动作 digitalWrite(pinLF,HIGH);delay(e * 100);} void stopp(int f)//停止 { digitalWrite(pinRB,HIGH);digitalWrite(pinRF,HIGH);digitalWrite(pinLB,HIGH);digitalWrite(pinLF,HIGH);

基于行为设计的移动机器人设计与实现

delay(f * 100);} void back(int g)//后退 {

digitalWrite(pinRB,HIGH);//使马达(右后)动作 digitalWrite(pinRF,LOW);digitalWrite(pinLB,HIGH);//使马达(左后)动作 digitalWrite(pinLF,LOW);delay(g * 100);}

void detection()//测量3个角度(0.90.179){ intdelay_time = 250;// 伺服马达转向后的稳定时间 ask_pin_F();// 读取前方距离

if(Fspeedd< 10)// 假如前方距离小于10公分 { stopp(1);// 清除输出资料 back(2);// 后退 0.2秒 }

if(Fspeedd< 25)// 假如前方距离小于25公分 { stopp(1);// 清除输出资料 ask_pin_L();// 读取左方距离

delay(delay_time);// 等待伺服马达稳定 ask_pin_R();// 读取右方距离

delay(delay_time);// 等待伺服马达稳定

首都师范大学本科毕业设计论文

if(Lspeedd>Rspeedd)//假如左边距离大于右边距离 { directionn = Rgo;//向右走 }

if(Lspeedd<= Rspeedd)//假如左边距离小于或等于右边距离 { directionn = Lgo;//向左走 }

if(Lspeedd< 10 &&Rspeedd< 10)//假如左边距离和右边距离皆小于10公分 { directionn = Bgo;//向后走 } } else //加如前方不小于(大于)25公分 { directionn = Fgo;//向前走 } } void ask_pin_F()// 量出前方距离 { myservo.write(90);digitalWrite(outputPin, LOW);// 让超声波发射低电压2μs delayMicroseconds(2);digitalWrite(outputPin, HIGH);// 让超声波发射高电压10μs,这里至少是10μs delayMicroseconds(10);digitalWrite(outputPin, LOW);// 维持超声波发射低电压

基于行为设计的移动机器人设计与实现

float Fdistance = pulseIn(inputPin, HIGH);// 读差相差时间

Fdistance= Fdistance/5.8/10;// 将时间转为距离距离(单位:公分)Serial.print(“F distance:”);//输出距离(单位:公分)Serial.println(Fdistance);//显示距离

Fspeedd = Fdistance;// 将距离读入Fspeedd(前速)} void ask_pin_L()// 量出左边距离 { myservo.write(5);delay(delay_time);digitalWrite(outputPin, LOW);// 让超声波发射低电压2μs delayMicroseconds(2);digitalWrite(outputPin, HIGH);// 让超声波发射高电压10μs,这里至少是10μs delayMicroseconds(10);digitalWrite(outputPin, LOW);// 维持超声波发射低电压 float Ldistance = pulseIn(inputPin, HIGH);// 读差相差时间

Ldistance= Ldistance/5.8/10;// 将时间转为距离距离(单位:公分)Serial.print(“L distance:”);//输出距离(单位:公分)Serial.println(Ldistance);//显示距离

Lspeedd = Ldistance;// 将距离读入Lspeedd(左速)} void ask_pin_R()// 量出右边距离 { myservo.write(177);delay(delay_time);digitalWrite(outputPin, LOW);// 让超声波发射低电压2μs delayMicroseconds(2);digitalWrite(outputPin, HIGH);// 让超声波发射高电压10μs,这里至少是10μs delayMicroseconds(10);digitalWrite(outputPin, LOW);// 维持超声波发射低电压

首都师范大学本科毕业设计论文

float Rdistance = pulseIn(inputPin, HIGH);// 读差相差时间

Rdistance= Rdistance/5.8/10;// 将时间转为距离距离(单位:公分)Serial.print(“R distance:”);//输出距离(单位:公分)Serial.println(Rdistance);//显示距离

Rspeedd = Rdistance;// 将距离读入Rspeedd(右速)}

void loop(){ myservo.write(90);//让伺服马达回归预备位置准备下一次的测量 detection();//测量角度并且判断要往哪一方向移动

if(、n == 2)//假如directionn(方向)= 2(倒车){ back(8);// 倒退(车)turnL(2);//些微向左方移动(防止卡在死巷里)Serial.print(“ Reverse ”);//显示方向(倒退)} if(directionn == 6)//假如directionn(方向)= 6(右转){ back(1);turnR(6);// 右转

Serial.print(“ Right ”);//显示方向(左转)} if(directionn == 4)//假如directionn(方向)= 4(左转){ back(1);turnL(6);// 左转

Serial.print(“ Left ”);//显示方向(右转)}

基于行为设计的移动机器人设计与实现

if(directionn == 8)//假如directionn(方向)= 8(前进){ advance(1);// 正常前进 Serial.print(“ Advance ”);//显示方向(前进)Serial.print(“ ”);}

首都师范大学本科毕业设计论文

下载CVM避障算法 翻译word格式文档
下载CVM避障算法 翻译.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    智能避障小车试验报告与总结[合集五篇]

    智能避障小车试验报告与总结专业班级:12自动化-3 姓 名:李昆伦 学 号:1216306058 随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要......

    机器人算法外文翻译

    Improved Genetic Algorithm and Its Performance Analysis Abstract: Although genetic algorithm has become very famous with its global searching, parallel computi......

    学习移动机器人智能避障测距系统的报告

    学习移动机器人智能避障测距系统的报告 【摘要】本文主要是以学习移动机器人智能避障测距系统为主,阐述学习过程中的心得体会。测距系统的应用场合非常的多,比如测距雷达、测......

    孟蜀避唐讳的原文及翻译(大全)

    搜神后记·卷四·孟蜀避唐讳原文及翻译卷四·孟蜀避唐讳作者:洪迈蜀本石《九经》皆孟昶时所刻,其书“渊、世民”三字皆缺画,盖为唐高祖、太宗讳也。昶父知祥,尝为庄宗、明宗臣,然......

    (毕业论文)智能超声波避障小车的设计与制作(可编辑)(共5则)

    (毕业论文)智能超声波避障小车的设计与制作 江阴职业技术学院 项目设计报告 项目超声波避障小车的设计与制作 专 业 学生姓名 班 级 学 号 指导教师 完成日期 摘 要 智能小......

    毕业论文翻译(无线局域网接收器的高效自动增益控制算法和结构)(范文大全)

    无线局域网接收器的高效自动增益控制算法和结构 Il-Gu Lee *, Sok-Kyu Lee 下一代无线局域网研究团队,电子和电信研究院,柯亭161栋,顾儒城区,大田305700,大韩民国 2006年2月23日......

    韦贯之,名纯,避宪宗讳 阅读答案附翻译

    韦贯之,名纯,避宪宗讳,遂以字行。少举进士。德宗末年,人有以贯之名荐于京兆尹李实者,实举笏示所记曰:此其姓名也,与我同里,素闻其贤,愿识之而进于上。说者喜,骤以其语告于贯之,且曰:子......