使用手册 - MDCS适配流程说明

来自MDCS wiki
Artheru讨论 | 贡献2024年10月11日 (五) 01:02的版本 →‎配置流程
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

配置流程

MedullaAdapter车体适配-目录

• {ModelName}Cart.cs • 定义车体信号(AsUpperIO、AsLowerIO、IOObjectMonitor),重载Init • 若干Routine.cs • 通常包括MotorRoutine、IORoutine、BatteryRoutine等 • 通信协议文件(PLC、ModBus、CAN等) • {ModelName}Remote.cs • 遥控器,用于测试运动控制是否正确(控制权限相当于Clumsy)

MedullaAdapter车体适配

• {ModelName}Cart.cs • 重载Init()函数:初始化时调用,通常对通信接口进行初始化 • 定义以下public member: • AsUpperIO:上位向硬件发送的信号 • AsLowerIO:硬件向上位发送的信号 • IOObjectMonitor:其他通信协议中包含的信号,无需与上位交互


• 若干Routine.cs • 重载Operation()函数:指定scanInterval,以该周期重复执行 Operation中读写信号的代码

• {ModelName}Remote.cs • 重载Operation()函数:使用Throttle、DPad、Button等预定义好 的遥控器元件,实现对车体信号的遥控逻辑。可使用Medulla内 置的remote简单遥控器界面,也可以使用NetRemote界面

Detour建图

• 里程计->添加里程计->2D激光 Odometry_0->启动 • 单线激光SLAM->添加图层->mainmap->闭环检测开启->建图模式 • 概览->车体布局->编辑->选中单线雷达frontlidar->根据实际雷达更 改以下参数: • angleSgn:1为逆时针,-1为顺时针 • endAngle:扫描结束角度 • rangeStartAngle:有效扫描角度起始位置 • rangeEndAngle:有效扫描角度结束位置 • x,y,th:相对于轮轴中心的偏移量 • 在场地中移动车辆 • 完成建图后: • 单线激光SLAM->mainmap->另存图层 • 主菜单->导航配置->保存


ClumsyAdapter运动适配-目录

• {ModelName}cDef.cs • 定义车体信号(AsUpperIO、AsLowerIO),重载Init、DriveStop • Movements.cs • 定义“单元动作”的集合,并实现对应的UI测试按钮 • {ModelName}Config.cs • 运动参数 • AGV.cs • 对接调度系统的接口(若干函数)

• {ModelName}cDef.cs • 重新声明C中需要用到的信号 • 声明静态成员self • 重载Init()函数:初始化时调用。一般需写self = this; ClumsyLib.Capture(); • 定义Drive类型,重载Write()函数。例如DifferentialWriterClass,WriteLR • 重载DriveStop()函数:刹车时调用的函数 ClumsyAdapter运动适配

• Movements.cs • 定义“单元动作”MovementDefinition。主要是重载Get()函数 (Generator Function,返回迭代器) • 定义“动作测试按钮”MovementTest。重载Test()函数和TestStop() 函数


• AGV.cs • 定义若干函数,对应Simple调度时下发的动作命令。主要使用 Movements.cs中定义的“单元动作”MovementDefinition

Simple建图

• 添加车辆 • 将车开至业务站点所在位置,在UI上对应位置添加站点 • 添加路径,连接站点 • 编辑站点、路径的属性(与AMRScene中SiteFields和TrackFields对 应) • 编辑Simple上的车辆属性(speed等)

AMRScene业务场景适配

• {ModelName}Car.cs • 定义SiteFields和TrackFields • 定义若干TemplateTrackCoderSettings • 定义若干TemplateSiteCoderSettings • 其中: • priority:值越大者越先检查 • useVerb:定义触发所需满足的条件 • blockVerb:终止符。为true则屏蔽剩下未检查的coder • templateString:满足条件时编译生成的命令

雷达适配

• 雷达驱动类派生于Lidar2DIOObject • 将点云数据整理为LidarPoint2D格式 • th:-180度~180度,逆时针为角度正方向,x轴正方向为0度 • d:距离,单位mm • intensity:强度,0到1 • 提交每帧数据时: • 将数据存至LidarPoint2D[] cachedLidar • 更新scanC(帧号),同时frame += 1 • output()将数据同步至共享内存