You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For our project, we got a couple of Hesai FT120 solid state LIDAR. As this sensor is not yet supported, we integrated it into Nebula, following the documentations guidelines.
After rebasing our local branch over recent commit 222ac51, resulting changes should be in the "large contributions" camp (total diff file is more than 1600 lines).
Main changes are:
definition of new packet for the FT120 sensor (header, block and tail);
management of the sensor calibration file (it is a binary file format, that contains azimuth and elevation angles for each pixel of the sensor; a new subclass of HesaiCalibrationConfigurationBase was added);
a dedicated child class of AngleCorrector to manage the computations and storage of lookup tables for sin/cos;
a new child class of HesaiScanDecoder to manage the decoding (this was developed last November, so maybe it maintains the structure of the decoder before the last refactors);
minor additions to manage the new sensor.
There are a couple of dirty hacks (the second template parameter of the dedicated AngleCorrector is used to provide the total sensor column count; different standard parameter for rotating sensors must be declared but are not used, e.g. rotation_speed), and we don't have tests (we see the sensor output in Rviz, and for us is good enough; and we don't have idea how to build the tests).
We'd love to see FT120 in Nebula, so a PR would be greatly appreciated. Given that the packet headers alone are probably hundreds of lines already, the large diff might actually be warranted in this case. We can go over the details in PR review 👍
Since we don't have an FT120 to test with ourselves, could you provide a PCAP (e.g. recorded with Wireshark) containing all host-sensor communication (TCP+UDP) from before Nebula starts until after you close it? That way we can add unit tests from ground-truth data.
Activity
mojomex commentedon Feb 24, 2026
Hi @mgiardino-be, thank you for contributing!
We'd love to see FT120 in Nebula, so a PR would be greatly appreciated. Given that the packet headers alone are probably hundreds of lines already, the large diff might actually be warranted in this case. We can go over the details in PR review 👍
Since we don't have an FT120 to test with ourselves, could you provide a PCAP (e.g. recorded with Wireshark) containing all host-sensor communication (TCP+UDP) from before Nebula starts until after you close it? That way we can add unit tests from ground-truth data.
Let me know if you have any other questions!
mgiardino-be commentedon Feb 25, 2026
I've recorded a PCCAP file with Wireshark. There is:
Sensor IP: 192.168.1.201
Host IP: 192.168.1.101
The resulting reading look like this image:

And here is the PCAP file:
FT120_record.pcap.gz
I'm going to build a clean branch on my repo fork, before opening a PR.
Have a nice day
MG