MDCS纹理导航的AGV的混合调度系统

初识MDCS

MDCS纹理导航的AGV的混合调度系统
MDCS架构图

MDCS(Medulla,Detour,Clumsy,Simple)是一套完整的AGV(Automated Guided Vehicle)小车自动驾驶算法与控制架构,它由以下4个软件组成:

  • Medulla:硬件适配软件,提供通信抽象,通过插件对接各类硬件;
  • Detour:定位软件,包含成熟的SLAM导航、二维码导航、地面纹理导航算法,通过调整参数即可进行部署,得到车体运行环境和车的位姿;
  • Clumsy:自动驾驶软件,定义AGV的运动模型抽象形式,如差速轮、单舵轮、万向轮等;定义可用动作,如前进行走、后退行走、自动检测并行驶至工位或托盘等;
  • Simple:AGV调度软件,完备的静态路线调度系统,全自动交管,并支持动态路线、包络等功能。

Medulla、Detour和Clumsy为车载程序,支持Windows/Linux;RCS调度系统外壳SimpleComposer主要支持Windows部署,Linux下需要用安装mono等环境。

需要注意:在Windows上Medulla、Detour、Clumsy、Simple均需以管理员权限运行;在Linux上,Medulla、Detour、Clumsy均需以root运行。本cookbook中所有操作均默认以Windows管理员或Linux root用户进行。

Windows下的使用方法

目录结构和环境配置

车载:

/MDCS
    /Medulla
        /plugins        #各个插件都应放到这里
            CartActivator.dll       #车体开发库
            LidarController.dll     #雷达驱动
            LessokajiDemo_m.dll     # *这个是针对小车的硬件控制程序,开发这个插件
        Medulla.exe     #硬件控制核心程序
        NetRemote.exe   #遥控程序,也可以放到任意电脑上远程控制
        startup.iocmd   #Medulla的启动脚本
    /Detour
        Detour.exe      #定位核心程序
        detour.json     #定位程序的配置文件
        mainmap.2dlm    #地图文件,2dlm为激光SLAM地图,也可以有其它地图,如mainmap.groundtex为地纹理地图等
    /Clumsy
        ClumsyConsole.exe       #运动控制核心程序
        LessokajiDemo_c.dll     # *这个是针对小车的动作控制程序,开发这个插件
        clumsy.json             #参数等配置文件

调度服务器:

/Simple
    /plugins            #针对场景的插件应放到这里
        LessokajiDemo_Scene.dll
    SimpleComposer.exe  #核心程序
    scene.json          #站点路径等

在上述文件目录结构中,MDCS文件夹包括了部署在车端的3个软件,Simple一般部署于场景中另外一台与所有小车在同一局域网内的调度电脑或服务器上,故单独放在Simple/文件夹中进行说明。

在Windows系统下,无需安装额外的运行时环境。

Medulla开发

双击MDCS/Medulla/Medulla.exe即可启动。

插件加载器

Medulla本质上是一个插件加载器。通常来说,车体会作为单独的一个插件进行加载,车上的各个传感器分别作为插件进行加载。每一个插件为一个DLL(动态链接库),规定所有的DLL均放在Medulla/plugins/中。

Medulla本身使用类似命令行的方式,在运行时构建各插件的对象。一般来说,将Medulla需要运行的命令写在文本文件startup.iocmd中,Medulla在启动时将自动加载运行该脚本并调用相关的插件。示例如下:

// CartActivator.dll为车体插件的加载器
loader = io load plugins\CartActivator.dll

// 下面这一步是可选的,对插件中支持的一些初始化参数进行赋值,这里以给最大速度MaxSpeed赋值为例。这一步必须放在车体插件被加载之前进行
loader setp MaxSpeed 3000

// 用该加载器实例loader加载车体插件ProjName_m.dll,得到车体类实例cart
cart = loader load plugins\ProjName_m.dll

// 使用WLR716Lidar.dll插件实例化万集716雷达作为导航雷达frontlidar3d
frontlidar = io load plugins\WLR716Lidar.dll
// 调用插件的start方法,在IP地址192.168.137.180进行连接
frontlidar start 192.168.137.180

// 加载WinMedulla.dll插件并调用Show方法,显示Medulla的用户界面
ui = io load plugins\WinMedulla.dll
ui Show

Medulla启动之后,在Medulla的用户界面中,选择“命令执行”标签页,即可在运行时输入新的指令。所有的单线激光雷达有一组通用的操作命令,示例中的start为通用的启动命令。其余通用命令详见附录A。

需要注意:雷达倒置安装时,需要设置镜像:frontlidar setMirror true

用户界面

在startup.iocmd中加载WinMedulla.dll插件并使用Show方法后,Medulla的用户界面如上图所示。区域1中显示所有已加载的插件的实例化对象。选择某一对象后,区域2中将显示其属性和相应的值。区域3中为当前选择对象支持的功能,例如:cart对象的remote按钮会调出Medulla自带的简易遥控器;单线雷达对象的view按钮会调出雷达点云的可视化页面。

MDCS纹理导航的AGV的混合调度系统


2.2.3 遥控器

Windows下Medulla常用2种形式的遥控器。

需要注意:各种遥控器与自动驾驶(Clumsy)对车体信号的控制有优先级顺序:简易遥控器优先级为0,http连接的遥控器(包括NetRemote.exe和3.X中提到的Web页面遥控器)优先级为1,蓝牙遥控器优先级为2,Clumsy自动驾驶优先级为4。优先级数字越小,代表优先程度越高,高优先级的控制方式将屏蔽低优先级的控制方式。例如开启遥控器时,Clumsy下发的命令无效。

第一种是Medulla内置的简易遥控器,通过cart对象的remote按钮可直接打开该遥控器。该简易遥控器勾选后有效。使用时自动绑定键盘↑、↓、←、→控制车体前后左右移动。下方速度滑钮控制速度大小。


第二种是NetRemote.exe遥控器应用程序。如下图所示。在左上方输入小车IP后,点击“确认”进行连接。“点击激活遥控”选中后遥控器生效。默认加载同目录下remoteconf.json配置文件。当没有配置文件时,打开NetRemote.exe会使用默认布局,点击“编辑”后可对小组件进行编辑:鼠标左键按住拖动位置;右键可修改名称、删除组件或设定键位绑定;点击“插入”可增加新的组件;点击“保存” 会覆盖掉同目录下的配置文件。绑定名称见4使用规则和约定。


第三种是网页访问的遥控器。如下图所示。目前该遥控器只能通过Clumsy的页面跳转进行访问。具体访问方法见2.3。使用时需将遥控器配置文件放在Medulla/htdocs/remoteconf.json。界面操作方法与NetRemote.exe相同。

第四种是在安卓设备上安装NetRemote.apk。可通过WiFi或蓝牙连接小车进行遥控。操作界面操作方法与NetRemote.exe相同。

需要注意:遥控器对车体控制具有最高优先级的控制权限。开启遥控器时,Clumsy下发的自动驾驶控制信号将被屏蔽。


可以选择Medulla UI上的cart组件,查看currentPriority判断目前遥控器控制来源:

  • currentPriority==-1表示无控制。
  • currentPriority==0表示Clumsy自动驾驶控制。
  • currentPriority==1表示Medulla内置简易遥控器控制。
  • currentPriority==2表示Web遥控器或NetRemote。
  • currentPriority==3表示蓝牙遥控器。
  • currentPriority==4表示特殊种类遥控器,如实体遥控器(若有)。

currentPriority数值越大的选项表示优先级越高,即,如果数值更大的控制源存在,其他控制源将被Medulla屏蔽。

Detour简介

跳到导航跳到搜索

目录

1. 什么是Detour

Detour是AMR(移动机器人)的定位系统,它集成了激光SLAM、地纹SLAM、天花板SLAM、二维码定位等多种定位技术。通过这些技术,Detour能够实现高精度、实时的定位和导航功能,适用于各种复杂环境。

MDCS纹理导航的AGV的混合调度系统

图 1-1 Detour的用户界面

2. Detour特性简介

2.1 激光SLAM

激光SLAM是Detour的核心特性之一。它利用激光雷达扫描周围环境,构建精确的地图,并通过实时匹配实现机器人的定位。激光SLAM支持2D/3D激光雷达,在室内/室外环境中表现出色,尤其适用于大型仓库、工厂、室外等场景。

MDCS纹理导航的AGV的混合调度系统

2.2 地纹SLAM

地纹SLAM利用地面上的纹理信息进行定位。它适用于地面纹理丰富的场景,如混凝土地面的工厂、仓库、停车场等。地纹SLAM可以在激光SLAM无法正常工作的环境下提供有效的定位信息。

MDCS纹理导航的AGV的混合调度系统

2.3 天花板SLAM

天花板SLAM通过扫描天花板上的特征进行定位。它适用于天花板具有明显特征的环境,如一些特定的工业厂房。天花板SLAM可以在地面和墙面特征不明显的情况下提供辅助定位。

MDCS纹理导航的AGV的混合调度系统

2.4 二维码定位

二维码定位是通过识别地面上的二维码进行定位。它适用于对定位精度要求极高的场景,如自动化仓库。二维码定位可以实现精准的起点和终点定位。

MDCS纹理导航的AGV的混合调度系统

3. 激光SLAM快速上手

接下来介绍Detour的激光SLAM特性,包括其功能和使用方法。激光SLAM是Detour最常用和最强大的定位技术,理解并掌握激光SLAM将有助于更好地部署和使用AMR。

使用手册 – MDCS简介

跳到导航跳到搜索

目录

1. MDCS是什么?

MDCS是移动机器人的全栈实现,应用于工厂生产物流机器人控制,由刘诗聪博士团队开发维护。在介绍MDCS之前,我们用物流车队来比喻工厂物流机器人,以便读者对该领域有个感官认知,然后理解MDCS的功能架构和各子系统功能。本文面向非移动机器人专业的读者,尽可能用非技术语言来说明MDCS。对MDCS开发感兴趣的工程师可阅读《开发指南》,以便深入理解MDCS的实现原理。

1.1 以物流车队比喻现代机器人架构

没有机器人,人类如何运输货物?我们以物流公司的运输车队为例。从运输角度来看,调度、司机和货车在物流车队中各司其职,共同协作完成货物的运输任务。将这个比喻应用到移动机器人技术架构中,我们可以更好地理解机器人三层架构的全局规划、任务执行和行为之间的职责与协作关系。

  1. 调度:在物流车队中,调度负责整体运输任务的规划与分配,确保货物能够按时、按需送达目的地。对应到移动机器人技术架构的全局规划层,调度模块负责机器人的定位、路径规划和任务分配等功能。通过全局规划,机器人能够知道自己在环境中的位置、需要完成的任务以及如何高效地完成这些任务。
  2. 司机:在物流车队中,司机负责驾驶货车将货物从出发地点送达目的地。对应到移动机器人技术架构的任务执行层,驱动模块负责控制机器人的行动,使其能够按照预定的路径移动,并完成各种任务。这可能包括搬运货物、检测障碍物、充电等。
  3. 货车:在物流车队中,货车是运输货物的载体,负责承载货物并将其安全送达目的地。对应到移动机器人技术架构的行为层,传感器和执行器模块负责收集环境中的信息,并将驱动模块的指令转化为实际的动作。例如,传感器可以检测到障碍物或地面的摩擦力,而执行器则可以控制机器人的轮子或臂关节等部件。

在移动机器人技术架构中,全局规划层、任务执行层和行为层之间存在密切的协作关系。全局规划层根据环境信息和任务需求生成路径规划和任务分配策略,任务执行层根据这些策略控制机器人的行动,行为层则负责收集环境信息并执行具体的动作。通过这种协作关系,移动机器人能够高效地完成各种任务,实现与人类驾驶员类似的工作效果。

1.2 MDCS实现了T3架构

移动机器人 T3 架构是一个三层次的机器人系统架构,包括感知层、决策层和执行层。下面是对这三个层次的详细说明:

  1. 感知层:感知层是机器人 T3 架构的第一层,主要负责收集来自环境的各种信息。这一层包括了机器人的传感器,如激光雷达、摄像头、超声波传感器、陀螺仪等。通过这些传感器,机器人可以获取周围环境的三维结构、光照信息、距离信息以及自身在空间中的位置和姿态。感知层的目标是为决策层提供准确、实时的数据,以便机器人能够对环境做出正确的判断和响应。
  2. 决策层:决策层是机器人 T3 架构的第二层,主要负责处理感知层提供的数据,并根据这些数据来制定机器人的行动策略。这一层包括了机器人的导航算法、路径规划算法、障碍物避免算法等。决策层的目标是为执行层提供合适的控制指令,以使机器人能够安全、有效地到达目标地点。
  3. 执行层:执行层是机器人 T3 架构的第三层,主要负责根据决策层提供的控制指令来实现机器人的运动。这一层包括了机器人的驱动器、伺服电机、轮组等。执行层的目标是将决策层提供的控制指令转换为机器人的具体运动,从而实现机器人在空间中的移动。

移动机器人 T3 架构是一个分层的、模块化的系统,通过感知层收集环境信息,决策层处理信息并制定行动策略,执行层实现机器人的具体运动。这种架构使得机器人能够更加高效、灵活地应对复杂的环境,从而实现自主导航和移动。

MDCS实现了T3架构,它还包括管控子系统,用于管理和调度移动机器人舰队。MDCS与T3架构的映射关系如表1-1。

层次MDCS的子系统子系统职责
管控层Simple(车队管控)车队管理,路线规划,交通管制,任务调度。
决策层Clumsy(自动驾驶)任务执行,局部路线规划,轨迹跟踪,运动控制,高级安全管理。
感知层Detour(定位导航)激光与地纹SLAM(持续建图与定位),多里程计融合。
执行层Medulla(底盘控制)传感器与驱动器通信,扩展IO外设通信,响应式安全。

表 1-1 MDCS架构与T3的映射关系


得益于MDCS的全栈自研算法,使其能够为不同作业场景提供合适的技术方案,典型应用场景摘要如下:

  • 纯激光SLAM方案。适用于低动态的作业环境,如封闭的立体库、出库拣选和线边输送等场景。
  • 地纹 + 激光SLAM方案。适用于大动态的作业环境,地纹SLAM以地面纹理定位导航,不受周边环境变化影响;激光SLAM实现定位,与地纹里程计融合,实现稳定可靠的定位导航功能。
  • IMU + 激光SLAM方案。适用于地面问题不良的作业环境,如环氧地坪。基于惯导传感器实现的轮里程计,其输出精度使D(etour)持续推算机器人航迹,并使用激光SLAM的定位数据修正里程计累积误差,同样实现稳定可靠的定位导航功能。
  • 点云特征识别导航。根据点云中的几何特征来识别物体,并规划出机器人轨迹。比如识别托盘货架腿,识别中心点后驶入,可大幅减少库位标定工作量。又如识别托盘轮廓,计算进叉路线,解决人工放置托盘的位置检测问题。

2. 车队管控(S)

S是用于管理工厂物流的自主移动机器人(AMR,Autonomous Mobile Robot)和自动导引车(AGV,Automated Guided Vehicle)的软件。其主要目标是提高运输效率、降低运维成本并确保运输过程的安全性。

S 的主要功能包括:

  1. 路径规划和导航:根据工厂内部的布局和任务需求,为 AMR/AGV 规划最佳行驶路径,确保它们能够准确、高效地完成物料运输任务。
  2. 通信与协同:与工厂内的其他设备和系统进行通信,确保 AMR/AGV 与整个生产流程的协同工作。例如,与仓库管理系统(WMS)和生产执行系统(MES)进行数据交换,实现实时的物料追踪和调度。
  3. 队列管理和优先级调度:可以根据任务的优先级和时效性,对 AMR/AGV 车队进行动态调度,确保关键任务得到优先处理。
  4. 故障检测与预防:实时监控 AMR/AGV 的运行状态,检测潜在故障并进行预警,以降低停机时间和维护成本。
  5. 安全管理:确保 AMR/AGV 在遵守安全规定的前提下运行,实现与工厂内部其他设备的协同安全。
  6. 人机交互:直观的用户界面,方便操作人员监控 AMR/AGV 的运行状态、任务进度等信息,并进行必要的人工干预。

S实现了管控的核心功能,并可通过插件实现项目的定制化需求。它运行在管控服务器上,管理和调度车队执行任务。

注意:S是管控内核,应用功能一般通过插件实现,比如充电任务、MES接口等。

3. 自动驾驶(C)

C通过D获得机器人位姿、速度、方向等信息,并根据这些信息做出任务执行决策,比如跟踪S下发的路径,或通过点云识别托盘,规划叉取托盘的路线。C的职责和功能如下:

  1. 任务执行:执行S规划的路线,并将其拆分为若干子任务并逐个执行。
  2. 对象跟踪:根据激光雷达、深度相机等传感器数据,识别特定对象,并规划到对象的无碰撞路线。
  3. 轨迹跟踪:负责控制机器人的导航,以使其能够沿着规划好的路径移动。
  4. 高级安全:综合机器人定位、运动状态和避障等信息,在盲目驾驶(定位丢失)、危险驾驶(避障关闭)等异常状态下停车。

C实现了自动驾驶的核心功能,通过插件实现不同车型适配。它运行在移动机器人的车载控制器中,对上连接S,对下控制M,实现机器人的自动驾驶功能。

4. 底盘控制(M)

M与底盘的传感器和驱动器通信,它是C的下位执行者,负责将传感器数据上传给C,并将C下发的速度和角度指令转给驱动器。C的主要职责和功能如下:

  1. 处理传感器数据:与底盘的传感器通信,将解码后的数据上传给C,并在通信异常时触发报警。
  2. 控制底层执行器:通过控制底层执行器,例如马达、驱动器等,来实现对机器人的运动和操作控制。
  3. 响应式安全:实时监控机器人的状态,一旦发现异常情况或故障,及时进行处理,确保机器人能够正常运行。

M实现了底盘控制的核心功能,通过插件来适配不同的底盘轮系,它是机器人运动和操作的执行者。

5. 定位导航(D)

激光 SLAM(Simultaneous Localization and Mapping)一种用于自主导航的机器人技术,主要负责机器人在未知环境中的同时定位和地图构建。D以SLAM为核心算法,支持地纹、单线激光和多线激光。D通过激光雷达等传感器收集的数据,计算机器人在空间中的位置和姿态,同时构建周围环境的地图。

D的主要职责和功能如下:

  1. 定位:确定机器人在未知环境中的位置和姿态,以便于导航和避障。
  2. 地图构建:根据激光雷达数据创建环境地图,支持单、双激光雷达建图与定位,也支持地纹与激光的复合建图与定位。
  3. 位置估计:利用激光雷达和地纹相机数据,估计机器人在当前环境中的具体位置。
  4. 姿态更新:根据传感器数据,更新机器人在当前环境中的姿态信息,以便于精确导航。
  5. 多里程计:支持激光里程计、地纹里程计和轮里程计,支持多里程计融合应用。

D实现了机器人的定位导航能力,其核心算法能够在i3以上CPU实现视觉(地纹)与激光(单/多线)SLAM功能,并可融合基于IMU的轮里程计,以满足不同作业场景下的定位导航要求。

激光SLAM的能力边界

跳到导航跳到搜索

目录

1. 概述

在当今的机器人技术领域, SLAM(Simutaneous Localization and Mapping / 同时定位与地图构建)算法是一项至关重要的技术。这一技术让机器人能够在未知环境中自主导航,同时构建周围环境的精确地图。20世纪90年代至 21世纪初, SLAM 算法的数学证明和理论缺陷一直是研究的热点。自2010年后, SLAM 算法的数学基础得到了加强,理论上的强收敛性得到了证明,意味着理论上不存在根本性的缺陷风险。

然而,尽管SLAM 算法在理论上得到了强有力支撑,但在实际应用中,工程技术水平仍然是一个关键挑战。环境适应性、激光雷达特性和雷达标定等因素,都在很大程度上影响着SLAM 系统的性能和可靠性。

环境适应性,指的是SLAM系统在各种不同环境中的表现。静态环境中,雷达可以稳定地扫描固定物体,但动态环 境中,如存在移动物体时,雷达可能会受到遮挡,影响其准确度。激光雷达特性,则涉及雷达的安装高度和性能参 数,如角分辨率和激光发射器性能,这些因素直接影响点云质量。雷达标定,是确保SLAM 系统准确性的关键步骤,特别是在车队环境中,确保所有车辆的雷达标定一致至关重要。

本文将深入探讨这些关键因素,分析它们如何影响SLAM系统的性能,并探讨如何通过工程技术手段优化这些因 素,以提升SLAM 系统的实际应用效果。

1.2 分析模型

MDCS纹理导航的AGV的混合调度系统

图 1-1 激光SLAM影响因素模型

激光SLAM能力主要由激光雷达和算法构成。两者可以进一步细分,形成影响因素分析模型。图1-1模型列出的是主要影响因素,为下文的分析提供一个分析框架。实践时应根据项目需求合理运营,不建议把模型套用到所有项目上。

1.2.1 激光雷达

激光雷达(LiDAR,Light Detection and Ranging)是一种利用激光进行测距的传感器技术。其工作原理基于激光脉冲的发射、反射和接收来测量距离。具体步骤如下:

  1. 激光脉冲发射:激光雷达系统首先发射一个短脉冲的激光。这些激光脉冲通常具有非常高的能量和极窄的波长,以确保它们能够聚焦在一个非常小的点上。
  2. 激光脉冲反射:当激光脉冲遇到一个物体时,它会从物体表面反射回来。反射的程度取决于物体表面的材质和特性。
  3. 激光脉冲接收:激光雷达系统中的接收器捕捉这些反射回来的激光脉冲。由于光速是已知的,系统可以通过测量激光脉冲从发射到接收的时间差来计算激光雷达与物体之间的距离。
  4. 距离计算:通过测量激光脉冲的往返时间,结合光速,可以精确计算出激光雷达与物体之间的距离。

相比于视觉相机,激光雷达有测量精度高,不易被干扰的优点,广泛用于对精度和稳定性有较高要求的工业场景。

激光雷达的点云数据包含噪音数据,噪音对测量数据的影响取决于激光雷达的硬件(激光发射器)和软件(滤波算法)。性能不良激光雷达的点云会显著影响算法,因此选型时必须考虑激光雷达性能。一般来说,激光雷达性能与售价正相关,低性能雷达可用于精度要求不高场景,高性能雷达用于高精度高稳定场景。性能不及格的激光雷达必须从交付项目中剔除,由于硬件性能导致的问题,用软件兜底的工程成本远高于硬件成本。

测量性能。

  • 成像质量。质量较差的激光雷达,其点云成像质量不稳定。可能会出现以下现象:
    • 近距离物体拖影。激光雷达和近距离物体(托盘腿、安全围栏、电气柜等)连线上产生虚假点云,形成一条线段。或者在平面(不锈钢移门、安全围栏)形成泡沫状点云。
    • 点云抖动。点云围绕测量物体附近跳动,无论静止或是运动,使轮廓直线增厚为粗线条。
    • 角分辨率较低。测量较远距离小物体(比如立柱)形成的点云数量少,不能构成稳定的几何结构特征(比如立柱两个面构成的L字形)。
  • 过滤算法。原始激光测距数据总有噪音,比如高反射材质造成的反射、衍射噪音,过滤算法可过滤这些噪音。如果激光雷达硬件设计缺陷,或过滤算法效率不高,会导致噪音点无法从测量数据中清除。
  • 测量距离。2D激光大多用于室内,测量距离在30米之内,其测距盲区较小,一般为厘米级。3D激光起源于自动驾驶,测量距离一般在100~200米,擅长测量远距离物体,为自动驾驶提供足够的安全距离,但是测距盲区较大,一般为分米级。把3D雷达用于室内时,就要关注近距离测量盲区问题,近距离物体的测量误差以及干涉噪音会降低观测精度,甚至产生错误的避障警报。

底盘干涉。激光雷达安装在底盘(我们以底盘指代车体)上,底盘对激光雷达干涉是必须考虑因素。

  • 应力形变。非标AGV/AMR一般使用钣金作为车身材料,如果激光雷达固定在钣金车身上,则要考虑钣金应力释放过程中对激光雷达的干涉。较大形变会改变2D激光雷达扫描平面,导致观测到的环境轮廓改变,影响定位精度和稳定性。
  • 车体干涉。底盘相对于激光雷达而言,是近距离物体,且烤漆钣金车身是高反射材质。如果激光雷达扫描面(相对于车身雷达缝)不水平,脉冲激光扫到雷达槽发生发射,照亮雷达槽其他部分,就会造成噪音点。由于烤漆钣金的高反特性,还可能在车体(外)形成噪音点,触发避障报警。底盘同样会干涉激光雷达视野,把270度视野的激光雷达安装在180度视野的雷达槽中,其视野降级为180度。

被测量物体材质。激光雷达手册中都有反射率指标,指激光脉冲照射在不同反射率材料时,能接收到脉冲回波的概率。简答而言,颜色越深、表面越粗糙的材质,对光线的散射和吸收能力越强,反射率就就越低。

  • 高反射材质。白色塑料、不锈钢(包括亚光)、烤漆钣金都属于高反射材质。在评估激光雷达性能时,应评估其近距离(1.5米以内)照射高反射材质产生噪音点(拖影,鬼影)的概率。低性能雷达会产生显著噪音,并且对算法造成较大影响。
  • 低反射材质。工业场景中的低反射材质较少,因为它们会影响生产作业。低反射材料一般用于屏蔽高反射干扰场景,比如在现场发现雷达槽设计不良,其造成的噪音会触发误报警,则可用摄影黑绒布覆盖雷达槽,吸收干扰光。或者在穿行风淋门场景,在不锈钢桥箱贴膜以降低近距离高反噪音干扰。

照明光线。室内激光雷达的波段一般为905nm,处于阳光杂波区段,因此阳关会干扰室内用激光雷达。

  • 阳光。如果配置2D激光雷达(室内型)的AMR有室外过渡路段(比如连接车间和仓库的短距离连廊),应考虑早晚阳光是否会斜射到激光雷达,采用环境屏蔽(比如连廊安装遮阳板)或撑伞(激光雷达上安装遮阳板)屏蔽。
  • 人工灯光。如果强人工灯光会直射室内型激光雷达,应根据灯光波长(或可观察到的干涉噪音点云)采取屏蔽措施。

1.2.2 算法

Detour算法会过滤噪音点云,比如地面不平时扫到地面的点云、激光雷达噪音等,在此不深入讨论。应用激光SLAM应关注的是对SLAM算法有显著影响的因素。

视野。视野对激光SLAM影响是最直接的,激光观测不到的环境,激光SLAM也无法工作,这如同蒙上正常人眼睛让他走路。

  • 狭窄空间。指激光雷达距离周围物体很近,将其观测视野压缩到3米以内的场景,比如在走廊中被夹在车队中的AMR,其激光雷达视野大半被前车遮挡,左右是走廊墙体,有效视野范围不超过3米;又如对角安装雷达标称有250度视野,如果其侧面是墙体,前方是立柱,则有效视野被压缩到180度以内。由于激光雷达视野缩短,激光里程计精度也相应降低,会出现跑偏、丢定位现象。
  • 空旷空间。激光雷达扫不到稳定结构轮廓,比如200平方米以上的平库,或者卡车卸货区。激光雷达观测不到环境轮廓,激光SLAM也不能正常工作。
  • 运动中视野。狭窄与否是相对的,轻载潜伏式AMR行驶在视野良好的车道,如果前方有人工驾驶物流车而避障停车,一群人在激光雷达前一站,激光雷达视野瞬间变窄。

一般而言,视野与雷达安装高度正相关,越高的激光雷达视野越好,运动中视野被干涉的可能性越低。

环境轮廓。激光SLAM使用ICP(迭代最近点)算法,我们可以理解为两张照片叠一起对准。如果照片上有相互垂直的线段、平行的线段,我们就容易把照片对准,即便两张照片相隔一段距离拍摄。如果照片上是大量破碎的点,不成轮廓,那么我们要对准就困难,ICP亦然。结构化环境轮廓,指的就是点云有显著的几何特征,比如稳定的垂直和平行线段。

  • 非结构化环境轮廓。Detour的SLAM算法设计目标是人能识别,机器也能识别。在勘察现场时,如果环境是看不到头尾的直线(长走廊)、大动态(平面库),我们可称之为非结构化环境,应采用加装挡板(建立固定的几何特征轮廓)、反光棒/板(切换为有反定位,任意位置应观测到3个以上反光点),或加配IMU(轮里程计)。

算力。虽然Detour的专利SLAM算法能够在较低配置硬件上获得高精度结果,但算力硬件对算法影响是直接的,这也是设计AMR时容易被忽略的因素。

  • 处理器核心温度。数码设备有个65原则,即处理器最高温度应控制在65度以下,这是根据最高环境温度35度,电路运算升温30度得来。CPU一般在超过90度时降频自保,降频则降低计算效率,导致丢定位。如果工作环境温度高于30度,应为车载工控机设计风冷机制,并保持散热通道(空间)通常。
  • 震动。如果底盘无防震设计,则应为车载工控机设计防震机制,以减少震动对主板及接插件的伤害。

标定。错误的标定会影响建图和定位质量,这也是交付项目实践中发生频次较多的问题。标定应在厂内调试时完成,厂外标定不应成为常态(因此要拉通设计、制造和工程全过程)。

2. 环境适应性

我们使用双因素分析方法,将环境分为静态和动态两个维度,并从以下角度进行分析:

  1. 静态环境: 分析雷达与环境的相互作用,考虑距离、轮廓、材质反光特性等因素。
  2. 动态环境: 考察动态物体对雷达视野的影响,包括物体遮挡和雷达视野受限等情况。

需要注意的是,实际工作环境是动静兼有,在规划阶段可先从静态环境分析入手,厘清激光SLAM应用是否存在风险,然后在此基础上从“人机料法环”角度分析动态环境,进一步厘清AMR工作环境,为设计和安调奠定基础。

2.1 静态环境

我们从以下角度来分析静态环境:

● 距离因素: 分析雷达在不同距离下对环境特征的识别能力,如远距离环境中的反射特性。

● 轮廓因素: 探讨雷达对不同形状和结构的物体的识别能力,如墙壁、地面等。

● 材质反光特性: 研究不同材质对激光的反射特性,如金属、玻璃、塑料等。

2.1.1 距离因素

激光雷达的测距原理基于测量激光脉冲从发射到反射回来的时间差。具体来说,激光雷达发射器会发出短脉冲的激光,这些激光在遇到物体后会发生反射。激光雷达的接收器会捕捉这些反射回来的激光脉冲,并测量发出脉冲和接收脉冲之间的时间差。由于光速是已知的,因此可以通过时间差来计算激光雷达与物体之间的距离。

激光雷达的盲区是指雷达无法准确测量的最近距离区域。这个盲区是由于激光雷达发射和接收系统之间的最小响应 时间造成的。在这个盲区内,由于激光脉冲的发射和接收几乎同时发生,系统无法区分反射回来的脉冲是来自盲区 内的物体还是更远的物体。

激光雷达的最大测量距离取决于多种因素,包括激光的功率、发射孔径的大小、接收器的灵敏度以及环境条件(如 大气状况、光照强度等)。 一般来说,激光雷达的最大测量距离可以达到几十米甚至上百米,但对于不同的应用场 景和雷达型号,这个距离会有所不同。

一般来说,室内型激光雷达的测量距离在20~40米,室外型激光雷达的测量距离在150~200米。室内型激光雷达 盲区一般在几厘米,对SLAM 没有影响。接下来我们以室内场景来分析,室外场景与室内相似。

MDCS纹理导航的AGV的混合调度系统

图2-1 激光典型场景

如图2-1,激光雷达扫描环境输出点云(图中青色轮廓线),图中车型的激光雷达安装在车头右角,被车体遮挡以 及超出雷达视野外的环境轮廓不会出现在点云内。 

如果AMR 所在环境空旷,则激光雷达则不能观测到周围环境轮廓,进而导致定位失败。图2-2是某工程机械结构件 车间的布局示意图。


图2-2某结构件车间布局示意图

图2-2中的AMR 在待命区驻车,配置单激光雷达在车头右侧,激光雷达观测范围内是大片空旷场地,没有可供点云 配准的轮廓,因此该AMR 在此场景下很容易丢失定位。 

在进一步分析图2-2场景前,有必要理解激光SLAM原理,以便从原理角度分析失效场景。激光SLAM技术是一种用于机器人在未知环境中进行定位和地图构建的算法,分为前端和后端,共同协作以实现连续可靠的位姿输出。 

前端技术,也称为激光里程计 (Laser Odometry),通过处理激光雷达连续扫描得到的测量数据,通过点云配准 算法计算机器人相对上个位姿的移动距离和角度,实时推算机器人航迹。其主要功能包括:

  1. 点云配准: 配准相邻点云,从而获得机器人相对上个观测位姿的移动距离和角度,得到航迹。
  2. 推算航迹:积分航迹,实时更新机器人当前位姿。


后端技术,也称为回环检测,负责利用历史数据对前端生成的轨迹进行优化,提高定位的准确性和地图的完整性。 其主要功能包括:

  1. 回环检测: 通过比较当前扫描到的环境特征与之前存储的地图信息,检测是否存在重复的扫描数据,即回环。
  2. 位姿优化: 当检测到回环时,通过调整机器人的位姿,使其与历史数据中的位姿一致,从而优化定位轨迹。


前端和后端的配合是实现连续可靠位姿输出的关键:

  1. 实时定位:前端提供实时的运动估计,使机器人能够在不断移动的同时更新其位置。
  2. 长期优化:后端利用历史数据对前端生成的轨迹进行优化,减少累积误差,提高长期定位的准确性。
  3. 数据融合:前后端通过数据交换,前端提供实时数据,后端提供历史和优化后的数据,实现数据的有效融合。
MDCS纹理导航的AGV的混合调度系统

图2-3 基于优化的SLAM经典框架

前端和后端的关系如图2-3所示,前端的局部建图基于激光里程计(激光可观测),后端的全局建图基于所有信息 实现对前端的全局优化。 

回到图2-2的车间,由于激光雷达观测到的环境基本没有较稳定的轮廓(只有右侧通道旁的电气柜),点云配准较 困难。当AMR在待命区开机时,定位大概率失败,原因是没有可供定位的稳定轮廓。如果AMR定位未丢失,行驶出 去时有可能走歪,原因是激光里程计继续输出位姿,但是定位失败,激光里程计累积误差导致定位偏差而走偏。


另一种情况是AMR处于狭窄环境中,图2-4是电子厂的风淋门示意图。

MDCS纹理导航的AGV的混合调度系统

图2-4出风淋门场景

在图2-4中, AMR从后门进入风淋间,风浴后前门打开进入外走廊。AMR在风淋间驻车后,其雷达视野被压缩,而 前门打开时视野瞬间扩大。这种轮廓快速变化的场景对激光SLAM影响体现在两方面, 一是进入风淋间时,雷达视 野变窄,但是轮廓不变,因此对激光里程计没有影响, AMR 能够走到中间停车。二是驻车时,前门开启导致轮廓改 变,进而影响定位时的点云配准。

备注:出风淋场景的对策之一是关闭激光里程计,收到前门开启新号后启动激光里程计,并重定位。本文重 点说明影响激光SLAM的因素和应对思路,故此不对具体场景展开细节讨论。


激光雷达视野变窄后还有一个副作用:位姿的角度精度下降。还是以图2-4为例,由于测量距离较短,因此对角度 的测量精度会略低于风淋门外。如果AMR 是带载出风淋间,且风淋间较长,两侧容差非常小(比如单侧20mm),则要考虑精度问题,比如根据点云计算中线行驶。

2.1.2 轮廓因素

激 光SLAM 的点云配准算法是ICP 。ICP(Iterative Closest Point) 算法是一种常用的点云配准方法,它用于将两个 点云集匹配在一起,使得它们之间的距离最小化。想象一下,你手里有两张照片, 一张是现在拍的,另一张向前走 2步然后转身10度拍的。你想要通过这两张照片,确定你的位置变化。ICP算法就像是在做这个任务,它通过不断地 比较和调整,使得两张照片上的点尽可能地重合。

MDCS纹理导航的AGV的混合调度系统

图2-5点云配置

图2-5展示了点云配准结果,白色轮廓线是AMR 建图时的环境轮廓,青色轮廓线是激光雷达扫描到墙体轮廓,可见 青色与白色轮廓贴合,表示点云已配准, SLAM 因此得知真实位姿。 

现在,让我们看看哪些轮廓有利于点云配准。想象一下,你走在一条直线上,这条直线在另一张照片中也有。当你 在照片上看到这条直线时,你就能确定你的位置。这就是所谓的“特征”,在点云中,这样的特征可以是成直角的两 条线段,或者是多条平行线。这些特征在两张照片(两个点云)中都存在,使得ICP 算法能够更容易地找到它们之间 的对应关系,从而实现准确的点云配准。

图2-5的轮廓非常有利于SLAM, 因为存在大量的平行线(段)与垂直线(段)。设想你拿着这样的两张照片,很容易把它们重合起来。

图2-6是反面例子。

MDCS纹理导航的AGV的混合调度系统

图2-6不利于点云配准的场景

图2-6来自于实例,图中AMR的激光雷达安装在车头右侧。车体右侧是输送线的移动门(灰色线),频繁开合,因 此不能用于建图。图中下方是一片杂点,这是建图时料车堆放在此形成,其形状不利于配准,实际运行时这片区域 可能空旷也可能有几台料车,从而对点云配准造成了障碍。

备注:图2-6是平面库场景,图中AMR左侧是平面库,停放料车;右侧是带移门输送线。这是典型的激光不良场景,因为平面库中的料车随机变化,属于大动态环境。而输送线移门由于随机开合,也不能用于建图(移门拉开是输送线轮廓),也是大动态环境。SLAM 可依赖的唯有图中上方的小尺寸轮廓(柱子)。这种场景应使用其他传感器来补全,比如基于IMU (惯导传感器)的轮里程计,利用Detour 的多里程计耦合能力应对大动态场景。

2.1.3 材质反光特性

材料的反光特性对激光雷达的性能有着显著的影响。激光雷达通过发射激光并检测其反射回来的光来测量距离和构 建环境地图。不同材料对激光的反射能力不同,这直接影响了激光雷达的数据质量和准确性。

例如,高反光材料,如不锈钢,对激光的反射率非常高。当激光雷达扫描这类材料时,反射回来的光信号非常强, 这可能导致雷达产生误判,认为存在多个相同距离的点,或者产生所谓的“鬼影”。鬼影是指由于强烈反射造成的虚 假点云,它们可能出现在实际物体的旁边或后面,导致雷达无法准确判断物体的真实位置和形状。

此外, 一些材料对激光的吸收率较高,如黑色或暗色材料,这些材料反射回来的光信号较弱,可能导致雷达无法检 测到这些物体,或者只能检测到物体的部分轮廓。 

因此,在勘查激光雷达的应用场景时,需要考虑环境中的材料类型及其反光特性,以减少材质对激光雷达造成的噪 音影响。我们从AMR 车体和环境两个维度,以双因素分析方法来讨论此问题:

  1. AMR车体:
  • 车体材质: AMR (自主移动机器人)的车体通常是烤漆钣金材料,这类材料对激光的反射率较高,容易 产生鬼影。当激光雷达照射到车体时,强烈的反射可能会在点云数据中形成额外的噪音点,这些点可能 被错误地识别为障碍物,从而触发避障系统,导致AMR 无故避障停车。
  • 带载情况: 当AMR 携带货物时,如托盘等,这些货物也可能是高反光材料。在激光雷达近距离照射这些 货物时,同样可能产生鬼影,形成噪音点,干扰避障系统的判断,导致不必要的避障行为。
  1. 环境材质:
  • 近距离照射: 在近距离(一般在200mm 左右)被激光雷达照射的材质,尤其是那些反射率高的材料,可能会产生显著的噪音点。这些噪音点可能由激光雷达性能不佳引起,例如,性能较差的激光雷达在近距 离扫描时可能无法有效区分背景和前景,导致点云数据中出现泡沫状点云。这种噪音会干扰点云配准的 准确性,甚至可能触发避障系统,影响AMR 的正常运行。

综上所述,材质反光特性引起的主要问题是噪音,虽然Detour有一定的噪音过滤能力,比如自动过滤激光雷达(因 地面倾斜)扫射地面形成“墙体轮廓”噪音,但是不存在一种万能算法可过滤任意噪音。因此在设计时应关注车体、货物和(近距离)环境与激光雷达相互作用而造成的噪音,把硬件噪音问题控制在设计阶段。

2.2 动态环境

动态环境影响因素与静态无异,只是干扰是动态的,分为稳态干涉和非稳态干涉:

  1. 稳态干涉:稳态干涉指在一段时间内持续存在的干涉。比如在充电站旁堆放一堆施工材料,改变了建图时的环 境轮廓,虽然这些材料只堆放2天,但是对过来充电的AMR会造成定位失败。
  2. 非稳态干涉:非稳态干涉指较短时间内存在的干涉。比如AMR 停在待命区,有一台叉车开来停在AMR 激光雷 达前面,停留5分钟后离开。当叉车开过来时, Detour 算法会识别这是移动物体,把叉车轮廓从点云过滤掉; 当叉车停下一段时间后,算法不再认为这是移动物体,不会从点云过滤;当叉车离开时,它与AMR 相对移动,则激光里程计会根据这个移动轮廓来计算机器人位姿,结果静止的AMR往相反方向飘出若干距离。

简言之,动态环境影响的是激光雷达视野,或遮挡视野,或改变环境轮廓。从干扰性质来看,可分为大动态和噪音 两种情况:

  1. 大动态: 大动态指环境轮廓较快改变,改变速度快的影响激光里程计,比如贴着激光雷达的物流车辆(跟车场 景)、狭窄通道对向交汇的两台AMR; 改变速度慢的影响定位,比如充电站旁堆放的建材、平面库随机变化 的料车。
  2. 噪音:噪音指随机干扰激光里程计或定位,且持续时间很短。比如调试工程师蹲在激光雷达前操作AMR (挡死激光视野)、驻车AMR 被旁边经过的物流车辆干扰激光里程计。

大动态场景应该在设计时应对,通过增加第二个传感器来应对,举例如下:

  1. 视野影响: 如果由于激光雷达视野约束造成,比如180度视野的激光雷达,则可考虑改善车体设计,比如把雷 达缝造型为倒V型,将视野扩大到250度;或把对角安装的激光雷达移动到车头中间,减少有腿托盘遮挡激光 雷达;或前后安装两个激光雷达,实现全向视野。
  2. 激光不良: 如果由于环境约束造成,比如图2-6所示,激光雷达不能观测到稳定轮廓,则考虑加装不同测量原 理的传感器,比如IMU, 把IMU 陀螺仪输出的角度与驱动轮编码器输出的线速度结合起来,实现轮里程计,用 于激光不良路段(区域)。或在激光SLAM基本不可用的场景,比如乘用车总装车间的主线配送,可更换为地 纹SLAM, 实现长距离高精度的定位导航能力。

噪音场景可用简单办法来应对,举例如下:

  1. 短暂遮挡激光雷达视野: 使用驱动轮驱动器反馈的转速实现轮里程计,该里程计作用是告知Detour:AMR 静止状态,激光里程计无须计算。

3. 激光雷达特性

3.1 安装高度

在探讨激光雷达特性时,安装高度是一个关键因素,它直接影响激光雷达的观测数据稳定性。激光雷达安装的高度 决定了其扫描范围和能够观察到的物体轮廓。理论上,安装高度越高,激光雷达观测到的轮廓越稳定,因为它能够 避免地面起伏和障碍物的影响。

然而,激光雷达的安装高度也受到AMR机械构型的限制。对于低矮造型的AMR, 如KIVA底盘,激光雷达的安装高 度需要特别考虑。如果安装高度过低,比如低于180mm, 当AMR 在地面上移动时,激光雷达可能会扫描到地面,

从而产生大量的噪音点云。这些噪音点不仅会干扰激光雷达对环境的准确感知,还可能导致误报障碍物,影响AMR 的导航和避障性能。

因此,对于低矮造型的AMR, 如KIVA底盘,激光雷达的安装高度应适当调整,确保它能够避免地面起伏的影响,同 时又不至于过高,影响其对地面障碍物的检测能力。适当的安装高度可以帮助激光雷达在扫描时获得更稳定、更清 晰的环境数据,从而提高AMR 的导航精度和可靠性。

3.2 雷达性能

在分析激光雷达的性能时,我们主要关注三个关键参数:角分辨率、测量性能和滤波性能。

  1. 角分辨率:
  • 影响: 角分辨率决定了激光雷达能够区分两个相邻目标的能力。角分辨率越高,激光雷达可以检测到的 细节越精细。
  • 应用影响: 对于小尺寸物体的测量,如车间内的立柱,如果激光雷达的角分辨率较低,可能无法提供足 够的测量点来准确描述物体的形状和位置,这会影响到点云配准的准确性。
  1. 测量性能:
  • 影响: 激光脉冲在不同反射率材质上的成像特性,直接影响测量点的稳定性。例如,高反光材质会产生 强烈的反射,而低反光材质则可能产生较弱的信号。
  • 应用影响: 测量结果的不稳定性会导致点云数据跳动,这会严重影响定位精度。在复杂或动态的环境 中,这种跳动可能导致AMR 的导航错误。
  1. 滤波性能:
  • 影响: 滤波性能指的是激光雷达对噪音数据的过滤能力。有效的滤波可以去除测量数据中的随机噪声, 提高数据的质量。
  • 应用影响: 在实际应用中,环境中的各种干扰(如反射、散射、震动等)会产生噪音数据。激光雷达的 滤波性能决定了它能否有效地识别并过滤这些噪音,从而提供准确可靠的点云数据。

雷达性能在设计选型时决定, 一般来说,用于高精度定位的激光雷达,应选择角分辨率高于0.2度的产品,其测量 性能稳定可靠。

4. 激光雷达标定

在AMR 车队的部署调试过程中,激光雷达的标定是一个关键步骤。标定过程旨在确保每个激光雷达在机器人上的安 装位置和角度准确无误,这对于整个车队的协同工作和精确导航至关重要。

4.1 标定车在建图和库位坐标标定的用途

  1. 建图:标准车负责构建整个工作区域的环境地图。由于其精确的标定,标准车可以生成一个高精度的地图,为 其他AMR提供准确的环境参照。
  2. 库位坐标标定: 标准车还负责对库位进行坐标标定。这意味着它将库位的位置信息准确地记录在地图上,这对 于车队执行搬运任务至关重要。

4.2 标定结果对标准车和车队的影响

  1. 对标准车的影响:
  • 导航精度: 精确的标定直接影响标准车的导航精度。如果标定不准确,标准车可能无法准确地到达预定 位置,这会影响整个车队的运作。
  • 地图一致性: 标准车的精确标定有助于保证地图的一致性。所有其他AMR 都以标准车的地图为基准,任 何偏差都可能导致整个车队的导航错误。

2 对车队的影响

  • 协同工作: 车队的其他成员依赖标准车的准确标定来协调它们的行动。如果标准车标定不准确,可能导 致车队在执行任务时出现混乱。
  • 任务效率: 精确的标定有助于提高车队的任务执行效率。每个AMR 都能准确地到达指定位置,从而加快 整个车队的搬运速度。

因此,激光雷达的标定是AMR车队部署调试中的一个关键环节。精确的标定不仅保证了标准车的导航精 度,还确保了整个车队的协同工作能力和任务执行效率。任何标定误差都可能对车队的性能产生负面影 响,因此在实际操作中,必须仔细进行标定,并定期进行校准,以维持高精度的导航性能。

5. 车载工控机

5.1 硬件配置

一般而言,单激光SLAM可用Intel Celeron J1450以上处理器,内存建议8G,使用DDR4以上双通道配置。双激光SLAM可用Intel i5 Gen10以上处理器,内存建议8G。运行时CPU平均占用率应低于70%。

5.2 操作系统配置

建议使用Windows10,在控制面板中,关闭所有休眠特性,以免系统空闲时进入休眠状态而降频及关闭网络连接。关闭Windows自动更行功能,它会随机占用大量处理器资源。

MDCS也支持Ubuntu16+操作系统。

5.3 散热系统

对于配置了风冷系统的嵌入式工控机,在设计车体时应保证其风冷出口有足够空间散热,以及车体留有空气循环开孔。对于无风冷系统的嵌入式工控机,在设计车体时应有风冷散热机制。

说明:处理器在温度高于85度时会降频,导致Detour没有足够算力运行SLAM算法,出现随机丢定位现象。对于工作在环境温度较高环境的AMR,比如在中国中南部,必须有风冷设计。从实践来看,配有风冷系统的AMR,工控机的处理器温度基本在70度以下,能够为软件提供稳定可靠的算力。

5.4 防震

对于无防震设计的底盘,比如驱动轮与底盘刚性连接的车型,嵌入式工控机应通过弹性组件与车身固定,以减少车体震动对工控机电子元器件(尤其是接插件)的影响。

给TA打赏
共{{data.count}}人
人已打赏
全部分类

一个混合调度系统报价多少钱才算合理?

2026-8-17 16:26:37

全部分类

《移动机器人控制器源码》定制AGV非标AGV车型控制器系统使用说明

2026-8-17 16:35:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
❯
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索