Drake v0.29.0

Back to Release Notes

Announcements

  • None

Breaking changes since v0.28.0

  • Drake no longer uses LCM messages from RobotLocomotion/lcmtypes nor openhumanoids/bot_core_lcmtypes (#14884, #14885, #14908).

    • Drake’s compiled messages from those repositories are deprecated and will no longer be incorporated into our releases after 2021-08-01.
    • We have provided compatibility aliases for some of these message at #include <drake/systems/sensors/robotlocomotion_compat.h> but the aliasing (especially in pydrake) is incomplete, so this may be a breaking change, depending on how your calling code is written.
  • The build rules for Drake’s website and documentation were erroneously set to public visibility. As part of our ongoing website improvements, we are reworking those rules, and have marked all of them as private. Downstream software should not depend on Drake’s documentation (the files under drake/doc).

Changes since v0.28.0

Dynamical Systems

New features

  • Add limited support for integration of symbolic polynomials (#14807)
  • DirectTranscription now supports continuous-time MultibodyPlant (#14840, #14854, #14859)

Fixes

  • Improve diagram building performance when computing subsystem feedthrough maps (#14788)
  • Fix infinite loop in discrete algebraic Riccati equation (#14865)

Mathematical Program

New features

Fixes

  • Fix constant term in SNOPT optimal cost (#14809)

Multibody Dynamics

New features

  • Add limited support for lumped parameter decomposition (#14863)
  • Add ability to filter and convert GeometrySet into unordered_set<GeometryId> (#14871)
  • New hydroelastic contact model in progress (#14897, #14903)

Fixes

  • Rename confusing parameters of WeldJoint and WeldFrames (#14805)
  • GeometryPairContactWrenchEvaluatorBinding is now public, not internal (#14835)

Tutorials and examples

  • Add a tutorial on debugging tips for MathematicalProgram (#14815)

Miscellaneous features and fixes

None

pydrake bindings

New features

  • Add //bindings/pydrake:test_utilities_py target in support of drake_bazel_external workflows (#14812)

Fixes

  • None

Newly bound

  • pydrake.geometry.GeometrySet constructor (#14898)
  • pydrake.geometry.GeometrySet.Add (#14898)
  • pydrake.math.wrap_to overloads for AutoDiffXd and Expression (#14845)
  • pydrake.systems.primitives.LogOutput overloads for AutoDiffXd and Expression (#14823)

Build system

  • Improve compatibility with Eigen 3.4.0 pre-release for not_equal_strict on symbolic expressions (#14868)
  • Offer ability to download and extract a wheel from PyPI (#14906)
  • On Ubuntu 18.04, fix search for Python when using CMake 3.10 (#14798)
  • On macOS, fix ibex@2.7.4 formula to point at robotlocomotion/director tap (#14888)

Build dependencies

  • Add ignition_utils 1.0.0 for use by sdformat 11.0.0 (#14853)
  • Add opencl in anticipation of future use (#14843)
  • Add python-tk@3.9 on macOS to track homebrew split (#14832)
  • Add python3-semantic-version (on Ubuntu) or semantic-version (on macOS) (#14784, #14907)
  • Upgrade ghc_filesystem to latest release 1.5.4 (#14851)
  • Upgrade ignition_math to latest release 6.8.0 (#14848)
  • Upgrade meshcat to latest commit (#14890)
  • Upgrade pycodestyle to latest release 2.7.0 (#14850)
  • Upgrade rules_pkg to latest release 0.4.0 (#14867)
  • Upgrade tinyobjloader to latest commit (#14866)
  • Upgrade voxelized_geometry_tools to latest commit (#14843)

Newly-deprecated APIs

  • drake::geometry::SignedDistancePair::is_nhat_BA_W_unique (#14875)
  • drake::geometry::SignedDistanceToPoint::is_grad_w_unique (#14875)
  • drake::geometry::SignedDistanceToPointWithGradient (#14793)
  • pydrake.multibody.plant.MultibodyPlant.WeldFrames kwargs names A and B (#14805)
  • pydrake.multibody.tree.WeldJoint constructor kwarg names parent_frame_P and child_frame_C (#14805)
  • pydrake.solvers.mathematicalprogram.MathematicalProgram.NewNonnegativePolynomial kwarg name “grammian” (#14790)
  • The @bot2_core_lcmtypes external (#14884)
  • The @robotlocomotion_lcmtypes external (#14884)
  • The @semantic_version external (#14784)
  • The @sphinx external (#14804)

Removal of deprecated items

  • The ability for MeshcatVisualizer to use a pose_bundle input port (#14292)
  • drake::examples::manipulation_station::RegisterRgbdSensor with DepthCameraProperties (#14855)
  • drake::geometry::ConnectDrakeVisualizer (#14855)
  • drake::geometry::DispatchLoadMessage (#14855)
  • drake::geometry::GeometryState::GetSourceName (#14855)
  • drake::geometry::GeometryState::RenderColorImage with CameraProperties (#14855)
  • drake::geometry::GeometryState::RenderDepthImage with DepthCameraProperties (#14855)
  • drake::geometry::GeometryState::RenderLabelImage with CameraProperties (#14855)
  • drake::geometry::GeometryState::X_PF (#14855)
  • drake::geometry::GeometryState::X_WF (#14855)
  • drake::geometry::GeometryState::X_WG (#14855)
  • drake::geometry::QueryObject::RenderColorImage with CameraProperties (#14855)
  • drake::geometry::QueryObject::RenderDepthImage with DepthCameraProperties (#14855)
  • drake::geometry::QueryObject::RenderLabelImage with CameraProperties (#14855)
  • drake::geometry::QueryObject::X_PF (#14855)
  • drake::geometry::QueryObject::X_WF (#14855)
  • drake::geometry::QueryObject::X_WG (#14855)
  • drake::geometry::SceneGraph(data_as_state=true) (#14855)
  • drake::geometry::SceneGraphInspector::GetSourceName (#14855)
  • drake::geometry::SurfaceMesh::kDim (#14855)
  • drake::geometry::VolumeMesh::kDim (#14855)
  • drake::geometry::render::CameraProperties (#14855)
  • drake::geometry::render::DepthCameraProperties (#14855)
  • drake::geometry::render::RenderEngine::RenderColorImage with CameraProperties (#14855)
  • drake::geometry::render::RenderEngine::RenderDepthImage with DepthCameraProperties (#14855)
  • drake::geometry::render::RenderEngine::RenderLabelImage with CameraProperties (#14855)
  • drake::systems::ContextBase::FixInputPort with AbstractValue unique_ptr (#14846)
  • drake::systems::LeafSystem::DeclareAbstractState with AbstractValue unique_ptr (#14846)
  • drake::systems::framework::Diagram::get_input_port_locator (#14846)
  • drake::systems::sensors::RgbdSensor::CameraPoses (#14855)
  • drake::systems::sensors::RgbdSensor::RgbdSensor constructor with CameraPoses or CameraProperties (#14855)
  • lcmtypes/lcmt_body_acceleration.lcm (#14842)
  • lcmtypes/lcmt_body_motion_data.lcm (#14842)
  • lcmtypes/lcmt_body_wrench_data.lcm (#14842)
  • lcmtypes/lcmt_constrained_values.lcm (#14842)
  • lcmtypes/lcmt_contact_information.lcm (#14842)
  • lcmtypes/lcmt_desired_body_motion.lcm (#14842)
  • lcmtypes/lcmt_desired_centroidal_momentum_dot.lcm (#14842)
  • lcmtypes/lcmt_desired_dof_motions.lcm (#14842)
  • lcmtypes/lcmt_foot_flag.lcm (#14842)
  • lcmtypes/lcmt_inverse_dynamics_debug_info.lcm (#14842)
  • lcmtypes/lcmt_joint_pd_override.lcm (#14842)
  • lcmtypes/lcmt_manipulator_plan_move_end_effector.lcm (#14842)
  • lcmtypes/lcmt_piecewise_polynomial.lcm (#14842)
  • lcmtypes/lcmt_plan_eval_debug_info.lcm (#14842)
  • lcmtypes/lcmt_polynomial.lcm (#14842)
  • lcmtypes/lcmt_polynomial_matrix.lcm (#14842)
  • lcmtypes/lcmt_qp_controller_input.lcm (#14842)
  • lcmtypes/lcmt_qp_input.lcm (#14842)
  • lcmtypes/lcmt_quadrotor_input_t.lcm (#14842)
  • lcmtypes/lcmt_quadrotor_output_t.lcm (#14842)
  • lcmtypes/lcmt_resolved_contact.lcm (#14842)
  • lcmtypes/lcmt_scope_data.lcm (#14842)
  • lcmtypes/lcmt_simulation_command.lcm (#14842)
  • lcmtypes/lcmt_support_data.lcm (#14842)
  • lcmtypes/lcmt_viewer2_comms.lcm (#14842)
  • lcmtypes/lcmt_whole_body_data.lcm (#14842)
  • lcmtypes/lcmt_zmp_com_observer_state.lcm (#14842)
  • lcmtypes/lcmt_zmp_data.lcm (#14842)

Notes

This release provides pre-compiled binaries named drake-20210418-{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.