title | date | released |
---|---|---|
Drake v1.5.0 |
2022-07-14 |
2022-07-14 |
-
Drake now supports Ubuntu 22.04 ("Jammy Jellyfish") when building from source or using a nightly build (#17489).
- We anticipate adding Jammy as a stable release in the next (August) release.
-
This release enables the new Semi-Analytic Primal ("SAP") contact solver option:
- This is an option for the solver used to compute contact forces during simulation.
- SAP has theoretical guaranteed global convergence and therefore should always succeed. As a result it is stable at larger time steps, yielding faster simulations.
- There is a limit to how large the time step size can be:
- The time step must be small enough to resolve the relevant dynamics of the problem.
- Time step sizes that are too large might lead to tunneling -- objects passing through each other without interacting due to contact.
- SAP exploits the sparsity of the problem, and so you can expect a greater speedup for complex models with multiple robots and objects.
- The treatment of joint damping and rotor inertia is implicit and therefore very stable; this enables the modeling of stiff damping components. We strongly encourage you to include damping and/or rotor inertia for the modeling of small gripper fingers.
- SAP uses a linear model of compliant contact forces in which dissipation is
parameterized by
drake::relaxation_time
; see #17087 for some preliminary documentation. This parameter has a default value of 100 ms but you can change it on a per-geometry basis in your SDF/URDF model files.
Keep in mind that the solver is relatively new and is likely to have bugs. Therefore, this solver is not on by default (the default remains the TAMSI solver). You can enable this solver for your simulation via the
MultibodyPlant::set_contact_solver()
method or the correspondingMultibodyPlantConfig
option.
For details, refer to [Castro et al., 2022].
-
The protected constructor for class
drake::multibody::Body
removed themass
parameter (#17472).- Users who were subclassing
Body
will need to update their code to match.
- Users who were subclassing
-
The class
drake::multibody::Body
renamed a pure virtual member function fromget_default_mass()
todefault_mass()
(#17528).- Users who were subclassing
Body
will need to update their code to match.
- Users who were subclassing
Refer to our Drake Stability Guidelines for our policy on API changes.
- None
Fixes
- None
New features
- Replace sin/cos in a symbolic polynomial with half-angle rational functions (#17491)
- Add and use
MatrixLikewise
sugar typedef (derives anEigen::Matrix
type of same topology but different scalar) #17497)
Fixes
- When multiplying a variable and a polynomial, include that variable in the result's decision variables. (#17543)
New features
- Add
MultibodyPlant::set_contact_solver()
and correspondingMultibodyPlantConfig
option (#17400) (#17545) - Parse relaxation_time for SAP (#17512) (#17554)
- Meshcat now displays a performance strip chart including realtime rate (#16981)
- Add
ProcessModelDirectives
overload with a simpler signature (#17450) - Add PackageMap::PopulateFromRosPackagePath (#17251)
Fixes
- Remove redundant default mass in body.h in favor of default mass in rigid_body.h (#17472)
- Add missed check in SDFormat
drake:proximity_properties
(#17510) MultibodyPlant
documentation now warns users about preconditions forfinalize()
(#17445)- Improve error detection and messages for all-zero quaternions (#17399)
- More robust parsing of .mtl texture map filenames (#17550)
- Manipulation station end-effector joystick control demo updated to use C++ Meshcat interface, more consistent option names (#17300)
- Fold pydrake.examples into a single module (#17454)
- Use
AcrobotParams
forAcrobotPlant::SetMitAcrobotParameters
(#17423)
- Add UR3e model and TRI Homecart (#17387)
- During yaml serialization, output special floating point values correctly (#17517)
- Extract core symbolic algebra into its own library (#17419)
- Separate remaining non-core symbolic files into smaller libraries (#17479)
- Add --host option to meldis (#17477)
New features
- Fold pydrake.solvers into a single module (#17453)
Fixes
- None
Newly bound
- Don't rename github files or directories named "build" (for compatibility with https://github.com/mrdoob/stats.js) (#17534)
- Remove build-time transitive dependency on LCM headers (#17442)
- Remove dependency on python3-tk (#17438)
- Add pydrake build-time dependency on mypy (#17521)
- Add pydrake build-time dependency on mypy_extensions (#17521)
- Add pydrake build-time dependency on tomli (#17521)
- Add pydrake build-time dependency on typing_extensions (#17521)
- Upgrade abseil_cpp_internal to latest commit (#17431, #17496)
- Upgrade common_robotics_utilities to latest commit (#17496)
- Upgrade gtest to latest release release-1.12.1 (#17452, #17496)
- Upgrade petsc to latest release v3.17.3 (#17509)
- Upgrade picosat to latest commit (#17505)
- Upgrade pybind11 to address numpy 1.23 issue (#17475)
- Upgrade rules_python to latest release 0.10.0 (#17496)
- Upgrade stduuid to latest commit (#17496)
- Upgrade tinyobjloader to latest commit (#17496)
drake::autodiffxd_make_coherent
(#17499)- The header
common/symbolic.h
(include more specific headers instead) (#17479) - All symbolic libraries in the
@drake
bazel module (all//common:symbolic_<name>
have moved to//common/symbolic:<name>
) (#17479)//common:symbolic
//common:symbolic_decompose
//common:symbolic_latex
//common:symbolic_trigonometric_polynomial
pydrake.geometry.MeshcatVisualizerCpp
(#17462)drake::multibody::GlobalInverseKinematics.AddWorldPositionConstraint(...Eigen::Isometry3d...)
(#17504)drake::multibody::Body.get_default_mass()
(#17528)
drake::systems::AntiderivativeFunction::IntegrableFunctionContext
(#17459)drake::systems::AntiderivativeFunction::AntiderivativeFunction(...IntegrableFunctionContext...)
(#17459)drake::systems::AntiderivativeFunction::Evaluate(...IntegrableFunctionContext...)
(#17459)drake::systems::AntiderivativeFunction::MakeDenseEvalFunction(...IntegrableFunctionContext...)
(#17459)drake::systems::InitialValueProblem::OdeContext
(#17459)drake::systems::InitialValueProblem::InitialValueProblem(...OdeContext...)
(#17459)drake::systems::InitialValueProblem::Solve(...OdeContext...)
(#17459)drake::systems::InitialValueProblem::DenseSolve(...OdeContext...)
(#17459)drake::systems::ScalarInitialValueProblem::ScalarOdeContext
(#17459)drake::systems::ScalarInitialValueProblem::ScalarInitialValueProblem(...ScalarOdeContext...)
(#17459)drake::systems::InitialValueProblem::Solve(...OdeContext...)
(#17459)drake::systems::InitialValueProblem::DenseSolve(...OdeContext...)
(#17459)pydrake.solvers.mathematicalprogram.Infeasible_Or_Unbounded
(#17460)@drake//solvers:system_identification
(#17460)drake::solvers::NonsmoothAugmentedLagrangian
(#17460)pydrake.multibody.math.SpatialAcceleration.Shift
with monographed kwargs (#17461)pydrake.multibody.math.SpatialAcceleration.ComposeWithMovingFrameAcceleration
with monographed kwargs (#17461)@drake//solvers:trig_poly
(#17461)
This release provides pre-compiled binaries named
drake-2022-07-14-{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.