rtk nav_msgs::Odometry IMU GPS
定位模块
IMU、GPS、里程计和视觉里程计等
建图和定位
SLAM(simultaneous localization and mapping
NDT是一种点云配准算法,可同时用于点云的建图和定位
NDT-Mapping NDT-Matching 正态分布变换(Normal Distributions Transform, NDT)。它能实现满足无人车需求的厘米级的定位需求
AutoWare 是由日本名古屋大学和Tier IV主导的全栈开源自动驾驶系统,其
core_percepetion模块中对ndt_mapping和ndt_localization进行了很好的实现
比较lidar扫描得到的点云和我们的地图点云-NDT配准就是用于解决这些细微的偏差问题
https://github.com/CPFL/Autoware
imu和odom信息的融合 IMU
高精地图
第一层道路模型(Road Model),定义道路特征,
例如拓扑、行驶方向、高程、坡度/坡道(slope/ramps)、规则、路缘/边界(curbs/boundaries)和交叉路口。这个用于导航。
第二层车道模型(Lane Model),定义车道级别的特征,
例如道路类型、线、道路宽度、停车区域和速度限制。该层作为感知模块,用于自动驾驶,根据实时交通或环境做出决策。
最后一层定位模型(Localization Model),顾名思义,在高清地图中定位自动车辆。
该层包含路边设施,例如建筑物、交通信号、标志和路面标记
定位:提供GPS+IMU信息
GPS即全球定位系统(Global Position System)的定位原理叫做三角定位法(Triangulation)
过GPS+RTK的方法来解决定位问题,RTK(Real - time kinematic,实时动态)载波相位差分技术-完成车辆的精确定位
测量加速度,就要使用“三轴加速度计”传感器。它可以精确测量加速度
加速度计和陀螺仪合起来就是是 IMU(惯性测量单元)一个解决速度,一个解决方向。IMU 频率为1000Hz,所以 IMU 可以提供接近实时的位置信息
定位
将GPS和IUM的优势融合到一块要用到卡尔曼滤波器。
GPS得到的经纬度信息作为输入信号传入IMU,IMU再通过串口线与控制器相连接,以此获取更高频率的定位结果
卡尔曼滤波器是一个最优化的自回归数据处理算法(Optimal recursive data processing algorithm)
高精地图与定位
卫星定位获取自车的大概位置
传感器扫描的信息与高精地图的点云信息(包含精确的位置信息)进行匹配
高精地图可以提供准确度较高的先验数据,与传感器实时获取的数据可以进行对比验证
格式:
一种是NDS(Navigation Data Standard导航数据标准),一种是OpenDrive。
数据处理
创建一个点云地图,需要两个重要的信息一个是定位信息,另一个是点云信息
把高精地图看作离线的传感器
Linux 终端
将LINUX的控制台定向到串口终端 串口调试设置 ttyS0:9600
常使用tty来简称各种类型的终端设备。tty是Teletype的缩写
01.串行端口终端(/dev/ttySn)
使用计算机串行端口连接的终端设备。串行端口对应的设备名称是/dev/ttySn。如/dev/ttyS0、/dev/ttyS1等,设备号分别是(4,0)、(4,1)
02.控制台终端(/dev/ttyn, /dev/console
03.伪终端(/dev/pty/)
串口
COM1 [under Windows]
or ttyS0 [under Linux)
console=tty0 console=ttyS0,9600
RTK(Real Time Kinematic,实时动态载波相位差分技术)
RTK高精度定位,之前都是通过自建基准站的方式实现的,基准站和移动站之间通过数传电台传输RTCM差分数据,
这种方式的好处是系统封闭,不依赖于第三方,缺点是每次都要架基站
01. RTK“1+1”
一加一的概念是一个基准站和一个移动站
传统的“1+1”RTK必须先建立基准站,而所谓移动站就是指采集终端,即测量员拿在手里到所需要测量位置去测的那个RTK设备。
02. 网络RTK
网络RTK只需要一台带有GPRS模块的接收机,通过连接软件登入cors系统,即可获取厘米级定位坐标,可以实现在服务覆盖范围内的测量作业。
卫星系统16个信号,
如何根据终端设备的需要,选择接入不同的卫星系统和信号(电文)
RTCM是英文Radio Technology Committee of Marine
Radio Technical Commission for Maritime Services 提出了一种通用的GNSS数据编码格式用于网络通讯 ,
与后处理常用的RINRX文件格式类似,RTCM 可以说是实时GNSS服务中的RINEX文件
RTCM的核心在于各种Message的定义rtcm3.2格式定义了多种Message格式
CORS系统
连续运行(卫星定位服务)参考站(Continuously Operating Reference Stations),缩写为CORS
基准站网由范围内均匀分布的基准站组成。负责采集GPS卫星观测数据并输送至数据处理中心,同时提供系统完好性监测服务。
移动站 CORS 中设置远程 IP 地址、端口号、源列表、用户名、密码
Ntrip协议
Ntrip(NetWorked Transport of RTCM via Internet Protocol)协议
来实现 CORS(Continues Operation Reference System)观测站和用户之间差分数据的无线传输
它的基础是 HTTP网络通用协议,建立在网络 TCP / IP 协议基础之上
方式1:NTRIP 接入使用CORS账号和密码接入高精度定位服务
Ntrip 网络主要由 3 个部分组成:
Ntrip 客户端(Ntrip Client)、
Ntrip 服务器(Ntrip Server)和
Ntrip 处理中心(NtripCaster)。
这里的 Ntrip 客户端和 Ntrip 服务器都只相当于 HTTP 连接中的客户端,
Ntrip 处理中心才是响应它们的服务处理器。
NTRIP工具
RTKLIB: An Open Source Program Package for GNSS Positioning
RINEX (Receiver Independent Exchange Format,与接收机无关的交换格式)
读取RINEX格式的函数 括了RINEX 2版本,有包括了RINEX 3版本
强大的GPS数据实时和后处理功能
cd app/str2str/gcc
str2str播发TCP server,然后Node.js接收TCP client
str2str -in serial://ttyACM1:115200:8:n:1 -out tcpsvr://:8002
serial: serial://port[:brate[:bsize[:parity[:stopb[:fctr]]]]]
tcp server: tcpsvr://:port
tcp client: tcpcli://addr[:port]
ntrip client : ntrip://[user[:passwd]@]addr[:port][/mntpnt]
ntrip server : ntrips://[:passwd@]addr[:port][/mntpnt[:str]] (only out)
file : [file://]path[::T][::+start][::xseppd][::S=swap]
格式:
rtcm2 : RTCM 2 (only in)
rtcm3 : RTCM 3 (in and out)
nov : NovAtel OEMV/4/6,OEMStar (only in) oem3 : NovAtel OEM3 (only in)
ubx : ublox LEA-4T/5T/6T (only in)
ss2 : NovAtel Superstar II (only in)
hemis : Hemisphere Eclipse/Crescent (only in) stq : SkyTraq S1315F (only in)
javad: Javad (only in)
nvs: NVS BINR (only in)
binex: BINEX (only in
用户根据数据中心给的 IP 地址和端口,就很容易收到 Ntripcaster 制定的源列表信息,
从源列表中就可以选定自己需要的格式的数据,直接和提供该数据的节点建立联系
设备
数据终端单元(Data Terminal Unit)
DTU (Data Transfer unit),是专门用于
将串口数据转换为IP数据
或将IP数据转换为串口数据
通过无线通信网络进行传送的无线终端设备
NovAtel公司 是精密全球导航卫星系统(GNSS)及其子系统领域中,处于领先地位的产品与技术供应商
NovAtel GPS接收机
NovAtel GPS的串口默认设置为9600 BPS,收发模式为NovAtel数据格式,
若收发模式变为RTCM、RTCA或NONE等其他模式
终端设备:
中海达、华测、司南、和芯星通、麦格天宝 等
天宝(Trimble)、诺瓦泰(NovAtel)、拓普康(Topcon)
novatel_oem7_driver
cd ~/sensor/novatel_oem7_driver
roslaunch novatel_oem7_driver oem7_tty.launch
oem7_gps_file.launch
oem7_net.launch
oem7_tty.launch
pose_sub_topic: /novatel/oem7/odom
# pose_sub_topic: /test/localization/pose
资料参考
NovAtel OEM7 Driver ROS Driver for NovAtel OEM7 GNSS/SPAN Receivers.
https://wiki.ros.org/novatel_oem7_driver
https://github.com/novatel/novatel_oem7_driver
nav_msgs/Odometry Message (里程计信息)
geometry_msgs/Pose
geometry_msgs/Quaternion 以四元数形式表示自由空间中的方向
设备
xsense(IMU/GPS) 荷兰XSENSE 九轴组合惯性卫星导航系统(GPS/INS)
MTI-300S是荷兰Xsens公司生产,可以输出三轴加速度、三轴角速度、三轴姿态角度(俯仰角/横滚角/航向角)
ntrip_ros 和xsens_ros_mti_driver