Announcements
- Our recommended tactics for looping over
MultibodyPlant
elements have changed:MultibodyPlant
now offers methods to remove elements:- After removal of an element, the set of valid indices is no longer
contiguous from
0
tonum_joints()
ornum_joint_actuators()
. - Typically, legacy code used integer-range loops to cover all elements:
for (JointIndex i{0}; i < plant.num_joints(); ++i) ...
for i in range(plant.num_joints()): ...
- Now that removals are possible, we instead recommend using the accessors to
provide the list of indices:
for (JointIndex i : plant.GetJointIndices()) ...
for i in plant.GetJointIndices(): ...
- Drake’s supported version of Clang is now Clang 15 (#21339)
Breaking changes since v1.28.0
- On macOS x86_64 builds, IPOPT is now disabled by default and unsupported (#21346)
Refer to our Drake Stability Guidelines for our policy on API changes.
Changes since v1.28.0
Dynamical Systems
New features
- Add
plant_context
argument toInverseDynamics
andInverseDynamicsController
(#21287)
Fixes
- None
Mathematical Program
New features
- Add perspective of positive semidefinite constraint (#21296)
- Convex set projection (#21113)
- Choose the transcription for adding (nonconvex) constraints (#21179)
- Add
MathematicalProgram::RemoveDecisionVariable
(#21392) - Add
MathematicalProgram::RemoveVisualizationCallback
(#21399)
Fixes
- Fall Back To Indefinite Hessian when LDLT fails (#21411)
Multibody Dynamics and Geometry
New features
- Add
MultibodyPlant::RemoveJoint()
(#21397)
Fixes
- Fix signed-distance gradients of touching (zero distance) boxes (#21266)
- Meshcat has a default recording (#21360)
Planning
New features
- Moves ZmpPlanner to planning directory (#21305)
Fixes
- Fix GetQuaternionDofStartIndices to loop over joints, not bodies (#21308)
Tutorials and examples
- None
Miscellaneous features and fixes
ModelVisualizer
draw allMultibodyPlant
frames when requested (#21318)- Add
RigidTransform
(etc.) factory methods without checks (#21393) - Add
DRAKE_DECLARE_COPY_AND_MOVE_AND_ASSIGN
macro (#21419)
pydrake bindings
New features
- Add python bindings for ExponentialPlusPiecewisePolynomial (#21304)
- Add python bindings for MultibodyPlant.CalcRelativeRotationMatrix (#21426)
- Add python bindings for ZmpPlanner (#21305)
Fixes
- None
Build system
- On Ubuntu, source prereqs now uses bazelisk.deb instead of bazel.deb (#21321)
- Upgrade Bazel to latest release 7.1.1 (#21123)
- Upgrade supported Clang to version 15 (#21339)
Build dependencies
- Disable IPOPT on macOS x86_64 (#21346)
- Upgrade abseil_cpp_internal to latest commit (#21385)
- Upgrade bazel_skylib to latest release 1.6.1 (#21385)
- Upgrade buildifier to latest release 7.1.1 (#21385)
- Upgrade Clarabel.rs to latest release 0.7.1 (#21053)
- Upgrade coinutils_internal to latest release 2.11.11 (#21385)
- Upgrade crate_universe to latest versions (#21306, #21385)
- Upgrade dm_control_internal to latest release 1.0.18 (#21385)
- Upgrade drake_models to latest commit (#21285, #21310, #21410)
- Upgrade ipopt_internal_fromsource to latest release 3.14.16 (#21385)
- Upgrade meshcat to latest commit (#21313, #21327)
- Upgrade mypy_internal to latest release 1.10.0 (#21385)
- Upgrade openusd_internal to latest release 24.05 (#21340)
- Upgrade platforms to latest release 0.0.10 (#21385)
- Upgrade rules_rust to latest release 0.42.1 (#21391, #21277)
- Upgrade rust_toolchain to latest versions (#21277)
- Upgrade sdformat_internal to latest commit (#21390)
- Upgrade stable_baselines3_internal to latest release 2.3.2 (#21385)
- Upgrade typing_extensions_internal to latest release 4.11.0 (#21385)
- Upgrade vtk_internal to latest commit (#21275, #21387)
Newly-deprecated APIs
drake::geometry::optimization::AffineSubspace::Project()
(#21113)drake::multibody::MultibodyPlant::SetFreeBodyRandomPositionDistribution()
(#21169)drake::multibody::QuaternionFloatingJoint::get_default_pose()
(#21169)drake::multibody::QuaternionFloatingJoint::get_default_position()
(#21169)drake::multibody::QuaternionFloatingJoint::get_pose()
(#21169)drake::multibody::QuaternionFloatingJoint::get_position()
(#21169)drake::multibody::QuaternionFloatingJoint::set_default_position()
(#21169)drake::multibody::QuaternionFloatingJoint::SetFromRotationMatrix()
(#21169)drake::multibody::QuaternionFloatingJoint::set_pose()
(#21169)drake::multibody::QuaternionFloatingJoint::set_position()
(#21169)drake::multibody::QuaternionFloatingJoint::set_quaternion()
(#21169)drake::multibody::QuaternionFloatingJoint::set_random_position_distribution()
(#21169)drake::multibody::RpyFloatingJoint::set_translation()
(#21169)drake::systems::controllers::ZmpPlanner
(#21305)pydrake.multibody.tree.QuaternionFloatingJoint.get_default_pose()
(#21169)pydrake.multibody.tree.QuaternionFloatingJoint.get_default_position()
(#21169)pydrake.multibody.tree.QuaternionFloatingJoint.get_pose()
(#21169)pydrake.multibody.tree.QuaternionFloatingJoint.get_position()
(#21169)pydrake.multibody.tree.QuaternionFloatingJoint.set_default_position()
(#21169)pydrake.multibody.tree.QuaternionFloatingJoint.SetFromRotationMatrix()
(#21169)pydrake.multibody.tree.QuaternionFloatingJoint.set_pose()
(#21169)pydrake.multibody.tree.QuaternionFloatingJoint.set_position()
(#21169)pydrake.multibody.tree.QuaternionFloatingJoint.set_quaternion()
(#21169)pydrake.multibody.tree.QuaternionFloatingJoint.set_random_position_distribution()
(#21169)pydrake.multibody.tree.RpyFloatingJoint.set_translation()
(#21169)
Removal of deprecated items
- Calling
drake::schema::Transform::Sample()
when it has a non-null, non-worldbase_frame
becomes an error. (The returned value would be misleading because it doesn’t incorporate the base frame.) (#21373) drake::geometry::render::RenderEngine::GetColorDFromLabel()
(#21373)drake::geometry::render::RenderEngine::GetColorIFromLabel()
(#21373)drake::geometry::render::RenderEngine::LabelFromColor()
(#21373)drake::systems::analysis::kNoConcurrency
(#21373)drake::systems::analysis::kUseHardwareConcurrency
(#21373)drake::systems::analysis::MonteCarloSimulation()
withnum_parallel_executions
argument (#21373)drake::systems::sensors::Color
(#21373)drake::systems::sensors::ColorD
(#21373)drake::systems::sensors::ColorI
(#21373)drake::systems::sensors::ColorPalette
(#21373)geometry/render/color_deprecated.h
(#21373)pydrake.geometry.optimization.FindSeparationCertificateOptions.num_threads
(#21373)pydrake.geometry.RenderEngine.GetColorDFromLabel()
(#21373)pydrake.geometry.RenderEngine.GetColorIFromLabel()
(#21373)pydrake.geometry.RenderEngine.LabelFromColor()
(#21373)systems/sensors/color_palette.h
(#21373)
Notes
This release provides pre-compiled binaries named
drake-1.29.0-{jammy|mac-arm64}.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.