Hey everyone,
In our recent robotics and autonomous systems development, we’ve been working heavily with solid-state dToF (Direct Time-of-Flight) sensors. One particular unit we’ve spent a lot of time testing, integrating, and writing drivers for is the MRP HM-LD1 — a compact, lightweight (28g, ~1.2W) 40 X 30 resolution dToF depth sensor powered by SPAD technology.
Since we often see developers asking for reliable, cost-effective outdoor 3D perception tools that work natively with ROS and edge AI boards, we decided to fully open-source our complete driver and application software stack.
Below is a breakdown of what we’ve built, our open-source repos, and some honest performance data we gathered during outdoor stress testing.
Quick Hardware Specs
For those curious about the underlying sensor module:
-
Principle & Tech: dToF with stacked SPAD array; 940nm VCSEL (Class 1 eye-safe)
-
Resolution & FOV: 40 X 30 pixels at 10 fps; 60°(H) X 45°(V) FOV
-
Effective Range: Indoor: 0.5m – 25m | Outdoor: 0.2m – 8.0m
-
Interfaces: UART, UVC (USB Video Class), and UDP
-
Official Specs & HW Info: MRP HM-LD1 Product Page
Open-Source Repositories & Demos
We wanted to make sure the sensor can drop right into existing toolchains without painful boilerplate setup. Here are the open-source projects we’ve released:
-
HM-LD1 ROS 1 & ROS 2 Driver(
click): Native wrapper for ROS 1 and ROS 2 to publish point clouds, integrate with RViz, and plug into navigation stacks. -
Dtof-SSL-HM-LD1 SDK(
click): Low-level protocol parsing, configuration, and data streaming core. -
Jetson Nano Obstacle Avoidance Demo(
click): Optimized edge pipeline running on NVIDIA Jetson for real-time collision detection. -
Drone Obstacle Avoidance Demo(
click): Lightweight UAV integration for altitude stabilization and obstacle sensing. -
Android APP Demo(
click): Mobile tool for quick field visualization and data monitoring. -
OpenCV Demo(
click): Standard computer vision pipeline integration for depth filtering. -
Gesture Recognition Demo(
click): Interactive 3D hand tracking combining MediaPipe with dToF depth matrices.
Real-World Outdoor Testing (109 klux Strong Sunlight)
Solid-state LiDAR performance under direct, harsh sunlight is always a hot topic. We ran static tests using 10% and 70% reflectance boards outdoors under ~109 klux sunlight:
-
Front-light (0.3m – 8.0m): Mean Absolute Error (MAE) sat at ~0.055m, with a maximum absolute error of ~0.090m at 8m. Measurements showed a consistent, slight underestimation trend relative to true distance.
-
Back-light (0.3m – 8.0m): MAE was ~0.043m, with a max error of ~0.140m observed at the 8m mark.
Developer takeaway: It holds up surprisingly well for short-to-mid range outdoor obstacle avoidance, but for production UAVs or UGVs, we strongly recommend implementing ROI (Region of Interest) filtering and point-count thresholds to screen out ambient noise.
Let’s Discuss
Have you been experimenting with dToF/SPAD sensors in your own ROS 2 or mobile robotics projects? How do you usually handle ambient light rejection in your obstacle avoidance pipelines?
PRs, issues, and contributions to any of the repos are more than welcome. Let me know what you think!








