Software Stack
DepthAI
  • DepthAI Components
    • AprilTags
    • Benchmark
    • Camera
    • DetectionNetwork
    • EdgeDetector
    • Events
    • FeatureTracker
    • HostNodes
    • ImageAlign
    • ImageManip
    • IMU
    • Misc
    • Modelzoo
    • NeuralNetwork
    • RecordReplay
    • RGBD
    • Script
    • SpatialDetectionNetwork
    • SpatialLocationCalculator
    • StereoDepth
    • Sync
    • SystemLogger
    • VideoEncoder
    • Visualizer
    • Warp
    • RVC2-specific
  • Advanced Tutorials
  • API Reference
  • Tools

ON THIS PAGE

  • Basalt VIO
  • Setup
  • Pipeline
  • Source code

Basalt VIO

The example creates a pipeline to capture 640x400 stereo camera frames at 60 FPS and IMU data at 200 Hz, processes them with BasaltVIO for visual odometry, and streams the resulting transformations and images to a RerunNode for real-time visualization.

Setup

This example requires the DepthAI v3 API, see installation instructions.

Pipeline

Source code

Python
C++

Python

Python
GitHub
1import signal
2import time
3import depthai as dai
4from rerun_node import RerunNode
5# Create pipeline
6
7with dai.Pipeline() as p:
8    fps = 60
9    width = 640
10    height = 400
11    # Define sources and outputs
12    left = p.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_B, sensorFps=fps)
13    right = p.create(dai.node.Camera).build(dai.CameraBoardSocket.CAM_C, sensorFps=fps)
14    imu = p.create(dai.node.IMU)
15    odom = p.create(dai.node.BasaltVIO)
16
17    rerunViewer = RerunNode()
18    imu.enableIMUSensor([dai.IMUSensor.ACCELEROMETER_RAW, dai.IMUSensor.GYROSCOPE_RAW], 200)
19    imu.setBatchReportThreshold(1)
20    imu.setMaxBatchReports(10)
21
22    # Linking
23    left.requestOutput((width, height)).link(odom.left)
24    right.requestOutput((width, height)).link(odom.right)
25    imu.out.link(odom.imu)
26    odom.passthrough.link(rerunViewer.inputImg)
27    odom.transform.link(rerunViewer.inputTrans)
28    p.start()
29    while p.isRunning():
30        time.sleep(0.01)

Need assistance?

Head over to Discussion Forum for technical support or any other questions you might have.