本页面包含了关于SLAMWARE Kit套件介绍及用法等重要内容,并附有基于HCR平台的设计案例供参考。
本页内容
简介
SLAMWARE 开发套件包含了方便用户对SLAMWARE模块化自主定位导航解决方案进行评估和早期开发所需的配套工具。用户只需将SLAMWARE核心导航模块固定至其接口扩展板SLAMWARE Breakout上,然后将雷达,电源及电脑连接至扩展板对应接口,即可通过配套的图形工具观察结果并进行软硬件开发。
包含组件
- SLAMWARE模块化自主定位导航解决方案的核心模块(简称SLAMWARE核心模块)
基于RPLIDAR提供实时定位和自主导航功能,同时支持串口和以太网交互导航信息。具体规格信息请参考SLAMWRAE Core数据手册。
- SLAMWARE Breakout
SLAMWARE核心模块扩展板,用于提供可直接和A1/A2 雷达,网络,PC,电机及各种传感器等连接通讯的接口,方便用户基于该核心模块进行相关硬件或软件开发。
RPLIDAR A1 或 RPLIDAR A2
用于实现二维平面内一定范围内的360度全方位激光测距扫描,实时产生的所在空间平面点云地图信息可由SLAMWARE核心模块用于实现实时定位和自主导航功能。
基本用法
模组连接
接口示意图
组件连接示意图
连接至电脑
将开发套件连接至PC有多种方式,Breakout上设计了通用网口,可直接通过网线将开发套件连接至PC以方便用户进行调试。而基于实际开发应用的需要,该套件同时支持无线连接,分别有 AP模式及Station模式。下面将基于无线连接对如何连接至PC进行介绍。
AP模式
此模式下,SLAMWARE Core本身作为一个WiFi热点,当用户设备通过Wifi或者有线网络连接该WiFi热点时,会通过DHCP获得一个IP地址,而后通过192.168.11.1来访问设备,此模式为SLAMWARE core出厂的预置模式。
将组件Breakout开关拨动至on,约30秒左右雷达转动表示SLAMWARE 套件启动,通过电脑Wifi 扫描您将看到一个名为SLAMWARE-XXXXXXXXXXXX的SSID,直接连接此SSID即可连上SLAMWARE 套件。自动分配网段为192.168.11.1。
Station 模式
此模式下,SLAMWARE Core本身作为一个WiFI设备,连接到其他的WiFi热点上。同时SLAMWARE Core会自动成为无线网桥,为High Speed Bus上的设备分配IP地址并提供外网访问服务。
您可将SLAMWARE套件配置成Station模式连接外部局域网。具体配置步骤参考下一章节。
AP模式转换为Station模式步骤
- AP模式下,使用电脑连上设备的AP,在Chrome地址栏输入192.168.11.1登录至Portal,需要输入用户名和密码(默认用户名:admin 默认密码: admin111)。之后进入默认的Status页面 >选择右上角Administration菜单>选择左边栏Configurate WiFi选项>选择Scan WiFi Network
- 在打开的如下页面Select Network的下拉选项中选择对应的WiFi
- 输入正确密码,并点击Submit
- 如下页面表示WiFi配置成功
- 可在Status页面确认网络模式及WiFi是否配置正确
Breakout 相关接口介绍
Breakout 特性
最大额定值
项 | 范围 |
---|---|
供电电压 | 9V ~24V |
IO 电压 | -0.3V ~3.6V |
工作温度/储藏温度 | -20oC ~+60oC |
电气特性
符号 | 参数 | 最小值. | 典型值. | 最大值. | 单位 |
---|---|---|---|---|---|
VDD | 系统额定工作电压 | 4.75 | 5 | 5.25 | V |
IDD | 系统电流消耗 | - | - | 1000 | mA |
VDD_IO | 数字接口电压范围 | 2.6 | 3.3 | 3.6 | V |
IDD_IO | 数字接口电流消耗 | - | - | TBD | mA |
VDIL | 数字输入低电平 | - | - | 0.2*VDD_IO | V |
VDIH | 数字输入高电平 | 0.8*VDD_IO | - | - | V |
VDOL | 数字输出低电平 | - | - | 0.2*VDD_IO | V |
VDOH | 数字输出高电平 | 0.8*VDD_IO | - | - | V |
ISTANDBY | 电流消耗@关机模式 | - | - | TBD | mA |
Breakout接口及引脚定义
接口编号 | 接口名称 | 说明 |
---|---|---|
J8 | 电源接口 | GND VCC输入电压9-24V,电流1A(接口尺寸5.5*2.1mm) |
SW1 | 开关接口 | ON表示,OFF表示关机 |
J9 | 网络接口 | RJ45标准8位模块化接口 |
A1 | A1雷达接口 | 详细引脚定义请参考RPLIDAR A1接口引脚定义 |
A2 | A2雷达接口 | 详细引脚定义请参考RPLIDAR A2接口引脚定义 |
J10 | Mini PCI-E接口 | 连接SLAMWARE Core |
J7 | USB接口 | 通过CP2102连接到MCU的TX3和RX3。 |
J1(MOTO) | 电机接口 | 详细引脚定义请参考电机接口引脚定义 |
J3(SONAR) | 超声波接口 | 详细引脚定义请参考超声波传感器接口引脚定义 |
J22 | 红外及碰撞传感器接口 | 详细引脚定义请参考红外及碰撞传感器接口引脚定义 |
J21 | GPIO通用接口 | 详细引脚定义请参考通用接口引脚定义 |
J15 | SWD烧录接口 | 详细引脚定义请参考SWD烧录接口引脚定义 |
RPLIDAR A1 接口引脚定义(A1)
编号 | 名字 | 描述 |
---|---|---|
1 | VMOTO | RPLIDAR A1电机供电,5V |
2 | LPWM | RPLIDAR A1电机PWM调速信号,高有效 |
3 | GND | RPLIDAR A1 测距核心地线 |
4 | 5V | RPLIDAR A1 测距核心供电 |
5 | RX | RPLIDAR A1 测距核心数据输入 |
6 | TX | RPLIDAR A1 测距核心数据输出 |
7 | GND | RPLIDAR A1 测距核心地线 |
RPLIDAR A2 接口引脚定义(A2)
编号 | 名字 | 描述 |
---|---|---|
1 | LPWM | RPLIDAR A2电机PWM调速信号,高有效 |
2 | GND | RPLIDAR A2 测距核心地线 |
3 | TX | RPLIDAR A1 测距核心数据输出 |
4 | RX | RPLIDAR A1 测距核心数据输入 |
5 | VMOTO | RPLIDAR A1电机供电,5V |
电机 接口引脚定义(J1)
电机接口分为左右两组。
编号 | 丝印名(全称) | GPIO(复用功能) | 描述 |
---|---|---|---|
1 | PWM (MOTO_L_PWM) | PE14 | PWM调速信号 |
2 | PWM (MOTO_R_PWM) | PE13 | PWM调速信号 |
3 | F_EN (MOTO_LF_EN) | PD4 | 正转使能 |
4 | F_EN (MOTO_RF_EN) | PD6 | 正转使能 |
5 | B_EN (MOTO_LB_EN) | PD9 | 反转使能 |
6 | B_EN (MOTO_RB_EN) | PD7 | 反转使能 |
7 | I_MON (MOTO_LI_MONITOR) | PD5 | 电机电流检测 |
8 | I_MON (MOTO_RI_MONITOR) | PC5 | 电机电流检测 |
9 | GND_DET (GND_L_DETECT) | PD1 | 电机抬起检测 |
10 | GND_DET (GND_R_DETECT) | PD10 | 电机抬起检测 |
11 | ENCD (ENCODER_L_SENSOR) | PD3 | 电机编码器输入 |
12 | ENCD (ENCODER_R_SEN SOR) | PD2 | 电机编码器输入 |
13 | GND | GND | 电机地线 |
14 | GND | GND | 电机地线 |
超声波传感器接口引脚定义(J3)
超声波传感器接口引脚分为四组。
编号 | 丝印名(全称) | GPIO(复用功能) | 描述 |
---|---|---|---|
1 | 5V | 5V | 超声波电源 |
2 | TRIG (SONAR_TRIG1) | PE10 | 控制端 |
3 | ECHO (SONAR_ECHO1) | PE5 | 接收端 |
4 | GND | GND | 地线 |
5 | 5V | 5V | 超声波电源 |
6 | TRIG (SONAR_TRIG2) | PE11 | 控制端 |
7 | ECHO (SONAR_ECHO2) | PE7 | 接收端 |
8 | GND | GND | 地线 |
9 | 5V | 5V | 超声波电源 |
10 | TRIG (SONAR_TRIG3) | PE12 | 控制端 |
11 | ECHO (SONAR_ECHO3) | PE8 | 接收端 |
12 | GND | GND | 地线 |
13 | 5V | 5V | 超声波电源 |
14 | TRIG(SONAR_TRIG) | PE15 | 控制端 |
15 | ECHO (SONAR_ECHO4) | PE9 | 接收端 |
16 | GND | GND | 地线 |
红外线及碰撞传感器引脚定义(J22)
编号 | 丝印名(全称) | GPIO(复用功能) | 描述 |
---|---|---|---|
1 | HOME_IR_R3 | PD14 | 充电桩IR3接收 |
2 | HOME_IR_R2 | PD13 | 充电桩IR2接收 |
3 | HOME_IR_R1 | PD12 | 充电桩IR1接收 |
4 | BOTTOM_IR_R1 | PC2 | IR接收1 |
5 | BOTTOM_IR_R2 | PC1 | IR接收2 |
6 | BOTTOM_IR_R3 | PC4 | IR接收3 |
7 | BOTTOM_IR_R4 | PA4 | IR接收4 |
8 | BOTTOM_IR_EN | PC7 | 防跌落IR使能 |
9 | BUMP_R (BUMP_DETECT_R) | PB13 | 右碰撞接口 |
10 | BUMP_L (BUMP_DETECT_L) | PB5 | 左碰撞接口 |
11 | TX2 (UART2_TX) | PA2 | - |
12 | RX2 (UART2_RX) | PA3 | - |
13 | GND | GND | 地线 |
14 | GND | GND | 地线 |
SWD烧录接口引脚定义(J15)
编号 | 名字 | 描述 |
---|---|---|
1 | GND | 地线 |
2 | SWCLK | 串行时钟输入 |
3 | SWDIO | 串行数据输入输出 |
4 | NRST | 复位 |
通用I/O口(J21)
编号 | 丝印名(全称) | GPIO(复用功能) | 描述 |
---|---|---|---|
1 | PA0 | PA0 | IO/ADC/PWM |
2 | PE4 | PE4 | IO |
3 | PE3 | PE3 | IO |
4 | PE2 | PE2 | IO |
5 | PA6 | PA6 | IO/ADC/PWM |
6 | PB9 | PB9 | IO/PWM |
7 | PB8 | PB8 | IO/PWM |
8 | PC3 | PC3 | IO/ADC |
9 | PB15 | PB15 | IO |
10 | GND | 地线 | 地线 |
J23
编号 | 名字 | 描述 |
---|---|---|
1 | 5V | 5V |
2 | 5V | 5V |
3 | GND | GND |
4 | GND | GND |
J16
编号 | 名字 | 描述 |
---|---|---|
1 | VCC_3 | 3.3V电源 |
2 | BOOTO | 单片机boot0 |
其它
- BUTTON:单片机Reset
- 指示灯 D1:电源指示灯
- U6:用户指示灯
开发参考
如需基于SLAMWARE SDK进行应用开发,SLAMTEC提供了可支持Windows, Linux, Android等多个操作系统的配套SDK。请参考相关SDK文档了解详情。
固件编译
我们提供了开源参考固件,请至SLAMTEC官网下载SLAMWARE Breakout最新的开源固件。
开源固件基于IAR 7.60开发平台,IAR官网下载7.60或以上版本并安装,使用该开发环境需要License,请自行向IAR购买。
搭建好IAR开发环境后,请打开参考固件目录 firmware\ref_public\base_ref\下的base_ref.eww 工程文件,即可开始固件开发。
用户可以直接在IAR程序中,点击菜单中的Project->Make,来编译工程。如果无其他问题,在目录 firmware\ref_public\base_ref\output\debug\Exe\下将生成固件文件 base_ref.hex,具体的开发过程,请参考IAR及STM32的相关开发文档。
固件烧录
如果需要将上述步骤中自行开发的固件base_ref.hex更新到Breakout开发板上,用户需将TTL串口转USB转接线连接至J14的TX和RX脚,GND连接至J15的GND脚,并短接J16。跳线方式如下图所示:
然后重新上电。此时,启动STM32的Flash Loader,即可通过串口将新固件烧录到Breakout的STM芯片中。
工具介绍
图形工具Robot Studio
简要介绍
在SLAMWARE SDK的bin目录下,我们提供了一款名为Robot Studio的图形化工具用于调试和使用SLAMWARE设备。通过输入设备的ip地址即可在该工具上登录至设备并进行相关操作。
功能概览
- 地图编辑器
- 定位机器人
- 定位及建图相关操作
- 虚拟墙相关操作
- 运动控制相关操作
- 其他操作
后台管理及诊断工具Portal
SLAMWARE配备有Portal后台管理工具,用户可通过连接至设备的ip查看相关信息并进行相关管理操作。登陆该后台管理工具可参考“连接至PC”小节说明。在其后台管理界面的Status页面可查看模块信息(如SSID,LIDAR型号,设备SN,固件版本等),在Administration 页面可对模块进行一系列操作(如重启模块,更新固件,开启Debug模式,配置Wifi,开启SLAMWARE Core诊断模式,修改Debug选项,修改管理员密码等)。
参考设计案例(基于HCR平台)
硬件平台
系统组成
- SLAMWARE Core
- SLAMWARE Breakout 3.0
- RPLIDAR A2
- HCR家用机器人开源项目平台
- Arduino四路电机驱动板
- 大电流锂聚合电池
- 杜邦线若干
- VCC/GND扩展板(自制)
平台搭建
请参照HCR安装说明书搭建好HCR平台的下面两层,即完成左右电机,万向轮,碰撞传感器和超声波传感器的装配即可。
将Breakout 3.0, 电机驱动板,RPLIDAR A2,锂电池,VCC/GND扩展板分别固定至HCR平台上。
Note
注意:雷达在安装时,尽量不要挡住雷达的视野,以免影响雷达的扫描效果。
连接
Breakout 各接口与对应组件间连接如下:
Breakout 3.0接口 | 对应连接组件 | 备注 | |
---|---|---|---|
J10 | SLAMWARE core | 请注意在Slamware Core上固定好天线 | |
A2 | RPLIDAR A2 | * | |
J3 | 超声波 | 将每一组超声波传感器的GND,Trig,ECHO和VCC四个引脚分别用杜邦线连接至Breakout 3.0的J3接口的对应位置(注:J3接口最多可支持4组超声波传感器,如需要支持更多数量的超声波传感器,请通过J21的GPIO接口进行扩展,固件最多可支持8组超声波传感器)。 | |
J22 | 碰撞传感器 VCC/GND扩展板 | 将每一组碰撞传感器Data引脚分别用杜邦线连接至Breakout 3.0的J22接口的L引脚和R引脚,然后将每组碰撞传感器的GND和VCC引脚连接至VCC/GND扩展板的对应引脚(注:J22接口最多可支持2组碰撞传感器,如需要支持更多数量的碰撞传感器,请通过J21 GPIO接口进行扩展。如本案例增加第三组碰撞传感器时,将该组碰撞传感器的Data引脚连接至J21 GPIO接口的PB8引脚。固件最多可支持8组碰撞传感器)。 | |
J1 | 电机驱动板
| L列PWM引脚 | 电机驱动板引脚3 |
L列B_EN引脚 | 电机驱动板引脚12 | ||
R列PWM引脚 | 电机驱动板引脚4 | ||
R列B_EN引脚 | 电机驱动板引脚11 |
HCR左右轮电机,电机驱动板,VCC/GND扩展板及Breakout 的J1 接口之间的连接如下:
HCR电机引脚 | 电机驱动板/扩展板/J1引脚 |
---|---|
HCR L电机引脚moto-(黑) | L电机驱动板M2- |
HCR L电机引脚moto+(红) | L电机驱动板M2+ |
HCR L电机引脚 VCC(黄) | VCC/GND扩展板的VCC脚 |
HCR L电机引脚 GND(绿) | VCC/GND扩展板的GND脚 |
HCR L电机引脚 A(蓝) | 不连接 |
HCR L电机引脚 B(橙) | J1接口L列的ENCD脚 |
HCR R电机引脚moto-(黑) | R电机驱动板M2- |
HCR R电机引脚moto+(红) | R电机驱动板M2+ |
HCR R电机引脚 VCC(黄) | VCC/GND扩展板的VCC脚 |
HCR R电机引脚 GND(绿) | VCC/GND扩展板的GND脚 |
HCR R电机引脚 A(蓝) | 不连接 |
HCR R电机引脚 B(橙) | J1接口R列的ENCD脚 |
固件配置及烧录
STM32固件配置
底盘的固件代码需要修改为适应当前底盘的具体参数,请使用slamware_config_tool.exe工具来自动生成配置文件。打开slamware_config_tool.exe工具后请对如下主要参数进行配置。
所有参数配置完成之后,点击右上角的Export按钮,保存配置文档为binary_config.c, 并放入工程的源代码中。
对象 | 对应参数 | 单位 | 备注 |
---|---|---|---|
Robot | Robot Diameter | m | 请根据设备实际尺寸进行设置。 |
Bumper/ Sonar | x | m | - |
y | m | ||
z | m | ||
Yaw | 度 | ||
LIDAR Installation Pose | x | m | 系统坐标系详情请参考后附示意图 |
y | m | ||
Yaw | 度 | ||
Motion Planning | Side Margin | m | 请根据设备实际情况进行设置。 |
Bump Handle Strategy | - | 可选Default或 Stop | |
Feature | Has IR Tower | - | 勾选表示设备配备有红外灯塔 |
Automatically charging | - | 勾选表示启动自动回充功能。 | |
Battery Level to Go Home | - | 取值于0% 至100%之间 设置后,当底盘电量低于此参数时,设备将自动返回充电座充电。 | |
Battery Level to Resume | - | 取值于0% 至100%之间 设置后,当底盘电量高于此参数时,设备将继续执行之前未完成任务。 |
系统坐标系定义
代码修改
- PID控制算法参数调试方法:逐渐从0增大P值和I值,至小车能够快速响应且未开始抖动。此实验平台的参考值为P=1, I =0.2, D=0. 亦可自行设置motor.c中的PID参数达到理想效果。
- 每米脉冲数计算方法:此电机可以输出每转663个脉冲反馈信号,轮子的直径为13CM,计算可以得知每米相当于2.45转,所以每米脉冲数为663 * 2.45 = 1624(motor.h中设置)
固件烧录
请使用TTL串口转USB转接线连接至J14的TX和RX脚,GND连接至J15的GND脚,并短接J16 BOOT0。接线图如下图所示:
然后使用烧录工具(如FlyMcu, 本文档以该工具为例进行介绍)将改好的固件烧入MCU。烧录完毕后请将接线恢复至正常状态。
调试及开发
输出底盘调试信息
如需输出调试信息,在配置MCU固件代码时,可连接J7调试输出口至电脑USB,然后使用串口输出工具(如SSCOM工具, 本文以该工具为例进行介绍)查看调试信息。
在底盘代码中加入DBG_OUT(),格式与printf()一致。
DBG_OUT("odom %d: %d, %d\r\n", cnt, (int)_lastEncoderTicksDelta[cnt], (int)_lastOdometerSpeedAbs[cnt])
连接J7和电脑的COM口,使用串口输出工具查看调试信息。
查看底盘状态
- 使用串口线连接底盘Control Bus串口和电脑COM口,如下图所示:
- 使用slamware_console.exe测试底盘状态。
使用该工具来测试底盘的配置信息和所有传感器的状态。另外,可以用此工具的run命令(两轮电机可以用此命令,三轮全向轮需用vrun命令,具体步骤请见slamware_console工具操作指南)来测试电机的工作情况。
详情请参考
查看系统状态
- 请使用电脑连上SLAMWARE Core的AP
- 打开Chrome浏览器并在地址栏输入192.168.11.1
选择右上角Administrator后,打开左侧disgnose slamware core,然后选择enable diagnosis
注意
此时系统会重启。
- 判断雷达是否有噪声,碰撞传感器和超声波传感器和实际情况相比,是否状态一致。
观察如下诊断界面并从如下两方面判断各个传感器是否工作正常。
- 安装位置是否正确
- 触发状态是否正确
使用Robot Studio工具进行控制
- 使用Slamware windows SDK中bin目录下的robot studio工具连接至HCR平台
- 查看能否成功建图
- 方向控制:点击右侧方向控制图标并点击方向键,查看HCR平台是否能按控制的方向运动
- 设置目标点(紫色十字位置),检测HCR小车(红色箭头位置)是否能沿着绿色的规划路径运动至目标点
机械设计
Breakout 3.0尺寸
Breakout 3.0原理图