The KITTI Vision Benchmark Suite dataset is a popular robotics dataset from Karlsruhe Institute of Technology and Toyota Technological Institute at Chicago. Several benchmarking datasets are provided including stereo, flow, scene flow, depth, odomerty, object, tracking, road, semantics and the raw data.
To use this dataset in ROS, the streams should first be converted to ROS messages and published over various topics. This tutorials provides a step-by-step guide of how to achieve this.
Find corresponding raw file
Kitti provides domain specific datasets for stereo, flow, scene flow, depth, odometery, object, tracking, road and semantics. Each of these datasets has a corresponding raw dataset. For the odometry dataset, the readme.txt file in the odometry development kit has a section on mapping to raw data which is extracted below:
Mapping to Raw Data =================== Note that this section is additional to the benchmark, and not required for solving the object detection task. In order to allow the usage of the laser point clouds, gps data, the right camera image and the grayscale images for the TRAINING data as well, we provide the mapping of the training set to the raw data of the KITTI dataset. The following table lists the name, start and end frame of each sequence that has been used to extract the visual odometry / SLAM training set: Nr. Sequence name Start End --------------------------------------- 00: 2011_10_03_drive_0027 000000 004540 01: 2011_10_03_drive_0042 000000 001100 02: 2011_10_03_drive_0034 000000 004660 03: 2011_09_26_drive_0067 000000 000800 04: 2011_09_30_drive_0016 000000 000270 05: 2011_09_30_drive_0018 000000 002760 06: 2011_09_30_drive_0020 000000 001100 07: 2011_09_30_drive_0027 000000 001100 08: 2011_09_30_drive_0028 001100 005170 09: 2011_09_30_drive_0033 000000 001590 10: 2011_09_30_drive_0034 000000 001200 The raw sequences can be downloaded from http://www.cvlibs.net/datasets/kitti/raw_data.php in the respective category (mostly: Residential).
From the above file, it is evident that for the visual odometry dataset 00 the corresponding raw file is 2011_10_03_drive_0027.
Download the raw dataset
Once the corresponding raw dataset is identified, download and unzip the files via terminal:
- Download the drive file:
wget https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_10_03_drive_0027/2011_10_03_drive_0027_sync.zip
- Download the calibration file:
wget
https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data/2011_10_03_calib.zip - Unzip the drive file:
unzip 2011_10_03_drive_0027_sync.zip
- Unzip the calibration file:
unzip 2011_10_03_calib.zip
Create the rosbag file
In a terminal, install and run kitti2bag:
- set up pyenv
- Create a virtual environment:
virtualenv -p /usr/bin/python my_project
- Activate the virtual environment:
source my_project/bin/activate
- Update Python pip:
python -m pip install --upgrade pip
- Create a virtual environment:
- install kitti2bag and ROS dependencies
- Install kitti2bag:
pip install kitti2bag
- Install ROS Python dependencies:
pip install rospkg catkin_pkg
- Install kitti2bag:
- create the bag file
- Change directory to storage location:
cd /location/to/store/bag/file
- Create the rosbag file:
kitti2bag -t 2011_10_03 -r 0027 raw_synced
- Change directory to storage location:
This will create a bag file named kitti_2011_10_03_drive_0027_synced.bag. The process does take a while so go ahead and brew a cup of coffee. When all is done you should see the following output in terminal:
Exporting static transformations Exporting time dependent transformations Exporting IMU Exporting camera 0 100% (4544 of 4544) |##################################################################################################################################| Elapsed Time: 0:03:01 Time: 0:03:01 Exporting camera 1 100% (4544 of 4544) |##################################################################################################################################| Elapsed Time: 0:03:37 Time: 0:03:37 Exporting camera 2 100% (4544 of 4544) |##################################################################################################################################| Elapsed Time: 0:05:22 Time: 0:05:22 Exporting camera 3 100% (4544 of 4544) |##################################################################################################################################| Elapsed Time: 0:05:48 Time: 0:05:48 Exporting velodyne data 100% (4544 of 4544) |##################################################################################################################################| Elapsed Time: 0:16:49 Time: 0:16:49 ## OVERVIEW ## path: kitti_2011_10_03_drive_0027_synced.bag version: 2.0 duration: 7:50s (470s) start: Oct 03 2011 12:55:34.00 (1317642935.00) end: Oct 03 2011 13:03:25.83 (1317643405.83) size: 24.0 GB messages: 63616 compression: none [18184/18184 chunks] types: geometry_msgs/TwistStamped [98d34b0043a2093cf9d9345ab6eef12e] sensor_msgs/CameraInfo [c9a58c1b0b154e0e6da7578cb991d214] sensor_msgs/Image [060021388200f6f0f447d0fcd9c64743] sensor_msgs/Imu [6a62c6daae103f4ff57a132d6f95cec2] sensor_msgs/NavSatFix [2d3a8cd499b9b4a0249fb98fd05cfa48] sensor_msgs/PointCloud2 [1158d486dd51d683ce2f1be655c3c181] tf2_msgs/TFMessage [94810edda583a504dfda3829e70d7eec] topics: /kitti/camera_color_left/camera_info 4544 msgs : sensor_msgs/CameraInfo /kitti/camera_color_left/image_raw 4544 msgs : sensor_msgs/Image /kitti/camera_color_right/camera_info 4544 msgs : sensor_msgs/CameraInfo /kitti/camera_color_right/image_raw 4544 msgs : sensor_msgs/Image /kitti/camera_gray_left/camera_info 4544 msgs : sensor_msgs/CameraInfo /kitti/camera_gray_left/image_raw 4544 msgs : sensor_msgs/Image /kitti/camera_gray_right/camera_info 4544 msgs : sensor_msgs/CameraInfo /kitti/camera_gray_right/image_raw 4544 msgs : sensor_msgs/Image /kitti/oxts/gps/fix 4544 msgs : sensor_msgs/NavSatFix /kitti/oxts/gps/vel 4544 msgs : geometry_msgs/TwistStamped /kitti/oxts/imu 4544 msgs : sensor_msgs/Imu /kitti/velo/pointcloud 4544 msgs : sensor_msgs/PointCloud2 /tf 4544 msgs : tf2_msgs/TFMessage /tf_static 4544 msgs : tf2_msgs/TFMessage
Using the rosbag file
To use the bag file, just run roscore
in a terminal and play it back using rosbag play kitti_2011_10_03_drive_0027_synced.bag
.
Hi,
Seems, this article has gotten a bit outdated. Python 2’s setuptools are broken, so:
After the command:
# source my_project/bin/activate
You should type:
# python -m pip install “setuptools<45"
LikeLike
ROS kinetic targets Python 2.7. Is that the version you’re using? Were you able to install kitti2bag from pip?
LikeLike