Announcements
Breaking Changes
These are breaking changes that did not undergo a deprecation period.
- SDFormat 1.7 backwards-incompatible changes (#12505)
- Models must have at least one link
- The model frame is now attached to a link
- Model frames can no longer reference “world”
- Drake no longer accidentally supports regexes in the channel name passed to DrakeLcm::Subscribe (#12534)
- Remove unused constraint equation API form Systems framework (#12553)
- Removed the following public API:
- drake::systems::System::CalcConstraintErrorNorm
- drake::systems::System::CalcVelocityChangeFromConstraintImpulses
- drake::systems::System::EvalConstraintEquationsDot
- drake::systems::System::num_constraint_equations
- Removed the following protected API:
- drake::systems::System::DoCalcConstraintErrorNorm
- drake::systems::System::DoCalcVelocityChangeFromConstraintImpulses
- drake::systems::System::DoEvalConstraintEquations
- drake::systems::System::DoEvalConstraintEquationsDot
- drake::systems::System::do_get_num_constraint_equations
- Removed the following public API:
Dynamical Systems
New features
- Add ability to implicit integrators to do full Newton (#12524)
Fixes
- Update Simulator’s interface for changing integrators (#12520)
- Eliminate spurious algebraic loop from SymbolicVectorSystem (#12500)
- Systems reject Contexts that they did not create (#12551)
Documentation
- Add high level event documentation (#12501)
Mathematical Program
Fixes
- Check output size in EvaluatorBase (#10987)
Multibody Dynamics
New features
- Use Articulated Body Algorithm (ABA) in MultibodyPlant::DoCalcTimeDerivatives() (#12470)
- Add drake contact material properties to SDFormat/URDF parsing (#12491)
- Parse the collision filter group for URDFs (#12495)
- Register a geometry frame for all MultibodyPlant bodies (#12489)
- Add ability to construct MultibodyForces before constructing a MultibodyPlant (#12556)
- Support ellipsoid rendering (#12547)
- Add graphviz visualization of multibodyplant topology (#12485)
- Support parsing SDFormat 1.7 (#12505, #12533), incorporating the
pose frame semantics <https://bit.ly/2ZSl1kH>
_ proposal - Support textures for primitive objects, not just meshes (#12423); this only applies to rendering (RenderEngine*)
- Add C++17 structured binding support to AddMultibodyPlantSceneGraphResult (#12559)
Fixes
- Fix warning on unsupported joint limits for continuous models (#12531, #12499)
- Fix scalar conversion bug in RevoluteSpring (#12522)
New hydroelastic contact model in progress (#12538, #12541, #12418, #12471, #12493, #12529):
- Still only experimental
- Improve performance
- Improve visualization
- Improve specification
Miscellaneous features and fixes
Common:
LCM fixes:
- Escape regex characters in DrakeLcm channel names (#12534)
- Clean up DrakeLcm comment/documentation (#12521)
Examples:
- Add planar IIWA URDF and use it in ManipulationStation (#12502)
- Add planar IIWA joint teleop example (#12503)
- Add LCM messaging to the planar-gripper simulation (#12469)
- Add AcrobotGeometry and purge RigidBody from examples/Acrobot (#12567)
pydrake bindings
New features
Fixes
- Use np.asarray in gradient and jacobian (#12511)
- Remove “Please see …” addendum from deprecation messages (#12578)
Newly bound
- pydrake.examples.acrobot.AcrobotGeometry (#12574)
- pydrake.examples.pendulum.PendulumGeometry (#12569)
- pydrake.examples.manipulation_station.ManipulationStation.SetupPlanarIiwaStation (#12503)
- pydrake.examples.manipulation_station.ManipulationStation.num_iiwa_joints (#12503)
- pydrake.examples.manipulation_station.ManipulationStation.RegisterRgbdSensor (#12513)
Build system and dependencies
- Add Dockerfile for Binder (#12472)
- Fix Binder Dockerfile for Docker versions before 19.03 (#12510)
- Error out on now-unsupported –config=snopt_fortran (#12549, #12545)
- Update recommended Bazel version to 2.0 (#12526)
- Ensure drake lcmtypes are exposed in installed bazel external repository (#12573)
- Fix mkdoc comment handling edge cases (#12519)
- Upgrade bullet to latest release 2.89 (#12516)
- Upgrade libsdformat to latest release 9.0 (#12505)
- Upgrade meshcat to latest commit (#12516)
- Upgrade pybind fork to use merge with latest upstream (#12572)
- Upgrade semantic_version to latest release 2.8.4 (#12516)
- Upgrade uritemplate_py to latest release 3.0.1 (#12516)
- Remove uninstall of ipopt and mumps on macOS (#12517)
Newly-deprecated APIs
- drake::multibody::MultibodyPlant default constructor with no arguments
(#12525)
- Use constructor with time_step argument explicit specified instead.
- drake::multibody::AddMultibodyPlantSceneGraph overload without time_step or
plant specified (#12558)
- Use overload with time_step or plant explicitly specified.
- pydrake.multibody.rigid_body_tree.RigidBodyTree.number_of_positions
(#12514)
- Use pydrake.multibody.rigid_body_tree.RigidBodyTree.get_num_positions instead.
- pydrake.multibody.rigid_body_tree.RigidBodyTree.number_of_velocities
(#12514)
- Use pydrake.multibody.rigid_body_tree.RigidBodyTree.get_num_velocities instead.
- DRAKE_NODISCARD in common/drake_nodiscard.h (#12539)
- Use
[[nodiscard]]
directly.
- Use
- drake/examples/kuka_iiwa/iiwa_wsg_simulation will be removed from Drake
(#12581)
- Copy the code into your own project if still needed.
- drake::examples::kuka_iiwa_arm::OracularStateEstimation (#12581)
- Copy the code into your own project if still needed.
- drake::examples::kuka_iiwa_arm::IiwaAndWsgPlantWithStateEstimator (#12581)
- Copy the code into your own project if still needed.
Removal of deprecated APIs
- drake::systems::Simulator::StepTo (#12515)
- Use drake::systems::Simulator::AdvanceTo instead.
drake::systems::Simulator::reset_integrator(std::unique_ptr<U>)
(#12520)- Use void or max-step-size version of reset_integrator() instead.
drake::systems::Simulator::reset_integrator(Args&&...)
(#12520)- Use void or max-step-size version of reset_integrator() instead.
- Bazel label @drake//solvers:mathematical_program_lite (#12515)
- Use @drake//solvers:mathematical_program instead.
- Attic removals (#12514)
- DrakeJoint::getNumPositions
- Use DrakeJoint::get_num_positions instead.
- DrakeJoint::getNumVelocities
- Use DrakeJoint::get_num_velocities instead.
- DrakeJoint::getTransformToParentBody
- Use DrakeJoint::get_transform_to_parent_body instead.
- DrakeJoint::getName
- Use DrakeJoint::get_name instead.
- DrakeJoint::getPositionName
- Use DrakeJoint::get_position_name instead.
- DrakeJoint::getVelocityName
- Use DrakeJoint::get_velocity_name instead.
- DrakeJoint::isFloating
- Use DrakeJoint::is_floating instead.
- Several overloads of AddModelInstanceFromUrdfString
- Use more specific overload names.
- RigidBody::hasParent
- Use RigidBody::has_parent_body instead.
- RigidBodyTree::get_number_of_model_instances
- Use RigidBodyTree::get_num_model_instances instead.
- RigidBodyTree::getPositionName
- Use RigidBodyTree::get_position_name instead.
- RigidBodyTree::getVelocityName
- Use RigidBodyTree::get_velocity_name instead.
- RigidBodyTree::findAncestorBodies
- Use RigidBodyTree::FindAncestorBodies instead.
- RigidBodyTree::findLinkId
- Use RigidBodyTree::FindBodyIndex instead.
- RigidBodyTree::findJointId
- Use RigidBodyTree::FindIndexOfChildBodyOfJoint instead.
- RigidBodyTree::get_number_of_bodies
- Use RigidBodyTree::get_num_bodies instead.
- RigidBodyTree::number_of_positions
- Use RigidBodyTree::get_num_positions instead.
- RigidBodyTree::number_of_velocities
- Use RigidBodyTree::get_num_velocities instead.
- RigidBodyTree::bodies
- Use RigidBodyTree::get_bodies and RigidBodyTree::add_rigid_body instead.
- RigidBodyTree::frames
- Use RigidBodyTree::get_frames and RigidBodyTree::addFrame instead.
InverseDynamics(const RigidBodyTree<T>*, bool)
- Use constructor with InverseDynamicsType instead.
- InverseDynamics::get_output_port_torque
- Use InverseDynamics::get_output_port_force instead.
- InverseDynamicsController::get_robot_for_control
- Use InverseDynamicsController::get_rigid_body_tree_for_control instead.
- DrakeJoint::getNumPositions
This release provides
pre-compiled binaries
named drake-20200116-{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.