菜单
  

    第三种方法是先让让机器人后退一段距离,再旋转一定的角度,最后再向前走。后退一段距离是为了更加安全地离开障碍物,不过后退的距离不能太大,尤其是当机器人后部没有安装传感器时,后退太多有可能让机器人后部碰到物体。旋转角度的选择问题跟第二种一样,靠经验设定,并根据实际情况调整。
    我们经常采用的是第二种方法,比较简单,容易实现,避障效果也较好。

    传感与通信模块的程序流程图如图7所示。
    图7程序流程图

        运动控制模块的程序流程图如图8所示。
        图8  程序流程图
    红外测距程序
    while(1)
        {
            //读四次A/D取均值
            temp= AD_Val(0);    //读转换结果
            for(i=0;i<50000;i++);   //延时
               temp+= AD_Val(0);    //读转换结果
            for(i=0;i<50000;i++);   //延时
            temp+= AD_Val(0);    //读转换结果
            for(i=0;i<50000;i++);   //延时
            temp+= AD_Val(0);    //读转换结果
            temp=temp/4;    //4次结果取均值
            if((temp >=163)&&( temp <=984))// 0.4V(对应2.5V基准电压10位A/D转换结果为163)到2.4V(对应2.5V基准电压10位A/D转换结果为984)之间为有效范围
            {
              data[0]= (13840/( temp +7))-4;//距离计算
              CAN_Send(CAN2,2,1,0,0,0,data,0);//发送测量结果到运动模块,CAN发送的ID设置为2,帧格式为标准帧,数据长度为1字节
            }
            for(i=0;i<20000;i++);   //延时
        }
        return 0;
    }
    6结论
        这次设计的算法能解决基本的避障问题,对于障碍物在红外的探头能检测到的范围内,对于红外检测不到的地方,比如障碍物的高度太高或者太低或者太宽,小车是不能顺利避障的。若小车在前进过程中遇到很多障碍,一般的障碍,可以通过这种方法避障,特殊情况下,小车就要先后退,在左转90度与障碍物,再前进,当然,这种情况就比较特殊了,所以没有放到程序里。
  1. 上一篇:MATLAB基于直接转矩的异步电机调速系统仿真
  2. 下一篇:基于DSP的异步电动机直接转矩控制系统设计
  1. MATLAB排爆机器人移动平台控制系统的设计

  2. 机器人系统研发项目管理系统设计

  3. 机器人网络聚集问题研究

  4. ATmega64-16AC单片机数控机床移动平台位置控制

  5. matlab移动传感器网络的持续覆盖研究

  6. matlab势函数的移动无线传...

  7. DSP+FPGA自动机器人控制系统设计与实现

  8. 十二层带中心支撑钢结构...

  9. java+mysql车辆管理系统的设计+源代码

  10. 当代大学生慈善意识研究+文献综述

  11. 河岸冲刷和泥沙淤积的监测国内外研究现状

  12. 大众媒体对公共政策制定的影响

  13. 酸性水汽提装置总汽提塔设计+CAD图纸

  14. 中考体育项目与体育教学合理结合的研究

  15. 乳业同业并购式全产业链...

  16. 电站锅炉暖风器设计任务书

  17. 杂拟谷盗体内共生菌沃尔...

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回