Code Monkey home page Code Monkey logo

kitti_ros's Introduction

kitti_ros

  A ROS-based player to replay KiTTI dataset.

TODO list

  • Publish *.bin Point Cloud in topic /kitti/points_raw (sensor_msgs/PointCloud2).
  • Publish ground truth in tracklet_labels.xml.
    • Publish care_objects' 3D OBB (Oriented bounding box) in topic /kitti/bb_raw (geometry_msgs/PoseArray).
    • Publish as well as /kitti/bb_marker (visualization_msgs/MarkerArray) for visualization.
  • Publish *.png Image in topic /kitti/img_raw (sensor_msgs/Image).
    • Publish any Camera 0-3 image.
  • Publish *.txt Pose in tf between imu_frame and world_frame.
  • Publish *.txt Calibration in tf between Coordinates.
  • KiTTI LiDAR-Camera Fusion, kitti_lidar_camera

How to use

 We name your ros workspace as CATKIN_WS and git clone kitti_ros as a ros package.

# clone source code
$ cd $(CATKIN_WS)/src
$ git clone https://github.com/LidarPerception/kitti_ros
$ cd kitti_ros
# install python's dependencies
$ pip install -r requirements.txt 

# build your ros workspace
$ cd $(CATKIN_WS)
$ catkin build -DCMAKE_BUILD_TYPE=Release

# change Mode for Keyboard Listening Device
$ sudo chmod 777 /dev/input/event3

# [demo] launch kitti_ros's kitti_player with rviz
$ source devel/setup.bash
$ roslaunch kitti_ros demo.launch kitti_data_path:=path-to-your-KiTTI-dataset

 Learn more about parameter: kitti_data_path from Here. We recommend to use quickstart for KiTTI's LiDAR-perception algorithms testing and model training.

# copy quickstart bash scripts
$ cd $(CATKIN_WS)/src/kitti_ros
$ cp quickstart.sh killall.sh ../..

# quick start kitti_ros basic environment and visualization
$ cd $(CATKIN_WS)
$ ./quickstart.sh 

# [option 1] launch kitti_ros's kitti_player for frame-by-frame algorithm testing
$ roslaunch kitti_ros kitti_player.launch kitti_data_path:=path-to-your-KiTTI-dataset
# [option 2] launch kitti_ros's kitti_continue_player for data replay, like model training
$ roslaunch kitti_ros kitti_continue_player.launch dataset_file:=path-to-your-KiTTI-dataset-list-file

# quick exit
$ ./killall.sh

 Learn more about parameter: dataset_file from Here.

 Keyboard Control

  • SPACE: Play/Pause KiTTI data replay.
  • LEFT ARROW: Play last frame of data.
  • RIGHT ARROW: Play next frame of data.
  • keyboard_file: Keyboard listener is based on Linux input subsystem.
  • fps: default 10Hz, the same as LiDAR frequency.
  • kitti_data_path: KiTTI raw data directory.
    • default $(find kitti_ros)/../../data/2011_09_26/2011_09_26_drive_0005_sync, that is $(CATKIN_WS)/data/2011_09_26/2011_09_26_drive_0005_sync.
    2011_09_26
    ├── 2011_09_26_drive_0005_sync
    │   ├── image_00
    │   │   ├── data
    │   │   │   ├── 0000000xxx.png
    │   │   │   ├── ...
    │   │   └── timestamps.txt
    │   ├── image_01
    │   │   ├── data
    │   │   │   ├── 0000000xxx.png
    │   │   │   └── ...
    │   │   └── timestamps.txt
    │   ├── image_02
    │   │   ├── data
    │   │   │   ├── 0000000xxx.png
    │   │   │   └── ...
    │   │   └── timestamps.txt
    │   ├── image_03
    │   │   ├── data
    │   │   │   ├── 0000000xxx.png
    │   │   │   └── ...
    │   │   └── timestamps.txt
    │   ├── oxts
    │   │   ├── data
    │   │   │   ├── 0000000xxx.txt
    │   │   │   └── ...
    │   │   ├── dataformat.txt
    │   │   └── timestamps.txt
    │   ├── tracklet_labels.xml
    │   └── velodyne_points
    │       ├── data
    │       │   ├── 0000000xxx.bin
    │       │   └── xxx
    │       ├── timestamps_end.txt
    │       ├── timestamps_start.txt
    │       └── timestamps.txt
    ├── 201?_??_??_drive_0???_sync
    │   ├── ...
    │   └── ...
    ├── calib_cam_to_cam.txt
    ├── calib_imu_to_velo.txt
    └── calib_velo_to_cam.txt
  • dataset_file: Only for kitti_continue_player, a list of kitti_data_path line after line.
    • default is $(find kitti_ros)/../../data/training_datasets.txt, as following:
    #/home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0001_sync
    /home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0005_sync
    /home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0014_sync
    /home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0017_sync
    #/home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0018_sync
    #/home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0020_sync
    
    #GPF works bad in this dataset
    /home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0027_sync
    
    /home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0060_sync
    #/home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0091_sync
    
    #without ground truth
    #/home/gary/Workspace/intern_ws/catkin_ws/data/2011_09_26/2011_09_26_drive_0117_sync
  • filter_by_camera_angle: Only care about Camera's angle of view, default true.
  • care_objects: default ['Car','Van','Truck','Pedestrian','Sitter','Cyclist','Tram','Misc'], [] means no forground objects.

References

@article{geiger2013vision,
  title={Vision meets robotics: The KITTI dataset},
  author={Geiger, Andreas and Lenz, Philip and Stiller, Christoph and Urtasun, Raquel},
  journal={The International Journal of Robotics Research},
  volume={32},
  number={11},
  pages={1231--1237},
  year={2013},
  publisher={Sage Publications Sage UK: London, England}
}

Thanks

kitti_ros's People

Contributors

durant35 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.