Announcements
- Drake’s precopmiled Ubuntu binaries now have OpenMP enabled (#18849).
- Drake’s parser can add
*.obj
files directly into a MultibodyPlant without SDFormat boilerplate (#18776). - Drake no longer sets nor requires FMT_DEPRECATED_OSTREAM (#18806,
#18850).
- Drake will remain compatible with this setting, so if you still need it for your own project you can set it yourself.
Breaking changes since v1.13.0
- InverseKinematics no longer gives mutable access to const members (#18793)
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.13.0
Dynamical Systems
New features
- Improve defaults for AffineSystem and LinearSystem (#18822)
Fixes
- None
Mathematical Program
New features
- Add GUROBI_NUM_THREADS environment variable (#18819)
- QuadraticConstraint stores Hessian type and checks convexity (#18965)
- Add SubstituteAndExpand method to Polynomial (#18752)
- Enable symbolic matrix inversions (#18823)
- Adds BezierCurve (isa Trajectory) (#18868)
Fixes
- Fix a bug in GurobiSolver with duplicated variables in second-order cone constraints (#18890)
- Retrieve Mosek IPM solution if basis selection is disabled for LP (#18895)
- Speed up symbolic Add and Mul (#18869)
- Speed up symbolic Variable (#18901)
- Remove redundant options copying in IpoptSolver (#18874)
- Change SolverBase constructor to prefer SolverId directly (#18880)
Multibody Dynamics and Geometry
New features
- Implement Meshcat::PlotSurface() (#18924)
- Implement Meshcat::GetSliderNames() (#18949)
- Add SpatialInertia::PointMass() (#18864)
- Add SpatialInertia::HollowSphereWithDensity() (#18865)
- Add SpatialInertia::SolidCubeWithDensity() (#18866)
- Add SpatialInertia::SolidCylinderAboutEnd() (#18889)
- Add SpatialInertia::ThinRodWithMass() (#18891)
- Add SpatialInertia::ThinRodWithMassAboutEnd() (#18950)
- Allow models to be parsed into plant from
*.obj
files (#18776) - Support auto-renaming of models (#18921)
- Retrieve joint actuators and actuated joints per model instance (#18959)
Fixes
- Improve SDFormat parsing error reporting (#18462)
- Ignore collision filter groups from model directives if there’s no scene graph (#18798)
- SceneGraphInspector provides ordering guarantees on reported ids (#18903)
- Relax single model test in SDFormat singular API (#18888)
Planning
New features
- Ongoing work in progress on the C-IRIS feature:
- Add PointToLineDistanceConstraint (#18817)
Fixes
- InverseKinematics no longer gives mutable access to const members (#18793)
- Further improve welded body check (#18723)
- Clean up ZmpPlanner (#18845)
Tutorials and examples
- Add Diagram tutorial (#18873)
- Add an example of using
namedview
in authoring leaf systems (#18809) - Add and use drake_models/package.xml (#18919)
- Fix skydio model prop colors and normals (#18867)
- Move the distal geometry for the Jaco arm to link 7 (#18799)
Miscellaneous features and fixes
- Visualiation improvements
- Logging changes
- Add DrakeLcmBase (#18847)
- Add DrakeLcmInterface::SubscribeMultichannel (#18826)
- Serializable objects can also be output as JSON (#18943)
pydrake bindings
New features
- None
Fixes
- Leave C++ logging sink intact (but no-op) (#18750)
- Condense pydrake.manipulation into a single module (#18973)
- Use nice names for default template classes (#18972)
Build system
- Remove opt-in to FMT_DEPRECATED_OSTREAM (#18806), #18850)
- Enable OpenMP in Ubuntu binaries (#18849)
- Automatically fix more GCC 12 installation mistakes on Jammy (#18925)
Build dependencies
- Upgrade abseil_cpp_internal to latest commit (#18926)
- Upgrade bazel_skylib to latest release 1.4.1 (#18926)
- Upgrade curl_internal to latest release 7.88.1 (#18929)
- Upgrade lcm to latest commit (#18926)
- Upgrade mypy_internal to latest release v1.0.1 (#18926)
- Upgrade petsc to latest release v3.18.5 (#18926)
- Upgrade ros_xacro_internal to latest release 1.14.15 (#18926)
- Upgrade rules_pkg to latest release 0.8.1 (#18926)
- Upgrade rules_python to latest release 0.19.0 (#18926)
- Upgrade sdformat_internal to latest release 13.3.0 (#18931)
- Upgrade tinyobjloader to latest commit (#18926)
- Upgrade typing_extensions_internal to latest release 4.5.0 (#18926)
Newly-deprecated APIs
- drake::SortedPair::operator« (#18892)
- drake::copyable_unique_ptr::operator« (#18771)
- drake::kHomogeneousTransformSize (#18857)
- drake::kQuaternionSize (#18857)
- drake::kRotmatSize (#18857)
- drake::kRpySize (#18857)
- drake::kSpaceDimension (#18857)
- drake::kTwistSize (#18857)
- drake::multibody::parsing::GetInstanceScopeName (#17482)
- drake::multibody::parsing::GetScopedFrameName (#17482)
- drake::multibody::parsing::ParseScopedName (#17482)
- drake::multibody::parsing::PrefixName (#17482)
- drake::planning::CollisionChecker::GetScopedName (#17482)
- drake::solvers::SolverBase constructor with a SolverId-returning functor (#18880)
- drake::systems::controllers::ZMPPlanner (#18845)
- pydrake.multibody.parsing.GetScopedFrameName (#17482)
- pydrake.multibody.plant.CalcJacobianSpatialVelocity(*, p_BP) use p_BoBp_B (#18876)
- pydrake.planning.CollisionChecker.GetScopedName (#17482)
Removal of deprecated items
- drake::trajectories::PiecewisePolynomial::Cubic (#18927)
- drake::multibody::MultibodyPlant::AddCouplerConstraint with non-double gear_ratio and offet (#18927)
- drake::multibody::MultibodyPlant continuous_state port (#18927)
- drake::multibody::MoultibodyPlant port suffixed with _continuous_state (#18927)
- drake::multibody::FixedOffsetFrame::SetPoseInBodyFrame (#18927)
- drake::systems::LeafSystem::DeclarePeriodicPublish (#18927)
- drake::systems::LeafSystem::DeclarePeriodicDiscreteUpdate (#18927)
- drake::systems::LeafSystem::DeclarePeriodicUnrestrictedUpdate (#18927)
- drake::systems::System::CalcDiscreteVariableUpdates (#18927)
- drake::systems::System::CalcUnrestrictedUpdate (#18927)
- drake::systems::System::Publish(context) (#18927)
- pydrake.multibody.tree.FixedOffsetFrame.SetPoseInBodyFrame (#18927)
- pydrake.systems.framework.LeafSystem.DeclarePeriodicPublish (#18927)
- pydrake.systems.framework.LeafSystem.DeclarePeriodicDiscreteUpdate (#18927)
- pydrake.systems.framework.System.CalcDiscreteVariableUpdates (#18927)
- pydrake.systems.framework.System.CalcUnrestrictedUpdate (#18927)
- pydrake.systems.framework.System.Publish (#18927)
Notes
This release provides pre-compiled binaries named
drake-20230315-{focal|jammy|mac|mac-arm64}.tar.gz
. See [Stable Releases]
(/from_binary.html#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.