Table of Contents | ||
---|---|---|
|
开发流程简介
Excerpt |
---|
SLAMWARE为SLAMTEC推出的,基于RPLIDAR 360°激光雷达的高性能室内定位导航解决方案。以下是一个典型的基于SLAMWARE Core开发机器人底盘的开发过程,该过程分为三个阶段:评估,验证,集成。对于每个阶段里,使用的软件和硬件,都可以在下表中找到详细说明。 |
阶段 | 目标 | 硬件 | 软件 | 备注 |
---|---|---|---|---|
评估 | 评估SLAMWARE功能是否符合用户使用需求 |
| SLAMTEC Robo Studio | 根据传感器数量和评估设备性能强弱的不同,当前评估选择可分为如下几种:
|
验证 | 验证如何集成SLAMWARE 至已有机器人或者是全新开发的机器人 |
|
| SLAMWARE Breakout是一块最小系统开发板。其内部集成了一枚STM32F103VET6处理器作为底盘的主控MCU,且各种外设IO口已分别引出方便集成。 同时针对该块开发板,SLAMTEC提供了参考固件方便集成和开发。 |
集成 | 集成SLAMWARE到机器人中 |
|
| SLAMWARE Core是可以批量订购的导航定位模块产品,采用Mini PCI-E的物理接口和自定义的电气接口。用户可自行设计底盘的主板,集成SLAMWARE Core实现室内定位导航功能。 |
使用SLAMWARE SDP评估
SLAMWARE SDP系列方便客户快速评估SLAMWARE解决方案的性能,同时提供了一个基础平台,可以实现客户原型系统的验证。该系列现有两个不同的型号,两种型号均无需额外进行硬件集成工作,开机后结合Robo Studio软件即可直接体验Slamware方案的性能。
SLAMWARE SDP Mini | SLAMWARE SDP | |
---|---|---|
线稿图 | ||
尺寸(最大直径*高度) | 185mm * 100mm | 400mm * 230 mm |
重量 | 约0.85kg | 约5.1kg |
传感器 |
|
|
优势 |
|
|
劣势 |
|
|
适用场合 |
|
|
使用ZEUS机器人底盘评估
ZEUS是SLAMTEC推出的一款通用服务机器人平台,它集成了SLAMWARE定位导航解决方案,并集成了大量在商用环境中需要具备的结构和功能:
- 电源管理
- 行走机构
- 自动回充
- 超声波传感器
- 防跌落传感器
- 深度摄像头
该平台大大简化了服务机器人产品的开发,缩短了产品从设计走向销售的流程和时间。具体信息,请参考Zeus机器人平台产品页。
系统结构概述
一般来说,机器人可以分成底盘部分和应用层部分。底盘部分主要完成运动,避障等功能,此部分功能较为通用;应用层部分完成业务逻辑,例如语音识别目标点,人脸识别等等,此部分与最终部署场景的业务紧密相关。Slamware解决方案也分成了两个部分,Slamware Core和Slamware SDK。Slamware Core是一块算法硬件模块,位于机器人底盘部分,实现的建立地图,自主导航,实时定位,自动避障,自主回充等功能;Slamware SDK是一组软件库,工作在应用层,提供了相应的接口可以让客户控制底盘,例如移动到指定目标点,获得建立地图,获得当前定位等功能。现在Slamware SDK支持四种主流的应用平台:Windows,Linux,Android,iOS。下面分别对底盘部分和应用层部分集成Slamware解决方案进一步说明。
底盘部分
基于SLAMWARE解决方案的机器人底盘主要由3个部分组成(如下图):激光雷达(RPLIDAR),Slamware Core模块,其他底盘部分(包括底盘控制MCU,传感器,电机控制器等等)。SLAMWARE Core通过Control Bus与底盘控制MCU连接,同时通过LIDAR Bus和激光雷达 进行连接。这是基于SLAMWARE解决方案的机器人最小系统。
Info |
---|
雷达是连接在Slamware Core上的,不是通过机器人底盘MCU再连接到Slamware Core |
硬件集成
硬件集成存在两种方式:
- 基于Slamware Breakout评估板的集成,
- 直接集成Slamware Core。
Info |
---|
推荐在量产产品中使用第二种方式集成,基于Slamware Breakout评估板的集成方式仅适用于原型机或是早期演示用机。因为Breakout评估板仅用于评估验证目的使用,其未经过量产级别的相关测试和认证。 |
SLAMWARE Breakout简介
SLAMWARE Breakout是一款用于快速评估Slamware Core的开发板,它包含了一颗底盘控制器MCU--STM32F103VET6,并将IO口做了分配和定义(见下图)。通过将SLAMWARE Breakout与底盘外设(如传感器,电机驱动器等)连接,即可快速实现一个机器人底盘的硬件原型。
基于Slamware Breakout的集成
基于Slamware Breakout的机器人底盘的型框图如下所示。其主要的集成工作是将Breakout评估板与各种外设连接并控制器工作,具体外设使用客户可根据自身实际需求来决定集成的外设。
- 连接电机驱动电路
- 连接碰撞传感器(选装)
- 连接跌落传感器电路(选装)
- 连接超声波传感器电路(选装)
- 连接自动回充电路(选装)
直接集成SLAMWARE Core
直接集成Slamware Core,需要选择一款底盘控制MCU(如Breakout 上的STM32F103VET6)。该MCU与Slamware Core通过Control Bus进行通信,此外,还会控制电机的运动,采集传感器信息并发送给Slamware Core。客户可以参考
Info |
---|
该MCU和Slamwre Core会保持持续的通信,一旦通信连接断开,Slamware Core在等待一定时间超时后,即认为底盘工作异常,从而停止工作。 |
以下的集成内容并非所有的项目都是必须的,客户可以根据自身实际需求来决定集成的外设。
- 设计电源系统
- 设计RPLIDAR接口
- 设计底盘MCU与SLAMWARE Core
- 连接电机驱动电路
- 连接碰撞传感器(选装)
- 连接跌落传感器电路(选装)
- 连接超声波传感器电路(选装)
- 连接自动回充电路(选装)
结构集成
根据集成方式的选择,需要选择不同的结构固定。Slamware Core模块的机械尺寸及接口尺寸参见数据手册。Breakout评估板的机械尺寸参见数据手册。
固件集成
基于参考固件集成
SLAMTEC提供了一份采用IAR编译器和STM32F103VET6的参考固件,便于客户开发自己的机器人底盘固件。客户可以根据机器人实际状况选择部分外设进行集成,集成步骤如下:
- 机器人配置
- 实现电源管理相关的功能
- 实现运动控制相关的功能
- 实现超声波传感器的功能
- 实现碰撞传感器的功能
- 实现自动回充相关的功能
- 实现Polling Command机制(底盘向SLAMWARE Core发送指令)
- 实现Event Notification机制(SLAMWARE Core通知底盘工作状态)
- 实现健康管理功能
Info |
---|
IAR版本应为7.6或以上 |
基于自有固件集成
对于已经有自有底盘和固件体系的客户,也可以通过自己实现Control Bus Protocol的方式来集成SLAMWARE解决方案:
- 实现Control Bus协议
- 机器人配置
- 实现电源管理相关的功能
- 实现运动控制相关的功能
- 实现超声波传感器的功能
- 实现碰撞传感器的功能
- 实现自动回充相关的功能
- 实现Polling Command机制(底盘向SLAMWARE Core发送指令)
- 实现Event Notification机制(SLAMWARE Core通知底盘工作状态)
- 实现健康管理功能
应用层部分
应用层与底盘的通信连接
应用层部分控制底盘部分需要通过一个高速接口,以便实现大数据量,低延迟,高可靠的传输。SLAMWARE Core使用100Mbps有线以太网实现数据传输,有时,此以太网接口也被称为High Speed Bus。
除了有线以太网接口之外,为了方便研发调试需要,Slamware Core也包含了一个Wifi接口,使得移动设备可以接入,其功能与有线以太网完全一致,但是可靠性较低,如果外部无线网络环境较恶劣,或者距离较远,此网络连接可能中断。
Info |
---|
推荐使用有线网络连接应用层和底盘。针对Android设备网络连接仅能使用一个网卡的问题,可以参考此解决方案。 |
使用Slamware SDK控制底盘
Windows
Windows的用户,我们提供了Windows 32bit的SDK。在Windows上进行集成,有如下的要求:
- 32bit或64bit的Windows
- Visual Studio 2010 with SP1
- 采用32位编译
SLAMWARE Windows SDK支持4种不同的编译方式:
- 动态连接 Debug
- 静态连接 Debug
- 动态连接 Release
- 静态连接 Release
在集成的过程中,主要有如下的步骤
- 编译环境搭建
- 连接、连接管理与自动重连
- 本地数据缓存
- 地图和坐标显示
- 机器人运动控制
Linux
Linux的用户,我们支持如下几种不同的平台和编译器版本:
- armv7hf (带硬件浮点能力的armv7指令集)
- i386(32位x86指令集)
- x86_64(64位x86指令集)
编译器版本:
- gcc 4.6
- gcc 4.8
集成步骤如下:
- 编译环境搭建
- 连接、连接管理与自动重连
- 本地数据缓存
- 地图坐标系定义
- 机器人运动控制
iOS
对于使用iOS的用户,我们提供了原生的Objective-C接口的SDK,集成步骤如下:
- 编译环境搭建
- 连接、连接管理与自动重连
- 本地数据缓存
- 地图坐标系定义
- 机器人运动控制
Android
对于使用Android的客户,我们提供了原生的Java接口的SDK,集成步骤如下:
- 编译环境搭建
- 连接、连接管理与自动重连
- 本地数据缓存
- 地图坐标系定义
- 机器人运动控制
总结
以上就是集成Slamware Core所涉及的主要工作,具体集成过程中的问题,可以参见相关的应用笔记和数据手册。