amovcar 使用文档
本文档是R200及R300无人车的在线资源平台,您可以在这里了解到所有关于R系列无人车的内容。
我们建议第一次使用无人车的朋友,先 通读概述部分,然后根据实际情况,找到对应的章节依次进行阅读。无人车使用及开发需要用户 有一定技术基础.
需要使用者掌握一定的 Linux/ROS/C++/Python/PX4 基本知识。如果您是第一次接触Linux或者ROS。请参考下面的链接,补充相关基础知识。
- 其中:
Linux需要掌握的知识有 Linux系统文件结构及其常用命令
ROS需要掌握的知识有:ROS通信框架、gazebo仿真、TF等。非常建议大家去 ROS官网 学习 或者前往B站,观看赵虚左老师的 ROS教程
C++ / Python:ROS支持这两种开发语言。可以根据您个人的习惯,选择C++或者Python作为您的主要开发语言。 R300大部分采用C++语言,只有少部分脚本采用Python语言编写。
PX4:R300具有室外导航及动态避障功能,该功能使用 mavros 作为通信协议。配合PX4飞控(飞控中使用的是APM Rover固件),来实现该功能。
Note
本手册由阿木实验室实时维护。若您有对本手册的内容有疑问,可以通过电子邮件或进入 阿木社区 通过发帖的方式向我们提问。若您希望对本手册提出修改意见,请发送邮件至service@amovauto.com,对于有建设性的意见我们将赠与阿木币!(阿木币可以1:1兑换成人民币)
Note
本项目所有代码均开源!点击 amovcar自主无人车项目 可以下载项目源码。
欢迎关注 阿木实验室B站频道 我们会在B站发布最新的、前言的科技视频以及有趣的测试视频。记得一键三连,不要下次一定!
祝您使用愉快!
阿木实验室 ,让研发更高效!
R系列无人车概述
什么是R300
R300是由 阿木实验室 联合 松灵机器人 打造的一款全栈式底盘+软硬件一体的无人车解决方案,全称为 Autopilot kit R300,简称为R300。 R300可以省去无人车制造这一环节,快速进入核心研发的阶段,能够缩短项目或者应用研发的时间,让研发更加高效!
Note
R300能做什么
R300采用松灵 Scout mini 底盘,该底盘性能强悍,载重能力、越野能力优秀。可载重10Kg,高底盘加上摇摆独立悬梁可适应室外大部分运动场景
R300行进速度快,空载时可以达到10.8Km/h
R300基于开源机器人操作系统 ROS 和 Ardupilot 自动导航系统,无需提前建图可以实现无人车户外自主导航定位
R300融合双目相机、深度相机以及激光雷达,可以实现室内SLAM、导航、路径规划等功能
R系列无人车特点
R300无人车特点

R300无人车车体属于中大型,越野性能优秀,偏向于室外环境。具备以下优点:
前端配备有保险杠,有一定的防碰撞能力,能较好地保护车身及其他硬件,减少小车碰撞时的损坏。
车身大部分硬件采用金属材质,结实耐用。
车轮采用四轮驱动,动力更加充足,最高速度可达10km/h,并且可以原地旋转。
小车拥有悬挂系统,能保证小车更加平稳地运行,保证各种传感器数据更加精确,稳定。
24V15AH锂电池动力系统,续航里程可达10KM
可载重10KG以下物体
R300硬件组成以及配置参数
硬件配置
硬件名称 |
产品详情 |
R300 基站版 / 移动版 |
|
板载计算机 |
CPU: Intel i7-8565U,四核八线程 GPU: Intel UHD Graphics 620 ROM: 8GB DDR4 2400MHz 硬盘: 128G SSD |
双目相机 |
Intel RealSenese T265 |
深度相机 |
Intel RealSenese D435i |
激光雷达 |
型号: LDS-50C-3 测距原理: TOF 测距距离: 0.1m - 40m 激光频率: 16.2kHz 刷新频率: 7 - 15 Hz 扫描角度: 360° 水平角分辨率: 0.23°@ 10Hz / 0.34°@ 15Hz 测距精度: ±30mm 工作电压: 5V |
RTK定位模块 |
型号: Nano-D Receiver 支持信号: BDS / GPS / GLONASS QZSS定位精度: 10cm(典型值) 初始化时间: 小于10s(典型值) 搜索卫星收敛时间: 冷启动为40s(典型值); 热启动为5s(典型值) 定向: 支持双天线定向(默认为单天线) 服务器端: 支持千寻账号 通信: 集成DTU,支持4G传输(全球全网通) 接口: 串口、外部存储TF卡、USB2.0 OTG、CAN、PPS、EVE NT数据格式: NAME-0183、BINEX、Femtomes ASCII及Binary格式 数据更新频率: 1Hz / 5Hz / 10Hz / 20Hz(默认5Hz) 工作电压: 12V |
图数传 |
型号: Homer 通信距离: 150m(无地面端); 800m(有地面端,地面通信无遮挡极限距离); 2.5km(有地面端,地空通信无遮挡极限距离) 工作频率: 5.1GHz ~ 5.9GHz 重量: 146.8g 尺寸: 88 x 66 x 19 mm 额定功率: 6W IP串口: 3路,支持1200 ~ 921600波特率 网口: 2路百兆网口、1路千兆网口 延迟: 50ms 供电电压: 12V锂电池(3S) 无线带宽: 40MHz 无线发射功率: 20mW 天线接口: SMA外螺纹内孔 工作温度: -10°C - 45°C 工作电压: 5V |
飞控 |
型号: Pixhawk4 FMU: STM32F765, 32位 Arm® Cortex®-M7, 216MHz, 2MB 内存, 512KB RAM IO处理器: STM32F100,32位 Arm® Cortex®-M3, 24MHz, 8KB SRAM 内置传感器: 加速度计 / 陀螺仪: ICM-20689 加速度计 / 陀螺仪: BMI055 或 ICM20602 磁力计: IST8310 气压计: MS5611 GPS: u-blox Neo-M8N GPS/GLONASS receiver 工作电压: 5V |
Note
R300基站版和移动版硬件上配置完全一样,只是移动版不使用基站版RTK,见 通信链路
Warning
虽然基站版和移动版可以通过修改RTK软件配置从而实现互相转换,但是 目前尚未进行任何在移动版RTK上同时使用4G信号数据和RTK基站版纠偏数据!,如果您在二次开发的时候,进行上述的尝试,所造成的后果 自行承担责任。
性能参数
参数类型 |
性能指标 |
机械参数 |
尺寸: 627 x 549 x502 mm 轴距: 452 mm 前后轮距: 450 mm 额定负载: 7Kg(默认公路轮胎) 重量: 26Kg 电池: 锂电池24V 15Ah 电机: 直流无刷 4 x 150w 驱动: 四轮独立驱动 悬架: 摇臂独立悬架 转向: 四轮差速转向 安全装备: 伺服刹车、前保险杠 |
性能参数 |
空载最大时速: 10.8 Km/h 最小转弯半径: 原地转弯 最大爬坡能力: 30° 最小离地间隙: 107 mm 续航里程: 10Km |
控制参数 |
控制模式: 遥控器控制 / 上位机控制 遥控器: 2.4Ghz、极限距离 1 Km 通信接口: CAN |
硬件模块介绍
板载计算机

板载计算机上预装了Ubuntu18.04操作系统以及ROS Melodic系统,并搭载有无人车的ROS功能包amovcar、各种传感器的驱动以及常用开发软件等。 并通过有线连接的方式接入由Homer图数传组成的局域网中。
飞控

飞控全称飞行控制器,配合无人机/无人车及其系统以及其他元器件共同来控制无人机飞行或无人车 ,飞控常与IMU(惯性测量单元)、气压计、磁罗盘等元器件共同组成飞行控制系统。
图中展示了无人车使用的飞行控制器(Pixhawk4),在这里对无人车常使用的接口做一个介绍:
1. POWER1: 飞控的电源接口,由小车底盘电源通过降压模块给到飞控,供电电压为5V。
2. TELEM1: Wifi数传的数据接口,使飞控能够接入Wifi数传提供的局域网中。
3. TELEM2: 连接板载计算机的接口,飞控通过TELEM2与板载计算机建立通信连接,板载计算机的控制数据 也通过这个接口发送到飞控中。
4. PPM RC: 遥控器接收器信号接口,该接口会接收来自遥控器的控制信号。
5. GPS MODULE: GPS模块的接口,给GPS模块进行供电以及接收GPS模块传递的数据。
6. I/O PWM OUT: 电机控制的PWM输出口,输出控制数据控制四个电机。
激光雷达

激光雷达采用蓝海光电LDS-50C-3 360°激光扫描测距雷达,内部搭载高性能脉冲TOF测距系统,即使在远距离物体 条件下,测量精度依旧精准、稳定。激光雷达可以帮助R300实现室内、室外精准避障。
T265双目相机

英特尔® 实感™ 追踪摄像头 T265 包含两个鱼眼镜头传感器、一个 IMU 和一个英特尔® Movidius™ Myriad™ 2 VPU。所有的 V‑SLAM 算法都直接在 VPU 上运行,能够实现非常低的延迟和非常高效的功耗。 通过视觉与IMU以及V-SLAM算法的结合,T265双目相机能为无人车提供定位数据。
D435i深度相机

英特尔® 实感™ D435i在尖端立体深度摄像头中放置了一个IMU。D435i在小巧外形中采用英特尔模块和视觉处理器,是一个功能强大的一体产品,可与可定制软件配合使用,是一款能够了解自身运动的深度摄像头。
Homer图数传

Homer图数传模块建立起一个局域网,将无人车上的板载计算机、飞控、RTK等车载硬件以及用户的电脑接入到局域网中。方便用户远程访问无人车的飞控和板载计算机,进而实现远程控制以及数据监听。
Note
放置在车上的Homer称为 移动端Homer
与用户PC连接的Homer称为 基站端Homer
RTK模块

RTK(Real Time Kinematic),即实时动态测量技术,又称差分GPS。该模块用于在室外定位无人车,其定位精度为厘米级。
Note
放置在车上的RTK称为 移动端RTK
与地面端Homer连接的称为 基站端Homer
放置在小车上的RTK,并且RTK内部插入4G电话卡称为 移动端RTK(4G)
显示器

显示器采用10英寸无触摸屏幕,1024 * 600 分辨率,支持 HDMI接口,适用于树莓派、NX、nano、x86等设备。
3S电池

3S电池用于给 基站端Homer 和 基站端RTK 供电。3S电池满电电压12.6V。
Warning
3S电池过充过放容易导致电池损坏,在电压低于 11V 时建议停止继续使用,待电池冷却至常温后充电,充满电后也不要立即使用,待电池冷却至常温后使用。
遥控器

1. 开关机按钮:两个按钮同时按下将开启或关闭遥控器,开机时,遥控器上部分的档杆(四个SW*档杆)需 全部打至顶端, 关机时,遥控器需与遥控器接收器断开连接(断开遥控器或接收器的电源)。
摇杆:左侧摇杆上下移动控制无人车前进后退,右侧摇杆左右移动控制无人车左右移动。
3. 档杆:R300无人车中从左往右数第二根档杆(SWB)控制无人车的模式,一共有两档, 中间位置无人车受遥控器控制,顶端位置无人车受板载计算机控制。 SWC挡杆控制无人车灯光模式,最上端为呼吸灯模式,中间为常亮模式,最下端为常闭模式。SWD挡杆控制无人车切换高速和低速模式。
硬件连接
R300硬件连接图

Note
如果您在本页面看不清连接图,可以右键图片保存至本地
车体连接部分已经在车体内部连接好, 非必要请勿修改!
对于使用R300基站版的用户,请查看基站版连接部分
对于使用R300移动版的用户,请查看移动版连接部分
通信链路
R300 基站版通信链路

Note
图数传Homer作为整个通信链路的核心,将各个模块通过 有线/无线 的方式连接起来。
PC和板载计算机通信主要通过以下链路: PC<===有线===>基站端Homer<===WIFI===>移动端Homer<===有线===>板载计算机 。其目的是通过远程软件登录到板载计算机,然后通过板载计算机启动相关程序,进而控制车辆。
PC和飞控通信主要通过以下链路: PC<==有线===>基站端Homer<===WIFI===>移动端Homer<===串口===>飞控 。其目的是通过PC端上的Mission Planner连接到飞控,从而获取飞控相关参数。
飞控如何获取卫星数据:首先,移动端RTK会通过ANT1口天线接收卫星信号;然后再接收来自基站端RTK的纠偏数据,其通信链路为 基站端RTK<===透传===>基站端Homer<===WIFI===>移动端Homer<===透传===>移动端RTK。接着,移动端RTK就会将这个两个来源的数据进行融合,最后将融合后的数据,通过串口的方式,传递到飞控的GPS Moudle口。从而实现了飞控的定位。
R300 移动版通信链路

Note
移动版通信和基站版通信不同之处在于, 不通过基站RTK 获取纠偏数据,而是通过千寻账号登录到其服务器,然后再由服务器进行位置解算,位置解算后,通过4G网络返回到移动版RTK。
术语
地面端Homer
通过网线与PC端连接的Homer
移动端Homer
放置在小车上的Homer
地面端RTK
与地面端Homer连接的RTK
移动端RTK
放置在小车上的RTK
移动端RTK(4G)
放置在小车上的RTK,并且RTK内部插入4G电话卡
快速上手指引
Note
以下内容在用户拿到R300的时候已经完成配置和测试,保证功能正常。 如果非必要,请勿修改!
以下内容可以作为您二次开发的一个例子
板载计算机设置
设置固定IP
将无线/有线键鼠插入R300侧边的USB扩展口,然后打开R300电源
输入密码 amov 登录到系统
打开桌面右上角 WIFI图标,点击 Wired Connected,找到 Wired Settings,点击菜单栏上的 IPV4 ,选择 Manual ,输入IP 192.168.1.14 ,子网掩码 255.255.255.0 如下图所示:
设置相机序列号
在桌面打开终端
输入命令
rs-sensor-control
,该命令将会返回 D435i 和 T265的序列号接着打开目录:
amovcar/src/common/sensor/amovcar_sensor/launch
,将会看到以对应传感器命名的launch文件分别打开D435i / T265 的launch文件,把文件中的参数
defalut
的值替换成第2步获取到的相机序列号即可。
Homer配置
将基站端Homer用3S电池供电,再将专有网口线的一端接入基站端Homer的LAN1或LAN2口,另一端接入到PC的网口。(如果您的PC没有网口,则需要一个USB转网口模块)
Warning
Homer需要用专门的电源线(电源线贴有 电源线 12V 字样的标签,如下图所示:
Homer的供电电压为12V
Note
LAN1或LAN2口为百兆网口。百兆网线如下:
在PC上(Windows系统)打开 控制面板—查看网络状态和任务—更改适配器设置—右键以太网—属性—Internet协议版本4—属性,设置为如下图所示:
将移动端Homer和基站端Homer同时通电。基站端Homer用3S电池供电,移动端Homer用小车电源供电。(或者也可以将移动端Homer拆下来,再单独用3S电池供电)
基站端Homer配置
首先将基站端Homer的工作模式,拨到 AP端口,如下图所示:
打开浏览器,输入网址 192.168.1.100 进入配置界面
用户名和密码均为 admin
找到 config — Networking,选择界面中的 Static IP 修改为如下图所示:
找到 config — Wireless,找到界面中的 ESSID,修改为 AMOV-002;找到界面中的 Passphrase,将密码修改为 12345678。图下图所示:
保存
移动端Homer配置
首先将移动端Homer的工作模式,拨到 STA端口,如下图所示:
打开浏览器,输入网址 192.168.1.10 进入配置界面
用户名和密码均为 admin
找到 config — Networking,选择界面中的 Static IP 修改为如下图所示:
到 config — Wireless,找到界面中的 ESSID 旁边的 Scan AP,此时将会搜索到基站端Homer配置的WIFI名称 AMOV-002,然后输入密码 12345678 点击连接,如下图所示:
保存
Note
确保在配置过程中,两个Homer都通电。
当两个Homer正面的绿色指示灯常亮,表示二者正确配置并且互相连接成功。
基站端(AP模式下)的WIFI名称和密码可以根据实际情况自定义
移动端(STA模式下),在连接上基站端的WIFI以后,一定要 点击保存,否则下一次启动将不会自动连接
打开Homer配置软件( 点击下载 配置软件)
根据实际情况选择网卡设备。然后刷新设备,可以看到当前网络设备。
选择102,按照下图设置
选择12,按照下图设置
选择11,按照下图设置
Warning
在配置RTK时,所有的 RTK天线禁止热插拔,即 必须先断电,后插拔RTK天线。
移动端RTK配置
采用默认驱动,无需配置
基站端RTK配置
将基站端RTK用USB数据线连接至PC
通电(对于移动端RTK,可以使用R300电源供电,也可以拆下后单独用3S电源供电)
Warning
RTK供电线和Homer供电线不兼容,不能混用。必须使用专门的电源线。如下所示:
RTK的供电电压为12V
在PC上打开浏览器,输入 192.168.42.129 进入配置界面
输入用户名 admin, 密码 password 登录到配置界面
在页面左边找到 系统配置—网页命令 在对话框中输入命令
posave auto
,点击提交然后输入
saveconfig
,点击提交在页面左边找到 I / O配置—端口摘要 ,点击 COM2,即可进入COM2的配置界面
在 输出 栏下面找到 RTCM,将其改为 启用 ,点击确定即可
移动端RTK(4G)配置
将移动端RTK天线接入到移动端RTK的ANT1口,将小天线(又称小辣椒)接入到移动端RTK的4G接口,并插入4G卡。
通电(对于移动端RTK,可以使用R300电源供电,也可以拆下后单独用3S电源供电)
Warning
RTK供电线和Homer供电线不兼容,不能混用。必须使用专门的电源线。如下所示:
RTK的供电电压为12V
用USB数据线,一端接在移动端RTK的USB口,一端接在PC上
在PC上打开浏览器,输入 192.168.42.129 进入配置界面
输入用户名 admin, 密码 password 登录到配置界面
在该页面,您可以看到当前RTK的工作状态,包括卫星观测值质量、跟踪卫星数量、以及定位方式等
在页面左边的菜单栏找到 I/O配置,点击COM4口,进入如下图所示的配置
Note
R300产品不提供千寻、六分账号,如果您有这方面的需求,点击 阿木实验室淘宝店铺 ,获取更多信息
R300软件框架
amovcar文件结构图如下:

amovcar
amovcar文件夹为ROS下的工作空间文件夹,包含无人车几乎所有的源代码文件,无人车功能包均放置在src文件夹下。
common
common文件夹内含有R200以及R300两款无人车通用的一些功能包,包含一些功能模块以及二维激光雷达、三维激光雷达、相机等传感器驱动ROS功能包。
R200
R200文件夹内含有 r200_bringup
、 r200_function
、 r200_simulation
三个功能包。
r200_bringup为R200小车底盘的驱动功能包,R200下位机控制板为飞控,通过mavros连接飞控与板载计算机,r200_bringup在mavros上做了一层封装。
r200_function文件内含有R200无人车所有功能的源代码,包含自启动服务、配置文件、launch文件、sh脚本文件以及源代码等内容。
r200_simulation文件内含有R200无人车仿真的源代码,包含模型、gazebo环境、launch文件、配置文件等内容。
R300
R300文件夹内含有 r300_bringup
、 r300_function
、 r300_simulation
三个功能包。
r300_bringup为R300小车底盘的驱动功能包。
r300_function文件内含有R300无人车所有功能的源代码,包含自启动服务、配置文件、launch文件、sh脚本文件以及源代码等内容。
r300_simulation文件内含有R300无人车仿真的源代码,包含模型、gazebo环境、launch文件、配置文件等内容。
传感器校准
Note
传感器在用户拿到R300的时候已经完成校准,保证功能正常。 如果非必要,请勿修改!
以下内容可以作为您二次开发的一个例子
传感器的校准需要下载 Mission-Planner 。
Mission Planner介绍
Mission Planner 是一个功能完善的地面站应用程序,仅仅与Windows兼容,暂时不支持Linux系统。主要用于连接飞控,与飞控之间进行通信,并且 实时显示飞控相关数据。点击 这里 可以获取更多有关Mission Planner相关信息。

Mission Planner的顶部工具栏如下

飞行数据: 飞行数据界面内容主要展示无人车飞控相关数据包含GPS数据状态,EKF定位状态,无人车当前模式,解上锁状况,无人车相关数据,地图等
飞行计划: 在该界面可画出无人车的航点,将航点传入到飞控中,修改航点相关的参数,读取飞控的航点等内容。
初始设置: 传感器校准就需要在此界面设置,一般来说,需要校准的传感器为罗盘,加速度计,平面校准等。
Note
某些版本地面站在传感器校准时会发生异常,出现该情况时,请更换地面站版本进行传感器校准。
配置/调试: 查看以及修改飞控的参数。
Warning
参数修改需充分了解APM以及Mission Planner相关基础知识,需谨慎使用,修改错误将导致无人车无法正常运行。
飞控固件
R300的飞控固件为阿木实验室定制版本,暂不开源
Warning
若非必要, 请勿升级R300的固件,由升级固件后所导致的R300功能无法正常使用,请自行解决!
刷入飞控参数
点击 飞控参数 可以下载飞控参数,提取码为 amov
将飞控用USB数据线,一端连接飞控USB端口,一端连接PC(Win7 / Win10 均可)
打开Mission Planner软件
在右上角选择端口号 COMx ,波特率为 115200,点击连接
点击顶部工具栏的 配置—全部参数表—加载—选择下载好的参数—写入参数,如下图所示:
Note
COMx 端口号取决于实际使用情况
飞控参数写入以后,需要重启生效
Warning
若非必要, 请勿修改R300飞控参数,如果您修改部分参数后导致R300功能无法正常使用,请自行解决!
Warning
在进行传感器校准之前,确保您已经刷入了R300的飞控固件以及飞控参数
加速度计与指南针的校准
在出厂测试时,传感器已经校准过,用户无需校准
SLAM
Gmapping
将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成
打开遥控器
在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。
Note
板载计算机的固定IP,取决您如何设置 板载计算机IP
输入密码 amov 登录到板载计算机
打开板载计算机桌面的 sh 文件夹后,右键选择 open terminal
输入命令
bash
启动Gmapping建图脚本。将遥控器上的档杆SWB拨至中间位置,开始控制R300移动建图
完成建图后,打开一个终端,输入命令
rosrun map_server map_saver -f ~/map
保存地图Note
-f
参数后面表示地图保存的地址和文件名称,为绝对路径。上面这个指令,将地图保存在 根目录下,并且命名为map。
Cartographer
将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成
打开遥控器
在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。
Note
板载计算机的固定IP,取决您如何设置 板载计算机IP
输入密码 amov 登录到板载计算机
打开板载计算机桌面的 sh 文件夹后,在文件夹内右键选择 open terminal
输入命令
bash r300_cartographer_slam.sh
启动Cartographer建图脚本。将遥控器上的档杆SWB拨至中间位置,开始控制R300移动建图
完成建图后,打开桌面的 sh 文件夹,然后在文件夹内右键选择 open terminal。接着,输入命令
bash r300_cartographer_map_save.sh
保存地图。Note
该脚本将地图默认保存在 /home/amov/amovcar/src/R300/r300_function/maps/ 下。地图的默认名称为 r300_map
使用脚本保存地图会覆盖上一次的地图文件。如果需要多次仿真建图对比,将每次保存的地图单独放在一个文件夹中。
如果您想将地图保存在其他位置,打开脚本,修改文件路径即可。
Cartographer Demo
R300的功能包里面提供了一个简单的Cartographer纯激光建图的Demo,其bag文件放在 /home/amov/amovcar/src/R300/r300_function/bag/pure_slam.bag
可以通过这个bag,对Cartographer的配置文件进行配置,从而进行建图的调试。打开终端,输入以下命令:
roslaunch r300_function r300_cartographer_demo.launch bag_filename:=/home/amov/amovcar/src/R300/r300_function/bag/pure_slam.bag
当然,您也可以选择播放自己的bag文件,然后通过修改配置文件,查看不同的建图效果
当bag播放完毕,打开终端,输入以下命令:
roscd r300_function/demo_map && bash map_save.sh
保存地图。
Note
该脚本将地图默认保存在 /home/amov/amovcar/src/R300/r300_function/demo_map/ 下。地图的默认名称为 demo_map
使用脚本保存地图会覆盖上一次的地图文件。如果需要多次仿真建图对比,将每次保存的地图单独放在一个文件夹中。
如果您想将地图保存在其他位置,打开脚本,修改文件路径即可。
Note
如果您R300的桌面上sh文件夹内没有相关脚本文件,请更新最新代码。代码地址见 gitee,选择分支为 v1.0-beta
更新代码以后,与Cartographer相关的脚本文件均在
/amovcar/src/R300/r300_function/sh/
目录下,您可以将上述相关脚本放置在桌面的sh文件中,方便您的使用
下图为该bag的建图结果

三维建图
将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成
打开遥控器
在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。
Note
板载计算机的固定IP,取决您如何设置 板载计算机IP
输入密码 amov 登录到板载计算机
打开板载计算机桌面的 sh 文件夹后,右键选择 open terminal
输入命令
bash r300_rtabmap.sh
启动三维建图脚本。将遥控器上的档杆SWB拨至中间位置,开始控制R300移动建图
完成建图后,打开一个终端,输入命令
rosrun map_server map_saver -f ~/map_name
保存地图
Tip
如果节点启动异常,请确保 相机序列号 设置正确
如果相机序列号正常,仍然存在启动失败的情况,请删除amovcar目录下的 devel 和 build 两个文件夹,然后重新编译整个项目
导航
室内导航
Note
在进行导航功能之前,确保您已经完成 SLAM 相关工作,有一张地图。
将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成
打开遥控器
在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。
Note
板载计算机的固定IP,取决您如何设置 板载计算机IP
输入密码 amov 登录到板载计算机
打开板载计算机桌面的 sh 文件夹后,右键选择 open terminal
输入命令
bash r300_navigation_indoor.sh
启动室内导航建图脚本。在启动的 rviz 界面顶部的菜单栏中,选择 2D Pose Estimate,将机器人放置在地图中的实际位置,然后用遥控器控制E300前后左右稍微移动,待R300周围的粒子聚集即可。
在启动的 rviz 界面顶部的菜单栏中,选择 Navigation Goal,单击地图以设置机器人的目的地,然后将绿色箭头指向机器人在目标点将要面对的方向。
将遥控器上的档杆SWB拨至顶部,R300将会开始导航
室外航点规划及避障
将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成
打开遥控器
在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。
Note
板载计算机的固定IP,取决您如何设置 板载计算机IP
输入密码 amov 登录到板载计算机
在PC上打开 Mission Planner 软件,在右上角选择连接方式为 TCP,波特率为 57600
在弹出的对话框输入飞控IP地址 192.168.1.11,端口号为 8080
飞控连接上以后,等待GPS进入 rtk fixed状态,并且EKF没有报红。如下图所示:
点击Mission Planner工具栏上的 飞行计划,在地图界面规划航点,然后点击右边的写入航点按钮
打开板载计算机的终端
输入命令
roscd r300_function/sh && bash r300_navigation_wp_goal.sh
启动室外航点规划及避障功能。打开一个新的终端,输入命令
rosservice call /mavros/mission/pull
打开第10步启动的终端界面,在最后一个标签页中, 先输入1获取航点信息,等获取到航点信息后,再次输入1启动,如下图所示
将遥控器上的档杆SWB拨至顶部,让R300受板载计算机的控制,开始执行航点规划
Note
使用室外航点规划及避障,需要更新最新版本的代码。代码地址见 gitee,选择分支为 v1.0-beta
仿真
仿真系统介绍
R300仿真系统基于ROS以及Gazebo仿真系统搭建,提供无人车车体模型,并提供二维激光雷达、三维激光雷达以及深度相机等传感器仿真, 目前配备有navigation导航功能,RtabMap三维建图功能,OctoMap三维建图功能,SLAM建图功能的仿真。
Note
R300仿真对CPU配置有一定的要求,较早的CPU例如i3、部分i5可能存在卡的情况。
不建议在R300的板载计算机上进行仿真操作
仿真环境搭建
打开终端,输入以下命令,安装仿真环境
sudo apt install ros-melodic-gmapping ros-melodic-navigation ros-melodic-amcl ros-melodic-map-server ros-melodic-move-base ros-melodic-rtabmap ros-melodic-octomap -y
SLAM
Gmapping
打开终端,输入命令
roscd r300_simulation/sh && bash r300_simulation_slam_gmapping.sh
依次检查弹出的终端窗口,检查每个终端中的节点是否正常启动。
然后在第三个终端界面,通过键盘控制R300的移动,进行建图。如下图所示
建图完成以后,打开一个新的终端,输入命令
rosrun map_server map_saver -f ~/sim_map
Note
-f
参数后面表示地图保存的地址和文件名称,为绝对路径。上面这个指令,将地图保存在 根目录下,并且命名为map。如果您提前启动了
roscore
,那么第一个终端将会报错,属正常情况。
下图为构建好的仿真地图

Cartographer
打开终端,输入命令
roscd r300_simulation/sh && bash r300_simulation_slam_cartographer.sh
依次检查弹出的终端窗口,检查每个终端中的节点是否正常启动。
然后在最后一个终端界面,通过键盘控制R300的移动,进行建图。如下图所示
建图完成以后,打开一个新的终端,输入命令
roscd r300_simulation/sh && bash r300_cartographer_map_save.sh
Note
该脚本将地图默认保存在 /home/amov/amovcar/src/R300/r300_simulation/maps/ 下。地图的默认名称为 sim_map
使用脚本保存地图会覆盖上一次的地图文件。如果需要多次仿真建图对比,将每次保存的地图单独放在一个文件夹中。
如果您想将地图保存在其他位置,打开脚本,修改文件路径即可。
如果您提前启动了
roscore
,那么第一个终端将会报错,属正常情况。
下图为构建好的仿真地图

RtabMap三维建图
打开终端,输入命令
roscd r300_simulation/sh && bash r300_simulation_rtabmap.sh
依次检查弹出的终端窗口,检查每个终端中的节点是否正常启动。
确认终端均没有报错,在第三个终端内,用键盘控制小车移动进行建图。
建图完成以后,输入命令
rtabmap-databaseViewer ~/.ros/rtabmap.db
保存地图仿真rtabmap如下
Note
查看地图的命令为
rtabmap-databaseViewer ~/.ros/rtabmap.db
输入查看地图命令后会跳出一个对话框,点击菜单栏上的 view—occupancy grid 即可查看地图
地图保存的路径为 ~/.ros/rtabmap.db
OctoMap三维建图
打开终端,输入命令
roscd r300_simulation/sh && bash r300_simulation_octomap.sh
依次检查弹出的终端窗口,检查每个终端中的节点是否正常启动。
确认终端均没有报错,在第三个终端内,用键盘控制小车移动进行建图。如下图所示:
建图完成以后,输入命令
rosrun octomap_server octomap_saver -f ~/map_name.ot
保存地图Note
-f
参数后面表示地图保存的地址和文件名称,为绝对路径。上面这个指令,将地图保存在根目录下,并且命名为map_name.ot。生成地图文件会耗费一定时间,示例中地图文件生成耗费时间大概在5秒左右
输入命令
octovis map_name.ot
查看三维地图。Note
需在保存地图的文件夹路径下输入命令
查看oct地图需要安装相关功能包
sudo apt install octovis
仿真Octomap地图如下:
