October 2020
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).
September
- 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
engine
andsdk
now contain separate parts of Isaac SDK.sdk
depends onengine
, and references to elements that reside inengine
must be preceded by@com_nvidia_isaac_engine
.
August 2020
- Added
read_message_proto_bytes()
andset_message_proto_bytes()
to the C API package.
July 2020
Moved the implementation of DifferentialBaseModel as DifferentialWheelModel and rewrote it.
Before:
planner::DifferentialBaseModel model; planner::WheelDynamics wheel_dynamics; model.computeBodyDynamicsFromWheelDynamics(wheel_dynamics);
Now:
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.
The functions
readAllLatest()
,readAllNew()
,peekAllNew()
,readLatestNew()
,peekLatestNew()
, andcheckChannelMessages()
were removed from MessageLedger. Use the new queue and its functions likepeek()
andpop()
instead.Moved Tcp/Udp components to separate packages.
In order to use the
TcpPublisher
,TcpSubscriber
,UdpPublisher
, orUdpSubscriber
components, the new packageengine_tcp_udp
needs to be loaded.
June 2020
Moved the Python API and related tests to the
pyalice
package.Added dependencies of
pyalice
for allisaac_py_app
applications.The
import isaac.*
command is now supported in the Python API.Updated all imports accordingly.
Added
pyalice
toPYTHONPATH
when runningpytest
on Jetson CI.The following codelets were moved to a new module
libcask_module.so
and thus also to the new namespaceisaac::cask
:isaac::alice::Recorder isaac::alice::Replay isaac::alice::RecorderBridge isaac::alice::ReplayBridge
The following subgraphs were moved to
packages/casks/apps
:packages/record_replay/apps:record.subgraph.json packages/record_replay/apps:replay.subgraph.json
The codelet
StereoVisualOdometry
was moved to packagevisual_slam
.
January 2020
- Bazel 2.2.0 was introduced as the required build environment.