天天看点

kitti数据集_KITTI数据集使用

本文仅为 ros使用自动驾驶数据集kitti教材学习小节,详细内容请参照原视频 kitti数据集的使用主要分为三个文件,kitti.py,data_utils.py,publish_utils.py 使用的资料包为:2011_09_26_drive_0005_sync

发布图片

1.发布器publisher: cam_pub = rospy.Publisher('kitti_cam',Image,queue_size=10) 2.读取文件data_utils.py 3.发布消息publish_utils.py 图片显示的主要步骤

cam_pub 
           

发布点云数据

pcl_pub 
           

发布IMU数据

传感器提供的姿态角,也称为欧拉角:pitch yaw roll 来显示

kitti数据集_KITTI数据集使用

包含的数据类型

kitti数据集_KITTI数据集使用

数据读取,在oxts/data/中包含有imu与gps数据

imu_data 
           

GPS资料

gps_pub = rospy.Publisher('kitti_gps',NavSatFix,queue_size=10)

def 
           

查看gps数据: rostopic list rostopic info /kitti_gps rostopic echo /kitti_gps

tracking数据读取

对物体进行标注,框出目标物 读取文件:

df_tracking 
           

tracking 中包含的数据类型

kitti数据集_KITTI数据集使用

可以使用jupyter notebook显示资料

import 
           

得到的数据如下:

kitti数据集_KITTI数据集使用

2D侦测框

例如van:bbox_left 从图片左边开始数第296.7个像素为左边的框框,bbox_top从上往下数161.7个像素为上边界坐标,right, bottom同理,由此可以得到van的2D框框

将车辆进行归类,并设定显示类型

df
           

3D侦测框以及显示track_id

3D侦测由 height,width,length,pos_x,pos_y,pos_z,rot_y这七个参数确定位置,这七个坐标是定义在相机坐标系的,需要与velodyne进行坐标转化

calib 
           

Calibration提供了任意坐标系的转换方法 在rviz中显示3D框需要物体的八个顶点,以及点与点之间的连线 计算3D侦测盒,在相机坐标系

def 
           

连线中下面:左前放为0,然后顺时针依次为1,2,3,上面同理

画出运动轨迹

1.计算过去的坐标

kitti数据集_KITTI数据集使用

当前坐标系在frame2,在第二帧中车辆坐标为(0,0),要通过坐标转换计算frame1在frame2坐标系下的坐标值,这样就可以将物体的历史坐标计算出来 设由当前帧frame1,运动到frame2,运动距离为d,旋转角为θ 帧旋转后得到的(x,y)坐标为R(-θ)·[x;y] =[xcos(-θ)+ysin(-θ);xsin(-θ)+ycos(-θ)] 平移后[xcos(-θ)+ysin(-θ)-d;xsin(-θ)+ycos(-θ)]

x1 
           

计算平移距离d

gps_distance 
           

平移有两种计算方式,通过GPS或者IMU数据进行计算, GPS计算的是大圆距离,适用于时间间隔较长的情形,采集时间短gps误差累计较大 IMU适用于时间间隔较短的情形,在计算距离中我们的时间间隔为0.1s,imu得到的距离更平滑。

角度θ

yaw_change 
           

imu_data中相邻两帧yaw相减即可 最终将历史帧数据全部转换到当前帧,不用考虑之前帧的坐标值 2.轨迹更新 在跟踪中设定tracker{},与center{}两个衡量指标 tracker中保存着object的信息,通过track_id进行检索object center中保存着该帧检测到物体的中心点 需要考虑的情形: a.第一次检测到:track_id在center中,不在tracker中,创建新的object

tracker
           

b.track_id在tracker,也在center中

tracker
           

c.遮挡情形:track_id在tracker中,但是center中未检测到

for 
           

最后将轨迹发布出去

kitti数据集_KITTI数据集使用