All the navigation apps inside Isaac SDK have been ported over to use evidential grid maps (EGMs). EGMs provide a cleaner local map and natively account for uncertainty while providing interesting fusion rules like the Proportional Conflict Redistribution fusion rule (PCR6).
The subgraph packages/navigation/apps/local_map.subgraph.json has been replaced by packages/egm_fusion/evidence_grid_map.subgraph.json.
There is a 1:1 correspondence between the older Bayesian map and newer evidential map codelets. However some parameters and channels have been modified.
To migrate, replace the codelets as :
navigation::LocalMap -> egm_fusion::EvidenceMapFusion navigation::OccupancyMapCleanup -> egm_fusion::EvidenceMapInpaint navigation::OccupancyToBinaryMap -> egm_fusion::EvidenceToBinaryMap
When specifying the flatscan frame names, the GridSearchLocalizer now accepts a list of strings rather than a single string. Each represents the frame name of the flatscan source’s origin.
The flatscan message channels to use now need to be specified explicitly via the GridSearchLocalizer parameter flatscan_channel_names. They must be in the same order as the frame names from flatscan_frames. Only unique entries are allowed.
Both above lists need to have the same amount of entries.
Migration from previous setups:
- For single flatscan source setups, set the flatscan_frames parameter to a list with the only entry being the desired flatscan frame. Also, set flatscan_channel_names to a list with the only entry being the message channel used for receiving flatscan messages.
- For multi flatscan source setups, extent above lists to the number of flatscan sources used, and keep both lists in order (the indices of the frames are associated to the indices of then channel names).
- Migration to CUDA 10.2 and cuDNN 8.0.3. This changes the system requirements for Isaac SDK from JetPack 4.3 to JetPack 4.4.
- Split into multiple workspaces: The folders
sdknow contain separate parts of Isaac SDK.
engine, and references to elements that reside in
enginemust be preceded by
set_message_proto_bytes()to the C API package.
Moved the implementation of DifferentialBaseModel as DifferentialWheelModel and rewrote it.
planner::DifferentialBaseModel model; planner::WheelDynamics wheel_dynamics; model.computeBodyDynamicsFromWheelDynamics(wheel_dynamics);
planner::DifferentialBaseModel model; planner::DifferentialWheelModel current_copy = model.current_model(); messages::DifferentialWheelVAState wheel_dynamics; current_copy.computeBodyDynamicsFromWheelDynamics(wheel_dynamics);
Engine now uses new StagingQueue for message queues.
checkChannelMessages()were removed from MessageLedger. Use the new queue and its functions like
Moved Tcp/Udp components to separate packages.
In order to use the
UdpSubscribercomponents, the new package
engine_tcp_udpneeds to be loaded.
Moved the Python API and related tests to the
Added dependencies of
import isaac.*command is now supported in the Python API.
Updated all imports accordingly.
pyteston Jetson CI.
The following codelets were moved to a new module
libcask_module.soand thus also to the new namespace
isaac::alice::Recorder isaac::alice::Replay isaac::alice::RecorderBridge isaac::alice::ReplayBridge
The following subgraphs were moved to
StereoVisualOdometrywas moved to package
- Bazel 2.2.0 was introduced as the required build environment.