amovcar 使用文档

本文档是R200及R300无人车的在线资源平台,您可以在这里了解到所有关于R系列无人车的内容。

我们建议第一次使用无人车的朋友,先 通读概述部分,然后根据实际情况,找到对应的章节依次进行阅读。无人车使用及开发需要用户 有一定技术基础.

需要使用者掌握一定的 Linux/ROS/C++/Python/PX4 基本知识。如果您是第一次接触Linux或者ROS。请参考下面的链接,补充相关基础知识。

其中:
  1. Linux需要掌握的知识有 Linux系统文件结构及其常用命令

  2. ROS需要掌握的知识有:ROS通信框架、gazebo仿真、TF等。非常建议大家去 ROS官网 学习 或者前往B站,观看赵虚左老师的 ROS教程

  3. C++ / Python:ROS支持这两种开发语言。可以根据您个人的习惯,选择C++或者Python作为您的主要开发语言。 R300大部分采用C++语言,只有少部分脚本采用Python语言编写

  4. PX4:R300具有室外导航及动态避障功能,该功能使用 mavros 作为通信协议。配合PX4飞控(飞控中使用的是APM Rover固件),来实现该功能。

Note

本手册由阿木实验室实时维护。若您有对本手册的内容有疑问,可以通过电子邮件或进入 阿木社区 通过发帖的方式向我们提问。若您希望对本手册提出修改意见,请发送邮件至service@amovauto.com,对于有建设性的意见我们将赠与阿木币!(阿木币可以1:1兑换成人民币)

Note

本项目所有代码均开源!点击 amovcar自主无人车项目 可以下载项目源码。

欢迎关注 阿木实验室B站频道 我们会在B站发布最新的、前言的科技视频以及有趣的测试视频。记得一键三连,不要下次一定!

祝您使用愉快!

阿木实验室 ,让研发更高效!

R系列无人车概述

什么是R300

R300是由 阿木实验室 联合 松灵机器人 打造的一款全栈式底盘+软硬件一体的无人车解决方案,全称为 Autopilot kit R300,简称为R300。 R300可以省去无人车制造这一环节,快速进入核心研发的阶段,能够缩短项目或者应用研发的时间,让研发更加高效!

R300能做什么

  1. R300采用松灵 Scout mini 底盘,该底盘性能强悍,载重能力、越野能力优秀。可载重10Kg,高底盘加上摇摆独立悬梁可适应室外大部分运动场景

  2. R300行进速度快,空载时可以达到10.8Km/h

  3. R300基于开源机器人操作系统 ROSArdupilot 自动导航系统,无需提前建图可以实现无人车户外自主导航定位

  4. R300融合双目相机、深度相机以及激光雷达,可以实现室内SLAM、导航、路径规划等功能

R系列无人车特点

R300无人车特点

R300

R300无人车车体属于中大型,越野性能优秀,偏向于室外环境。具备以下优点:

  1. 前端配备有保险杠,有一定的防碰撞能力,能较好地保护车身及其他硬件,减少小车碰撞时的损坏。

  2. 车身大部分硬件采用金属材质,结实耐用。

  3. 车轮采用四轮驱动,动力更加充足,最高速度可达10km/h,并且可以原地旋转。

  4. 小车拥有悬挂系统,能保证小车更加平稳地运行,保证各种传感器数据更加精确,稳定。

  5. 24V15AH锂电池动力系统,续航里程可达10KM

  6. 可载重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

硬件模块介绍

板载计算机

X86

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

飞控

px4

飞控全称飞行控制器,配合无人机/无人车及其系统以及其他元器件共同来控制无人机飞行或无人车 ,飞控常与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输出口,输出控制数据控制四个电机。

激光雷达

lidar

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

T265双目相机

T265

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

D435i深度相机

D435i

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

Homer图数传

Homer

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

Note

  • 放置在车上的Homer称为 移动端Homer

  • 与用户PC连接的Homer称为 基站端Homer

RTK模块

RTK

RTK(Real Time Kinematic),即实时动态测量技术,又称差分GPS。该模块用于在室外定位无人车,其定位精度为厘米级。

Note

  • 放置在车上的RTK称为 移动端RTK

  • 与地面端Homer连接的称为 基站端Homer

  • 放置在小车上的RTK,并且RTK内部插入4G电话卡称为 移动端RTK(4G)

显示器

monitor

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

3S电池

battery

3S电池用于给 基站端Homer基站端RTK 供电。3S电池满电电压12.6V。

Warning

3S电池过充过放容易导致电池损坏,在电压低于 11V 时建议停止继续使用,待电池冷却至常温后充电,充满电后也不要立即使用,待电池冷却至常温后使用。

遥控器

FS-i6S

1. 开关机按钮:两个按钮同时按下将开启或关闭遥控器,开机时,遥控器上部分的档杆(四个SW*档杆)需 全部打至顶端, 关机时,遥控器需与遥控器接收器断开连接(断开遥控器或接收器的电源)。

  1. 摇杆:左侧摇杆上下移动控制无人车前进后退,右侧摇杆左右移动控制无人车左右移动。

3. 档杆:R300无人车中从左往右数第二根档杆(SWB)控制无人车的模式,一共有两档, 中间位置无人车受遥控器控制,顶端位置无人车受板载计算机控制。 SWC挡杆控制无人车灯光模式,最上端为呼吸灯模式,中间为常亮模式,最下端为常闭模式。SWD挡杆控制无人车切换高速和低速模式。

硬件连接

R300硬件连接图

link

Note

  • 如果您在本页面看不清连接图,可以右键图片保存至本地

  • 车体连接部分已经在车体内部连接好, 非必要请勿修改!

  • 对于使用R300基站版的用户,请查看基站版连接部分

  • 对于使用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 移动版通信链路

R300 移动版通信链路图

Note

移动版通信和基站版通信不同之处在于, 不通过基站RTK 获取纠偏数据,而是通过千寻账号登录到其服务器,然后再由服务器进行位置解算,位置解算后,通过4G网络返回到移动版RTK。

术语

地面端Homer

通过网线与PC端连接的Homer

移动端Homer

放置在小车上的Homer

地面端RTK

与地面端Homer连接的RTK

移动端RTK

放置在小车上的RTK

移动端RTK(4G)

放置在小车上的RTK,并且RTK内部插入4G电话卡

快速上手指引

Note

  • 以下内容在用户拿到R300的时候已经完成配置和测试,保证功能正常。 如果非必要,请勿修改!

  • 以下内容可以作为您二次开发的一个例子

板载计算机设置

设置固定IP

  1. 将无线/有线键鼠插入R300侧边的USB扩展口,然后打开R300电源

  2. 输入密码 amov 登录到系统

  3. 打开桌面右上角 WIFI图标,点击 Wired Connected,找到 Wired Settings,点击菜单栏上的 IPV4 ,选择 Manual ,输入IP 192.168.1.14 ,子网掩码 255.255.255.0 如下图所示:

    Linux_IP

设置相机序列号

  1. 在桌面打开终端

  2. 输入命令 rs-sensor-control ,该命令将会返回 D435i 和 T265的序列号

  3. 接着打开目录: amovcar/src/common/sensor/amovcar_sensor/launch ,将会看到以对应传感器命名的launch文件

  4. 分别打开D435i / T265 的launch文件,把文件中的参数 defalut 的值替换成第2步获取到的相机序列号即可。

Homer配置

  1. 将基站端Homer用3S电池供电,再将专有网口线的一端接入基站端Homer的LAN1或LAN2口,另一端接入到PC的网口。(如果您的PC没有网口,则需要一个USB转网口模块)

    Warning

    • Homer需要用专门的电源线(电源线贴有 电源线 12V 字样的标签,如下图所示:

    • tune
    • Homer的供电电压为12V

    Note

    • LAN1或LAN2口为百兆网口。百兆网线如下:

    • 100
  2. 在PC上(Windows系统)打开 控制面板—查看网络状态和任务—更改适配器设置—右键以太网—属性—Internet协议版本4—属性,设置为如下图所示:

    ip
  3. 将移动端Homer和基站端Homer同时通电。基站端Homer用3S电池供电,移动端Homer用小车电源供电。(或者也可以将移动端Homer拆下来,再单独用3S电池供电)

  4. 基站端Homer配置

    • 首先将基站端Homer的工作模式,拨到 AP端口,如下图所示:

    • AP
    • 打开浏览器,输入网址 192.168.1.100 进入配置界面

    • 用户名和密码均为 admin

    • 找到 configNetworking,选择界面中的 Static IP 修改为如下图所示:

    • AP
    • 找到 configWireless,找到界面中的 ESSID,修改为 AMOV-002;找到界面中的 Passphrase,将密码修改为 12345678。图下图所示:

    • AP_WIFI
    • 保存

  5. 移动端Homer配置

    • 首先将移动端Homer的工作模式,拨到 STA端口,如下图所示:

    • STA
    • 打开浏览器,输入网址 192.168.1.10 进入配置界面

    • 用户名和密码均为 admin

    • 找到 configNetworking,选择界面中的 Static IP 修改为如下图所示:

    • STA_NET
    • configWireless,找到界面中的 ESSID 旁边的 Scan AP,此时将会搜索到基站端Homer配置的WIFI名称 AMOV-002,然后输入密码 12345678 点击连接,如下图所示:

    • STA_WIFI
    • 保存

    Note

    • 确保在配置过程中,两个Homer都通电。

    • 当两个Homer正面的绿色指示灯常亮,表示二者正确配置并且互相连接成功。

    • 基站端(AP模式下)的WIFI名称和密码可以根据实际情况自定义

    • 移动端(STA模式下),在连接上基站端的WIFI以后,一定要 点击保存,否则下一次启动将不会自动连接

  6. 打开Homer配置软件( 点击下载 配置软件)

    • 根据实际情况选择网卡设备。然后刷新设备,可以看到当前网络设备。

    • 选择102,按照下图设置

    • 102
    • 选择12,按照下图设置

    • 12
    • 选择11,按照下图设置

    • 11

    Note

    • 101、102、103为基站端Homer的三个串口的IP地址,这个地址可以根据实际情况自定义

    • 11、12、13为移动端Homer的三个串口的IP地址,这个地址可以根据实际情况自定义

    • 在上面的配置中,使用移动端Homer的UART1串口(192.168.1.11)与飞控通信。见 通信链路

    • 在上面的配置中,使用移动端Homer的UART2(192.168.1.12) / UART3(192.168.1.13) 串口与移动版RTK通信。见 通信链路

Warning

在配置RTK时,所有的 RTK天线禁止热插拔,即 必须先断电,后插拔RTK天线

移动端RTK配置

采用默认驱动,无需配置

基站端RTK配置

  1. 将基站端RTK用USB数据线连接至PC

  2. 通电(对于移动端RTK,可以使用R300电源供电,也可以拆下后单独用3S电源供电)

    Warning

    • RTK供电线和Homer供电线不兼容,不能混用。必须使用专门的电源线。如下所示:

    • RTK_cable
    • RTK的供电电压为12V

  3. 在PC上打开浏览器,输入 192.168.42.129 进入配置界面

  4. 输入用户名 admin, 密码 password 登录到配置界面

  5. 在页面左边找到 系统配置—网页命令 在对话框中输入命令 posave auto,点击提交

  6. 然后输入 saveconfig,点击提交

  7. 在页面左边找到 I / O配置—端口摘要 ,点击 COM2,即可进入COM2的配置界面

  8. 输出 栏下面找到 RTCM,将其改为 启用 ,点击确定即可

移动端RTK(4G)配置

  1. 将移动端RTK天线接入到移动端RTK的ANT1口,将小天线(又称小辣椒)接入到移动端RTK的4G接口,并插入4G卡。

  2. 通电(对于移动端RTK,可以使用R300电源供电,也可以拆下后单独用3S电源供电)

    Warning

    • RTK供电线和Homer供电线不兼容,不能混用。必须使用专门的电源线。如下所示:

    • RTK_cable
    • RTK的供电电压为12V

  3. 用USB数据线,一端接在移动端RTK的USB口,一端接在PC上

  4. 在PC上打开浏览器,输入 192.168.42.129 进入配置界面

  5. 输入用户名 admin, 密码 password 登录到配置界面

  6. 在该页面,您可以看到当前RTK的工作状态,包括卫星观测值质量、跟踪卫星数量、以及定位方式等

  7. 在页面左边的菜单栏找到 I/O配置,点击COM4口,进入如下图所示的配置

    4G_RTK

Note

R300软件框架

amovcar文件结构图如下:

amovcar_filesystem

amovcar

amovcar文件夹为ROS下的工作空间文件夹,包含无人车几乎所有的源代码文件,无人车功能包均放置在src文件夹下。

common

common文件夹内含有R200以及R300两款无人车通用的一些功能包,包含一些功能模块以及二维激光雷达、三维激光雷达、相机等传感器驱动ROS功能包。

R200

R200文件夹内含有 r200_bringupr200_functionr200_simulation 三个功能包。

r200_bringup为R200小车底盘的驱动功能包,R200下位机控制板为飞控,通过mavros连接飞控与板载计算机,r200_bringup在mavros上做了一层封装。

r200_function文件内含有R200无人车所有功能的源代码,包含自启动服务、配置文件、launch文件、sh脚本文件以及源代码等内容。

r200_simulation文件内含有R200无人车仿真的源代码,包含模型、gazebo环境、launch文件、配置文件等内容。

R300

R300文件夹内含有 r300_bringupr300_functionr300_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

Mission Planner的顶部工具栏如下

MP-interface

飞行数据: 飞行数据界面内容主要展示无人车飞控相关数据包含GPS数据状态,EKF定位状态,无人车当前模式,解上锁状况,无人车相关数据,地图等

飞行计划: 在该界面可画出无人车的航点,将航点传入到飞控中,修改航点相关的参数,读取飞控的航点等内容。

初始设置: 传感器校准就需要在此界面设置,一般来说,需要校准的传感器为罗盘,加速度计,平面校准等。

Note

某些版本地面站在传感器校准时会发生异常,出现该情况时,请更换地面站版本进行传感器校准。

配置/调试: 查看以及修改飞控的参数。

Warning

参数修改需充分了解APM以及Mission Planner相关基础知识,需谨慎使用,修改错误将导致无人车无法正常运行。

飞控固件

R300的飞控固件为阿木实验室定制版本,暂不开源

Warning

若非必要, 请勿升级R300的固件,由升级固件后所导致的R300功能无法正常使用,请自行解决!

刷入飞控参数

  1. 点击 飞控参数 可以下载飞控参数,提取码为 amov

  2. 将飞控用USB数据线,一端连接飞控USB端口,一端连接PC(Win7 / Win10 均可)

  3. 打开Mission Planner软件

  4. 在右上角选择端口号 COMx ,波特率为 115200,点击连接

  5. 点击顶部工具栏的 配置—全部参数表—加载—选择下载好的参数—写入参数,如下图所示:

    param

Note

  • COMx 端口号取决于实际使用情况

  • 飞控参数写入以后,需要重启生效

Warning

若非必要, 请勿修改R300飞控参数,如果您修改部分参数后导致R300功能无法正常使用,请自行解决!

Warning

在进行传感器校准之前,确保您已经刷入了R300的飞控固件以及飞控参数

加速度计与指南针的校准

在出厂测试时,传感器已经校准过,用户无需校准

SLAM

Note

在您阅读此内容之前,确保您已经阅读了 快速上手指引 内容,并了解 通信链路

Gmapping

  1. 将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成

  2. 打开遥控器

  3. 在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。

    Note

    板载计算机的固定IP,取决您如何设置 板载计算机IP

  4. 输入密码 amov 登录到板载计算机

  5. 打开板载计算机桌面的 sh 文件夹后,右键选择 open terminal

  6. 输入命令 bash 启动Gmapping建图脚本。

  7. 将遥控器上的档杆SWB拨至中间位置,开始控制R300移动建图

  8. 完成建图后,打开一个终端,输入命令 rosrun map_server map_saver -f ~/map 保存地图

    Note

    -f 参数后面表示地图保存的地址和文件名称,为绝对路径。上面这个指令,将地图保存在 根目录下,并且命名为map。

Cartographer

  1. 将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成

  2. 打开遥控器

  3. 在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。

    Note

    板载计算机的固定IP,取决您如何设置 板载计算机IP

  4. 输入密码 amov 登录到板载计算机

  5. 打开板载计算机桌面的 sh 文件夹后,在文件夹内右键选择 open terminal

  6. 输入命令 bash r300_cartographer_slam.sh 启动Cartographer建图脚本。

  7. 将遥控器上的档杆SWB拨至中间位置,开始控制R300移动建图

  8. 完成建图后,打开桌面的 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的建图结果

demo_map

三维建图

  1. 将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成

  2. 打开遥控器

  3. 在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。

    Note

    板载计算机的固定IP,取决您如何设置 板载计算机IP

  4. 输入密码 amov 登录到板载计算机

  5. 打开板载计算机桌面的 sh 文件夹后,右键选择 open terminal

  6. 输入命令 bash r300_rtabmap.sh 启动三维建图脚本。

  7. 将遥控器上的档杆SWB拨至中间位置,开始控制R300移动建图

  8. 完成建图后,打开一个终端,输入命令 rosrun map_server map_saver -f ~/map_name 保存地图

Tip

  • 如果节点启动异常,请确保 相机序列号 设置正确

  • 如果相机序列号正常,仍然存在启动失败的情况,请删除amovcar目录下的 devel 和 build 两个文件夹,然后重新编译整个项目

导航

室内导航

Note

在进行导航功能之前,确保您已经完成 SLAM 相关工作,有一张地图。

  1. 将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成

  2. 打开遥控器

  3. 在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。

    Note

    板载计算机的固定IP,取决您如何设置 板载计算机IP

  4. 输入密码 amov 登录到板载计算机

  5. 打开板载计算机桌面的 sh 文件夹后,右键选择 open terminal

  6. 输入命令 bash r300_navigation_indoor.sh 启动室内导航建图脚本。

  7. 在启动的 rviz 界面顶部的菜单栏中,选择 2D Pose Estimate,将机器人放置在地图中的实际位置,然后用遥控器控制E300前后左右稍微移动,待R300周围的粒子聚集即可。

  8. 在启动的 rviz 界面顶部的菜单栏中,选择 Navigation Goal,单击地图以设置机器人的目的地,然后将绿色箭头指向机器人在目标点将要面对的方向。

  9. 将遥控器上的档杆SWB拨至顶部,R300将会开始导航

室外航点规划及避障

  1. 将小车上电,等待板载计算机、飞控、移动端RTK、移动端Homer启动完成

  2. 打开遥控器

  3. 在PC上打开 No Machine 软件,输入 192.168.1.14 远程连接到板载计算机。

    Note

    板载计算机的固定IP,取决您如何设置 板载计算机IP

  4. 输入密码 amov 登录到板载计算机

  5. 在PC上打开 Mission Planner 软件,在右上角选择连接方式为 TCP,波特率为 57600

  6. 在弹出的对话框输入飞控IP地址 192.168.1.11,端口号为 8080

  7. 飞控连接上以后,等待GPS进入 rtk fixed状态,并且EKF没有报红。如下图所示:

    rtk_fixed
  8. 点击Mission Planner工具栏上的 飞行计划,在地图界面规划航点,然后点击右边的写入航点按钮

  9. 打开板载计算机的终端

  10. 输入命令 roscd r300_function/sh && bash r300_navigation_wp_goal.sh 启动室外航点规划及避障功能。

  11. 打开一个新的终端,输入命令 rosservice call /mavros/mission/pull

  12. 打开第10步启动的终端界面,在最后一个标签页中, 先输入1获取航点信息,等获取到航点信息后,再次输入1启动,如下图所示

    wp
  13. 将遥控器上的档杆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

  1. 打开终端,输入命令 roscd r300_simulation/sh && bash r300_simulation_slam_gmapping.sh

  2. 依次检查弹出的终端窗口,检查每个终端中的节点是否正常启动。

  3. 然后在第三个终端界面,通过键盘控制R300的移动,进行建图。如下图所示

    R300 Gmapping仿真
  4. 建图完成以后,打开一个新的终端,输入命令 rosrun map_server map_saver -f ~/sim_map

    Note

    • -f 参数后面表示地图保存的地址和文件名称,为绝对路径。上面这个指令,将地图保存在 根目录下,并且命名为map。

    • 如果您提前启动了 roscore,那么第一个终端将会报错,属正常情况。

下图为构建好的仿真地图

R300 Gmapping仿真地图

Cartographer

  1. 打开终端,输入命令 roscd r300_simulation/sh && bash r300_simulation_slam_cartographer.sh

  2. 依次检查弹出的终端窗口,检查每个终端中的节点是否正常启动。

  3. 然后在最后一个终端界面,通过键盘控制R300的移动,进行建图。如下图所示

    R300 Cartographer仿真
  4. 建图完成以后,打开一个新的终端,输入命令 roscd r300_simulation/sh && bash r300_cartographer_map_save.sh

    Note

    • 该脚本将地图默认保存在 /home/amov/amovcar/src/R300/r300_simulation/maps/ 下。地图的默认名称为 sim_map

    • 使用脚本保存地图会覆盖上一次的地图文件。如果需要多次仿真建图对比,将每次保存的地图单独放在一个文件夹中。

    • 如果您想将地图保存在其他位置,打开脚本,修改文件路径即可。

    • 如果您提前启动了 roscore,那么第一个终端将会报错,属正常情况。

下图为构建好的仿真地图

R300 Cartographer仿真地图

RtabMap三维建图

  1. 打开终端,输入命令 roscd r300_simulation/sh && bash r300_simulation_rtabmap.sh

  2. 依次检查弹出的终端窗口,检查每个终端中的节点是否正常启动。

  3. 确认终端均没有报错,在第三个终端内,用键盘控制小车移动进行建图。

  4. 建图完成以后,输入命令 rtabmap-databaseViewer ~/.ros/rtabmap.db 保存地图

  5. 仿真rtabmap如下

    R300 RtabMap仿真

    Note

    • 查看地图的命令为 rtabmap-databaseViewer ~/.ros/rtabmap.db

    • 输入查看地图命令后会跳出一个对话框,点击菜单栏上的 view—occupancy grid 即可查看地图

    • 地图保存的路径为 ~/.ros/rtabmap.db

OctoMap三维建图

  1. 打开终端,输入命令 roscd r300_simulation/sh && bash r300_simulation_octomap.sh

  2. 依次检查弹出的终端窗口,检查每个终端中的节点是否正常启动。

  3. 确认终端均没有报错,在第三个终端内,用键盘控制小车移动进行建图。如下图所示:

    R300 OctoMap仿真
  4. 建图完成以后,输入命令 rosrun octomap_server octomap_saver -f ~/map_name.ot 保存地图

    Note

    • -f 参数后面表示地图保存的地址和文件名称,为绝对路径。上面这个指令,将地图保存在根目录下,并且命名为map_name.ot。

    • 生成地图文件会耗费一定时间,示例中地图文件生成耗费时间大概在5秒左右

  5. 输入命令 octovis map_name.ot 查看三维地图。

    Note

    • 需在保存地图的文件夹路径下输入命令

    • 查看oct地图需要安装相关功能包 sudo apt install octovis

  6. 仿真Octomap地图如下:

R300 RtabMap仿真地图