title | date | released |
---|---|---|
Drake v0.31.0 |
2021-06-23 |
2021-06-23 |
- This release brings minor but notable improvements to performance, documentation, and error reporting.
- New features include SDFormat loading improvements and point cloud visualization.
- Any direct subclasses of
SolverInterface
need to implement the newExplainUnsatisfiedProgramAttributes
(#15028) - Systems now check their Contexts (#15030, #15102,
#15098, #15181, #15129)
- This change alters the semantics of classes such as Context that are closely tied to individual System objects. In the unlikely event that you have implemented methods that create, destroy, or repurpose such objects, you will need to follow the system compatibility interface concept. Although this is formally a breaking change without deprecation, we do not expect that it will affect any downstream users in practice.
- SDFormat 1.8 (#15099, #15208):
- Models nested via the
<include>
tag are no longer flattened, which means each included model will have its own model instance. drake::multibody::Parser::AddAllModelsFromFile
now returns all added models including nested models Note: This does not use a custom parser for URDFs via libsdformat's Interface API, and thus may incur unexpected behavior when including URDF files from SDFormat pending the full resolution of #14295.
- Models nested via the
New features
- Added compatibility checks between
System
s and theirContext
(and constituent elements) (#15030, #15102, #15098, #15181, #15129) - Add
DiagramBuilder::IsConnectedOrExported
(#15096) - Add preliminary
AutoDiffXd
support toRandomSource
(#15092) - Add
LinearTransformDensity
(#15116, #15189) - Add
SystemScalarConverter::Remove()
(#15159, #15211)
Fixes
- Remove inner loop heap allocations (#15067, #15081, #15101, #15118)
- Rephrase LeafSystem cache entry to avoid type hasher warning (#15085)
New features
- Add virtual
SolverInterface::ExplainUnsatisfiedProgramAttributes
for more detailed error messages (#15028) - Add
is_convex
flag for constructing QuadraticCost (#15043) - Enable Solver error messages to indicate which cost is non-convex (#15059)
- Rename
AddL2NormCost
toAdd2NormSquaredCost
(#15134)
Fixes
- Improve documentation of
available()
vsenabled()
(#15114, #15152) - Ensure that
GetAllConstraints()
includes exponential cone constraints; before, they were excluded (#15180)
New features
- Make
PackageMap
copy/move/assignable, allow registering duplicate(package, path)
pairs, admit composition viaPackageMap::AddMap
, addPackageMap::GetPackageNames
to enumerate registered package names (#15064) - Make documentation and implementation of
CalcCenterOfMassPositionInWorld()
andCalcCenterOfMassTranslationalVelocityInWorld()
consistent withCalcTotalMass()
(#15054) - Add support for parsing acceleration limits for some joints in URDF and SDFormat (#15122)
- Add support for SDFormat 1.8 model composition (#15099, #15208)
- Implement
DoCalcImplicitTimeDerivativesResidual
forMultibodyPlant
(#15048)
Fixes
- Improve error messages on
MultibodyPlant
element lookups (#15083)
New features
- Add tutorial showing derivatives of basic MultibodyPlant computations w.r.t. mass (#15103)
- Optionally publish point clouds in
manipulation_station
simulation (#14991)
Fixes
- In
quadratic_program
tutorial, mentionis_convex
flag (#15077) - Remove uses of
SolverType
in examples (#15214) - Fix the Jaco example to work on real hardware (not just sim) (#15203)
- Add
AbstractValue::Make<T>()
overload for default construction (#15209) - Add
Vector6d<T>
toeigen_types
(#15192) - Add
ostream<<
operator forRollPitchYaw
andRigidTransform
(#14910) - Add template specializations for several
Eigen::numext
functions (#15065) - Add AVX support for inverse-rotation matrix times rotation matrix (#15073)
- Add AVX functions for transform composition (#15119)
- Add PointCloudToLcm system (#14990)
New features
- None
Fixes
- In pydrake.all, prefer pydrake.math over pydrake.symbolic (#15052)
Newly bound
- pydrake.solvers.mathematicalprogram.AddLinearMatrixInequalityConstraint (#15146
- pydrake.solvers.mathematicalprogram.LinearMatrixInequalityConstraint (#15146
- pydrake.solvers.mathematicalprogram.MathematicalProgram.AddExponentialConeConstraint (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.AddLinearCost(a, vars) (#15127)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.AddPositiveDiagonallyDominantMatrixConstraint (#15150)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.AddScaledDiagonallyDominantMatrixConstraint (#15150)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.Clone (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.FindIndeterminateIndex (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.NewEvenDegreeNonnegativePolynomial (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.
__copy__
(#15167) - pydrake.solvers.mathematicalprogram.MathematicalProgram.
__deepcopy__
(#15167) - pydrake.solvers.mathematicalprogram.MathematicalProgram.decision_variable(i) (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.linear_complementarity_constraints (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.linear_matrix_inequality_constraints.exponential_cone_constraints (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.lorentz_cone_constraints (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.num_indeterminates (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.positive_semidefinite_constraints, (#15167)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.rotated_lorentz_cone_constraints (#15167)
- pydrake.solvers.mathematicalprogram.SolverInterface.enabled (#15107)
- pydrake.symbolic.Monomial * float, float * pydrake.symbolic.Monomial (#15138)
- pydrake.symbolic.Monomial.
__init__
() (#15136) - pydrake.symbolic.TaylorExpand (#15185)
- pydrake.symbolic.dreal.DrealSolver (#15215)
- pydrake.systems.primitives.LinearTransformDensity (#15166)
- When using
setup_drake_colab
, thebuild=
argument is now required (#14482) - Add more documentation about using releases (#14482)
- Remove compiled Python files when building VTK binaries (#15171)
- Document Drake's dependence on AVX2 and FMA instructions (#15165)
- Allow
robotlocomotion/director
brew tap to change default branch name to main (#15202) - Stop installing
geometry
headers that depended on non-installed third-party header files (fcl
) (#15070)
- Upgrade recommended Bazel version to 4.1 (#15086)
- Upgrade
dreal
to latest release 4.21.06.2 (#15212) - Upgrade
ghc_filesystem
to latest release 1.5.6 (#15109) - Upgrade
googlebenchmark
to latest release 1.5.4 (#15110) - Upgrade
intel_realsense_ros
to latest release 2.3.0 (#15113) - Upgrade
ros_xacro
to latest release 1.13.11 (#15111) - Upgrade
tinyobjloader
to latest commit (#15112)
- Any LeafSystem port declaration overloads that do not specify a name
(
drake::systems::LeafSystem::Declare*Port
,pydrake.systems.LeafSystem.Declare*Port
) (#15179, #15182) - drake::math::ComputeBasisFromAxis (#15154)
- drake::solvers::MathematicalProgram::AddL2NormCost (#15134)
- drake::systems::LeafSystem::DeclareCacheEntry (#15197)
- This is not decorated as deprecated in C++, but will become protected on or after 2021-10-01.
- pydrake.math.ComputeBasisFromAxis (#15154)
- pydrake.solvers.mathematicalprogram.MathematicalProgram.AddL2NormCost (#15134)
This release provides pre-compiled binaries named
drake-20210623-{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.