欧卡智舶发布全球首个城市内河无人驾驶数据集!

↑↑↑关注后"星标"Datawhale

每日干货 & 每月组队学习,不错过

 Datawhale干货 

来源:清华,西工大等研究者,数据:无人船数据集

欧卡智舶技术专题发布

 最近,欧卡智舶联合清华大学与西北工业大学的研究学者公开了一个针对真实内河水域场景下多传感器、多天气条件下的内河无人船数据集USVlnland 。为无人船及水面自动驾驶领域相关研究者提供一个平台和基准,推动解决内河无人船在真实场景应用中面临的挑战。

 


近年来,内河无人船因其潜在的应用价值而受到广泛关注,不同于海面无人船和路面自动驾驶场景,内河行驶的无人船的定位和感知面临着独特的挑战。欧卡智舶联合清华大学与西北工业大学的研究学者于近日公开了USVInland数据集,该数据集是第一个内河场景下多传感器的无人船数据集,旨在促进无人船领域相关研究,数据集论文已经被IEEE Robotics and Automation Letters (RA-L) 接收,并将在IEEE International Conference on Robotics and Automation (ICRA) 2021上进行展示。

  • 论文地址:https://arxiv.org/abs/2103.05383

  • 下载链接:http://www.orca-tech.cn/datasets

  

背景介绍

随着自动驾驶技术的发展,自动驾驶场景逐渐由路面扩展至水上,无人船(Unmanned Surface Vehicle,USV)及其相关应用成为近年来研究热点之一。其中,内河无人船具有极大的应用价值,如内河自主运输,测绘,水质检测,和河道垃圾清理等。不同于海面无人船,内河相对狭窄和复杂的环境,对无人船的定位和感知带来了新的挑战。

在狭窄的内陆水道中,GPS信号有时会由于河岸植被、河道旁建筑以及桥梁的遮挡而减弱。在这种情况下,内河航道的准确定位与导航,依赖于对无人船与周围环境的感知。此外,内河场景更为复杂,必须确保无人船与河岸和其他障碍物保持安全距离。因此,与道路上的自动驾驶类似,基于激光雷达、相机和毫米波雷达等传感器的同步定位与建图(SLAM)、立体匹配和水岸分割等任务被引入到内河无人船的应用中。

 

图2:有桥及狭窄的复杂内河场景

 

而在内河中,水面上的雾和强光反射会降低激光雷达探测精度;对于视觉系统,水面雾气和强光反射,岸边物体的反射和雨滴引起的涟漪也会带来干扰。此外,不同于路面车辆,水面上船只的横向漂移较大,船只的运动模型更为复杂,给精确定位带来新的挑战。因此,对于内河无人船,路面自动驾驶的通用策略是不可行的。

 

在路面自动驾驶领域,近年来涌现出了如KITTI,Oxford RobotCar,nuScenes等公共数据集,大大促进了路面自动驾驶领域相关技术的发展。而无人船领域的公开标准数据目前还相对缺失。

 

数据集介绍

USVInland是第一个真实场景下多传感器、多天气条件下的内河无人船数据集。在不同的内陆河道场景中,共采集了27段原始数据,总行驶距离超过26公里,发布的数据中包含了SLAM、立体匹配和水岸分割三项任务。

图3:数据集中包含不同天气及不同内河场景示例图

 数据采集平台搭载的传感器包括激光雷达,双目相机,以及GPS和IMU几种自动驾驶领域常用传感器。除此以外,采集平台上还配备了三个毫米波雷达提供周围环境点云数据。与图像和激光雷达相比,毫米波雷达对天气以及光照条件的鲁棒性更强,能提供多普勒速度信息,且成本较低,近年来在自动驾驶领域应用广泛。不同传感器之间完成了时间同步和空间标定。

  

图4:USVInland数据集多传感器采集平台

 受KITTI的启发,USVInland数据集引入了SLAM、立体匹配和水岸分割任务。对已有的常用算法,如SLAM中的LOAM,Lego-LOAM,ORB-SLAM,立体匹配中的SGBM,以及用于水岸分割的语义分割网络DeepLab v3+,文中给出了在内河场景数据集上的实验结果。结果表明,受到内河特殊场景的影响,常用算法的性能无法满足内河无人船安全行驶的需求。

  

图5:USVInland数据集中多传感器SLAM数据

 

图6:USVInland数据集水岸分割示例图

 

总结

针对内河无人船实际应用的需求,研究者构建了第一个多传感器、真实场景下内河无人船数据集USVInland。期待通过该数据集的发布,为无人船及水面自动驾驶领域相关研究者提供一个平台和基准,推动解决内河无人船在真实场景应用中面临的挑战。USVlnland主要被设计用于提升无人船在真实内河水域场景下的各项作业能力,USVlnland也是国内首个内河水面无人驾驶数据集,对于国内内河水面无人驾驶技术的发展具有划时代的意义。现在,欧卡智舶已经把 USVlnland数据集免费开放给全球各个国家的技术研究者使用,期待 USVlnland 能够启发更多研究人员进行真实内河水域场景下无人船发展的研究。

数据集下载链接:http://www.orca-tech.cn/datasets

论文全文地址:https://arxiv.org/abs/2103.05383

更多细节请见论文

欧卡智舶内河无人船数据集USVInland视频介绍

“整理不易,三连

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
首先,要读取MPU6050的欧拉角,需要先通过I2C接口向其发送初始化指令,然后读取其原始数据并进行数据格式转换。以下是使用STM32单片机模拟I2C时序读取MPU6050欧拉角的步骤: 1. 初始化I2C接口,设置I2C时钟频率和从设备地址。 2. 按照MPU6050的寄存器地址顺序依次向其发送读取指令,并读取返回的数据。 3. 对原始数据进行格式转换,将其转换为欧拉角的单位。 4. 使用欧拉角的公式将原始数据转换为欧拉角值。 以下是示例代码: ```c #include "stm32f4xx.h" #include "i2c.h" #include "mpu6050.h" // 初始化I2C接口 void MPU6050_Init(void) { I2C_Init(); } // 读取MPU6050的欧拉角 void MPU6050_ReadEuler(float *pitch, float *roll, float *yaw) { uint8_t buf[14]; int16_t ax, ay, az, gx, gy, gz; float fpitch, froll, fyaw; // 依次读取MPU6050的14个寄存器数据 I2C_ReadData(MPU6050_ADDRESS, MPU6050_RA_ACCEL_XOUT_H, buf, 14); // 将原始数据转换为加速度和角速度值 ax = (int16_t)((buf[0] << 8) | buf[1]); ay = (int16_t)((buf[2] << 8) | buf[3]); az = (int16_t)((buf[4] << 8) | buf[5]); gx = (int16_t)((buf[8] << 8) | buf[9]); gy = (int16_t)((buf[10] << 8) | buf[11]); gz = (int16_t)((buf[12] << 8) | buf[13]); // 将加速度和角速度值转换为欧拉角值 fpitch = atan2(ax, sqrt(ay * ay + az * az)) * 180 / PI; froll = atan2(ay, sqrt(ax * ax + az * az)) * 180 / PI; fyaw = atan2(gy, sqrt(gx * gx + gz * gz)) * 180 / PI; // 将欧拉角值返回 *pitch = fpitch; *roll = froll; *yaw = fyaw; } ``` 注意,以上示例代码仅供参考,具体实现细节还需要根据实际情况进行调整。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值