安装Detour:修订间差异
无编辑摘要 |
|||
| (未显示2个用户的13个中间版本) | |||
| 第1行: | 第1行: | ||
= 1. 前言 = | |||
您如果首次使用MDCS,建议阅读【[[MDCS概述]]】,在了解MDCS各子系统功能后下载安装Detour。 | |||
= | = 2. 下载Detour及依赖包 = | ||
浏览器打开:https://dl.lessokaji.com 。这是MDCS下载站,可下载MDCS(AMR控制全栈软件)发布版。 | |||
[[文件:Image-20240521113910923.png|无框|651x651像素]] | [[文件:Image-20240521113910923.png|无框|651x651像素]] | ||
'''图 | '''图 2-1 MDCS下载页面''' | ||
下载页面由两部分构成: | 下载页面由两部分构成: | ||
| 第18行: | 第19行: | ||
[[文件:Image-20240521114105532.png|无框|610x610像素]] | [[文件:Image-20240521114105532.png|无框|610x610像素]] | ||
'''图 | '''图 2-2 勾选软件清单后下载''' | ||
以Windows版Detour下载为例,如图2-2,“Selected Files”下是选中软件清单,点击“Zip”按钮打包下载。 | |||
以Windows版Detour下载为例,如图2-2,“Selected Files”下是选中软件清单,点击“Zip”按钮打包下载。 | |||
= 3. 安装 = | |||
Detour与Medulla配套使用。Medulla接收激光雷达发送的测量数据,统一转换格式后通过共享内存发布给Detour。<blockquote>说明:Windows环境使用Detour.exe,Ubuntu环境使用DetourLite.dll(Detour内核功能)并配套Detour.exe(作为远程客户端)使用。Ubuntu环境通过Mono启动Medulla.exe。</blockquote> | |||
== 3.1 Windows环境 == | |||
[[文件:Image tdrfgyuihjoklp.png|缩略图|使用M2]] | |||
'''图 3-1 Windows环境的软件清单''' | |||
{| class="wikitable" | |||
!模块 | |||
!程序 | |||
!用途 | |||
|- | |||
|Detour | |||
|Detour.exe | |||
|Detour主程序 | |||
|- | |||
|Medulla2 | |||
|Medulla2.exe | |||
|Medulla2主程序 | |||
|- | |||
| | |||
|LidarControler.dll | |||
|激光雷达控制器,部署在medulla的plugins子目录下(下同) | |||
|} | |||
<blockquote>说明:Medulla2 & Detour运行在Windows 10以上版本,依赖 .netframework 4.8 [https://dotnet.microsoft.com/en-us/download/dotnet-framework/net48 Download .NET Framework 4.8 | Free official downloads (microsoft.com)] 。</blockquote> | |||
建议把Detour和Medulla存放在MDCS目录下,以便管理。MDCS目录所在分区至少有80G空闲容量,用于存储Detour和Medulla运行时生成的日志文件和配置数据。 | |||
Medulla的目录结构如下:<syntaxhighlight lang="winbatch" line="1"> | |||
D:\work\Playground\mdcs\Medulla 的目录 | |||
2024/06/18 10:14 <DIR> . | |||
2024/06/18 10:14 <DIR> .. | |||
2024/06/13 08:18 3,420,672 Camera3D.dll // 3D相机控制器,只用激光SLAM时不需要 | |||
2024/06/13 08:18 643,072 CartActivator.dll // 底盘驱动加载器 | |||
2024/06/13 16:39 <DIR> diagnosis // 运行时日志目录 | |||
2024/06/13 08:18 854,016 LidarController.dll // 激光雷达控制器 | |||
2024/05/21 13:00 3,335,168 MDCSToolBox.dll // 工具箱,只用激光SLAM时不需要 | |||
2024/06/13 08:18 2,609,152 Medulla.exe // 主程序,Ubuntu用mono启动 | |||
2024/05/21 13:00 14,544 Medulla.sys // 主程序库 | |||
2024/06/13 08:18 752,128 NetRemote.exe // 底盘遥控器,只用激光SLAM时不需要 | |||
2024/06/13 16:20 <DIR> plugins // 底盘驱动目录,激光雷达驱动存在此 | |||
2024/05/21 13:00 1,646 remoteconf.json // 底盘遥控器配置文件 | |||
2024/06/13 16:20 192 startup.iocmd // 自动加载驱动脚本 | |||
2024/06/13 08:18 758,784 USBCamera.dll // USB相机控制器,只用激光SLAM时不需要 | |||
2024/06/13 08:18 1,715,712 WinMedulla.dll // Medulla控制台库 | |||
</syntaxhighlight> | |||
== | Detour的目录结构如下:<syntaxhighlight lang="winbatch" line="1"> | ||
D:\work\Playground\mdcs\Detour 的目录 | |||
2024/06/18 09:23 <DIR> . | |||
2024/06/18 09:23 <DIR> .. | |||
2024/06/17 09:05 142,640 critical.log // 错误日志 | |||
2024/06/13 10:54 152,167,424 cufft64_10.dll // 库 | |||
2024/06/13 10:54 226,816 cufftw64_10.dll // 库 | |||
2024/06/13 10:54 127,488 d2dlib64.dll // 库 | |||
2024/06/17 09:05 5,914,624 Detour.exe // 主程序 | |||
2024/06/18 09:28 5,744 detour_127.0.0.1.json // 作为客户端连接远程DetourLite时 | |||
// 自动下载的DetourLite配置文件, | |||
// detour_{detour_lite_ip}.json | |||
2024/06/13 10:54 <DIR> log // 日志目录 | |||
2024/06/13 10:54 53,050,368 OpenCvSharpExtern.dll // 库 | |||
2024/06/13 10:54 735,744 regcore_cuda.dll // 库 | |||
2024/06/18 09:28 154,166 tmpmap.2dlm // *.2dlm是激光地图文件 | |||
</syntaxhighlight>生产环境需要自动启动Medulla & Detour,且要监控并重启异常退出的进程,我们配套了看门狗程序Wawa,详见【[[看门狗Wawa使用说明]]】。 | |||
== | == 3.2 Ubuntu环境 == | ||
[[文件:Image-20240521140212910.png|无框|610x610像素]] | [[文件:Image-20240521140212910.png|无框|610x610像素]] | ||
'''图 | '''图 3-2 Ubuntu环境下的软件清单''' | ||
{| class="wikitable" | |||
!模块 | |||
!程序 | |||
!用途 | |||
|- | |||
|Detour | |||
|DetourLite | |||
|DetourLite是Detour内核功能,依赖DotNetCore,与Windows版Detour(作为远程客户端)配套使用。 | |||
|- | |||
| | |||
|DetourLiteDepends | |||
|DetourLite的依赖库,解压后放到DetourLite目录。 | |||
|- | |||
| | |||
|libOpenCvSharpExtern | |||
|OpenCV依赖库,根据目标系统处理器架构选择arm64 / x64。 | |||
|- | |||
| | |||
|GDI+(可选) | |||
|如果使用DetourLite的/getMapPng接口,则要安装GDI+库(sudo apt-get install -y libgdiplus)。 | |||
|- | |||
|Medullar | |||
|Medulla.exe | |||
|Medulla主程序,依赖Mono。 | |||
|- | |||
| | |||
|LidarControler.dll | |||
|激光雷达控制器,部署在medulla的plugins子目录下(下同) | |||
|- | |||
| | |||
|WinMedulla.dll | |||
|Medulla库。 | |||
|- | |||
| | |||
|CartActivator.dll | |||
|插件加载器。 | |||
|} | |||
=== 3.2.1 安装Medulla === | |||
<blockquote>注意:应使用Ubuntu 16、18或20,截止2024年6月,Mono官方支持的Ubuntu最高版本是20.04,Medulla & DetourLite在这3个发布版做过充分测试。</blockquote>参考[https://www.mono-project.com/download/stable/#download-lin Mono官网指南]安装Mono。安装完毕后使用"mono --version"核对其版本,应是6.12以上,如下。<syntaxhighlight lang="bash"> | |||
Mono JIT compiler version 6.12.0.200 (tarball Tue Jul 11 21:34:53 UTC 2023) | |||
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com | |||
TLS: __thread | |||
SIGSEGV: altstack | |||
Notifications: epoll | |||
Architecture: amd64 | |||
Disabled: none | |||
Misc: softdebug | |||
Interpreter: yes | |||
LLVM: yes(610) | |||
Suspend: hybrid | |||
GC: sgen (concurrent by default) | |||
</syntaxhighlight>Medulla使用.netframework 4.8开发,在Ubuntu使用Mono启动。Mono是.NET Framework的开源实现,由微软赞助。请根据官网指南 Download - Stable | Mono (mono-project.com) 安装。 | |||
使用mono启动Medulla:<syntaxhighlight lang="bash" line="1"> | |||
$ mono Medulla.exe | |||
Lessokaji Medulla Version 1.2.0.3961, 64bit | |||
Main Thread ID: 1 | |||
Medulla starting up... | |||
Medulla command ready | |||
Initialize Shared Objects for program Medulla | |||
Mono or Linux which doesn't support named MMF, use file. | |||
Create Shared Object dumplog | |||
SO>> Exist dumplog:6579279 | |||
Initialize Diagnosis cache | |||
Run on Mono or Linux which doesn't support named MMF, use file. | |||
initializing io object | |||
Create Shared Object mse | |||
SO>> Exist mse:6581375 | |||
MSE engine initialized | |||
run startup.iocmd script... | |||
$: loader = io load CartActivator.dll | |||
[IO] Loading Library CartActivator.dll... | |||
Costura attach required assemblies for CartActivator.dll... | |||
$: frontlidar = io load plugins/sicknano.dll | |||
[IO] Loading Library plugins/sicknano.dll... | |||
$: frontlidar setMaskDist 50 20000 | |||
$: frontlidar Start 6060 | |||
$: frontlidar setMirror false | |||
$: ui=io load WinMedulla.dll | |||
[IO] Loading Library WinMedulla.dll... | |||
Costura attach required assemblies for WinMedulla.dll... | |||
Starting HTTP Server, STM | |||
HTTP Server listen on http://*:8007/ | |||
</syntaxhighlight>Medulla启动后在8007端口启动Web端口,可用浏览器访问 <nowiki>http://192.168.100.100:8007/simple.html</nowiki> (假设Medulla所在工控机的IP是192.168.100.100),可见Medulla运行状态,如下图所示。 | |||
[[文件:Image-20240618104132637.png|无框|638x638像素]] | |||
'''图 3-3 Medulla的监控页面''' | |||
=== 3.2.2 安装DetourLite === | |||
根据微软dotNet官网指南 Download .NET 6.0 (Linux, macOS, and Windows) (microsoft.com) 安装.NET SDK 6.0。<blockquote>备注:Ubuntu16、18、20的包管理器没有.NET 6源(参见官网指南),因此使用二进制安装,安装后应把dotnet加入PATH环境变量。 | |||
假设dotnet安装目录是~/dotnet,则在~/.bashrc加入 export PATH=$PATH:~/dotnet/dotnet 。</blockquote>使用dotnet启动DetourLite: | |||
dotnet DetourLite.dll | |||
DetourLite不包括UI功能,因此要在Windows上运行Detour(作为客户端),远程连接到DetourLite。 | DetourLite不包括UI功能,因此要在Windows上运行Detour(作为客户端),远程连接到DetourLite。 | ||
看门狗Wawa也支持Ubuntu,详见【[[看门狗Wawa使用说明]]】。 | |||
[[文件:2114D627-27C0-42EC-8C9D-757BE0BDFD15.png|无框|620x620像素]] | [[文件:2114D627-27C0-42EC-8C9D-757BE0BDFD15.png|无框|620x620像素]] | ||
'''图 | '''图 3-3 作为远程客户端使用的Detour''' | ||
客户端Detour连接远程DetourLite步骤: | 客户端Detour连接远程DetourLite步骤: | ||
| 第52行: | 第213行: | ||
<blockquote>注意:在启动作为客户端的Detour时,必须删除Detour目录下的detour.json,否则Detour会加载本地配置文件,拒绝连接远程Detour。</blockquote> | <blockquote>注意:在启动作为客户端的Detour时,必须删除Detour目录下的detour.json,否则Detour会加载本地配置文件,拒绝连接远程Detour。</blockquote> | ||
= | |||
自2024/6/17后,下载站的Detour.exe支持远程设置DetourLite参数,如果您使用老版本,请升级。 | |||
[[文件:1718764541745.png|无框|805x805像素]] | |||
'''图 3-5 Detour可远程同步的组件参数''' | |||
Detour可远程同步DetourLite的组件、里程计参数。组件是车体编辑器中的传感器,激光SLAM传感器就是2D/3D激光雷达;里程计是“里程计”标签列表的"odometry_n"(n≥0),包括激光里程计、地纹里程计和轮里程计。 | |||
当Detour连接DetourLite后,在Detour配置激光雷达或里程计属性时,Detour更新本地配置副本后同步DetourLite。下面我们详细讲解Detour和DetourLite的协作关系。 | |||
DetourLite启动时自动读取同目录的detour.json,如果detour.json包含激光地图文件属性,则自动加载激光地图。观察DetourLite控制台输出可见此过程,如下图所示。 | |||
[[文件:1718767175461.png|无框|758x758像素]] | |||
'''图 3-6 DetourLite启动后的控制台输出''' | |||
如图3-6所示,DetourLite加载"detour.json",随后加载配置文件中指向的激光地图"mainmap_0618_edit_yh.2dlm"。 | |||
Detour连接DetourLite,状态栏提示"load map, but cannot find ...",如下图所示。 | |||
[[文件:Image-20240619112420197.png|无框|811x811像素]] | |||
'''图 3-7 远程连接DetourLite时的提示''' | |||
如果DetourLite未加载激光雷达,Detour提示”读取...远程配置成功“。出现"cannot find map file"提示是因为本地没有激光地图文件。此时有两种处理方法,一是从DetourLtie拷贝激光地图文件到本地,二是使用”单线激光SLAM“标签下”其他功能 / 下载远程图层数据至本机图层“。建议使用方法一。Detour在连接DetourLite后,将其配置读入内存,并在Detour目录下生成"detour_{ip}.json"副本(ip是DetourLite所在PC地址),其图层关联的激光地图文件名称与DetourLite一致,如下图所示。如果使用“加载图层”装入另一个本地激光地图文件,就会同步给DetourLite,导致DetourLite下次启动错误加载不存在激光地图而报错。 | |||
[[文件:1718768074021.png|无框|623x623像素]] | |||
'''图 3-8 DetourLite配置所用的激光地图文件名''' | |||
由于底盘轮廓不在远程同步范围,因此在项目开始时,应使用Detour在本地编辑好底盘宽高和轮廓(概况 / 车体布局 / 编辑),在车体编辑器中部署激光雷达,然后上传到DetourLite,使用Detour的远程参数同步功能标定雷达外参。 | |||
在建图时,如果DetourLite没加载激光地图,则会自动创建。建图完毕后使用“其他功能 / 下载远程图层数据到本地图层”,然后另存为与DetourLite相同的名称,或者从DetourLite目录下载都可以。 | |||
= 4. 配置激光雷达 = | |||
[[文件:Image-20240521144346393.png|无框|530x530像素]] | [[文件:Image-20240521144346393.png|无框|530x530像素]] | ||
'''图 | '''图 4-1 激光雷达电气原理示例''' | ||
我们用2D激光雷达来说明配置方法。如图4-1所示,Medulla通过激光雷达驱动(插件)接收2D激光雷达的测量数据,经解码后传给Detour(或DetourLite)。 | |||
== 4.1 兼容激光雷达清单 == | |||
Medulla支持的激光雷达型号(通过项目实践验证)如下。激光雷达驱动开发请阅读【开发激光雷达驱动】。 | |||
== 3. | |||
Medulla启动时自动读取同目录下的startup. | 2D雷达清单: | ||
// | {| class="wikitable" | ||
!品牌 | |||
!型号 | |||
|- | |||
|SICK(西克) | |||
|LMS511,nano,S300 | |||
|- | |||
|P+F(倍加福) | |||
|R2000 | |||
|- | |||
|万集 | |||
|716,716mini,719 | |||
|- | |||
|兴颂 | |||
|HE-3051,SE1035 | |||
|- | |||
|富瑞 | |||
|H1系列 | |||
|} | |||
3D雷达清单: | |||
{| class="wikitable" | |||
!品牌 | |||
!型号 | |||
|- | |||
|觅道(Livox) | |||
|Mid70(用于物体识别,不能用于导航),Mid360(非均匀扫描周期,可用于<1m/s的低速导航) | |||
|- | |||
|速腾 | |||
|M1,Helios | |||
|- | |||
|万集 | |||
|WLR720 | |||
|} | |||
雷达驱动可在开发站下载:[https://dev.lessokaji.com/index.php?PHPSESSID=p70a3knelida520lh61225h1f4&board=3.0 传感器/功能插件] | |||
== 4.2 2D激光雷达驱动 == | |||
Medulla启动时自动读取同目录下的startup.iocmd,根据指令启动驱动,举例如下。<syntaxhighlight lang="javascript" line="1"> | |||
// 指令使用类JavaScript语法。 | |||
// 加载CartActivator.dll,作为WinMedulla加载器。 | |||
loader = io load plugins/CartActivator.dll | |||
// 加载前激光雷达驱动,以SICK nano3为例。 | |||
// frontlidar是激光雷达名称,在WinMedulla的对象列表可见 | |||
frontlidar = io load plugins/sicknano.dll | frontlidar = io load plugins/sicknano.dll | ||
// 设置前雷达测量距离:50mm内忽略,最大测距20, | // 设置前雷达测量距离:50mm内忽略,最大测距20,000mm。 | ||
frontlidar setMaskDist 50 20000 | frontlidar setMaskDist 50 20000 | ||
// 前雷达驱动监听6060端口(SICK | // 前雷达驱动监听6060端口(SICK SOPAS配置nano3,使用UDP单播,目标端口6060)。 | ||
frontlidar Start 6060 | frontlidar Start 6060 | ||
// 前雷达正装。如果是倒装雷达,则setMirror为true(雷达倒装后,扫描顺序颠倒)。 | // 前雷达正装。如果是倒装雷达,则setMirror为true(雷达倒装后,扫描顺序颠倒)。 | ||
| 第71行: | 第322行: | ||
// 加载Medulla控制台,并显示。 | // 加载Medulla控制台,并显示。 | ||
// Ubuntu环境则注释以下两行,改用 :8007/simple.html 监控页面 | |||
ui=io load plugins\WinMedulla.dll | ui=io load plugins\WinMedulla.dll | ||
ui Show | ui Show | ||
</syntaxhighlight> | </syntaxhighlight> | ||
修改完startup.iocmd后,启动Medulla.exe,出现WinMedulla主窗口。 | |||
[[文件:Image-20240521150404636.png|无框|590x590像素]] | |||
'''图 4-2 查看前激光雷达的数据''' | |||
WinMedulla是Medulla控制台,在左侧对象列表中可见刚配置的frontlidar。如果驱动工作正常,则可见窗体中间的数据在变化,说明已收到雷达数据。点击窗体右侧的“view”按钮,弹出点云监控窗口,使用鼠标滚轮缩放,鼠标中键按压拖动,检查点云是否与雷达观测一致。<blockquote>备注:由于Mono不支持WinForm,因此Ubuntu环境下改用:8007/simple.html监控Medulla运行,激光雷达数据更新时可在页面观察到。由于监控页面不能显示点云数据,因此在首次使用Medulla时,建议先用Windows版Medulla熟悉激光雷达输出点云,掌握Medulla的激光雷达应用后再切到Ubuntu环境。</blockquote> | |||
== 4.3 3D激光雷达驱动 == | |||
3D激光雷达驱动使用与2D激光雷达相同。 | |||
= 5. 配置Detour = | |||
Detour配置可分为三步:部署激光雷达、标定激光雷达外参,启用激光里程计。 | |||
对于潜伏车型,激光雷达一般安装在车头/车尾或对角,不在底盘运动中心上;对于单舵轮底盘(比如叉车),也是如此(运动中心在两个从动轮连线中心)。为了把激光雷达(逻辑上)移动到底盘运动中心,使观测中心与运动中心重合,以便运动控制算法根据当前位姿跟踪轨迹。我们需要知道激光雷达安装在车体的那个位置,这就是“部署激光雷达”步骤,使用车体编辑器把激光雷达放到底盘上。然后调整激光雷达外参,使其“移动”到底盘运动中心,这就是“标定激光雷达外参”,通过激光雷达参数配置执行。标定完成后就可以启动激光里程计,使用激光SLAM输出的实时位姿。<blockquote>注意:'''激光SLAM有其能力边界'''。如果您首次使用激光SLAM,建议阅读【[[激光SLAM能力边界]]】。</blockquote> | |||
== 5.1 部署激光雷达 == | |||
启动Detour,在“概况”页面上点击”车体布局“的“编辑”按钮,打开车体编辑器。 | |||
[[文件:Image-20240611101435344-8072077.png|无框|803x803像素]] | |||
'''图 5-1 车体编辑器''' | |||
激光雷达安装在底盘之上(我们把AMR抽象为底盘),因此先要编辑底盘,如下图所示。 | |||
[[文件:Image-20240618140148287.png|无框|588x588像素]] | |||
'''图 5-2 选择底盘''' | |||
鼠标点击底盘内空白处选择。本例的属性列表可见该底盘W750L1200,contour是构成矩形底盘的4个角的坐标。对于矩形底盘,在修改长宽后,可直接修改contour的坐标值。对于多边形底盘,使用“动作”标签的“重绘轮廓“,使用鼠标左键依次点击创建底盘轮廓。<blockquote>注意:Detour会过滤底盘轮廓之内的点云。在重绘底盘后,应在“概况”页面观察AMR图标附近是否有车体造成点云(噪音),如有则适当扩大底盘轮廓。这种车体与激光雷达干涉造成的噪音点必须清除,否则会干扰建图和定位。</blockquote>点击车体编辑器的“添加”按钮,在下拉菜单中选择激光雷达类型,然后点击菜单下方的车体布局的激光雷达安装位置,新增一个激光雷达。 | |||
[[文件:Image-20240611101655915-8072217.png|无框|584x584像素]] | |||
'''图 5-3 增加菜单的传感器类型''' | |||
“添加”菜单中的激光雷达类型如下表: | |||
{| class="wikitable" | |||
!类型 | |||
!用途 | |||
|- | |||
|单线激光雷达 | |||
|即2D激光雷达,只有一个0度的扫描平面,适用于室内导航场景。 | |||
|- | |||
|同步多2D雷达拼接 | |||
|用于把多个2D激光雷达测量数据拼接为一个,适用于单个2D激光雷达视野不足,用2个激光雷达拼接以形成全向视野场景。 | |||
|- | |||
|3D激光雷达 | |||
|一般为16、32线的多线激光雷达,在垂直方向以不同角度扫描,形成立体点云,适用于室外导航(包括避障)场景。 | |||
|- | |||
|二向化3D雷达 | |||
|把3D雷达测量数据二向化为具备空间特征的二向化数据,供SLAM算法使用。(3D激光雷达都要二向化后使用) | |||
|} | |||
[[文件:Image-20240611102403514.png|无框|636x636像素]] | |||
'''图 5-3 激光雷达的安装位置外参''' | |||
选择新增的激光雷达,属性列表中的x、y、th就是其安装位姿,x & y可根据车体机械设计图参数填入,th根据激光雷达手册提供的参数填入。Detour使用右手坐标系,+X轴为食指方向,+Y轴为中指方向,+Z为大拇指方向,th就是激光雷达相对于+X轴的角度。对于3D激光雷达,z是雷达安装高度,根据车体机械设计图参数填入。 | |||
激光雷达的命名风格如下: | |||
{| class="wikitable" | |||
!名称 | |||
!用途 | |||
|- | |||
|frontlidar | |||
|安装在车头的激光雷达,一般是第一个雷达。 | |||
|- | |||
|backlidar | |||
|安装在车尾的激光雷达,一般是第二个雷达。 | |||
|- | |||
|midlidar | |||
|拼接frontlidar & backlidar后的“中”雷达,位于车体中心,坐标为 ( x: 0, y: 0, th:0 )。 | |||
|} | |||
=== 5.1.1 3D激光雷达 === | |||
3D激光雷达能够提供三维空间特征,这是它与2D雷达不同之处。所谓“二向化3D雷达“,是把空间特征投影为2D,因此需要配置相关参数。 | |||
打开车体编辑器,选择要设置的二向化3D雷达,以下图为例。 | |||
[[文件:Image-20240618120022183.png|无框]] | |||
'''图 5-5 二向化3D雷达相关参数''' | |||
{| class="wikitable" | |||
!参数 | |||
!含义 | |||
!取值建议 | |||
|- | |||
|minVStruct | |||
|垂直结构最小高度。墙、树形成的垂直结构形成空间特征。 | |||
|以垂直扫描间隔2度的速腾16线雷达为例,两条相邻扫描线在 30米处的高度差是1046mm(小于这个值的物体只是一个点, 不能形成垂直线段)。如果建图轮廓在30米内,minVStruct=1000(大于1米的垂直结构参与计算)。 | |||
|- | |||
|minScans | |||
|扫描到垂直结构的最少扫描线数。 | |||
|与minVStruct配套使用。本例为3,表示长度>1000mm且至少被3条线扫描到的垂直结构可用于计算。 | |||
|- | |||
|Zfadout | |||
|垂直结构距离0度扫描平面的距离。 | |||
|越靠近0度扫描线的垂直结构,其计算权重越高。与0度扫描线 相交的垂直结构,其距离为0。小于Zfadout的垂直结构将被 赋予高权重。 | |||
|- | |||
|scale | |||
|点云缩放比例。 | |||
|对点云计算有影响力的点集中在30米之内,用于室内导航的 2D激光雷达测量距离一般30米以内,在室外则不然。因此 室外场景需要把3D激光雷达的点云尺度做适当缩放,以利 点云配准。一般而言,3D激光雷达的scale=0.5,对应于 60米以内点云,如果距离更远,则scale适当降低。在调整 scale时,底盘尺寸(宽高)和雷达外参(x & y)等比调整, 比如scale=0.5时,底盘尺寸如果是L2000W1000,则改为 L1000W500。调整scale后,遥控AMR自旋,detour输出 位姿应平滑变化,不应出现抖动或大幅跳动现象(这种 现象由于尺度配置错误导致应配准点云被过滤造成)。 | |||
|} | |||
== 5.2 标定激光雷达外参 == | |||
如果您是首次标定激光雷达外参,请顺序阅读以下文章: | |||
* 【[[标定激光雷达外参]]】 | |||
* 【[[标定双激光雷达外参]]】 | |||
== 5.3 启用激光里程计 == | |||
激光雷达测量数据输入激光SLAM算法,通过激光里程计计算,输出为机器人实时位姿。 | |||
[[文件:Image-20240611103919322.png|无框|640x640像素]] | |||
'''图 5-4 激光里程计''' | |||
在“里程计”标签,选择2D激光(odometry_0),其"lidar"字段的值与激光雷达关联。对于使用单激光雷达的车型,一般为"frontlidar"(参考4.1的激光雷达命名风格);对于使用双激光雷达的车型,一般为“midlidar”。 | |||
在“里程计”标签,选择2D激光(odometry_0),其"lidar"字段的值与激光雷达关联。对于使用单激光雷达的车型,一般为"frontlidar"(参考4.1的激光雷达命名风格);对于使用双激光雷达的车型,一般为“midlidar”。 | |||
[[文件:Image- | 查看选中的激光里程计状态,应该为“已启动”,否则点击“启动”按钮。激光里程计数据可在“状态”标签的列表查看。 | ||
= 6. 获取授权证书 = | |||
未授权的Detour可以使用60分钟,供体验Detour功能或测试Detour性能使用,超时后重起Detour可继续使用60分钟。 | |||
如果您已购买Detour授权证书,请按照以下步骤在Auth站注册,然后下载证书。如果您希望购买Detour授权证书,或试用有疑问,请联系懒书科技技术支持唐工(13501683672,微信同号)咨询。 | |||
# 浏览器打开:<nowiki>https://auth.lessokaji.com/login</nowiki> | |||
# 点击“Register”链接以注册账号。请不要使用简单密码(比如1234之类),以保护您的数字资产安全。 | |||
# 注册后通知懒书科技,等待设置证书数量。 | |||
在需要授权的工控机上启动Detour,复制“概况”标签下方的“DeviceID”。 | |||
[[文件:Image-20240611104936877-8074179.png|无框|821x821像素]] | |||
'''图 6-1 授权信息的DeviceID''' | |||
如果您使用DetourLite,请从DetourLite的控制台输出获取DeviceID,如图6-2所示。 | |||
[[文件:Image-20240611122507804-8079908.png|无框|801x801像素]] | |||
'''图 6-2 DetourLite的Device ID''' | |||
登入Auth站,选择Inventory的"MDCS2-license"。<blockquote>注意:MDCS-license将被废弃,请勿使用!</blockquote> | |||
[[文件:Image-20240611105143316-8074306.png|无框|546x546像素]] | |||
'''图 6-3 选择MDCS2授权证书''' | |||
点击“Activate”按钮,输入Device ID"。以图5-1为例,DeviceID是"4D222EB2BEE27897",则输入"4D222EB2BEE27897"(没有双引号)。如果是"x2"规格授权,则在DeviceID后加"x2"后缀,比如"4D222EB2BEE27897x2"。<blockquote>提示:授权规格分为"x1"、“x2"。"x1"就是不带后缀的DeviceID。请根据报价单给出的授权规格输入后缀,如有疑问请咨询懒书技术支持工程师。</blockquote>[[文件:Image-20240611105433306-8074474.png|无框|689x689像素]] | |||
'''图 | '''图 6-4 激活设备''' | ||
Description建议使用车型命名,以便管理。比如"{项目编号} - {序号}"。 | |||
填写完毕后,点击“Activate”按钮,把下载的证书文件存入Detour目录(与Detour.exe或DetourLite.exe同级)。重启Detour,此时主界面的“试用版”信息消失,激活成功。 | |||
填写完毕后,点击“Activate”按钮,把下载的证书文件存入Detour目录(与Detour.exe或DetourLite.exe同级)。重启Detour,此时主界面的“试用版”信息消失,激活成功。 | |||
2025年7月2日 (三) 14:18的最新版本
1. 前言
您如果首次使用MDCS,建议阅读【MDCS概述】,在了解MDCS各子系统功能后下载安装Detour。
2. 下载Detour及依赖包
浏览器打开:https://dl.lessokaji.com 。这是MDCS下载站,可下载MDCS(AMR控制全栈软件)发布版。
图 2-1 MDCS下载页面
下载页面由两部分构成:
- 软件包清单。
- 下载按钮(Zip)。
点击软件包名称,展开分类列表,勾选后点击下载按钮,选中软件被打包到一个zip文件下载。
图 2-2 勾选软件清单后下载 以Windows版Detour下载为例,如图2-2,“Selected Files”下是选中软件清单,点击“Zip”按钮打包下载。
以Windows版Detour下载为例,如图2-2,“Selected Files”下是选中软件清单,点击“Zip”按钮打包下载。
3. 安装
Detour与Medulla配套使用。Medulla接收激光雷达发送的测量数据,统一转换格式后通过共享内存发布给Detour。
说明:Windows环境使用Detour.exe,Ubuntu环境使用DetourLite.dll(Detour内核功能)并配套Detour.exe(作为远程客户端)使用。Ubuntu环境通过Mono启动Medulla.exe。
3.1 Windows环境

图 3-1 Windows环境的软件清单
| 模块 | 程序 | 用途 |
|---|---|---|
| Detour | Detour.exe | Detour主程序 |
| Medulla2 | Medulla2.exe | Medulla2主程序 |
| LidarControler.dll | 激光雷达控制器,部署在medulla的plugins子目录下(下同) |
说明:Medulla2 & Detour运行在Windows 10以上版本,依赖 .netframework 4.8 Download .NET Framework 4.8 | Free official downloads (microsoft.com) 。
建议把Detour和Medulla存放在MDCS目录下,以便管理。MDCS目录所在分区至少有80G空闲容量,用于存储Detour和Medulla运行时生成的日志文件和配置数据。
Medulla的目录结构如下:
D:\work\Playground\mdcs\Medulla 的目录
2024/06/18 10:14 <DIR> .
2024/06/18 10:14 <DIR> ..
2024/06/13 08:18 3,420,672 Camera3D.dll // 3D相机控制器,只用激光SLAM时不需要
2024/06/13 08:18 643,072 CartActivator.dll // 底盘驱动加载器
2024/06/13 16:39 <DIR> diagnosis // 运行时日志目录
2024/06/13 08:18 854,016 LidarController.dll // 激光雷达控制器
2024/05/21 13:00 3,335,168 MDCSToolBox.dll // 工具箱,只用激光SLAM时不需要
2024/06/13 08:18 2,609,152 Medulla.exe // 主程序,Ubuntu用mono启动
2024/05/21 13:00 14,544 Medulla.sys // 主程序库
2024/06/13 08:18 752,128 NetRemote.exe // 底盘遥控器,只用激光SLAM时不需要
2024/06/13 16:20 <DIR> plugins // 底盘驱动目录,激光雷达驱动存在此
2024/05/21 13:00 1,646 remoteconf.json // 底盘遥控器配置文件
2024/06/13 16:20 192 startup.iocmd // 自动加载驱动脚本
2024/06/13 08:18 758,784 USBCamera.dll // USB相机控制器,只用激光SLAM时不需要
2024/06/13 08:18 1,715,712 WinMedulla.dll // Medulla控制台库
Detour的目录结构如下:
D:\work\Playground\mdcs\Detour 的目录
2024/06/18 09:23 <DIR> .
2024/06/18 09:23 <DIR> ..
2024/06/17 09:05 142,640 critical.log // 错误日志
2024/06/13 10:54 152,167,424 cufft64_10.dll // 库
2024/06/13 10:54 226,816 cufftw64_10.dll // 库
2024/06/13 10:54 127,488 d2dlib64.dll // 库
2024/06/17 09:05 5,914,624 Detour.exe // 主程序
2024/06/18 09:28 5,744 detour_127.0.0.1.json // 作为客户端连接远程DetourLite时
// 自动下载的DetourLite配置文件,
// detour_{detour_lite_ip}.json
2024/06/13 10:54 <DIR> log // 日志目录
2024/06/13 10:54 53,050,368 OpenCvSharpExtern.dll // 库
2024/06/13 10:54 735,744 regcore_cuda.dll // 库
2024/06/18 09:28 154,166 tmpmap.2dlm // *.2dlm是激光地图文件
生产环境需要自动启动Medulla & Detour,且要监控并重启异常退出的进程,我们配套了看门狗程序Wawa,详见【看门狗Wawa使用说明】。
3.2 Ubuntu环境
图 3-2 Ubuntu环境下的软件清单
| 模块 | 程序 | 用途 |
|---|---|---|
| Detour | DetourLite | DetourLite是Detour内核功能,依赖DotNetCore,与Windows版Detour(作为远程客户端)配套使用。 |
| DetourLiteDepends | DetourLite的依赖库,解压后放到DetourLite目录。 | |
| libOpenCvSharpExtern | OpenCV依赖库,根据目标系统处理器架构选择arm64 / x64。 | |
| GDI+(可选) | 如果使用DetourLite的/getMapPng接口,则要安装GDI+库(sudo apt-get install -y libgdiplus)。 | |
| Medullar | Medulla.exe | Medulla主程序,依赖Mono。 |
| LidarControler.dll | 激光雷达控制器,部署在medulla的plugins子目录下(下同) | |
| WinMedulla.dll | Medulla库。 | |
| CartActivator.dll | 插件加载器。 |
3.2.1 安装Medulla
注意:应使用Ubuntu 16、18或20,截止2024年6月,Mono官方支持的Ubuntu最高版本是20.04,Medulla & DetourLite在这3个发布版做过充分测试。
参考Mono官网指南安装Mono。安装完毕后使用"mono --version"核对其版本,应是6.12以上,如下。
Mono JIT compiler version 6.12.0.200 (tarball Tue Jul 11 21:34:53 UTC 2023)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
Interpreter: yes
LLVM: yes(610)
Suspend: hybrid
GC: sgen (concurrent by default)
Medulla使用.netframework 4.8开发,在Ubuntu使用Mono启动。Mono是.NET Framework的开源实现,由微软赞助。请根据官网指南 Download - Stable | Mono (mono-project.com) 安装。 使用mono启动Medulla:
$ mono Medulla.exe
Lessokaji Medulla Version 1.2.0.3961, 64bit
Main Thread ID: 1
Medulla starting up...
Medulla command ready
Initialize Shared Objects for program Medulla
Mono or Linux which doesn't support named MMF, use file.
Create Shared Object dumplog
SO>> Exist dumplog:6579279
Initialize Diagnosis cache
Run on Mono or Linux which doesn't support named MMF, use file.
initializing io object
Create Shared Object mse
SO>> Exist mse:6581375
MSE engine initialized
run startup.iocmd script...
$: loader = io load CartActivator.dll
[IO] Loading Library CartActivator.dll...
Costura attach required assemblies for CartActivator.dll...
$: frontlidar = io load plugins/sicknano.dll
[IO] Loading Library plugins/sicknano.dll...
$: frontlidar setMaskDist 50 20000
$: frontlidar Start 6060
$: frontlidar setMirror false
$: ui=io load WinMedulla.dll
[IO] Loading Library WinMedulla.dll...
Costura attach required assemblies for WinMedulla.dll...
Starting HTTP Server, STM
HTTP Server listen on http://*:8007/
Medulla启动后在8007端口启动Web端口,可用浏览器访问 http://192.168.100.100:8007/simple.html (假设Medulla所在工控机的IP是192.168.100.100),可见Medulla运行状态,如下图所示。
图 3-3 Medulla的监控页面
3.2.2 安装DetourLite
根据微软dotNet官网指南 Download .NET 6.0 (Linux, macOS, and Windows) (microsoft.com) 安装.NET SDK 6.0。
备注:Ubuntu16、18、20的包管理器没有.NET 6源(参见官网指南),因此使用二进制安装,安装后应把dotnet加入PATH环境变量。 假设dotnet安装目录是~/dotnet,则在~/.bashrc加入 export PATH=$PATH:~/dotnet/dotnet 。
使用dotnet启动DetourLite:
dotnet DetourLite.dll
DetourLite不包括UI功能,因此要在Windows上运行Detour(作为客户端),远程连接到DetourLite。
看门狗Wawa也支持Ubuntu,详见【看门狗Wawa使用说明】。
图 3-3 作为远程客户端使用的Detour
客户端Detour连接远程DetourLite步骤:
- 概览标签,选择“使用远程算法核(简单配置)”。
- 填入DetourLite所在主机的IP地址,然后点击“连接”按钮。
- 连接成功后,状态栏会提示“已获取x.x.x.x上的配置文件。
注意:在启动作为客户端的Detour时,必须删除Detour目录下的detour.json,否则Detour会加载本地配置文件,拒绝连接远程Detour。
自2024/6/17后,下载站的Detour.exe支持远程设置DetourLite参数,如果您使用老版本,请升级。
图 3-5 Detour可远程同步的组件参数
Detour可远程同步DetourLite的组件、里程计参数。组件是车体编辑器中的传感器,激光SLAM传感器就是2D/3D激光雷达;里程计是“里程计”标签列表的"odometry_n"(n≥0),包括激光里程计、地纹里程计和轮里程计。
当Detour连接DetourLite后,在Detour配置激光雷达或里程计属性时,Detour更新本地配置副本后同步DetourLite。下面我们详细讲解Detour和DetourLite的协作关系。
DetourLite启动时自动读取同目录的detour.json,如果detour.json包含激光地图文件属性,则自动加载激光地图。观察DetourLite控制台输出可见此过程,如下图所示。
图 3-6 DetourLite启动后的控制台输出
如图3-6所示,DetourLite加载"detour.json",随后加载配置文件中指向的激光地图"mainmap_0618_edit_yh.2dlm"。
Detour连接DetourLite,状态栏提示"load map, but cannot find ...",如下图所示。
图 3-7 远程连接DetourLite时的提示
如果DetourLite未加载激光雷达,Detour提示”读取...远程配置成功“。出现"cannot find map file"提示是因为本地没有激光地图文件。此时有两种处理方法,一是从DetourLtie拷贝激光地图文件到本地,二是使用”单线激光SLAM“标签下”其他功能 / 下载远程图层数据至本机图层“。建议使用方法一。Detour在连接DetourLite后,将其配置读入内存,并在Detour目录下生成"detour_{ip}.json"副本(ip是DetourLite所在PC地址),其图层关联的激光地图文件名称与DetourLite一致,如下图所示。如果使用“加载图层”装入另一个本地激光地图文件,就会同步给DetourLite,导致DetourLite下次启动错误加载不存在激光地图而报错。
图 3-8 DetourLite配置所用的激光地图文件名
由于底盘轮廓不在远程同步范围,因此在项目开始时,应使用Detour在本地编辑好底盘宽高和轮廓(概况 / 车体布局 / 编辑),在车体编辑器中部署激光雷达,然后上传到DetourLite,使用Detour的远程参数同步功能标定雷达外参。
在建图时,如果DetourLite没加载激光地图,则会自动创建。建图完毕后使用“其他功能 / 下载远程图层数据到本地图层”,然后另存为与DetourLite相同的名称,或者从DetourLite目录下载都可以。
4. 配置激光雷达
图 4-1 激光雷达电气原理示例
我们用2D激光雷达来说明配置方法。如图4-1所示,Medulla通过激光雷达驱动(插件)接收2D激光雷达的测量数据,经解码后传给Detour(或DetourLite)。
4.1 兼容激光雷达清单
Medulla支持的激光雷达型号(通过项目实践验证)如下。激光雷达驱动开发请阅读【开发激光雷达驱动】。
2D雷达清单:
| 品牌 | 型号 |
|---|---|
| SICK(西克) | LMS511,nano,S300 |
| P+F(倍加福) | R2000 |
| 万集 | 716,716mini,719 |
| 兴颂 | HE-3051,SE1035 |
| 富瑞 | H1系列 |
3D雷达清单:
| 品牌 | 型号 |
|---|---|
| 觅道(Livox) | Mid70(用于物体识别,不能用于导航),Mid360(非均匀扫描周期,可用于<1m/s的低速导航) |
| 速腾 | M1,Helios |
| 万集 | WLR720 |
雷达驱动可在开发站下载:传感器/功能插件
4.2 2D激光雷达驱动
Medulla启动时自动读取同目录下的startup.iocmd,根据指令启动驱动,举例如下。
// 指令使用类JavaScript语法。
// 加载CartActivator.dll,作为WinMedulla加载器。
loader = io load plugins/CartActivator.dll
// 加载前激光雷达驱动,以SICK nano3为例。
// frontlidar是激光雷达名称,在WinMedulla的对象列表可见
frontlidar = io load plugins/sicknano.dll
// 设置前雷达测量距离:50mm内忽略,最大测距20,000mm。
frontlidar setMaskDist 50 20000
// 前雷达驱动监听6060端口(SICK SOPAS配置nano3,使用UDP单播,目标端口6060)。
frontlidar Start 6060
// 前雷达正装。如果是倒装雷达,则setMirror为true(雷达倒装后,扫描顺序颠倒)。
frontlidar setMirror false
// 加载Medulla控制台,并显示。
// Ubuntu环境则注释以下两行,改用 :8007/simple.html 监控页面
ui=io load plugins\WinMedulla.dll
ui Show
修改完startup.iocmd后,启动Medulla.exe,出现WinMedulla主窗口。
图 4-2 查看前激光雷达的数据
WinMedulla是Medulla控制台,在左侧对象列表中可见刚配置的frontlidar。如果驱动工作正常,则可见窗体中间的数据在变化,说明已收到雷达数据。点击窗体右侧的“view”按钮,弹出点云监控窗口,使用鼠标滚轮缩放,鼠标中键按压拖动,检查点云是否与雷达观测一致。
备注:由于Mono不支持WinForm,因此Ubuntu环境下改用:8007/simple.html监控Medulla运行,激光雷达数据更新时可在页面观察到。由于监控页面不能显示点云数据,因此在首次使用Medulla时,建议先用Windows版Medulla熟悉激光雷达输出点云,掌握Medulla的激光雷达应用后再切到Ubuntu环境。
4.3 3D激光雷达驱动
3D激光雷达驱动使用与2D激光雷达相同。
5. 配置Detour
Detour配置可分为三步:部署激光雷达、标定激光雷达外参,启用激光里程计。
对于潜伏车型,激光雷达一般安装在车头/车尾或对角,不在底盘运动中心上;对于单舵轮底盘(比如叉车),也是如此(运动中心在两个从动轮连线中心)。为了把激光雷达(逻辑上)移动到底盘运动中心,使观测中心与运动中心重合,以便运动控制算法根据当前位姿跟踪轨迹。我们需要知道激光雷达安装在车体的那个位置,这就是“部署激光雷达”步骤,使用车体编辑器把激光雷达放到底盘上。然后调整激光雷达外参,使其“移动”到底盘运动中心,这就是“标定激光雷达外参”,通过激光雷达参数配置执行。标定完成后就可以启动激光里程计,使用激光SLAM输出的实时位姿。
注意:激光SLAM有其能力边界。如果您首次使用激光SLAM,建议阅读【激光SLAM能力边界】。
5.1 部署激光雷达
启动Detour,在“概况”页面上点击”车体布局“的“编辑”按钮,打开车体编辑器。
图 5-1 车体编辑器
激光雷达安装在底盘之上(我们把AMR抽象为底盘),因此先要编辑底盘,如下图所示。
图 5-2 选择底盘
鼠标点击底盘内空白处选择。本例的属性列表可见该底盘W750L1200,contour是构成矩形底盘的4个角的坐标。对于矩形底盘,在修改长宽后,可直接修改contour的坐标值。对于多边形底盘,使用“动作”标签的“重绘轮廓“,使用鼠标左键依次点击创建底盘轮廓。
注意:Detour会过滤底盘轮廓之内的点云。在重绘底盘后,应在“概况”页面观察AMR图标附近是否有车体造成点云(噪音),如有则适当扩大底盘轮廓。这种车体与激光雷达干涉造成的噪音点必须清除,否则会干扰建图和定位。
点击车体编辑器的“添加”按钮,在下拉菜单中选择激光雷达类型,然后点击菜单下方的车体布局的激光雷达安装位置,新增一个激光雷达。
图 5-3 增加菜单的传感器类型
“添加”菜单中的激光雷达类型如下表:
| 类型 | 用途 |
|---|---|
| 单线激光雷达 | 即2D激光雷达,只有一个0度的扫描平面,适用于室内导航场景。 |
| 同步多2D雷达拼接 | 用于把多个2D激光雷达测量数据拼接为一个,适用于单个2D激光雷达视野不足,用2个激光雷达拼接以形成全向视野场景。 |
| 3D激光雷达 | 一般为16、32线的多线激光雷达,在垂直方向以不同角度扫描,形成立体点云,适用于室外导航(包括避障)场景。 |
| 二向化3D雷达 | 把3D雷达测量数据二向化为具备空间特征的二向化数据,供SLAM算法使用。(3D激光雷达都要二向化后使用) |
图 5-3 激光雷达的安装位置外参
选择新增的激光雷达,属性列表中的x、y、th就是其安装位姿,x & y可根据车体机械设计图参数填入,th根据激光雷达手册提供的参数填入。Detour使用右手坐标系,+X轴为食指方向,+Y轴为中指方向,+Z为大拇指方向,th就是激光雷达相对于+X轴的角度。对于3D激光雷达,z是雷达安装高度,根据车体机械设计图参数填入。
激光雷达的命名风格如下:
| 名称 | 用途 |
|---|---|
| frontlidar | 安装在车头的激光雷达,一般是第一个雷达。 |
| backlidar | 安装在车尾的激光雷达,一般是第二个雷达。 |
| midlidar | 拼接frontlidar & backlidar后的“中”雷达,位于车体中心,坐标为 ( x: 0, y: 0, th:0 )。 |
5.1.1 3D激光雷达
3D激光雷达能够提供三维空间特征,这是它与2D雷达不同之处。所谓“二向化3D雷达“,是把空间特征投影为2D,因此需要配置相关参数。
打开车体编辑器,选择要设置的二向化3D雷达,以下图为例。
图 5-5 二向化3D雷达相关参数
| 参数 | 含义 | 取值建议 |
|---|---|---|
| minVStruct | 垂直结构最小高度。墙、树形成的垂直结构形成空间特征。 | 以垂直扫描间隔2度的速腾16线雷达为例,两条相邻扫描线在 30米处的高度差是1046mm(小于这个值的物体只是一个点, 不能形成垂直线段)。如果建图轮廓在30米内,minVStruct=1000(大于1米的垂直结构参与计算)。 |
| minScans | 扫描到垂直结构的最少扫描线数。 | 与minVStruct配套使用。本例为3,表示长度>1000mm且至少被3条线扫描到的垂直结构可用于计算。 |
| Zfadout | 垂直结构距离0度扫描平面的距离。 | 越靠近0度扫描线的垂直结构,其计算权重越高。与0度扫描线 相交的垂直结构,其距离为0。小于Zfadout的垂直结构将被 赋予高权重。 |
| scale | 点云缩放比例。 | 对点云计算有影响力的点集中在30米之内,用于室内导航的 2D激光雷达测量距离一般30米以内,在室外则不然。因此 室外场景需要把3D激光雷达的点云尺度做适当缩放,以利 点云配准。一般而言,3D激光雷达的scale=0.5,对应于 60米以内点云,如果距离更远,则scale适当降低。在调整 scale时,底盘尺寸(宽高)和雷达外参(x & y)等比调整, 比如scale=0.5时,底盘尺寸如果是L2000W1000,则改为 L1000W500。调整scale后,遥控AMR自旋,detour输出 位姿应平滑变化,不应出现抖动或大幅跳动现象(这种 现象由于尺度配置错误导致应配准点云被过滤造成)。 |
5.2 标定激光雷达外参
如果您是首次标定激光雷达外参,请顺序阅读以下文章:
5.3 启用激光里程计
激光雷达测量数据输入激光SLAM算法,通过激光里程计计算,输出为机器人实时位姿。
图 5-4 激光里程计 在“里程计”标签,选择2D激光(odometry_0),其"lidar"字段的值与激光雷达关联。对于使用单激光雷达的车型,一般为"frontlidar"(参考4.1的激光雷达命名风格);对于使用双激光雷达的车型,一般为“midlidar”。
在“里程计”标签,选择2D激光(odometry_0),其"lidar"字段的值与激光雷达关联。对于使用单激光雷达的车型,一般为"frontlidar"(参考4.1的激光雷达命名风格);对于使用双激光雷达的车型,一般为“midlidar”。
查看选中的激光里程计状态,应该为“已启动”,否则点击“启动”按钮。激光里程计数据可在“状态”标签的列表查看。
6. 获取授权证书
未授权的Detour可以使用60分钟,供体验Detour功能或测试Detour性能使用,超时后重起Detour可继续使用60分钟。
如果您已购买Detour授权证书,请按照以下步骤在Auth站注册,然后下载证书。如果您希望购买Detour授权证书,或试用有疑问,请联系懒书科技技术支持唐工(13501683672,微信同号)咨询。
- 浏览器打开:https://auth.lessokaji.com/login
- 点击“Register”链接以注册账号。请不要使用简单密码(比如1234之类),以保护您的数字资产安全。
- 注册后通知懒书科技,等待设置证书数量。
在需要授权的工控机上启动Detour,复制“概况”标签下方的“DeviceID”。
图 6-1 授权信息的DeviceID
如果您使用DetourLite,请从DetourLite的控制台输出获取DeviceID,如图6-2所示。
图 6-2 DetourLite的Device ID
登入Auth站,选择Inventory的"MDCS2-license"。
注意:MDCS-license将被废弃,请勿使用!
图 6-3 选择MDCS2授权证书
点击“Activate”按钮,输入Device ID"。以图5-1为例,DeviceID是"4D222EB2BEE27897",则输入"4D222EB2BEE27897"(没有双引号)。如果是"x2"规格授权,则在DeviceID后加"x2"后缀,比如"4D222EB2BEE27897x2"。
提示:授权规格分为"x1"、“x2"。"x1"就是不带后缀的DeviceID。请根据报价单给出的授权规格输入后缀,如有疑问请咨询懒书技术支持工程师。
图 6-4 激活设备
Description建议使用车型命名,以便管理。比如"{项目编号} - {序号}"。
填写完毕后,点击“Activate”按钮,把下载的证书文件存入Detour目录(与Detour.exe或DetourLite.exe同级)。重启Detour,此时主界面的“试用版”信息消失,激活成功。 填写完毕后,点击“Activate”按钮,把下载的证书文件存入Detour目录(与Detour.exe或DetourLite.exe同级)。重启Detour,此时主界面的“试用版”信息消失,激活成功。


