Announcements
On macOS, Homebrew now symlinks Drake’s compatible version of Python 3 (3.8)
into /usr/local/bin/
, so it is on the $PATH
by default. There is no
longer any need to add /usr/local/opt/python@3.8/bin
to your $PATH
.
The newly-added feature for JavaScript system diagram visualization
(#13644) with function name drake::systems::GenerateHtml
in C++ and
pydrake.systems.framework.GenerateHtml
in Python fetches the GoJS graph
library in your browser with only an evaluation license. We recommend
avoiding this new feature while we sort out the licensing question
(#13705).
Breaking changes since v0.19.0
There are no breaking changes that did not undergo a deprecation period.
Changes since v0.19.0:
Dynamical Systems
New features
- Add SystemVisitor to introspect Diagrams (#13628)
- Add JavaScript system diagram visualization (#13644)
Fixes
- None
Mathematical Program
New features
- Create even or odd degree monomial basis (#13605)
- SdpaFreeFormat can remove free variables (#13600, #13669, #13685, #13687)
- GenerateSDPA supports removing free variables (#13636)
- MathematicalProgram creates even or odd degree polynomials (#13637, #13641)
Fixes
- None
Multibody Dynamics
New features
- Add accelerometer sensor (#13501)
- Add gyroscope sensor (#13604)
- Enable CalcBiasSpatialAcceleration to have non-world measured-in-frame (#13453)
- Enable CalcBiasTranslationalAcceleration for non-world measured-in frame (#13587)
- RenderEngineGl is now available (#13584, #13616, #13626, #13629, #13659)
- RenderEngineVtk now uses full camera intrinsics (#13655)
- Extend camera intrinsics into geometry and geometry/render (#13557, #13634, #13635)
- IllustrationProperties can be updated after parsing (#13598)
- Allow changing point contact parameters on a per-geometry basis via SceneGraph; these become Systems Framework parameters that live in the Context (#13630, #13686)
Fixes
- Fix BeamModel’s scalar conversion constructor (#13615)
- Declare SceneGraph related ports in MultibodyPlant constructor (#13558)
- Fix MultibodyPlant overflow with >128 contact points (#13676)
Tutorials and examples
- Use JavaScript system diagram visualization in dynamical_system.ipynb (#13644)
- Move manipulation station clutter clearing bins lower relative to robot to dramatically improve kinematic feasibility (#13666)
Miscellaneous features and fixes
- yaml: Add retain_map_defaults to YamlReadArchive::Options (#13590)
- yaml: Permit writing variant values beyond the 0’th index (#13631)
- yaml: Correctly write out empty sub-structs (#13679)
- planar_gripper: Add additional lcm message types (#13554)
pydrake bindings
New features
- Add ConnectMeshcatVisualizer sugar (#13632)
Fixes
- Pass animation arguments through to meshcat (#13643)
- Size the CalcJacobianTranslationalVelocity output matrix correctly (#13653)
Newly bound
- pydrake.examples.acrobot.AcrobotPlant.get_mutable_parameters (#13556)
- pydrake.examples.acrobot.AcrobotPlant.get_mutable_state (#13556)
- pydrake.examples.acrobot.AcrobotPlant.get_parameters (#13556)
- pydrake.examples.acrobot.AcrobotPlant.get_state (#13556)
- pydrake.geometry.Capsule (#13559)
- pydrake.geometry.Ellipsoid (#13559)
- pydrake.geometry.QueryObject.X_PF (#13559)
- pydrake.geometry.QueryObject.X_WF (#13559)
- pydrake.geometry.QueryObject.X_WG (#13559)
- pydrake.geometry.SceneGraphInspector.GetName (#13559)
- pydrake.geometry.SceneGraphInspector.GetPoseInParent (#13559)
- pydrake.geometry.SceneGraphInspector.GetSourceName (#13559)
- pydrake.geometry.SceneGraphInspector.NumAnchoredGeometries (#13559)
- pydrake.geometry.SceneGraphInspector.NumDynamicGeometries (#13559)
- pydrake.geometry.SceneGraphInspector.NumDynamicGeometries (#13559)
- pydrake.geometry.SceneGraphInspector.NumGeometriesWithRole (#13559)
- pydrake.geometry.SceneGraphInspector.SourceIsRegistered (#13559)
- pydrake.multibody.plant.MultibodyPlant.CalcBiasSpatialAcceleration (#13638)
- pydrake.multibody.plant.MultibodyPlant.CalcBiasTranslationalAcceleration (#13638)
- pydrake.multibody.plant.MultibodyPlant.CalcCenterOfMassPosition (#13594)
- pydrake.solvers.MathematicalProgramResult.set_x_val (#13577)
Build system and dependencies
- On macOS, use Sphinx from Homebrew instead of PyPI (#13551, #13575)
- On macOS, Drake’s supported python3.8 is now on the default PATH (#13660, #13668)
- On Ubuntu, the minimum GCC version is now 7.5 (#13611)
- On Ubuntu, the supported Clang version is now 9 (#13650, #13656)
- On Ubuntu, GL-related dependencies are more precise and use libOpenGL instead of libGL (#13649)
- Rebuild VTK and drake-visualizer against OpenGL (#13649)
- Fix Ubuntu Focal 20.04 to use C++ flavor of nlopt (#13633)
- Upgrade buildifier to latest release 3.3.0 (#13620)
- Upgrade fcl to latest commit (#13621)
- Upgrade fmt to latest release 7.0.1 (#13667)
- Upgrade googlebenchmark to latest release 1.5.1 (#13623)
- Upgrade lcm to latest commit (#13622)
- Upgrade pybind11 fork to latest commit (#13579)
- Upgrade spdlog to latest release 1.7.0 (#13667)
Newly-deprecated APIs
- Automatic conversion and interop between RigidTransform/Isometry3 (#13595, #13607, #13608)
- drake::math::RigidTransform::linear
- drake::math::RigidTransform::matrix
- drake::math::RigidTransform::operator Isometry3
- All functions within manipulation/util/bot_core_lcm_encode_decode.h (#13596)
- ::EncodeVector3d
- ::DecodeVector3d
- ::EncodeQuaternion
- ::DecodeQuaternion
- ::EncodePose
- ::DecodePose
- ::EncodeTwist
- ::DecodeTwist
- manipulation/models/wsg_50_description URDF and meshes (#13693)
- pydrake.geometry.SceneGraphInspector.GetNameByFrameId (#13559)
- pydrake.geometry.SceneGraphInspector.GetNameByGeometryId (#13559)
Removal of deprecated items
- ::Polynomial
([#13610][_#13610]) - ::Polynomiald (#13610)
- ::TrigPoly
([#13610][_#13610]) - ::TrigPolyd (#13610)
- ::VectorXPoly (#13610)
- ::VectorXTrigPoly (#13610)
- drake::examples::kuka_iiwa_arm::ApplyJointVelocityLimits (#13612)
- drake::examples::kuka_iiwa_arm::EncodeKeyFrames (#13612)
- drake::symbolic::Expression::ToPolynomial (#13610)
- drake::systems::AntiderivativeFunction::SpecifiedValues (#13610)
- drake::systems::InitialValueProblem::ODEFunction (#13610)
- drake::systems::InitialValueProblem::SpecifiedValues (#13610)
- drake::systems::ScalarInitialValueProblem::ScalarODEFunction (#13610)
- drake::systems::ScalarInitialValueProblem::SpecifiedValues (#13610)
- drake::trajectories::PiecewisePolynomial::Cubic (#13610)
- drake::trajectories::PiecewisePolynomial::Pchip (#13610)
drake::trajectories::PiecewisePolynomial<T>::PolynomialType
(#13610)- drake::trajectories::PiecewiseQuaternionSlerp::get_quaternion_knots (#13610)
Notes
This release provides
pre-compiled binaries
named drake-20200717-{bionic|focal|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.