首页:修订间差异

来自MDCS wiki
跳到导航 跳到搜索
无编辑摘要
标签已被回退 可视化编辑
第1行: 第1行:
[[文件:MDCS-2023.png|缩略图|159x159像素|MDCS logo 2023]]
'''<big>MDCS</big>'''是''<big>移动机器人开发平台软件</big>'',软件架构如图1-1所示。
MDCS is a robot fleet developing platform, including the following components:


'''[[Medulla]]''': Efficient hardware communication and control platform.
[[文件:MDCS架构.png|无框|652x652像素]]


[[Detour简介|'''Detour''']]: Positioning system, built-in Lidar and Visual SLAM
'''图 1-1 MDCS架构'''


Clumsy: Robot movement instruction platform, built-in typical movements for AGV/AMR.
MDCS由四个子系统构成:


Simple: Robot fleet management including traffic control system.
* '''S(imple)'''是AMR舰队管控程序。实现AMR管理与监控、管控地图编辑、路线规划、任务编译、交通管制等管控内核特性。通过插件机制支持二次开发,以满足项目定制需求。
* '''C(lumsy)'''是AMR自动驾驶程序。实现任务执行、轨迹跟踪、运动控制、目标识别和局部路径规划等自动驾驶特性,支持多种类型底盘,无论是单舵轮底盘,或是四驱动轮重载底盘,都是开箱即用。更可通过插件机制开发新型底盘,满足从单车控制到多车联动的作业场景。
* '''D(etour)'''是AMR定位导航程序。实现激光SLAM、地纹SLAM、天花板SLAM、二维码定位等定位导航功能。多里程计融合功能可融合异构里程计数据,比如融合激光SLAM与轮里程计,或者融合激光SLAM、轮里程计和GNSS RTK(卫星导航)数据,输出最优里程计位姿,使AMR足以应对复杂环境挑战。
* '''M(edulla)'''是AMR硬件通信与控制程序。实现传感器(2/3D激光雷达,3D相机,地纹相机,二维码相机,避障雷达,等等)与驱动器(电机 & 电机驱动器)的通信与控制能力。实现主流品牌的传感器与驱动器驱动,如国外主流品牌SICK、倍加福、CFR、Curtis等;国内主流品牌万集、速腾、兴颂、步科等。通过插件机制支持驱动开发与集成。


CycleGUI: Cycle based GUI framework, use co-routine to host GUI in an immediate-mode fashion. the co-routine is invoked only when a GUI refresh is needed.


== 基本概念介绍 ==
Clumsy、Detour和Medulla运行在下位机(嵌入式工控机),使用共享内存机制实现进程间高速通信。下位机推荐使用Windows10+操作系统,以便利用Windows生态丰富的工具,也支持Ubuntu16+。Simple通过HTTP向Clumsy发送任务及更新AMR状态,运行在Windows10+。
定位:AGV的定位是由独立模块【Detour】完成。Detour支持激光雷达和视觉的各类SLAM算法,包括[[具有高鲁棒性的激光SLAM算法|具有高鲁棒性的2D激光SLAM算法]]、[[地纹SLAM]]、[[天花板SLAM]]、[[二维码识别导航|二维码导航]]等,支持[[多定位源的自动综合]]。Detour可以使用Medulla提供的数据来源、也可以自行获取。整套MDCS实施时一般使用Medulla提供的数据来源。


AGV车载功能定义系统:由Medulla(硬件抽象逻辑)、Clumsy(车体运动抽象)组成;二者原理见[[车体抽象原理]]。Medulla+Clumsy可实现各类车体动作,最简单诸如[[巡线行走]]、[[绕障行走]]等,复杂一些的例子如[[自动识别工位并取放货]]、[[自动识别托盘取放货]]、[[识别料框并堆垛拆垛]]、[[联动天眼系统进行装卸车]]等。车载软件定义了AGV的能力集以及测试方法,并可由调度软件做动作组合从而完成整套任务。


调度:交管、包络、寻路等内核算法由SimpleCore提供,其原理参见[[调度内核运行原理|内核运行原理]],SimpleCore提供编程接口使得用户可对具体车型或业务场景设置包络。对调度的运行原理参见:[[AGV任务运行逻辑]] 。MDCS提供一个简单的壳层称为SimpleComposer,其提供UI和基础的车辆通信定义,在此之上还支持插件进一步定义车辆具体细节和业务逻辑。
对于使用非MDCS架构的下位机,比如只需Detour输出位姿的应用场景,可通过Detour Web API访问Detour数据。如果下位机应用基于ROS架构实现,则可以开发ROS适配节点,把Detour Web API数据发布到"/pose"话题。
 
 
如果您需要快速了解MDCS各子系统功能,请阅读以下链接:
 
* Simple
* Clumsy
* [[Detour简介|Detour]]
* Medulla
 
以下是应用MDCS开发的一些典型案例:
 
* (单激光雷达)潜伏式牵引AGV
* (双激光雷达)涂装车身搬运AGV
* (单激光雷达 + IMU轮里程计)潜伏式举升AMR
* 双车联动搬运
* 异构双车联动
* 料框堆叠叉车
* 室外搬运车


== 快速开始 ==
== 快速开始 ==

2024年6月6日 (四) 14:53的版本

MDCS移动机器人开发平台软件,软件架构如图1-1所示。

图 1-1 MDCS架构

MDCS由四个子系统构成:

  • S(imple)是AMR舰队管控程序。实现AMR管理与监控、管控地图编辑、路线规划、任务编译、交通管制等管控内核特性。通过插件机制支持二次开发,以满足项目定制需求。
  • C(lumsy)是AMR自动驾驶程序。实现任务执行、轨迹跟踪、运动控制、目标识别和局部路径规划等自动驾驶特性,支持多种类型底盘,无论是单舵轮底盘,或是四驱动轮重载底盘,都是开箱即用。更可通过插件机制开发新型底盘,满足从单车控制到多车联动的作业场景。
  • D(etour)是AMR定位导航程序。实现激光SLAM、地纹SLAM、天花板SLAM、二维码定位等定位导航功能。多里程计融合功能可融合异构里程计数据,比如融合激光SLAM与轮里程计,或者融合激光SLAM、轮里程计和GNSS RTK(卫星导航)数据,输出最优里程计位姿,使AMR足以应对复杂环境挑战。
  • M(edulla)是AMR硬件通信与控制程序。实现传感器(2/3D激光雷达,3D相机,地纹相机,二维码相机,避障雷达,等等)与驱动器(电机 & 电机驱动器)的通信与控制能力。实现主流品牌的传感器与驱动器驱动,如国外主流品牌SICK、倍加福、CFR、Curtis等;国内主流品牌万集、速腾、兴颂、步科等。通过插件机制支持驱动开发与集成。


Clumsy、Detour和Medulla运行在下位机(嵌入式工控机),使用共享内存机制实现进程间高速通信。下位机推荐使用Windows10+操作系统,以便利用Windows生态丰富的工具,也支持Ubuntu16+。Simple通过HTTP向Clumsy发送任务及更新AMR状态,运行在Windows10+。


对于使用非MDCS架构的下位机,比如只需Detour输出位姿的应用场景,可通过Detour Web API访问Detour数据。如果下位机应用基于ROS架构实现,则可以开发ROS适配节点,把Detour Web API数据发布到"/pose"话题。


如果您需要快速了解MDCS各子系统功能,请阅读以下链接:

以下是应用MDCS开发的一些典型案例:

  • (单激光雷达)潜伏式牵引AGV
  • (双激光雷达)涂装车身搬运AGV
  • (单激光雷达 + IMU轮里程计)潜伏式举升AMR
  • 双车联动搬运
  • 异构双车联动
  • 料框堆叠叉车
  • 室外搬运车

快速开始

对于主要关注导航的读者,可以阅读:下载并部署Detour安装Detour。使用导航时需要注意:标定激光雷达外参、以及标定双激光雷达外参

对于需要做整车适配的读者,可以阅读:MDCS引擎适配机器人入门教学叉车适配案例潜伏顶升车(KIVA类小车)适配案例全向车适配案例牵引车适配案例

使用手册

通识和入门教学

MDCS-Walkthrough

使用手册 - MDCS简介

定位导航相关手册

使用手册 - 定位导航

使用手册 - 激光SLAM+反光板建图手册

使用手册 - 分析定位问题

使用手册 - 激光+纹理导航

使用手册 - Detour车体编辑器使用教学

使用手册 - 双雷达标定手册

使用手册 - 在地纹导航中使用二维码快速找回定位

使用手册 - 同时使用激光、地温、二维码、轮编里程计和IMU进行鲁棒定位

运动控制使用手册

使用叉车自动取托盘功能

使用自动对准料架功能

使用叉车料架堆叠功能

色带和磁条导航

纯二维码导航

调度相关手册

使用手册 - 车队管控

使用手册 - routing字段:设置车辆必经点(必不经点)逻辑

使用手册 - Simple:从使用到开发

使用手册 - Simple:coder(路径编译器)机制详解

使用手册 - Simple:包络如何定义

使用手册 - MDCS软件部署方法介绍

使用手册 - Simple软件文件管理标准化作业

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

使用手册 - MDCS适配详细说明

使用手册 - Simple图层合并手册

使用手册 - 寻路启发器功能

使用手册 - 更多交管细节用法

使用手册 - 劫持用法(用于中途更改路线)

杂项

如何查看工控机性能以及功耗墙

使用手册 - 数据录制与回放手册

使用手册 - Linux MDCS部署&配置&操作说明

二次开发相关说明

如何适配新的雷达

如何使用CycleGUI快速开发UI界面

如何使用LessokajiWeaver的多语言功能

开发手册 - 轨迹跟踪

开发手册 - 目标跟踪

开发手册 - SimpleComposer界面开发 - CAD工具

使用手册 - Medulla:相机使用方法 Camera Data Access Guide

FAQ & Cheat sheet

待整理的杂项内容

技术报告

  • MDCS架构
    • Medulla软件架构
    • Detour软件架构
      • Detour激光SLAM算法详解
      • Detour地面纹理SLAM算法详解
    • Simple软件架构
  • LessokajiWeaver编译后处理工具
  • CycleGUI

接口

Medulla

Detour

Clumsy

Simple

术语和约定

MDCS开发通用约定

定位导航

MDCS参数表:Medulla

MDCS参数表:Detour

MDCS参数表:Clumsy

MDCS参数表:Simple

特殊技术方案

当前MDCS的特殊技术方案包括:托盘识别双车/多车联动汽车面差检测天眼系统自动装卸车应用复合卷料机械手叉车清洁机器人设备跟随联动。其它技术方案还在进一步补充中。

链接