I’ve started the ptudes (Point eTudes) playground as a place to easily run and replicate experiments with lidar based odometry, slam and mapping.

It’s heavily based on my latest work on Ouster SDK which was in the areas related to (the list is far from exhaustive):

  • raw sensor pcap reader integration to KISS-ICP, so one can easily get poses per every scan with a kiss_icp_pipeline --deskew ouster.pcap command.
  • Ouster SDK Viz – 3D point cloud visualizer that drives all visualizers of ouster-cli * viz commands (OpenGL/C++/Python).
  • ouster.sdk.pose_util with linear SE(3) continuous-time trajectory interpolations and other point cloud ops like dewarping and extrinsics handling.
  • ouster.viz.scans_accum.ScansAccumulator to make a registered point cloud from scans + poses and display it all in PointViz.
  • OSF - streaming based, extendable binary file format with compression for storing single/multi lidar sensor data (Flatbuffers/C++/Python).

With the new ptudes (Point eTudes) two things are added to the above mentioned list:

  1. ptudes flyby - flyby 3d visualizer over the registered lidar scans with poses.
ptudes flyby ./OS-0-128_v3.0.1_1024x10.pcap --kitti-poses ./OS-0-128_v3.0.1_poses_kitti.txt

Ouster sample data of OS-0 128 beams with KISS-ICP poses

  1. ptudes viz - visualizer of ROS BAGs with raw sensor data (i.e. Newer College Dataset)
ptudes viz ./2021-ouster-os0-128-alphasense/collection1/2021-07-01-10-37-38-quad-easy.bag \
    --meta ./2021-ouster-os0-128-alphasense/beam_intrinsics_os0-128.json

Newer College Dataset 2021, collection 1, quad-medium BAG

How to get the ptudes CLI and run examples you can find on the Github project page. I hope it will be valuable to other people who deal with Ouster lidar data and odometry/mapping algos.