{"id":28023,"library":"ouster-sdk","title":"Ouster SDK","description":"Official Python SDK for Ouster lidar sensors. Provides real-time data capture, visualization, and CLI tools for configuration, recording, and playback. Current version 0.16.2, with quarterly releases following a pattern of vX.Y.Z. Supports Python 3.8+. Breaking changes often involve reorganization under ouster.sdk prefix.","status":"active","version":"0.16.2","language":"python","source_language":"en","source_url":"https://github.com/ouster-lidar/ouster-sdk","tags":["lidar","sensor","robotics","ouster","point-cloud"],"install":[{"cmd":"pip install ouster-sdk","lang":"bash","label":"PyPI"}],"dependencies":[],"imports":[{"note":"As of v0.11.0, client module moved under ouster.sdk.","wrong":"from ouster.client import LidarScan","symbol":"LidarScan","correct":"from ouster.sdk.client import LidarScan"},{"note":"Same as above.","wrong":"from ouster.client import SensorInfo","symbol":"SensorInfo","correct":"from ouster.sdk.client import SensorInfo"},{"note":"Use new path; old one no longer works.","wrong":"from ouster.client import ScanBatcher","symbol":"ScanBatcher","correct":"from ouster.sdk.client import ScanBatcher"},{"note":"Reorganized under ouster.sdk.client.","wrong":"from ouster.client import PacketSource","symbol":"PacketSource","correct":"from ouster.sdk.client import PacketSource"},{"note":"As of v0.11.0, viz module under ouster.sdk.","wrong":"from ouster.viz import PointViz","symbol":"PointViz","correct":"from ouster.sdk.viz import PointViz"}],"quickstart":{"code":"from ouster.sdk.client import SensorInfo, LidarScan, ScanBatcher\nfrom ouster.sdk.client import PacketSource\nimport numpy as np\n\n# Connect to sensor (use hostname or IP)\nsensor_hostname = os.environ.get('OUSTER_HOSTNAME', '192.168.1.100')\nsensor_info = SensorInfo(sensor_hostname)\nprint(sensor_info)\n\n# Create a packet source\nsource = PacketSource(sensor_hostname)\n\n# Batcher to assemble LidarScan\nbatcher = ScanBatcher(sensor_info)\n\n# Collect one scan\nfor packet in source:\n    scan = batcher(packet)\n    if scan is not None:\n        print(f\"Got scan at {scan.timestamp}\")\n        break\n","lang":"python","description":"Connect to an Ouster sensor and capture one LidarScan."},"warnings":[{"fix":"Update imports to use ouster.sdk prefix. See migration guide: https://github.com/ouster-lidar/ouster-sdk/releases/tag/v0.11.0","message":"In v0.11.0, all library-level modules were moved under ouster.sdk (e.g. ouster.client -> ouster.sdk.client). Old imports will break.","severity":"breaking","affected_versions":">=0.11.0"},{"fix":"Pass a sensor_info object instead of manual size and format. See ScanBatcher doc.","message":"ScanBatcher constructor with (size_t, const packet_format&) is deprecated; use (const sensor_info&) version.","severity":"deprecated","affected_versions":">=0.13.1"},{"fix":"Update sensor firmware to at least 2.1.0. Consult Ouster support.","message":"As of v0.13.0, SDK is no longer compatible with firmware < 2.1.0. Sensors must be updated.","severity":"breaking","affected_versions":">=0.13.0"},{"fix":"Specify --coord-frame WORLD or SENSOR explicitly to match expectations.","message":"The --coord-frame option in ouster-cli filter defaults to BODY for backward compatibility but may not apply sensor extrinsics. Use WORLD to apply pose.","severity":"gotcha","affected_versions":">=0.16.1"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Use 'from ouster.sdk.client import ...'","cause":"Imports using old path before v0.11.0 reorganization.","error":"ModuleNotFoundError: No module named 'ouster.client'"},{"fix":"Ensure correct spelling: from ouster.sdk.client import LidarScan. Check installed version; upgrade to >=0.11.0 if needed.","cause":"Typo or outdated import; maybe using ouster.sdk.client incorrectly.","error":"AttributeError: module 'ouster.sdk.client' has no attribute 'LidarScan'"},{"fix":"Update sensor firmware to 2.1.0 or later, or use an older SDK version.","cause":"SDK version >=0.13.0 requires firmware >=2.1.0.","error":"RuntimeError: Sensor is not compatible"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}