-
Kinematics
- Added IkFast parameter accessors to IkFast class: #1396
-
Dynamics
-
GUI
-
Parser
-
dartpy
- Added raycast option and result: #1343
- Added GUI event handler: #1346
- Added shadow technique: #1348
- Added findSolution and solveAndApply to InverseKinematics: #1358
- Added InteractiveFrame and ImGui APIs: #1359
- Added bindings for Joint::getTransformFrom{Parent|Child}BodyNode(): #1377
- Added bindings for BodyNode::getChild{BodyNode|Joint}(): #1387
- Added bindings for Inertia: #1388
- Added bindings for getting all BodyNodes from a Skeleton: #1397
- Added bindings for background color support in osg viewer: #1398
- Added bindings for BallJoint::convertToPositions(): #1408
- Fixed typos in Skeleton: #1392
-
Build
-
Dynamics
- Allowed constraint force mixing > 1: #1371
-
Collision
- Added default constructor to RayHit: #1345
-
dartpy
- Updated build scripts for uploading dartpy to PyPI: #1341
-
Common
- Deprecated custom make_unique in favor of std::make_unique: #1317
-
Collision Detection
- Added raycast query to BulletCollisionDetector: #1309
-
Dynamics
- Added safeguard for accessing Assimp color: #1313
-
Parser
- Changed URDF parser to use URDF material color when specified: #1295
-
GUI
- Added heightmap support to OSG renderer: #1293
- Improved voxel grid and point cloud rendering performance: #1294
- Fixed incorrect alpha value update of InteractiveFrame: #1297
- Fixed dereferencing a dangling pointer in WorldNode: #1311
- Removed warning of ImGuiViewer + OSG shadow: #1312
- Added shape type and color options to PointCloudShape: #1314, #1316
- Fixed incorrect transparency of MeshShape for MATERIAL_COLOR mode: #1315
- Fixed incorrect PointCloudShape transparency: #1330
- Improved voxel rendering by using multiple nodes instead of CompositeShape: #1334
-
Examples and Tutorials
- Updated examples directory to make dart::gui::osg more accessible: #1305
-
dartpy
- Switched to pybind11: #1307
- Added grid visual: #1318
- Added ReferentialSkeleton, Linkage, and Chain: #1321
- Enabled WorldNode classes to overload virtual functions in Python: #1322
- Added JacobianNode and operational space controller example: #1323
- Removed static create() functions in favor of custom constructors: #1324
- Added optimizer APIs with GradientDescentSolver and NloptSolver: #1325
- Added SimpleFrame: #1326
- Added basic inverse kinematics APIs: #1327
- Added shapes and ShapeFrame aspects: #1328
- Added collision APIs: #1329
- Added DegreeOfFreedom and ShapeNode: #1332
- Added constraint APIs: #1333
- Added BallJoint, RevoluteJoint, joint properties, and chain tutorial (incomplete): #1335
- Added all the joints: #1337
- Added DART, Bullet, Ode collision detectors: #1339
-
Collision
- Fixed handling of submeshes in ODE collision detector: #1336
-
Linux
- GCC 64-bit: 5.4.0, 7.3.0, 8.2.0
- GCC 32-bit: 5.4.0
-
macOS
- AppleClang: 9.1.0, 10.0.0
-
GUI
- Fixed crashing on exiting OSG + ImGui applications: #1303
-
Linux
- GCC 64-bit: 5.4.0, 7.3.0, 8.2.0
- GCC 32-bit: 5.4.0
-
macOS
- AppleClang: 9.1.0, 10.0.0
-
Parser
- Fixed VskParker returning incorrect resource retriever: #1300
-
Build
- Fixed building with pagmo's optional dependencies: #1301
-
Linux
- GCC 64-bit: 5.4.0, 7.3.0, 8.2.0
- GCC 32-bit: 5.4.0
-
macOS
- AppleClang: 9.1.0, 10.0.0
-
Dynamics
- Fixed BoxedLcpConstraintSolver is not API compatible with 6.7: #1291
-
Build
- Fixed building with FCL built without Octomap: #1292
-
Linux
- GCC 64-bit: 5.4.0, 7.3.0, 8.2.0
- GCC 32-bit: 5.4.0
-
macOS
- AppleClang: 9.1.0, 10.0.0
-
Build System
-
Linux
- GCC 64-bit: 5.4.0, 7.3.0, 8.2.0
- GCC 32-bit: 5.4.0
-
macOS
- AppleClang: 9.1.0, 10.0.0
-
Kinematics
-
Dynamics
-
Simulation
-
Collision Detection
- The BodyNodeCollisionFilter will ignore contacts between immobile bodies: #1232
-
Planning
- Fixed linking error of FLANN by explicitly linking to lz4: #1221
-
Python
- Added (experimental) Python binding: #1237
-
Parsers
- Changed urdf parser to warn if robot model has multi-tree: #1270
-
GUI
-
Build System
-
Linux
- GCC 64-bit: 5.4.0, 7.3.0, 8.2.0
- GCC 32-bit: 5.4.0
-
macOS
- AppleClang: 9.1.0, 10.0.0
-
Dynamics
- Fixed Skeleton::setState(): #1245
-
Linux
- GCC (C++11): 5.4.0, 7.3.0, 8.2.0
-
Linux (32-bit)
- GCC (C++11): 5.4.0
-
macOS
- AppleClang (C++11): 9.1.0
-
Linux
- GCC (C++11): 5.4.0, 7.3.0, 8.2.0
-
Linux (32-bit)
- GCC (C++11): 5.4.0
-
macOS
- AppleClang (C++11): 9.1.0
-
Build system
-
Linux
- GCC (C++11): 5.4.0, 7.3.0, 8.2.0
-
Linux (32-bit)
- GCC (C++11): 5.4.0
-
macOS
- AppleClang (C++11): 9.1.0
-
Build system
-
Collision Detection
-
Math
- Consolidated random functions into Random class: #1109
-
Dynamics
-
Optimization
- Added multi-objective optimization with pagmo2 support: #1106
-
GUI
-
Misc
- Updated Googletest to version 1.8.1: #1214
-
Linux
- GCC (C++11): 5.4.0, 7.3.0, 8.2.0
-
Linux (32-bit)
- GCC (C++11): 5.4.0
-
macOS
- AppleClang (C++11): 9.1.0
-
Utils
- Fixed checking file existence in DartResourceRetriever: #1107
-
Utils
- Added option to DartResourceRetriever to search from environment variable DART_DATA_PATH: #1095
-
Examples
- Fixed CMakeLists.txt of humanJointLimits: #1094
-
Common
-
GUI
- Added FOV API to OSG viewer: #1048
-
Parsers
- Fixed incorrect parsing of continuous joints specified in URDF #1064
-
Simulation
- Added World::hasSkeleton(): #1050
-
Misc
- Fixed memory leaks in mesh loading: #1066
-
Common
-
Kinematics/Dynamics
- Added relative Jacobian functions to MetaSkeleton: #997
- Added vectorized joint limit functions: #996
- Added lazy evaluation for shape's volume and bounding-box computation: #959
- Added IkFast support as analytic IK solver: #887
- Added TranslationalJoint2D: #1003
- Fixed NaN values caused by zero-length normals in ContactConstraint: #881
- Extended BodyNode::createShapeNode() to accept more types of arguments: #986
-
Collision detection
- Added FCL 0.6 support (backport of #873): #936
-
GUI
-
Examples
- Added humanJointLimits: #1016
-
License
- Added Personal Robotics Lab and Open Source Robotics Foundation as contributors: #929
-
Misc
- Added World::create(): #962
- Added MetaSkeleton::hasBodyNode() and MetaSkeleton::hasJoint(): #1000
- Suppressed -Winjected-class-name warnings from Clang 5.0.0: #964
- Suppressed -Wdangling-else warnings from GCC 7.2.0: #937
- Changed console macros to use global namespace resolutions: #1010
- Fixed build with Eigen 3.2.1-3.2.8: #1042
- Fixed various build issues with Visual Studio: #956
- Removed TinyXML dependency: #993
-
Build system
- Removed an undefined cmake macro/function: #1036
-
ROS support
-
Collision detection
- Added a feature of disabling body node pairs to BodyNodeCollisionFilter: #911
-
Kinematics/Dynamics
- Added setter and getter for WeldJointConstraint::mRelativeTransform: #910
-
Parsers
- Improved SkelParser to read alpha value: #914
-
Misc
- Changed not to use lambda function as an workaround for DART python binding: #916
-
Collision detection
- Fixed collision checking between objects from the same body node: #894
-
Kinematics/Dynamics
- Fixed transform of ScrewJoint with thread pitch: #855
-
Parsers
-
Testing
-
Misc
-
Common
-
Math
-
Collision Detection
-
Simulation
- Fixed World didn't clear collision results on reset: #863
-
Parsers
-
GUI
-
Misc
- Added createShared() and createUnique() pattern: #844
- Added Skeleton::getRootJoint(): #832
- Added CMake targets for code formatting using clang-format: #811, #817
- Renamed MultiSphereShape to MultiSphereConvexHullShape: #865
- Modified the member function names pertain to lazy evaluation to be more relevant to their functionalities: #833
-
Tutorials & Examples
-
Dynamics
- Fixed bug of ContactConstraint with kinematic joints: #809
-
Misc
- Fixed that ZeroDofJoint::getIndexInTree was called: #818
-
Build
-
Misc
- Updated lodepng up to version 20160501: #791
-
Collision detection
-
Dynamics
-
Planning
- Fixed incorrect linking to flann library: #761
-
Parsers
-
GUI
- Added ImGui for 2D graphical interface: #781
-
Examples
- Added osgAtlasSimbicon and osgTinkertoy: #781
-
Misc improvements and bug fixes
-
Collision detection
-
Dynamics
- Fixed total mass is not being updated when bodies removed from Skeleton: #731
-
Misc improvements and bug fixes
-
Common data structures
-
Kinematics
- Added convenient functions for setting joint limits: #703
- Added more description on
InverseKinematics::solve()
: #624 - Added API for utilizing analytical inverse kinematics: #530, #463
- Added color property to
Marker
: #187 - Improved
Skeleton
to cloneState
as well: #691 - Improved
ReferentialSkeleton
to be able to add and removeBodyNode
s andDegreeOfFreedom
s to/fromGroup
s freely: #557, #556, #548 - Changed
Marker
intoNode
: #692, #609 - Renamed
Joint::get/setLocal[~]
toJoint::get/setRelative[~]
: #715, #714 - Renamed
PositionLimited
toPositionLimitEnforced
: #447 - Fixed initialization of joint position and velocity: #691, #621
- Fixed
InverseKinematics
when it's used withFreeJoint
andBallJoint
: #683 - Fixed ambiguous overload on
MetaSkeleton::getLinearJacobianDeriv
: #628, #626
-
Dynamics
- Added
get/setLCPSolver
functions toConstraintSolver
: #633 - Added
ServoMotorConstraint
as a preliminary implementation forSERVO
actuator type: #566 - Improved
ConstraintSolver
to obey C++11 ownership conventions: #616 - Fixed segfualting of
DantzigLCPSolver
when the constraint dimension is zero: #634 - Fixed missing implementations in ConstrainedGroup: #586
- Fixed incorrect applying of joint constraint impulses: #317
- Deprecated
draw()
functions of dynamics classes: #654
- Added
-
Collision detection
-
Parsers
-
GUI features
-
Simulation
-
Misc improvements and bug fixes
- Added
make_unique<T>
that was omitted from C++11: #639 - Added missing
override
keywords: #617, #535 - Added gcc warning flag
-Wextra
: #600 - Improved memory management of
constraint
namespace: #584, #583 - Changed the extension of headers from
.h
to.hpp
: #709, #693, #568 - Changed Doxyfile to gnerate tag file: #690
- Changed the convention to use
std::size_t
oversize_t
: #681, #656 - Changed CMake to configure preprocessors using
#cmakedefine
: #648, #641 - Updated copyright years: #679, #160
- Renamed directory name
apps
toexamples
: #685 - Fixed warnings of unused variables in release mode: #646
- Fixed typo of
getNumPluralAddoName
in utility macro: #615 - Fixed linker error by adding namespace-scope definitions for
constexpr static
members: #603 - Fixed segfault from nullptr meshes: #585
- Fixed typo of tutorial with minor improvements: #573
- Fixed
NameManager<T>::removeEntries(~)
called a function that does not exist: #564, #554 - Fixed missing definitions for various functions: #558, #555
- Fixed const correctness of
BodyNode::getMomentsOfInertia()
: #541, #540 - Fixed
ftel
bug in Linux with an workaround: #533 - Removed unnecessary
virtual
keyword for overriding functions: #680 - Removed deprecated APIs in DART 5: #678
- Added
-
Build and test issues
- Added CMake target for code coverage testing, and automatic reporting: #688, #687, #638, #632
- Added missing
liburdfdom-dev
dependency in Ubuntu package: #574 - Modulized DART libraries: #706, #675, #652, #477
- Improved Travis-CI script: #655
- Improved CMake script by splitting tutorials, examples, and tests into separate targets: #644
- Improved wording of the cmake warning messages for ASSIMP: #553
- Changed Travis-CI to treat warning as errors using
-Werror
flags: #682, #677 - Changed Travis-CI to test DART with bullet collision detector: #650, #376
- Changed the minimum requirement of Visual Studio version to 2015: #592
- Changed CMake to build gui::osg examples when
DART_BUILD_EXAMPLES
is on: #536 - Simplfied Travis-CI tests for general pushes: #700
- Fixed Eigen memory alignment issue in testCollision.cpp: #719
- Fixed
BULLET_INCLUDE_DIRS
inDARTConfig.cmake
: #697 - Fixed linking with Bullet on OS X El Capitan by supporting for Bullet built with double precision: #660, #657
- Fixed FCL version check logic in the main
CMakeLists.txt
: #640 - Fixed
find_package(DART)
on optimizer components: #637 - Fixed linking against
${DART_LIBRARIES}
not working in Ubuntu 14.04: #630, #629 - Fixed Visual Studio 2015 build errors: #580
- Removed OpenGL dependency from
dart
library: #667 - Removed version check for Bullet: #636, #625
-
Improved camera movement of OpenGL GUI: smooth zooming and translation
-
Removed debian meta files from the main DART repository
-
Fixed Lemke LCP solver for several failing cases
-
Increase minimum required Ipopt version to 3.11.9
-
Added support of urdfdom_headers 1.0 for DART 5.1 (backport of #766)
- Fixed inconsistent frame rate of GlutWindow
-
Updated to support Bullet built with double precision (backport of #660)
-
Modified to use btGImpactMeshShape instead of btConvexTriangleMeshShape for mesh
-
Updated to support FCL 0.5 and tinyxml 4.0 (backport of #749)
-
Fixed inverse kinematics (backporting)
-
Fixed aligned memory allocation with Eigen objects in loading meshes
-
Fixed incorrect applying joint constraint impulses (backporting)
-
Fixed some build and packaging issues
-
Add bullet dependency to package.xml
-
Improved handling of missing symbols of Assimp package
-
Improved travis-ci build log for Mac
-
Fixed warnings in Function.cpp
-
Fixed build failures on AppVeyor
-
Fixed const qualification of ResourceRetriever
-
Fixed aligned memory allocation with Eigen objects
-
Fixed copy safety for various classes
-
Fixed incorrect rotational motion of BallJoint and FreeJoint
-
Removed old documents: dart-tutorial, programmingGuide
-
Fixed aligned memory allocation with Eigen objects
-
Fixed segfault in Linkage::Criteria
-
Improved sdf/urdf parser
-
Fixed CMake warnings
-
Fixed build issues on Windows
-
Fixed IpoptSolver bugs
-
Added Frame::getTransform(withRespecTo, inCoordinatesOf)
-
Improved API documentation -- set the SHOW_USED_FILES tag to NO
-
Added convenience setters for generalized coordinates of FreeJoint
-
Fixed compilation warnings
-
Added a mutex to Skeleton
-
Added generic URIs support
-
Added End Effector, Inverse Kinematics, and osgDart
-
Removed outdated packaging scripts
-
Added initial position and initial velocity properties
-
Added a package.xml file for REP-136 support
-
Improved Linkage and Chain Criteria
-
Added Joint::isCyclic to mark SO(2) topology
-
Fixed SEGFAULTs in DartLoader
-
Added the SYSTEM flag to include_directories
-
Improved Joint warning
-
Added tutorials (http://dart.readthedocs.org/)
- Fixed bug in Jacobian update notifications
-
Improved app indexing for bipedStand and atlasSimbicon
-
Added clipping command when it exceeds the limits
-
Improved CollisionNode's index validity check
-
Standardized warning messages for Joints
-
Fixed bug in SDF parser -- correct child for a joint
-
Fixed SDF parsing for single link model without joint
-
Added missing virtual destructors to Properties in Entity and [Soft]BodyNode
-
Limited maximum required version of Assimp less than 3.0~dfsg-4
-
Fixed SEGFAULTs in DartLoader
-
Fixed aligned memory allocation with Eigen objects
-
Added some missing API for DegreeOfFreedom
-
Replaced logMaps with Eigen::AngleAxisd
-
Improved FCL collision detector
-
Removed deprecated API and suppressed warnings
-
Added use of OpenGL's multisample anti-aliasing
-
Added computation of differences of generalized coordinates
-
Added deprecated and force-linline definitions for clang
-
Eradicated memory leaks and maked classes copy-safe and clonable
-
Improved PlaneShape constructors
-
Added appveyor options for parallel build and detailed log
-
Improved robustness and package handling for URDF parsing
-
Fixed bug in BodyNode::_updateBodyJacobianSpatialDeriv()
-
Added alpha channel and Color functions
-
Added Jacobian getters to Skeleton
-
Added ArrowShape for visualizing arrows
-
Fixed matrix dimension bug in operationalSpaceControl app
-
Added build type definitions
-
Added Signal class
-
Added LineSegmentShape for visualizing line segments
-
Fixed segfault in SoftSdfParser
-
Added subscriptions for destructions and notifications
-
Added NloptSolver::[get/set]NumMaxEvaluations()
-
Added support of Eigen::VectorXd in parser
-
Added Skeleton::getNumJoints()
-
Fixed bug in DARTCollide for sphere-sphere collision
-
Fixed naming issues for Skeletons in World
-
Added PlanarJoint support for URDF loader
-
Fixed rotation of the inertia reference frame for URDF loader
-
Fixed bug in loading WorldFile
-
Added plotting of 2D trajectories
-
Removed unsupported axis orders of EulerJoint
-
Added convenience functions to help with setting joint positions
-
Added Frame class and auto-updating for forward kinematics
-
Added Travis-CI build test for OSX
-
Added specification of minimum dependency version
- Updated DART 4.3 to be compatible with urdf 1.0/tinyxml2 6/flann 1.9.1
- Fixed duplicate entries in Skeleton::mBodyNodes causing segfault in destructor
- Fixed incorrect applying of joint constraint impulses (backported from 6.0.0)
- Fixed build issue with gtest on Mac
- Fixed joint Coulomb friction
- Fixed installation -- missing headers (utils/urdf, utils/sdf)
- Fixed API incompatibility introduced by dart-4.3.0
- Added name manager for efficient name look-up and unique naming
- Added all-inclusive header and namespace headers
- Added DegreeOfFreedom class for getting/setting data of individual generalized coordinates
- Added hybrid dynamics
- Added joint actuator types
- Added Coulomb joint friction
- Migrated to C++11
- Improved readability of CMake output messages
- Fixed const-correctneess of member functions
- Added handling use of 'package:/' in URDF
- Fixed version numbering of shared libraries in debian packages
- Fixed Jacobian and its derivatives of FreeJoint/BallJoint
- Added reset functions for Simulation and Recording class
- Added operational space control example
- Fixed misuse of Bullet collision shapes
- Fixed adjacent body pair check for Bullet collision detector
- Fixed incorrect computation of constraint impulse for BallJointConstraint and WeldJointContraint
- Improved generation of soft box shape for soft body
- Added ABI check script
- Fixed build issues on Linux
- Fixed build issues on Windows
- Fixed unintended warning messages
- Fixed bug in switching collision detectors
- Fixed kinematics and dynamics when a skeleton has multiple parent-less bodies
- Fixed issue on installing DART 4 alongside DART 3 on Linux
- Fixed warnings on gcc
- Renamed getDof() to getNumDofs()
- Added cylinder shape for soft body
- Added implicit joint spring force and damping force
- Added planar joint
- Added soft body dynamics
- Added computation of velocity and acceleration of COM
- Added bullet collision detector
- Improved performance of forward dynamics algorithm
- Improved dynamics API for Skeleton and Joint
- Improved constraint dynamics solver
- Improved calculation of equations of motion using Featherstone algorithm
- Improved optimizer interface and added nlopt solver
- Fixed self collision bug
- Fixed incorrect integration of BallJoint and FreeJoint
- Removed Transformation classes. Their functionality is now included in joint classes.
- Added Featherstone algorithm. Can currently only be used without collision handling. The old algortihm is still present and used for that case.
- Removed kinematics namespace. Functionality is moved to dynamics classes.
- Added dart root namespace
- A lot of function and variable renames
- Added constraint namespace
- Added "common" namespace
- Clean-up of build system:
- Renamed DART_INCLUDEDIR to the standard-compliant DART_INCLUDE_DIRS in CMake files. Users need to adapt their CMake files for this change.
- Users no longer need to call find_package(DARTExt) in the CMake files. A call to find_package(DART) also finds its dependencies now.
- Allow user to overwrite installation prefix
- Add possibility to include DART header files as '#include <dart/dynamics/Skeleton.h>' in addition to '#include <dynamics/Skeleton.h>'
- Allow out-of-source builds
- URDF loader:
- Major clean-up
- Consider mesh scaling factor
- Replaced robotics::World with simulation::World
- Removed robotics::Robot
- Added simulation::SimWindow
- Some speed-up of Eigen calculations
- Added abstract trajectory interface
- ConstraintDynamics handles contact, joint limit and other constraint forces simultaneously
- Improved Lemke algorithm for solving LCP
- Renamed skeletonDynamics::getQDotVector() to getPoseVelocity()
- Added abstract CollisionDetector interface allowing for multiple different collision detector implementations.
- Created math namespace
- Added System class as base class to Skeleton and Joint
- URDF loader: Removed ability to load nonstandard URDF files with an object tag
- Added support for multiple shapes per BodyNode
- Made urdfdom a dependency instead of including it in the DART source
- Added function to CollisionDetector to let user check a specific pair of BodyNodes for collision
- Mass and inertia are no longer stored in Shape but in BodyNode.
- Different shapes for collision and visualization (not just different meshes)
- Shapes are no longer centered at the COM but can be transformed independently relative to the link frame.
- Improved URDF support
- Support for non-mesh shapes
- Does not create dummy root nodes anymore
- Support for continuous joints
- Support for arbitrary joint axes for revolute joints (but not for prismatic joints) instead of only axis-aligned joint axes
- Support for relative mesh paths even if the robot and world URDF files are in different directories
- All supported joint types can be root joints
- Clean-up of the Robot class
- Removed Object class
- More robust build and installation process on Linux