历史上的今天
今天是:2025年02月19日(星期三)
2021年02月19日 | 移动机器人3种常见视觉算法
2021-02-19 来源:OFweek机器人网
算法一:深度信息提取
其原理是使用两个平行的相机,对空间中的每个点三角定位。通过匹配左右两个相机中成像点的位置,来计算对应三维点在空间中的距离。
机器人想要通过若干幅图像来获取目标的三维坐标,双目视觉技术中更为重要的工作是对图像执行匹配,首先明确物体在左右图像的相互匹配的点,然后获得每一点视差以及深度信息。
双目立体视觉有设备简单且价格低廉,精度高且速度快,无需接触物体即可计算距离和深度信息等优点,其在无人机电力线巡检以及工业建筑机器人中都有重要的应用。
算法二:定位导航
机器人导航是一个比较复杂的系统,涉及技术如下:
· 视觉里程计VO;
· 建图,利用VO和深度图;
· 重定位,从已知地图中识别当前的位置;
· 闭环检测,消除VO的闭环误差;
· 全局导航;
· 视觉避障;
· Scene tagging,识别房间中物体加上tag。
简单说来就是对机器人周边的环境进行光学处理,先用摄像头进行图像信息采集,将采集的信息进行压缩,然后将它反馈到一个由神经网络和统计学方法构成的学习子系统,再由学习子系统将采集到的图像信息和机器人的实际位置联系起来,完成机器人的自主导航定位功能。
这种被称为SLAM (Simultaneous Localization And Mapping)的方法,是移动机器人智能水平的最好体现,是否具备同步建图与定位的能力被普遍认为是机器人能否实现自主的关键前提条件。
目前常用的SLAM技术主要分为两类,一类是基于视觉传感器的VSLAM,另一类是基于激光传感器的激光SLAM。
视觉SLAM专指利用摄像机、Kinect等深度像机来做室内导航和探索;到目前为止,室内的视觉SLAM仍处于研究阶段,远未到实际应用的程度;而激光SLAM技术已较为成熟,也是目前最稳定、可靠的高性能SLAM方式。
算法三:避障
导航解决的问题是引导机器人接近目标。当机器人没有地图的时候,接近目标的方法称为视觉避障技术。避障算法解决的问题是根据视觉传感器的数据,对静态障碍物、动态障碍物实现躲避,但仍维持向目标方向运动,实时自主导航。
避障算法有很多,传统的导航避障方法如可视图法、栅格法、自由空间法等算法对障碍物信息己知时的避障问题处理尚可,但当障碍信息未知或者障碍是可移动的时候,传统的导航方法一般不能很好的解决避障问题或者根本不能避障。
而实际生活中,绝大多数的情况下,机器人所处的环境都是动态的、可变的、未知的,为了解决上述问题,人们引入了计算机和人工智能等领域的一些算法。
同时得益于处理器计算能力的提高及传感器技术的发展,在移动机器人的平台上进行一些复杂算法的运算也变得轻松,由此产生了一系列智能避障方法,比较热门的有:遗传算法、神经网络算法、模糊算法等。
下一篇:优傲机器人新总裁确认,来自施耐德
史海拾趣
|
从CD/DVD播放器和电脑制冷风扇到工业机械以及包含混合动力汽车、著名的Segway电动滑板车和许多其他电动滑板车、电力驱动的自行车(或称为“电动自行车”)在内的电动交通工具,无刷直流电动机正在各种领域中取代整流式电动机。由于它们越来越普及, ...… 查看全部问答> |
|
$(\'swf_U8t\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/30388392/v.swf\'), ...… 查看全部问答> |
|
在写一个模块时,发现一个函数的参数是一个结构体A。结构体A中有很多成员,包括结构体B,C,D,枚举成员E,F,整形G.而结构体B,C,D又包含一些结构体.请问,现在想给结构体A初始化,应该怎么写?有没有类似memset之类的函数,可以不必考虑那么多. ...… 查看全部问答> |
|
大家好! 小弟最近在搞wince5.0的battary驱动,利用DS2786来检测电池状态,现在我不用该芯片来检测,直接就在BatteryPDDInitialize()里用 sps.ACLineStatus = AC_LI ...… 查看全部问答> |
|
以前做好的一个VISTA的NDIS filter,现在编译出来用osrloader总是加载不起来。错误原因就是“连到系统上的设备没有发挥作用”。试了下把WDK6000自带的filter编译出来也是同样的结果,应该不是代码的问题。出现这个的原因是什么呢… 查看全部问答> |
|
【学习Sitara™ AM335x】- Beaglebone环境的搭建方法 Basic Requirements ARM Cross CompilerUbuntu (11.04 (Natty Narwhal) minimum): sudo apt-get install gcc-arm-linux-gnueabiLinaro: https://launchpad.net/linaro-toolchain-binaries复制代码BootloaderDas U-Boot – the Universal Boot Load ...… 查看全部问答> |




