Announcements
This release includes a number of translations of consumers of the legacy
RigidBodyTree simulator to the newer MultibodyPlant, including every
example used by our MIT users.
A number of substitutes for what are now C++ standard library mechanisms have
completed their voyage through the deprecation pipeline; we bid farewell to
drake_optional, drake_variant, and the Spruce filesystem library in this
release.
Breaking Changes
These are breaking changes that did not undergo a deprecation period.
- Removed some hydroelastic property setter methods:
- Hide
filesystem.hfrom downstreams (#12686)- We believe this API, although public, has no downstream users.
- Re-implement the uniformly random rotation to actually be uniform (#12562)
- This has caused some problems for consumers: The existing behaviour, although wrong, was relied on by some downstream code.
Dynamical Systems
New features
- Support Gaussian initial conditions in Affine/Linear systems (#12637)
- Enable
math::ComputeNumericalGradient()for scalar typesT != double(#12629) - Add
System::IsDifferenceEquationSystem(#12579) - Added a new utility,
MakeSimulatorFromGflags(#12527) - All vector-gen sources are switched to yaml format (#12684)
Fixes
- Refactor the convergence check of Newton-Raphson iterations (#12599)
- In
AffineSystemdo not add D*u to output if D==0 (#12712)
Mathematical Program
New features
- Ability to scale decision variables (SNOPT only) (#12576)
- Ability to stringify
solvers::Binding(#12693, #12700)
#####Multibody Dynamics
New features
- New hydroelastic contact model in progress (#12552, #12557)
- Still only experimental
- Improve performance
- Improve architecture
- Benchmark vtk and ospray render engines and add documentation (#12440)
MultibodyPositionToGeometryPosecan now:- Add utility for setting contact material properties generally (#12595)
- Allow
SceneGraph::AssignRoleto update proximity properties (#12585) - Signed distance to capsule calculations with Autodiff support (#12617)
- Faster, finalization-free MultibodyPlant body -> SceneGraph Frame registration (#12690)
- Improve rotation matrix methods in
FrameandMultibodyTree(#12683)
Fixes
- Exclude z from
MultibodyPlant::get_state_output_port()(#12619)
Examples
- Support default parameters for
AcrobotGeometry(#12601) - Remove
controlled_kuka(#12663) - Remove
contact_model(#12719) - Several examples moved off of
RigidBodyTree:
Miscellaneous features and fixes
- pyplot improvements:
Documentation updates
- Add example of using meshcat visualizer (#12646)
- Add linear program tutorial (#12659, #12700)
- Import SOS tutorial from colab (#12642)
- Update HTML5 animation to be conditional (#12615)
- Henceforth platform reviewers should merge approved PRs (#12692)
- macOS pre-merge validation should prefer Catalina (#12695)
- Add instructions for updating prerequisites (#12614)
- Update links to reflect modified MIT team names (#12639)
- Remove allowance for the inl.h pattern (#12711)
pydrake bindings
- Improved package top-level docstring (#12671)
pydrake.solvers.mathematicalprogram::LinearCost(#12651)pydrake.solvers.mathematicalprogram::QuadraticCost(#12651)- Class docstrings for py
- The upgrade of pybind11 to latest commit (#12641, below) fixes a bug that caused false cache hits for overloads (#12589)
Build system and dependencies
- Upgrade buildifier to latest release 1.0.0 (#12696)
- Upgrade fcl to latest release 0.6.0 (#12694)
- Upgrade libsdformat to 9.1.0 (#12653)
- Upgrade lcm to latest commit (#12667)
- Upgrade meshcat_python to latest commit (#12668)
- Upgrade pybind11 fork to latest commit (#12641)
- Upgrade spdlog to latest release 1.5.0 (#12669)
- Upgrade styleguide to latest commit (includes cpplint changes) (#12687, #12717)
- Remove all dependencies on protobuf (#12689)
- Add instructions for building experimental binary packages using Jenkins (#12586)
Newly-deprecated items
- APIs:
- Legacy (“attic”)
manipulation/util(#12679) geometry::Identifier(moved tocommon::Identifier) (#12621)- Some methods of
geometry::SceneGraphInspectorandgeometry::GeometryStatewere renamed and their old spellings deprecated (#12626)geometry::SceneGraphInspector::GetNumDynamicGeometriesbecomesgeometry::SceneGraphInspector::NumDynamicGeometriesgeometry::SceneGraphInspector::GetNumAnchoredGeometriesbecomesgeometry::SceneGraphInspector::NumAnchoredGeometries- A large number of items within
geometry::GeometryState; however although this class is public it is internal and should not be called.
- Legacy (“attic”)
- Dependencies
nlohmann/json(#12666)
Removal of deprecated items
- APIs
- Removing deprecated (“attic”) legacy support of:
drake::manipulation::dev::RemoteTreeViewerWrapper(#12666)drake::manipulation::sensors::Xtionand its URDF models (#12665)- Legacy manipulation and its perception and related systems: (#12677)
drake::manipulation::scene_generation::RandomClutterGeneratordrake::manipulation::scene_generation::SimulatePlantToRestdrake::manipulation::util::FramePoseTrackerdrake::manipulation::util::SimpleTreeVisualizerdrake::perception::estimators::ArticulatedIcpErrorSetdrake::perception::estimators::ArticulatedIcpErrorCostdrake::perception::estimators::ArticulatedIcpErrorNormCostdrake::perception::estimators::ArticulatedIcpLinearizedNormCostdrake::perception::estimators::ArticulatedIcpBodyPointsdrake::perception::estimators::PointCorrespondencedrake::perception::estimators::ArticulatedBodyInfluence
CalcFrameGeometricJacobianExpressedInWorld(#12685)SnoptSolver::is_thread_safe(#12685)drake_optionalanddrake_variant(#12682)text_logging_gflags(#12680)MakeFileInputStreamOrThrow(#12689)
- Removing deprecated (“attic”) legacy support of:
- Dependencies:
- Spruce filesystem library (#12681)
- Examples:
- Valkyrie (#12664)
Notes
This release provides
pre-compiled binaries
named drake-20200212-{bionic|mac}.tar.gz. See
Stable Releases for instructions on how to use them.
Drake binary releases incorporate a pre-compiled version of SNOPT as part of the Mathematical Program toolbox. Thanks to Philip E. Gill and Elizabeth Wong for their kind support.