历史上的今天
今天是:2025年07月24日(星期四)
2018年07月24日 | 如何解决机器人“避障”的问题
2018-07-24 来源:网络整理
随着机器人开始进入到工厂、仓库、酒店、商场、餐厅等环境中应用,我们对机器人的移动能力越来越重视,以至于“避障”是我们绕不开的话题。
避障与SLAM是既有联系又有区别的两个不同功能,虽然SLAM在建图过程中,已经通过一种或多种进行了周边环境的障碍物检测,但是受限于目前主流SLAM技术的不成熟,避障问题无法得到很好的解决。
市面上常见的机器人大部分都是采用二维导航,但是二维雷达在实际应用中仍有缺点。
如图,二维激光雷达是360度水平视场角的距离,其量程范围内的多数障碍物都能因为对激光的反射而被测量到,但是激光雷达只能检测到A和C物体的存在,无法检测雷达扫描平面下的B物体,而如果A和C物体上下形状不一,则机器人无法根据雷达扫描测量障碍物距离的数据,实现准确避障。
所以在实际应用中,散落在地上的物体、凸起的台阶、桌子和椅子等都会对激光雷达避障形成挑战。
如果我们把这种需要考虑物体上下完整轮廓的障碍物检测称为“立体避障”。
在一些复杂的场所,二维激光雷达无法胜任立体避障的工作,必须要为机器人配备其它的传感器作为补充。
比如:超声波传感器,它的成本非常低,实施简单,可识别透明物体,缺点是检测距离近,三维轮廓识别精度不好,所以对桌腿等复杂轮廓的物体识别不好,但是它可以识别玻璃、镜面等物体。
还有深度相机,它具备三维的距离测量能力(同时具备水平和垂直视场角),因此,可以直接检测到立体的障碍物,为移动机器人提供三维的保护能力。
所以在高配的移动机器人中,可以采用激光雷达来实现SLAM,用深度相机来实现立体避障,再用超声波来防护激光雷达和深度相机的检测盲点,这三种传感器成为许多高端移动机器人的常见组合配置。
上海图漾信息科技有限公司(简称:上海图漾)副总经理徐韬说:“多数深度相机的垂直视场角在60度以下,平视安装的话对正面的立体避障物检测较好,但是对近距离处的低矮障碍物会存在较大的盲区。”
“如图,这种情况,一种方法是降低安装高度,另外一种方案是采用俯视的安装角度,但是这样都会造成对障碍物高度检测的缺失。”
因此,在实际使用中需要仔细考虑和设计相机的安装方式,如果对上下立体障碍物检测的要求都比较高的话,可以采用平视+俯视两套深度相机的方案进行组合。
以下是上海图漾提供的比较重要的深度相机规格参数供行业人士参考:
所有的相机都有其最短和最远的工作距离,典型的深度相机工作范围有0.3-3m(近距离版本)或0.5-5m(中距离版本),在最短距离内深度相机会完全看不到物体,这对机器人贴身处的防护可能会形成威胁,需要仔细考虑。
另外,分辨率越高,对物体的轮廓辨识度越好,但是成本和计算量代价也会更大,对于单纯避障而言,其实对物体轮廓的细节识别度要求不高,分辨率可以不高,比如480p等级即可。
最后,在深度相机的检测帧率需求跟机器人的移动速度相关,通常普通的商用或家用机器人移动速度并不快,多在1m/s左右,30fps的帧率,在帧延时较低的情况下,已经可以满足要求。
史海拾趣
|
触摸屏无响应 字串8 [故障现象] 字串6 一台触摸屏不能工作,触摸任何部位都无响应。 字串5 [故障分析处理] 字串8 首先检查各接线接口是否出现松动,然后检查串口及中断号是否有冲突,若有冲突,应调整资源,避开冲突。再检查 ...… 查看全部问答> |
|
说明一下,我学习verilogFPGAD的时间不是很长,曾经试着写过像数字频率计,数字时钟之类的程序,并且在FPGA上面运行成功。有人告诉我用fpga干那些单片机可以实现的东西没有必要,而且没有意义,比如说显示(数码管,lcd,。vga不知道算不算),按键 ...… 查看全部问答> |
|
【申请加精】ARM 2009 Technical Symposium照片 图大杀猫。。。 首先先说一句:我这里有当时的全部PPT资料,如果有人想要,可以站内联系我,或者邮箱jikai#eeworld.com.cn 废话不说,还是给大家上图。 门口展览的两家公司大牌子,包括Dell的Z600上网本,其中用到了Montavista操作系统、TI的OMAP处理器以及采 ...… 查看全部问答> |
|
近些年来,随着电子元器件价格的不断降低和数字信号处理器(Digital Signal Processor,DSP)性能的不断提升,以DSP为核心的嵌入式实时图像处理技术在目标跟踪、机器人导航、辅助驾驶、智能交通监控等领域获得了越来越广泛的应用。由于图像的实时处理 ...… 查看全部问答> |
|
我自己改了一个helloWDM的驱动,用ddk编译时产生如下错误: errors in directory d:\\我的文档\\桌面\\我编写的驱动测试程序\\hello c:\\winddk\\6801.0\\bin\\makefile.new(10095) : error U1052: file \'.\\makefile.errors in directory d:\\ ...… 查看全部问答> |
|
WinCE 6.0 在调试DLL中的函数时传入的char*类型的参数,看到的值是空的,但函数的执行结果却是正确的 dll 头文件 Function.h class _declspec(dllexport)CFunction : public CObject { public: CFunction(); virtual ~CFunction(); int Add(i ...… 查看全部问答> |
|
目前我在单板MPC8247上调试BOOTROM阶段代码。通过点灯的手段发现代码已经走到bootConfig.c中的usrRoot()函数的最后了,但是在此处使用printf()还是不能进行串口的打印操作。 因为同样工程初始化代码编译生成vxworks映像被引导启动后却可以正常 ...… 查看全部问答> |
|
最近想做点东西,由于模块有点多,所以想用总线通信。但在IIC和CAN总线的选取上,由于自身对两种总线了解不够深,在此希望各位高手能指点一下。634796840是我QQ,可以留言也可以QQ联系,谢谢啦!… 查看全部问答> |




