May 19, 2021

Faster and easier lidar development with Ouster’s new Python SDK

Team Ouster

Lidar sensors have the potential to revolutionize how computers interact with the physical world. Where two dimensional cameras allow for largely passive interaction, 3D sensing empowers computers and machines to play more active and responsive roles in the physical world. Lidar hardware is rapidly improving, but cutting edge hardware alone is not enough to make lidar ubiquitous throughout our lives, lidar needs software to unlock its value. 

In the words of Steve Ballmer, the key to building a thriving technology ecosystem is: ”developers, developers, developers, developers, developers, developers.” Developer tools for working with lidar data have not kept pace with rapid hardware improvements. Developers working with lidar need to be empowered with access to open source machine learning libraries and easy to use tools for iterating rapidly during algorithm development. 

This is why today we are announcing the Ouster SDK to enable developers to interface with Ouster lidar sensors directly with Python to unlock the power of the Python ecosystem. Python is the most widely used programming language for research and engineering, so with this SDK we aim to lower the time and effort needed to work with our lidar sensors. The Ouster SDK is optimized for fast and easy interfacing with Ouster lidar sensors and is cross platform compatible across Linux, Window, and Intel-based Macs. 

Development with lidar sensors can be difficult for a number of reasons. C++ has been the de facto standard for interfacing with lidar sensors due to its speed, but it can be cumbersome to work with for algorithm development. Additionally, lidar data is difficult to port, lacks a common data format, and development often lacks access to efficient libraries. With the Ouster SDK, there is no cumbersome setup required. No C++ development environment needed. No need to setup ROS or launch a node to visualize data. No compilation required at all. Simply pip install ouster-sdk to get started. The SDK is designed such that with the Quick Start guide, anyone reasonably familiar with Python programming can start working with Ouster lidar data within minutes.

Features of the SDK:

⇒  Install with a single command on any system where Python is available: Linux, Windows, or MacOS. 

⇒  Interoperability within the Python ecosystem via numpy: matplotlib, opencv, open3d, and more

⇒  New APIs access the full configuration API, record and replay pcap data

⇒  Documentation for APIs and annotated examples for common tasks

⇒  High performance using native code compiled for each platform to enable working with Ouster lidar sensor data in real-time

Additional release notes:

⇒  The pre “1.0” APIs are subject to change. Users should be tolerant of some bugs and changes

⇒  Python support for the newest “M1” Macbooks is still in progress

image1-May-19-2021-04-24-05-87-AMPoint cloud from sample data, generated using the Ouster Python SDK

Future Work

This release of the Ouster SDK is just the beginning. We are going to continue to build on this foundation, adding more features and integrations to continually make development on Ouster lidar sensors easier and easier. Here are some areas we’re working on:

Command-line utilities - Perform common tasks without writing any code

Connect to and configure the sensor

Record and visualize data

Convert between common formats

Native (C++) SDK

Pre-built packages for common platforms

Facilitate integration with new platforms by sharing a common SW layer (via stable APIs)

Alternatives to .pcap as a data format

Integration with OSS

Compatibility with popular Github projects that work with other lidar sensors

Our team will be continuously improving this SDK and if you are working with it and have suggestions, we want to hear from you. Please reach out to us with your requests on github

Get started today

We are have a webinar to walkthrough the SDK installation process and some examples of what's possible with the code. Please check it out here.

To get started with the SDK, please check out our Quick Start guide. We’re looking forward to seeing it in action.