-
Notifications
You must be signed in to change notification settings - Fork 439
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Includes: * Introduction of IndexedPcapReader, seek metehod to PcapReader * Moving port guessing logic from Python into C++ * `SensorHTTP` class made public * experimental mtp_init_client to init client for multicast support * Support of future DF sensor line metadata via introduction of fps and changes to metadata parsing * Numerous viz changes including introducing palettes, ImageMode and CloudMode * bugfix on application of autoleveling for viz * FindPcap updates * FW 2.5 test metadata assets * Change default metadata output to nonlegacy
- Loading branch information
Showing
81 changed files
with
7,033 additions
and
1,046 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
find_package(PkgConfig QUIET) | ||
if(PKG_CONFIG_FOUND) | ||
pkg_check_modules(PC_PCAP QUIET libpcap) | ||
if(PC_PCAP_FOUND) | ||
set(PCAP_VERSION_STRING ${PC_PCAP_VERSION}) | ||
endif() | ||
endif() | ||
|
||
find_path(PCAP_INCLUDE_DIR | ||
NAMES pcap.h | ||
HINTS ${PC_PCAP_INCLUDE_DIRS}) | ||
|
||
find_library(PCAP_LIBRARY | ||
NAMES pcap pcap_static wpcap | ||
HINTS ${PC_PCAP_LIBRARY_DIRS}) | ||
|
||
include(FindPackageHandleStandardArgs) | ||
find_package_handle_standard_args(Pcap | ||
REQUIRED_VARS PCAP_LIBRARY PCAP_INCLUDE_DIR | ||
VERSION_VAR PCAP_VERSION_STRING) | ||
|
||
mark_as_advanced( | ||
PCAP_INCLUDE_DIR | ||
PCAP_LIBRARY) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
=============================================== | ||
Migration from 20220927/0.5.1 to 20230114/0.7.1 | ||
=============================================== | ||
|
||
The 20230114 release, which corresponds to Python SDK 0.7.1, brings a few breaking changes | ||
introduced to support the newest FW of the sensor, FW 3.0. The changes and how to mitigate them are | ||
summarized here. | ||
|
||
Signal Multiplier | ||
----------------- | ||
|
||
FW 3.0 allows setting the signal multiplier to non-int values 0.25 and 0.5. As such, we have changed | ||
the type of the ``sensor_config`` struct member ``signal_multiplier`` to double. | ||
|
||
Old saved config jsons will continue to load properly. | ||
|
||
XYZLut and ``sensor_info`` | ||
-------------------------- | ||
|
||
The ``sensor_info`` struct now contains the ``beam_to_lidar_transform`` specifying the relationship | ||
between the beam coordinate frame and lidar coordinate frame. The double | ||
``lidar_origin_to_beam_origin_mm`` which corresponds to the (0, 3) element of the | ||
``beam_to_lidar_transform`` has not been removed. | ||
|
||
The ``make_xyz_lut`` function now takes a ``mat4d`` transformation specifying the relation between | ||
the beam and lidar coordinate frames, as opposed to the previous double which assumed an Identity | ||
rotation. | ||
|
||
Users using pre-FW3.0 sensors with the latest SDK ``make_xyz_lut`` overload which accepts a | ||
``sensor_info`` need not change anything, as the ``sensor_info`` struct automatically derives and | ||
self-populates with the appropriate ``beam_to_lidar_transform``. | ||
|
||
Default Parameters in init_client | ||
--------------------------------- | ||
|
||
The shortform C++ ``init_client`` and Python ``client.Sensor()`` no longer have default parameters. | ||
Since they do not configure the sensor, it didn't make sense to default to any value for any | ||
parameters. Users must provide the ports and hostname explicitly now. | ||
|
||
Timeout Improvements | ||
-------------------- | ||
|
||
The Python Scans interface timeout parameter has been changed from None to 1 second by default to | ||
avoid confusing hanging behavior when timing out is appropriate. The default timeout has also been | ||
changed to 2 seconds across the board. | ||
|
||
Notes for the future | ||
-------------------- | ||
|
||
For customers who know they will continue to upgrade their version of the SDK, we also wish to | ||
highlight some upcoming breaking changes. | ||
|
||
Default Metadata Format | ||
+++++++++++++++++++++++ | ||
First, the next release will default writing the non-legacy metadata format as opposed to the | ||
current format, also known as the legacy metadata format. The SDK will continue to read the legacy | ||
format, i.e., it will continue to read old recorded data), and it will also be able to produce the | ||
legacy format if the parameter ``legacy=true`` is specified to the ``get_metadata`` function. | ||
|
||
Deprecations | ||
++++++++++++ | ||
We are going to start removing a number of deprecations in the ``ouster_client`` code with the next | ||
release. We will document any such removals and how to migrate from them in this or the following | ||
migration guide (whichever is relevant). | ||
|
||
- ``LidarScan::N_FIELDS``: The number of fields in a profile has varied since the introduction of | ||
eUDP profiles. To find the number of fields in your scan, we suggest using the iterator to loop | ||
over and count the number of fields. | ||
|
||
|
||
- ``LidarScan::Field``: use ``sensor::ChanField`` instead. | ||
|
||
- ``LidarScan::BlockHeader``: ``BlockHeaders``, structs consisting of the ``timestamp``, | ||
``encoder`` ticks, and ``status`` which corresponded to a single column of measurements | ||
(identifiable by``measurement_id``), have been deprecated in favor of ``Headers``, which are | ||
Eigen Arrays of length equivalent to the # of columns in a scan, with the ith element being the | ||
value from the ith measurement. As such, where once you might write: | ||
|
||
.. code:: | ||
auto n_invalid = std::count_if( scans[i].headers.begin(), scans[i].headers.end(), [](const | ||
LidarScan::BlockHeader& h) { return h.status != 0xffffffff; }); | ||
you should now use the ``status()`` function: | ||
|
||
.. code:: | ||
auto status = scan.status(); auto n_invalid = std::count_if(status.data(), status.data() + | ||
status.size(), [](const uint32_t s) { return !(s & 0x01); }); | ||
Timestamps are now available through ``timestamp()``, also returning a ``Header``; and the information | ||
contained in ``encoder`` is available through ``measurement_id()`` (see the next line item for the | ||
conversion). | ||
|
||
- ``encoder``: Encoder counts were part of the LEGACY UDP profile, representing the azimuth angle as | ||
a raw encoder count starting from 0 to a max value of 90111. It thus incremented 44 ticks per | ||
azimuth angle in 2048 mode, 88 ticks in 1024 mode and 176 in 512 mode. To recover encoder | ||
infcount, you can multiply the ``measurement_id`` by the number dictated by your lidar mode. We | ||
would suggest, however, migrating to use simply ``measurement_id`` and multiplying by ``360 | ||
degrees/ N`` where ``N`` is the number of columns in your mode (512, 1024, 2048) when you need the | ||
azimuth, thus untying any sense of azimuth from the internal mechanicals of the Ouster sensor. |
Oops, something went wrong.