dartpy 7.0.0.dev0__cp312-cp312-manylinux_2_39_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of dartpy might be problematic. Click here for more details.
- dartpy-7.0.0.dev0.dist-info/METADATA +86 -0
- dartpy-7.0.0.dev0.dist-info/RECORD +994 -0
- dartpy-7.0.0.dev0.dist-info/WHEEL +5 -0
- dartpy-7.0.0.dev0.dist-info/licenses/LICENSE +31 -0
- dartpy.cpython-312-x86_64-linux-gnu.so +0 -0
- dartpy.libs/libBulletCollision-f96eb02c.so.3.25 +0 -0
- dartpy.libs/libBulletDynamics-3cff1f18.so.3.25 +0 -0
- dartpy.libs/libBulletSoftBody-220f01bd.so.3.25 +0 -0
- dartpy.libs/libLinearMath-71568d02.so.3.25 +0 -0
- dartpy.libs/libOpenThreads-8bc434db.so.3.3.1 +0 -0
- dartpy.libs/libSDL2-2-3db87ac0.0.so.0.3200.56 +0 -0
- dartpy.libs/libassimp-44cf3e77.so.5.4.3 +0 -0
- dartpy.libs/libccd-4f119cf4.so.2.0 +0 -0
- dartpy.libs/libconsole_bridge-f26e11cc.so.1.0 +0 -0
- dartpy.libs/libfcl-2607815a.so.0.7.0 +0 -0
- dartpy.libs/libfmt-277170bf.so.11.2.0 +0 -0
- dartpy.libs/libfontconfig-559ff509.so.1.14.0 +0 -0
- dartpy.libs/libfreetype-64806fc6.so.6.20.4 +0 -0
- dartpy.libs/libglfw-6f066845.so.3.4 +0 -0
- dartpy.libs/libimgui-ab87b07d.so +0 -0
- dartpy.libs/libnlopt-78f9bc34.so.1.0.0 +0 -0
- dartpy.libs/liboctomap-38e56f99.so.1.10.0 +0 -0
- dartpy.libs/liboctomath-bff26442.so.1.10.0 +0 -0
- dartpy.libs/libode-caca20fc.so.8.2.0 +0 -0
- dartpy.libs/libosg-e67375e5.so.3.6.5 +0 -0
- dartpy.libs/libosgDB-22ae780f.so.3.6.5 +0 -0
- dartpy.libs/libosgGA-6af4078b.so.3.6.5 +0 -0
- dartpy.libs/libosgManipulator-3270f659.so.3.6.5 +0 -0
- dartpy.libs/libosgShadow-127a8d77.so.3.6.5 +0 -0
- dartpy.libs/libosgText-87d82d87.so.3.6.5 +0 -0
- dartpy.libs/libosgUtil-55896958.so.3.6.5 +0 -0
- dartpy.libs/libosgViewer-76d832e3.so.3.6.5 +0 -0
- dartpy.libs/libpng16-bd65464e.so.16.50.0 +0 -0
- dartpy.libs/libtinyxml2-8d10763c.so.11.0.0 +0 -0
- dartpy.libs/liburdfdom_model-7b26ae88.so.4.0 +0 -0
- dartpy.libs/liburdfdom_model_state-95a5ad6e.so.4.0 +0 -0
- dartpy.libs/liburdfdom_sensor-55a145ea.so.4.0 +0 -0
- dartpy.libs/liburdfdom_world-a32c7194.so.4.0 +0 -0
- dartpy.libs/libvulkan-8caf1954.so.1.4.328 +0 -0
- include/dart/collision/CollisionDetector.hpp +305 -0
- include/dart/collision/CollisionFilter.hpp +126 -0
- include/dart/collision/CollisionGroup.hpp +546 -0
- include/dart/collision/CollisionObject.hpp +90 -0
- include/dart/collision/CollisionOption.hpp +71 -0
- include/dart/collision/CollisionResult.hpp +109 -0
- include/dart/collision/Contact.hpp +103 -0
- include/dart/collision/DistanceFilter.hpp +66 -0
- include/dart/collision/DistanceOption.hpp +80 -0
- include/dart/collision/DistanceResult.hpp +123 -0
- include/dart/collision/Option.hpp +42 -0
- include/dart/collision/RaycastOption.hpp +58 -0
- include/dart/collision/RaycastResult.hpp +80 -0
- include/dart/collision/Result.hpp +42 -0
- include/dart/collision/SmartPointer.hpp +51 -0
- include/dart/collision/all.hpp +17 -0
- include/dart/collision/bullet/BulletCollisionDetector.hpp +168 -0
- include/dart/collision/bullet/BulletCollisionGroup.hpp +98 -0
- include/dart/collision/bullet/BulletCollisionObject.hpp +75 -0
- include/dart/collision/bullet/BulletCollisionShape.hpp +62 -0
- include/dart/collision/bullet/BulletInclude.hpp +47 -0
- include/dart/collision/bullet/BulletTypes.hpp +57 -0
- include/dart/collision/bullet/all.hpp +8 -0
- include/dart/collision/bullet/bullet.hpp +14 -0
- include/dart/collision/bullet/detail/BulletCollisionDispatcher.hpp +70 -0
- include/dart/collision/bullet/detail/BulletOverlapFilterCallback.hpp +72 -0
- include/dart/collision/collision.hpp +14 -0
- include/dart/collision/dart/DARTCollide.hpp +106 -0
- include/dart/collision/dart/DARTCollisionDetector.hpp +109 -0
- include/dart/collision/dart/DARTCollisionGroup.hpp +82 -0
- include/dart/collision/dart/DARTCollisionObject.hpp +63 -0
- include/dart/collision/dart/all.hpp +6 -0
- include/dart/collision/dart/dart.hpp +14 -0
- include/dart/collision/detail/CollisionDetector.hpp +66 -0
- include/dart/collision/detail/CollisionGroup.hpp +287 -0
- include/dart/collision/detail/Contact-impl.hpp +56 -0
- include/dart/collision/detail/UnorderedPairs.hpp +153 -0
- include/dart/collision/fcl/BackwardCompatibility.hpp +145 -0
- include/dart/collision/fcl/CollisionShapes.hpp +374 -0
- include/dart/collision/fcl/FCLCollisionDetector.hpp +204 -0
- include/dart/collision/fcl/FCLCollisionGroup.hpp +95 -0
- include/dart/collision/fcl/FCLCollisionObject.hpp +72 -0
- include/dart/collision/fcl/FCLTypes.hpp +62 -0
- include/dart/collision/fcl/TriTriIntersectionTest.hpp +17 -0
- include/dart/collision/fcl/all.hpp +9 -0
- include/dart/collision/fcl/fcl.hpp +14 -0
- include/dart/collision/fcl/tri_tri_intersection_test.hpp +332 -0
- include/dart/collision/ode/OdeCollisionDetector.hpp +131 -0
- include/dart/collision/ode/OdeCollisionGroup.hpp +87 -0
- include/dart/collision/ode/OdeCollisionObject.hpp +89 -0
- include/dart/collision/ode/OdeTypes.hpp +51 -0
- include/dart/collision/ode/all.hpp +6 -0
- include/dart/collision/ode/detail/OdeBox.hpp +58 -0
- include/dart/collision/ode/detail/OdeCapsule.hpp +58 -0
- include/dart/collision/ode/detail/OdeCylinder.hpp +58 -0
- include/dart/collision/ode/detail/OdeGeom.hpp +83 -0
- include/dart/collision/ode/detail/OdeHeightmap-impl.hpp +170 -0
- include/dart/collision/ode/detail/OdeHeightmap.hpp +70 -0
- include/dart/collision/ode/detail/OdeMesh.hpp +83 -0
- include/dart/collision/ode/detail/OdePlane.hpp +67 -0
- include/dart/collision/ode/detail/OdeSphere.hpp +58 -0
- include/dart/collision/ode/ode.hpp +14 -0
- include/dart/common/Aspect.hpp +215 -0
- include/dart/common/AspectWithVersion.hpp +180 -0
- include/dart/common/CAllocator.hpp +65 -0
- include/dart/common/Castable.hpp +102 -0
- include/dart/common/ClassWithVirtualBase.hpp +47 -0
- include/dart/common/Cloneable.hpp +327 -0
- include/dart/common/Composite.hpp +205 -0
- include/dart/common/CompositeJoiner.hpp +160 -0
- include/dart/common/Console.hpp +75 -0
- include/dart/common/Deprecated.hpp +126 -0
- include/dart/common/EmbeddedAspect.hpp +466 -0
- include/dart/common/Empty.hpp +55 -0
- include/dart/common/Factory.hpp +146 -0
- include/dart/common/Filesystem.hpp +112 -0
- include/dart/common/FreeListAllocator.hpp +162 -0
- include/dart/common/IncludeWindows.hpp +50 -0
- include/dart/common/LocalResource.hpp +76 -0
- include/dart/common/LocalResourceRetriever.hpp +63 -0
- include/dart/common/LockableReference.hpp +166 -0
- include/dart/common/Logging.hpp +146 -0
- include/dart/common/Macros.hpp +78 -0
- include/dart/common/Memory.hpp +215 -0
- include/dart/common/MemoryAllocator.hpp +120 -0
- include/dart/common/MemoryAllocatorDebugger.hpp +98 -0
- include/dart/common/MemoryManager.hpp +189 -0
- include/dart/common/Metaprogramming.hpp +68 -0
- include/dart/common/NameManager.hpp +184 -0
- include/dart/common/Observer.hpp +85 -0
- include/dart/common/Optional.hpp +48 -0
- include/dart/common/Platform.hpp +92 -0
- include/dart/common/PoolAllocator.hpp +141 -0
- include/dart/common/Profile.hpp +56 -0
- include/dart/common/ProxyAspect.hpp +93 -0
- include/dart/common/RequiresAspect.hpp +79 -0
- include/dart/common/Resource.hpp +96 -0
- include/dart/common/ResourceRetriever.hpp +82 -0
- include/dart/common/SharedLibrary.hpp +201 -0
- include/dart/common/Signal.hpp +250 -0
- include/dart/common/Singleton.hpp +85 -0
- include/dart/common/SmartPointer.hpp +63 -0
- include/dart/common/SpecializedForAspect.hpp +207 -0
- include/dart/common/StlAllocator.hpp +111 -0
- include/dart/common/StlHelpers.hpp +61 -0
- include/dart/common/Stopwatch.hpp +143 -0
- include/dart/common/String.hpp +71 -0
- include/dart/common/SubPtr.hpp +17 -0
- include/dart/common/Subject.hpp +84 -0
- include/dart/common/Timer.hpp +119 -0
- include/dart/common/Uri.hpp +229 -0
- include/dart/common/VersionCounter.hpp +68 -0
- include/dart/common/Virtual.hpp +51 -0
- include/dart/common/all.hpp +53 -0
- include/dart/common/common.hpp +14 -0
- include/dart/common/detail/Aspect.hpp +102 -0
- include/dart/common/detail/AspectWithVersion.hpp +455 -0
- include/dart/common/detail/Castable-impl.hpp +109 -0
- include/dart/common/detail/Cloneable.hpp +638 -0
- include/dart/common/detail/Composite.hpp +241 -0
- include/dart/common/detail/CompositeData.hpp +393 -0
- include/dart/common/detail/CompositeJoiner.hpp +128 -0
- include/dart/common/detail/ConnectionBody.hpp +157 -0
- include/dart/common/detail/EmbeddedAspect.hpp +487 -0
- include/dart/common/detail/Factory-impl.hpp +200 -0
- include/dart/common/detail/LockableReference-impl.hpp +156 -0
- include/dart/common/detail/Logging-impl.hpp +162 -0
- include/dart/common/detail/Memory-impl.hpp +66 -0
- include/dart/common/detail/MemoryAllocator-impl.hpp +97 -0
- include/dart/common/detail/MemoryAllocatorDebugger-impl.hpp +201 -0
- include/dart/common/detail/MemoryManager-impl.hpp +102 -0
- include/dart/common/detail/Metaprogramming-impl.hpp +89 -0
- include/dart/common/detail/NameManager.hpp +301 -0
- include/dart/common/detail/NoOp.hpp +57 -0
- include/dart/common/detail/ProxyAspect.hpp +172 -0
- include/dart/common/detail/RequiresAspect.hpp +51 -0
- include/dart/common/detail/SharedLibraryManager.hpp +106 -0
- include/dart/common/detail/Signal.hpp +242 -0
- include/dart/common/detail/Singleton-impl.hpp +74 -0
- include/dart/common/detail/SpecializedForAspect.hpp +331 -0
- include/dart/common/detail/StlAllocator-impl.hpp +108 -0
- include/dart/common/detail/Stopwatch-impl.hpp +242 -0
- include/dart/common/detail/SubPtr.hpp +17 -0
- include/dart/common/detail/TemplateJoinerDispatchMacro.hpp +59 -0
- include/dart/common/detail/sub_ptr.hpp +139 -0
- include/dart/common/sub_ptr.hpp +103 -0
- include/dart/config.hpp +100 -0
- include/dart/constraint/BalanceConstraint.hpp +202 -0
- include/dart/constraint/BallJointConstraint.hpp +142 -0
- include/dart/constraint/BoxedLcpConstraintSolver.hpp +182 -0
- include/dart/constraint/BoxedLcpSolver.hpp +101 -0
- include/dart/constraint/ConstrainedGroup.hpp +120 -0
- include/dart/constraint/ConstraintBase.hpp +141 -0
- include/dart/constraint/ConstraintSolver.hpp +325 -0
- include/dart/constraint/ContactConstraint.hpp +286 -0
- include/dart/constraint/ContactSurface.hpp +191 -0
- include/dart/constraint/DantzigBoxedLcpSolver.hpp +71 -0
- include/dart/constraint/DantzigLCPSolver.hpp +87 -0
- include/dart/constraint/DynamicJointConstraint.hpp +120 -0
- include/dart/constraint/JointConstraint.hpp +182 -0
- include/dart/constraint/JointCoulombFrictionConstraint.hpp +149 -0
- include/dart/constraint/JointLimitConstraint.hpp +185 -0
- include/dart/constraint/LCPSolver.hpp +71 -0
- include/dart/constraint/MimicMotorConstraint.hpp +164 -0
- include/dart/constraint/PGSLCPSolver.hpp +109 -0
- include/dart/constraint/PgsBoxedLcpSolver.hpp +106 -0
- include/dart/constraint/ServoMotorConstraint.hpp +151 -0
- include/dart/constraint/SmartPointer.hpp +69 -0
- include/dart/constraint/SoftContactConstraint.hpp +262 -0
- include/dart/constraint/WeldJointConstraint.hpp +133 -0
- include/dart/constraint/all.hpp +25 -0
- include/dart/constraint/constraint.hpp +14 -0
- include/dart/constraint/detail/ConstraintSolver-impl.hpp +78 -0
- include/dart/dart.hpp +44 -0
- include/dart/dynamics/ArrowShape.hpp +121 -0
- include/dart/dynamics/AssimpInputResourceAdaptor.hpp +129 -0
- include/dart/dynamics/BallJoint.hpp +143 -0
- include/dart/dynamics/BodyNode.hpp +1279 -0
- include/dart/dynamics/BoxShape.hpp +90 -0
- include/dart/dynamics/Branch.hpp +107 -0
- include/dart/dynamics/CapsuleShape.hpp +105 -0
- include/dart/dynamics/Chain.hpp +142 -0
- include/dart/dynamics/CompositeNode.hpp +114 -0
- include/dart/dynamics/ConeShape.hpp +107 -0
- include/dart/dynamics/CylinderShape.hpp +96 -0
- include/dart/dynamics/DegreeOfFreedom.hpp +415 -0
- include/dart/dynamics/EllipsoidShape.hpp +115 -0
- include/dart/dynamics/EndEffector.hpp +158 -0
- include/dart/dynamics/Entity.hpp +258 -0
- include/dart/dynamics/EntityNode.hpp +77 -0
- include/dart/dynamics/EulerJoint.hpp +174 -0
- include/dart/dynamics/FixedFrame.hpp +105 -0
- include/dart/dynamics/FixedJacobianNode.hpp +168 -0
- include/dart/dynamics/Frame.hpp +388 -0
- include/dart/dynamics/FreeJoint.hpp +369 -0
- include/dart/dynamics/GenericJoint.hpp +825 -0
- include/dart/dynamics/Group.hpp +270 -0
- include/dart/dynamics/HeightmapShape.hpp +195 -0
- include/dart/dynamics/HierarchicalIK.hpp +419 -0
- include/dart/dynamics/IkFast.hpp +277 -0
- include/dart/dynamics/Inertia.hpp +176 -0
- include/dart/dynamics/InvalidIndex.hpp +46 -0
- include/dart/dynamics/InverseKinematics.hpp +1401 -0
- include/dart/dynamics/JacobianNode.hpp +312 -0
- include/dart/dynamics/Joint.hpp +1128 -0
- include/dart/dynamics/LineSegmentShape.hpp +140 -0
- include/dart/dynamics/Linkage.hpp +246 -0
- include/dart/dynamics/Marker.hpp +126 -0
- include/dart/dynamics/MeshShape.hpp +225 -0
- include/dart/dynamics/MetaSkeleton.hpp +1034 -0
- include/dart/dynamics/MimicDofProperties.hpp +62 -0
- include/dart/dynamics/MultiSphereConvexHullShape.hpp +111 -0
- include/dart/dynamics/MultiSphereShape.hpp +42 -0
- include/dart/dynamics/Node.hpp +273 -0
- include/dart/dynamics/NodeManagerJoiner.hpp +190 -0
- include/dart/dynamics/PlanarJoint.hpp +161 -0
- include/dart/dynamics/PlaneShape.hpp +105 -0
- include/dart/dynamics/PointCloudShape.hpp +186 -0
- include/dart/dynamics/PointMass.hpp +709 -0
- include/dart/dynamics/PrismaticJoint.hpp +120 -0
- include/dart/dynamics/PyramidShape.hpp +122 -0
- include/dart/dynamics/ReferentialSkeleton.hpp +550 -0
- include/dart/dynamics/RevoluteJoint.hpp +120 -0
- include/dart/dynamics/ScrewJoint.hpp +126 -0
- include/dart/dynamics/Shape.hpp +231 -0
- include/dart/dynamics/ShapeFrame.hpp +291 -0
- include/dart/dynamics/ShapeNode.hpp +134 -0
- include/dart/dynamics/SharedLibraryIkFast.hpp +147 -0
- include/dart/dynamics/SimpleFrame.hpp +247 -0
- include/dart/dynamics/Skeleton.hpp +1350 -0
- include/dart/dynamics/SmartPointer.hpp +185 -0
- include/dart/dynamics/SoftBodyNode.hpp +472 -0
- include/dart/dynamics/SoftMeshShape.hpp +100 -0
- include/dart/dynamics/SpecializedNodeManager.hpp +230 -0
- include/dart/dynamics/SphereShape.hpp +89 -0
- include/dart/dynamics/TemplatedJacobianNode.hpp +128 -0
- include/dart/dynamics/TranslationalJoint.hpp +105 -0
- include/dart/dynamics/TranslationalJoint2D.hpp +156 -0
- include/dart/dynamics/UniversalJoint.hpp +128 -0
- include/dart/dynamics/VoxelGridShape.hpp +171 -0
- include/dart/dynamics/WeldJoint.hpp +116 -0
- include/dart/dynamics/ZeroDofJoint.hpp +562 -0
- include/dart/dynamics/all.hpp +69 -0
- include/dart/dynamics/detail/BasicNodeManager.hpp +539 -0
- include/dart/dynamics/detail/BodyNode.hpp +344 -0
- include/dart/dynamics/detail/BodyNodeAspect.hpp +177 -0
- include/dart/dynamics/detail/BodyNodePtr.hpp +351 -0
- include/dart/dynamics/detail/CompositeNode.hpp +93 -0
- include/dart/dynamics/detail/DegreeOfFreedomPtr.hpp +338 -0
- include/dart/dynamics/detail/EndEffectorAspect.hpp +106 -0
- include/dart/dynamics/detail/EntityNode.hpp +81 -0
- include/dart/dynamics/detail/EntityNodeAspect.hpp +101 -0
- include/dart/dynamics/detail/EulerJointAspect.hpp +93 -0
- include/dart/dynamics/detail/FixedFrameAspect.hpp +58 -0
- include/dart/dynamics/detail/FixedJacobianNode.hpp +55 -0
- include/dart/dynamics/detail/GenericJoint.hpp +2471 -0
- include/dart/dynamics/detail/GenericJointAspect.hpp +353 -0
- include/dart/dynamics/detail/HeightmapShape-impl.hpp +243 -0
- include/dart/dynamics/detail/InverseKinematics.hpp +83 -0
- include/dart/dynamics/detail/InverseKinematicsPtr.hpp +341 -0
- include/dart/dynamics/detail/JointAspect.hpp +161 -0
- include/dart/dynamics/detail/JointPtr.hpp +293 -0
- include/dart/dynamics/detail/MarkerAspect.hpp +68 -0
- include/dart/dynamics/detail/MetaSkeleton-impl.hpp +151 -0
- include/dart/dynamics/detail/Node.hpp +532 -0
- include/dart/dynamics/detail/NodeManagerJoiner.hpp +184 -0
- include/dart/dynamics/detail/NodePtr.hpp +259 -0
- include/dart/dynamics/detail/PlanarJointAspect.hpp +136 -0
- include/dart/dynamics/detail/PrismaticJointAspect.hpp +85 -0
- include/dart/dynamics/detail/RevoluteJointAspect.hpp +86 -0
- include/dart/dynamics/detail/ScrewJointAspect.hpp +90 -0
- include/dart/dynamics/detail/ShapeFrameAspect.hpp +169 -0
- include/dart/dynamics/detail/ShapeNode.hpp +51 -0
- include/dart/dynamics/detail/Skeleton.hpp +92 -0
- include/dart/dynamics/detail/SkeletonAspect.hpp +181 -0
- include/dart/dynamics/detail/SoftBodyNodeAspect.hpp +132 -0
- include/dart/dynamics/detail/SpecializedNodeManager.hpp +324 -0
- include/dart/dynamics/detail/TemplatedJacobianNode.hpp +294 -0
- include/dart/dynamics/detail/TranslationalJoint2DAspect.hpp +140 -0
- include/dart/dynamics/detail/UniversalJointAspect.hpp +86 -0
- include/dart/dynamics/dynamics.hpp +14 -0
- include/dart/dynamics/ikfast.h +345 -0
- include/dart/external/convhull_3d/convhull_3d.h +1878 -0
- include/dart/external/convhull_3d/safe_convhull_3d.h +53 -0
- include/dart/external/odelcpsolver/common.h +418 -0
- include/dart/external/odelcpsolver/error.h +62 -0
- include/dart/external/odelcpsolver/lcp.h +75 -0
- include/dart/external/odelcpsolver/matrix.h +277 -0
- include/dart/external/odelcpsolver/misc.h +82 -0
- include/dart/external/odelcpsolver/odeconfig.h +110 -0
- include/dart/gui/osg/DefaultEventHandler.hpp +237 -0
- include/dart/gui/osg/DragAndDrop.hpp +360 -0
- include/dart/gui/osg/GridVisual.hpp +218 -0
- include/dart/gui/osg/ImGuiHandler.hpp +113 -0
- include/dart/gui/osg/ImGuiViewer.hpp +83 -0
- include/dart/gui/osg/ImGuiWidget.hpp +91 -0
- include/dart/gui/osg/IncludeImGui.hpp +75 -0
- include/dart/gui/osg/InteractiveFrame.hpp +170 -0
- include/dart/gui/osg/MouseEventHandler.hpp +76 -0
- include/dart/gui/osg/RealTimeWorldNode.hpp +126 -0
- include/dart/gui/osg/ShapeFrameNode.hpp +117 -0
- include/dart/gui/osg/SupportPolygonVisual.hpp +202 -0
- include/dart/gui/osg/TrackballManipulator.hpp +97 -0
- include/dart/gui/osg/Utils.hpp +120 -0
- include/dart/gui/osg/Viewer.hpp +427 -0
- include/dart/gui/osg/WorldNode.hpp +211 -0
- include/dart/gui/osg/all.hpp +19 -0
- include/dart/gui/osg/detail/CameraModeCallback.hpp +82 -0
- include/dart/gui/osg/detail/Utils-impl.hpp +160 -0
- include/dart/gui/osg/osg.hpp +14 -0
- include/dart/gui/osg/render/BoxShapeNode.hpp +74 -0
- include/dart/gui/osg/render/CapsuleShapeNode.hpp +75 -0
- include/dart/gui/osg/render/ConeShapeNode.hpp +74 -0
- include/dart/gui/osg/render/CylinderShapeNode.hpp +75 -0
- include/dart/gui/osg/render/EllipsoidShapeNode.hpp +76 -0
- include/dart/gui/osg/render/HeightmapShapeNode.hpp +485 -0
- include/dart/gui/osg/render/LineSegmentShapeNode.hpp +75 -0
- include/dart/gui/osg/render/MeshShapeNode.hpp +86 -0
- include/dart/gui/osg/render/MultiSphereShapeNode.hpp +76 -0
- include/dart/gui/osg/render/PlaneShapeNode.hpp +75 -0
- include/dart/gui/osg/render/PointCloudShapeNode.hpp +85 -0
- include/dart/gui/osg/render/PyramidShapeNode.hpp +75 -0
- include/dart/gui/osg/render/ShapeNode.hpp +126 -0
- include/dart/gui/osg/render/SoftMeshShapeNode.hpp +75 -0
- include/dart/gui/osg/render/SphereShapeNode.hpp +76 -0
- include/dart/gui/osg/render/VoxelGridShapeNode.hpp +83 -0
- include/dart/gui/osg/render/WarningShapeNode.hpp +64 -0
- include/dart/gui/osg/render/all.hpp +19 -0
- include/dart/gui/osg/render/render.hpp +14 -0
- include/dart/integration/EulerIntegrator.hpp +64 -0
- include/dart/integration/Integrator.hpp +104 -0
- include/dart/integration/RK4Integrator.hpp +68 -0
- include/dart/integration/SemiImplicitEulerIntegrator.hpp +64 -0
- include/dart/integration/all.hpp +6 -0
- include/dart/integration/integration.hpp +14 -0
- include/dart/lcpsolver/Lemke.hpp +54 -0
- include/dart/lcpsolver/ODELCPSolver.hpp +88 -0
- include/dart/lcpsolver/all.hpp +4 -0
- include/dart/lcpsolver/lcpsolver.hpp +14 -0
- include/dart/math/ConfigurationSpace.hpp +144 -0
- include/dart/math/Constants.hpp +79 -0
- include/dart/math/Geometry.hpp +659 -0
- include/dart/math/Helpers.hpp +481 -0
- include/dart/math/Icosphere.hpp +106 -0
- include/dart/math/MathTypes.hpp +100 -0
- include/dart/math/Mesh.hpp +108 -0
- include/dart/math/Random.hpp +225 -0
- include/dart/math/TriMesh.hpp +121 -0
- include/dart/math/all.hpp +11 -0
- include/dart/math/detail/ConfigurationSpace.hpp +235 -0
- include/dart/math/detail/Geometry-impl.hpp +126 -0
- include/dart/math/detail/Icosphere-impl.hpp +214 -0
- include/dart/math/detail/Mesh-impl.hpp +151 -0
- include/dart/math/detail/Random-impl.hpp +353 -0
- include/dart/math/detail/TriMesh-impl.hpp +202 -0
- include/dart/math/math.hpp +14 -0
- include/dart/optimizer/Function.hpp +203 -0
- include/dart/optimizer/GenericMultiObjectiveProblem.hpp +174 -0
- include/dart/optimizer/GradientDescentSolver.hpp +240 -0
- include/dart/optimizer/MultiObjectiveProblem.hpp +168 -0
- include/dart/optimizer/MultiObjectiveSolver.hpp +168 -0
- include/dart/optimizer/Population.hpp +108 -0
- include/dart/optimizer/Problem.hpp +191 -0
- include/dart/optimizer/Solver.hpp +182 -0
- include/dart/optimizer/all.hpp +10 -0
- include/dart/optimizer/ipopt/BackwardCompatibility.hpp +43 -0
- include/dart/optimizer/ipopt/IpoptSolver.hpp +223 -0
- include/dart/optimizer/ipopt/all.hpp +4 -0
- include/dart/optimizer/ipopt/ipopt.hpp +14 -0
- include/dart/optimizer/nlopt/NloptSolver.hpp +212 -0
- include/dart/optimizer/nlopt/all.hpp +3 -0
- include/dart/optimizer/nlopt/nlopt.hpp +14 -0
- include/dart/optimizer/optimizer.hpp +14 -0
- include/dart/simulation/Recording.hpp +118 -0
- include/dart/simulation/SmartPointer.hpp +46 -0
- include/dart/simulation/World.hpp +405 -0
- include/dart/simulation/all.hpp +5 -0
- include/dart/simulation/detail/World-impl.hpp +129 -0
- include/dart/simulation/simulation.hpp +14 -0
- include/dart/utils/C3D.hpp +107 -0
- include/dart/utils/CompositeResourceRetriever.hpp +97 -0
- include/dart/utils/DartResourceRetriever.hpp +104 -0
- include/dart/utils/FileInfoC3D.hpp +91 -0
- include/dart/utils/FileInfoDof.hpp +109 -0
- include/dart/utils/FileInfoWorld.hpp +75 -0
- include/dart/utils/PackageResourceRetriever.hpp +118 -0
- include/dart/utils/SkelParser.hpp +70 -0
- include/dart/utils/VskParser.hpp +108 -0
- include/dart/utils/XmlHelpers.hpp +243 -0
- include/dart/utils/all.hpp +14 -0
- include/dart/utils/detail/XmlHelpers-impl.hpp +213 -0
- include/dart/utils/mjcf/MjcfParser.hpp +80 -0
- include/dart/utils/mjcf/all.hpp +3 -0
- include/dart/utils/mjcf/mjcf.hpp +14 -0
- include/dart/utils/sdf/SdfParser.hpp +98 -0
- include/dart/utils/sdf/all.hpp +3 -0
- include/dart/utils/sdf/sdf.hpp +14 -0
- include/dart/utils/urdf/BackwardCompatibility.hpp +52 -0
- include/dart/utils/urdf/DartLoader.hpp +277 -0
- include/dart/utils/urdf/IncludeUrdf.hpp +47 -0
- include/dart/utils/urdf/URDFTypes.hpp +42 -0
- include/dart/utils/urdf/all.hpp +5 -0
- include/dart/utils/urdf/urdf.hpp +14 -0
- include/dart/utils/urdf/urdf_world_parser.hpp +83 -0
- include/dart/utils/utils.hpp +14 -0
- lib64/libdart-collision-bullet.a +0 -0
- lib64/libdart-collision-ode.a +0 -0
- lib64/libdart-external-odelcpsolver.a +0 -0
- lib64/libdart-gui-osg.a +0 -0
- lib64/libdart-optimizer-ipopt.a +0 -0
- lib64/libdart-optimizer-nlopt.a +0 -0
- lib64/libdart-utils-urdf.a +0 -0
- lib64/libdart-utils.a +0 -0
- lib64/libdart.a +0 -0
- lib64/pkgconfig/dart.pc +12 -0
- share/dart/cmake/DARTConfig.cmake +194 -0
- share/dart/cmake/DARTConfigVersion.cmake +65 -0
- share/dart/cmake/DARTFindBullet.cmake +96 -0
- share/dart/cmake/DARTFindEigen3.cmake +9 -0
- share/dart/cmake/DARTFindIPOPT.cmake +20 -0
- share/dart/cmake/DARTFindNLOPT.cmake +17 -0
- share/dart/cmake/DARTFindODE.cmake +23 -0
- share/dart/cmake/DARTFindOpenSceneGraph.cmake +69 -0
- share/dart/cmake/DARTFindassimp.cmake +18 -0
- share/dart/cmake/DARTFindfcl.cmake +23 -0
- share/dart/cmake/DARTFindfmt.cmake +9 -0
- share/dart/cmake/DARTFindimgui.cmake +21 -0
- share/dart/cmake/DARTFindoctomap.cmake +17 -0
- share/dart/cmake/DARTFindspdlog.cmake +9 -0
- share/dart/cmake/DARTFindtinyxml2.cmake +27 -0
- share/dart/cmake/DARTFindurdfdom.cmake +29 -0
- share/dart/cmake/FindIPOPT.cmake +54 -0
- share/dart/cmake/FindNLOPT.cmake +54 -0
- share/dart/cmake/FindODE.cmake +54 -0
- share/dart/cmake/Findassimp.cmake +56 -0
- share/dart/cmake/Findfcl.cmake +67 -0
- share/dart/cmake/Findimgui.cmake +70 -0
- share/dart/cmake/Findtinyxml2.cmake +54 -0
- share/dart/cmake/dart_collision-bulletComponent.cmake +19 -0
- share/dart/cmake/dart_collision-bulletTargets-release.cmake +19 -0
- share/dart/cmake/dart_collision-bulletTargets.cmake +122 -0
- share/dart/cmake/dart_collision-odeComponent.cmake +19 -0
- share/dart/cmake/dart_collision-odeTargets-release.cmake +19 -0
- share/dart/cmake/dart_collision-odeTargets.cmake +122 -0
- share/dart/cmake/dart_dartComponent.cmake +19 -0
- share/dart/cmake/dart_dartTargets-release.cmake +19 -0
- share/dart/cmake/dart_dartTargets.cmake +125 -0
- share/dart/cmake/dart_external-odelcpsolverComponent.cmake +19 -0
- share/dart/cmake/dart_external-odelcpsolverTargets-release.cmake +19 -0
- share/dart/cmake/dart_external-odelcpsolverTargets.cmake +106 -0
- share/dart/cmake/dart_gui-osgComponent.cmake +19 -0
- share/dart/cmake/dart_gui-osgTargets-release.cmake +19 -0
- share/dart/cmake/dart_gui-osgTargets.cmake +122 -0
- share/dart/cmake/dart_optimizer-ipoptComponent.cmake +19 -0
- share/dart/cmake/dart_optimizer-ipoptTargets-release.cmake +19 -0
- share/dart/cmake/dart_optimizer-ipoptTargets.cmake +123 -0
- share/dart/cmake/dart_optimizer-nloptComponent.cmake +19 -0
- share/dart/cmake/dart_optimizer-nloptTargets-release.cmake +19 -0
- share/dart/cmake/dart_optimizer-nloptTargets.cmake +123 -0
- share/dart/cmake/dart_utils-urdfComponent.cmake +19 -0
- share/dart/cmake/dart_utils-urdfTargets-release.cmake +19 -0
- share/dart/cmake/dart_utils-urdfTargets.cmake +122 -0
- share/dart/cmake/dart_utilsComponent.cmake +19 -0
- share/dart/cmake/dart_utilsTargets-release.cmake +19 -0
- share/dart/cmake/dart_utilsTargets.cmake +122 -0
- share/dart/package.xml +42 -0
- share/doc/dart/data/c3d/nick_freeform_001.c3d +0 -0
- share/doc/dart/data/c3d/squat.c3d +0 -0
- share/doc/dart/data/dof/RHand.dof +205 -0
- share/doc/dart/data/dof/fixedHand.dof +205 -0
- share/doc/dart/data/dof/init_Tpose.dof +240 -0
- share/doc/dart/data/dof/same.dof +1003 -0
- share/doc/dart/data/dof/simMotion.dof +1817 -0
- share/doc/dart/data/dof/simMotion1.dof +1355 -0
- share/doc/dart/data/etc/fort.4 +43 -0
- share/doc/dart/data/humanJointLimits/neuralnets/net-larm +0 -0
- share/doc/dart/data/humanJointLimits/neuralnets/net-lleg +0 -0
- share/doc/dart/data/mjcf/openai/LICENSE.md +36 -0
- share/doc/dart/data/mjcf/openai/ant.xml +81 -0
- share/doc/dart/data/mjcf/openai/half_cheetah.xml +96 -0
- share/doc/dart/data/mjcf/openai/hopper.xml +50 -0
- share/doc/dart/data/mjcf/openai/humanoid.xml +121 -0
- share/doc/dart/data/mjcf/openai/humanoidstandup.xml +121 -0
- share/doc/dart/data/mjcf/openai/inverted_double_pendulum.xml +47 -0
- share/doc/dart/data/mjcf/openai/inverted_pendulum.xml +27 -0
- share/doc/dart/data/mjcf/openai/point.xml +31 -0
- share/doc/dart/data/mjcf/openai/pusher.xml +91 -0
- share/doc/dart/data/mjcf/openai/reacher.xml +39 -0
- share/doc/dart/data/mjcf/openai/robotics/fetch/pick_and_place.xml +35 -0
- share/doc/dart/data/mjcf/openai/robotics/fetch/push.xml +32 -0
- share/doc/dart/data/mjcf/openai/robotics/fetch/reach.xml +26 -0
- share/doc/dart/data/mjcf/openai/robotics/fetch/robot.xml +123 -0
- share/doc/dart/data/mjcf/openai/robotics/fetch/shared.xml +66 -0
- share/doc/dart/data/mjcf/openai/robotics/fetch/slide.xml +32 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/.get +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/base_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/bellows_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/elbow_flex_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/estop_link.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/forearm_roll_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/gripper_link.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/head_pan_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/head_tilt_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/l_wheel_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/laser_link.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/r_wheel_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/shoulder_lift_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/shoulder_pan_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/torso_fixed_link.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/torso_lift_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/upperarm_roll_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/wrist_flex_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/stls/fetch/wrist_roll_link_collision.stl +0 -0
- share/doc/dart/data/mjcf/openai/robotics/textures/block.png +0 -0
- share/doc/dart/data/mjcf/openai/robotics/textures/block_hidden.png +0 -0
- share/doc/dart/data/mjcf/openai/striker.xml +101 -0
- share/doc/dart/data/mjcf/openai/swimmer.xml +39 -0
- share/doc/dart/data/mjcf/openai/thrower.xml +127 -0
- share/doc/dart/data/mjcf/openai/walker2d.xml +62 -0
- share/doc/dart/data/mjcf/test/default.xml +17 -0
- share/doc/dart/data/mjcf/test/include_default.xml +8 -0
- share/doc/dart/data/mjcf/test/include_main.xml +12 -0
- share/doc/dart/data/obj/Body_Hip.obj +22830 -0
- share/doc/dart/data/obj/BoxSmall.obj +23 -0
- share/doc/dart/data/obj/foot.obj +10970 -0
- share/doc/dart/data/other/torus1.path +11991 -0
- share/doc/dart/data/other/torus1.tris +5329 -0
- share/doc/dart/data/other/torus2.path +11991 -0
- share/doc/dart/data/other/torus2.tris +12961 -0
- share/doc/dart/data/screencap/.KEEP +0 -0
- share/doc/dart/data/sdf/atlas/atlas_v3.urdf +914 -0
- share/doc/dart/data/sdf/atlas/atlas_v3_no_head.sdf +1541 -0
- share/doc/dart/data/sdf/atlas/atlas_v3_no_head.urdf +914 -0
- share/doc/dart/data/sdf/atlas/atlas_v3_no_head_soft_feet.sdf +1567 -0
- share/doc/dart/data/sdf/atlas/ground.urdf +28 -0
- share/doc/dart/data/sdf/atlas/head.dae +8607 -0
- share/doc/dart/data/sdf/atlas/head.stl +0 -0
- share/doc/dart/data/sdf/atlas/head_camera.dae +2326 -0
- share/doc/dart/data/sdf/atlas/head_camera.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_clav.dae +1278 -0
- share/doc/dart/data/sdf/atlas/l_clav.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_farm.dae +1204 -0
- share/doc/dart/data/sdf/atlas/l_farm.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_foot.dae +1330 -0
- share/doc/dart/data/sdf/atlas/l_foot.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_hand.dae +964 -0
- share/doc/dart/data/sdf/atlas/l_hand.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_larm.dae +1378 -0
- share/doc/dart/data/sdf/atlas/l_larm.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_lglut.dae +897 -0
- share/doc/dart/data/sdf/atlas/l_lglut.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_lleg.dae +6660 -0
- share/doc/dart/data/sdf/atlas/l_lleg.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_scap.dae +1531 -0
- share/doc/dart/data/sdf/atlas/l_scap.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_talus.dae +374 -0
- share/doc/dart/data/sdf/atlas/l_talus.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_uarm.dae +1204 -0
- share/doc/dart/data/sdf/atlas/l_uarm.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_uglut.dae +398 -0
- share/doc/dart/data/sdf/atlas/l_uglut.stl +0 -0
- share/doc/dart/data/sdf/atlas/l_uleg.dae +9087 -0
- share/doc/dart/data/sdf/atlas/l_uleg.stl +0 -0
- share/doc/dart/data/sdf/atlas/ltorso.dae +614 -0
- share/doc/dart/data/sdf/atlas/ltorso.stl +0 -0
- share/doc/dart/data/sdf/atlas/mtorso.dae +266 -0
- share/doc/dart/data/sdf/atlas/mtorso.stl +0 -0
- share/doc/dart/data/sdf/atlas/pelvis.dae +8727 -0
- share/doc/dart/data/sdf/atlas/pelvis.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_clav.dae +1278 -0
- share/doc/dart/data/sdf/atlas/r_clav.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_farm.dae +1204 -0
- share/doc/dart/data/sdf/atlas/r_farm.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_foot.dae +1330 -0
- share/doc/dart/data/sdf/atlas/r_foot.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_hand.dae +904 -0
- share/doc/dart/data/sdf/atlas/r_hand.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_larm.dae +1378 -0
- share/doc/dart/data/sdf/atlas/r_larm.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_lglut.dae +897 -0
- share/doc/dart/data/sdf/atlas/r_lglut.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_lleg.dae +6661 -0
- share/doc/dart/data/sdf/atlas/r_lleg.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_scap.dae +1531 -0
- share/doc/dart/data/sdf/atlas/r_scap.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_talus.dae +374 -0
- share/doc/dart/data/sdf/atlas/r_talus.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_uarm.dae +1144 -0
- share/doc/dart/data/sdf/atlas/r_uarm.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_uglut.dae +398 -0
- share/doc/dart/data/sdf/atlas/r_uglut.stl +0 -0
- share/doc/dart/data/sdf/atlas/r_uleg.dae +9087 -0
- share/doc/dart/data/sdf/atlas/r_uleg.stl +0 -0
- share/doc/dart/data/sdf/atlas/utorso.dae +28342 -0
- share/doc/dart/data/sdf/atlas/utorso.stl +0 -0
- share/doc/dart/data/sdf/atlas/utorso_mod.dae +16508 -0
- share/doc/dart/data/sdf/atlas/utorso_mod.stl +0 -0
- share/doc/dart/data/sdf/atlas/utorso_pack.dae +8521 -0
- share/doc/dart/data/sdf/atlas/utorso_pack.stl +0 -0
- share/doc/dart/data/sdf/benchmark.world +2510 -0
- share/doc/dart/data/sdf/double_pendulum.world +168 -0
- share/doc/dart/data/sdf/double_pendulum_with_base.world +263 -0
- share/doc/dart/data/sdf/empty.world +13 -0
- share/doc/dart/data/sdf/ground.world +48 -0
- share/doc/dart/data/sdf/materials/textures/atlas_cage_and_camera_diffuse_flat.jpg +0 -0
- share/doc/dart/data/sdf/materials/textures/drc_extremities_diffuse.jpg +0 -0
- share/doc/dart/data/sdf/materials/textures/drc_labels_1.jpg +0 -0
- share/doc/dart/data/sdf/materials/textures/drc_torso_head_diffuse.jpg +0 -0
- share/doc/dart/data/sdf/materials/textures/extremities_diffuse_unplugged.jpg +0 -0
- share/doc/dart/data/sdf/materials/textures/right_leg_diffuse_unplugged.jpg +0 -0
- share/doc/dart/data/sdf/materials/textures/torso_diffuse_unplugged.jpg +0 -0
- share/doc/dart/data/sdf/quad.sdf +867 -0
- share/doc/dart/data/sdf/test/force_torque_test.world +173 -0
- share/doc/dart/data/sdf/test/force_torque_test2.world +214 -0
- share/doc/dart/data/sdf/test/issue1193_revolute_test.sdf +70 -0
- share/doc/dart/data/sdf/test/issue1193_revolute_with_offset_test.sdf +70 -0
- share/doc/dart/data/sdf/test/issue1624_cubes.sdf +5037 -0
- share/doc/dart/data/sdf/test/single_bodynode_skeleton.world +55 -0
- share/doc/dart/data/sdf/test/test_issue1583.model +45 -0
- share/doc/dart/data/sdf/test/test_issue1596.model +182 -0
- share/doc/dart/data/sdf/test/test_skeleton_joint.world +278 -0
- share/doc/dart/data/skel/biped.skel +850 -0
- share/doc/dart/data/skel/bullet_collision.skel +174 -0
- share/doc/dart/data/skel/chain.skel +212 -0
- share/doc/dart/data/skel/cube.skel +71 -0
- share/doc/dart/data/skel/cubes.skel +137 -0
- share/doc/dart/data/skel/empty.skel +10 -0
- share/doc/dart/data/skel/freeChain.skel +212 -0
- share/doc/dart/data/skel/fullbody1.skel +1177 -0
- share/doc/dart/data/skel/ground.skel +31 -0
- share/doc/dart/data/skel/joint_limit.skel +123 -0
- share/doc/dart/data/skel/kima/abdomen.dae +18933 -0
- share/doc/dart/data/skel/kima/head.dae +34634 -0
- share/doc/dart/data/skel/kima/kima_human_edited.skel +933 -0
- share/doc/dart/data/skel/kima/kima_human_left_arm.skel +323 -0
- share/doc/dart/data/skel/kima/kima_human_left_leg.skel +327 -0
- share/doc/dart/data/skel/kima/l-clavicle.dae +20111 -0
- share/doc/dart/data/skel/kima/l-foot.dae +28208 -0
- share/doc/dart/data/skel/kima/pelvis.dae +35919 -0
- share/doc/dart/data/skel/kima/r-clavicle.dae +20090 -0
- share/doc/dart/data/skel/kima/thorax.dae +47337 -0
- share/doc/dart/data/skel/mesh_collision.skel +137 -0
- share/doc/dart/data/skel/shapes.skel +378 -0
- share/doc/dart/data/skel/skateboard.skel +222 -0
- share/doc/dart/data/skel/softBodies.skel +284 -0
- share/doc/dart/data/skel/soft_cubes.skel +134 -0
- share/doc/dart/data/skel/soft_open_chain.skel +241 -0
- share/doc/dart/data/skel/sphere.skel +74 -0
- share/doc/dart/data/skel/spheres.skel +118 -0
- share/doc/dart/data/skel/test/SimplePendulum.skel +141 -0
- share/doc/dart/data/skel/test/ball_joints.skel +49 -0
- share/doc/dart/data/skel/test/box_stacking.skel +346 -0
- share/doc/dart/data/skel/test/boxes.skel +52 -0
- share/doc/dart/data/skel/test/chainwhipa.skel +193 -0
- share/doc/dart/data/skel/test/collision_of_prescribed_joints_test.skel +249 -0
- share/doc/dart/data/skel/test/dof_attribute_test.skel +206 -0
- share/doc/dart/data/skel/test/double_pendulum.skel +76 -0
- share/doc/dart/data/skel/test/double_pendulum_ball_joint.skel +76 -0
- share/doc/dart/data/skel/test/double_pendulum_euler_joint.skel +78 -0
- share/doc/dart/data/skel/test/double_pendulum_with_base.skel +1390 -0
- share/doc/dart/data/skel/test/drop.skel +116 -0
- share/doc/dart/data/skel/test/drop_BENCHMARK.skel +10 -0
- share/doc/dart/data/skel/test/drop_unrotated_box.skel +156 -0
- share/doc/dart/data/skel/test/empty.skel +10 -0
- share/doc/dart/data/skel/test/file_info_world_test.skel +1177 -0
- share/doc/dart/data/skel/test/free_joints.skel +49 -0
- share/doc/dart/data/skel/test/gazebo/drop_test.skel +161 -0
- share/doc/dart/data/skel/test/gazebo/force_torque_test.skel +138 -0
- share/doc/dart/data/skel/test/gazebo/force_torque_test2.skel +171 -0
- share/doc/dart/data/skel/test/hybrid_dynamics_test.skel +172 -0
- share/doc/dart/data/skel/test/joint_actuator_type_test.skel +185 -0
- share/doc/dart/data/skel/test/joint_dynamics_elements_test.skel +103 -0
- share/doc/dart/data/skel/test/joint_friction_test.skel +80 -0
- share/doc/dart/data/skel/test/joint_limit_test.skel +80 -0
- share/doc/dart/data/skel/test/planar_joint.skel +167 -0
- share/doc/dart/data/skel/test/serial_chain_BENCHMARK.skel +10 -0
- share/doc/dart/data/skel/test/serial_chain_ball_joint.skel +212 -0
- share/doc/dart/data/skel/test/serial_chain_ball_joint_20.skel +412 -0
- share/doc/dart/data/skel/test/serial_chain_ball_joint_40.skel +812 -0
- share/doc/dart/data/skel/test/serial_chain_eulerxyz_joint.skel +224 -0
- share/doc/dart/data/skel/test/serial_chain_revolute_joint.skel +244 -0
- share/doc/dart/data/skel/test/simple_tree_structure.skel +108 -0
- share/doc/dart/data/skel/test/simple_tree_structure_ball_joint.skel +108 -0
- share/doc/dart/data/skel/test/simple_tree_structure_euler_joint.skel +111 -0
- share/doc/dart/data/skel/test/single_pendulum.skel +55 -0
- share/doc/dart/data/skel/test/single_pendulum_ball_joint.skel +55 -0
- share/doc/dart/data/skel/test/single_pendulum_euler_joint.skel +56 -0
- share/doc/dart/data/skel/test/spheres.skel +118 -0
- share/doc/dart/data/skel/test/test_adaptive_deformable.skel +88 -0
- share/doc/dart/data/skel/test/test_articulated_bodies.skel +112 -0
- share/doc/dart/data/skel/test/test_articulated_bodies_10bodies.skel +401 -0
- share/doc/dart/data/skel/test/test_double_pendulum.skel +105 -0
- share/doc/dart/data/skel/test/test_drop_box.skel +87 -0
- share/doc/dart/data/skel/test/test_drop_box_offset.skel +87 -0
- share/doc/dart/data/skel/test/test_drop_low_stiffness.skel +86 -0
- share/doc/dart/data/skel/test/test_drop_sphere.skel +86 -0
- share/doc/dart/data/skel/test/test_shapes.skel +324 -0
- share/doc/dart/data/skel/test/test_single_body.skel +55 -0
- share/doc/dart/data/skel/test/test_single_pendulum.skel +55 -0
- share/doc/dart/data/skel/test/translational_joints.skel +49 -0
- share/doc/dart/data/skel/test/tree_structure.skel +428 -0
- share/doc/dart/data/skel/test/tree_structure_ball_joint.skel +441 -0
- share/doc/dart/data/skel/test/tree_structure_euler_joint.skel +441 -0
- share/doc/dart/data/skel/two_cubes.skel +118 -0
- share/doc/dart/data/skel/vehicle.skel +322 -0
- share/doc/dart/data/test/hello_world.txt +1 -0
- share/doc/dart/data/urdf/KR5/KR5 sixx R650.urdf +397 -0
- share/doc/dart/data/urdf/KR5/ground.urdf +28 -0
- share/doc/dart/data/urdf/KR5/meshes/base_link.STL +0 -0
- share/doc/dart/data/urdf/KR5/meshes/bicep.STL +0 -0
- share/doc/dart/data/urdf/KR5/meshes/elbow.STL +0 -0
- share/doc/dart/data/urdf/KR5/meshes/forearm.STL +0 -0
- share/doc/dart/data/urdf/KR5/meshes/palm.STL +0 -0
- share/doc/dart/data/urdf/KR5/meshes/shoulder.STL +0 -0
- share/doc/dart/data/urdf/KR5/meshes/wrist.STL +0 -0
- share/doc/dart/data/urdf/drchubo/CMakeLists.txt +5 -0
- share/doc/dart/data/urdf/drchubo/drchubo.urdf +1508 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LAP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LAR_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LEP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LF1.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LF2.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LF3.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LHP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LHR_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LHY_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LKP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LSP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LSR_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LSY_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LWP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LWR_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_LWY_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_NK1_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_NK2.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_NKY_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RAP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RAR_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_REP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RF1.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RF2.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RF3.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RHP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RHR_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RHY_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RKP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RSP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RSR_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RSY_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RWP_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RWR_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_RWY_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_TSY_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/meshes/convhull_Torso_merged.stl +0 -0
- share/doc/dart/data/urdf/drchubo/package.xml +11 -0
- share/doc/dart/data/urdf/test/invalid.urdf +1 -0
- share/doc/dart/data/urdf/test/invalid_mesh.stl +1 -0
- share/doc/dart/data/urdf/test/invalid_mesh.urdf +10 -0
- share/doc/dart/data/urdf/test/issue838.urdf +86 -0
- share/doc/dart/data/urdf/test/joint_properties.urdf +60 -0
- share/doc/dart/data/urdf/test/missing_mesh.urdf +10 -0
- share/doc/dart/data/urdf/test/missing_package.urdf +10 -0
- share/doc/dart/data/urdf/test/primitive_geometry.urdf +12 -0
- share/doc/dart/data/urdf/test/testWorld.urdf +9 -0
- share/doc/dart/data/urdf/wam/meshes/images/base_gray_128x.jpg +0 -0
- share/doc/dart/data/urdf/wam/meshes/images/forearm_256x.jpg +0 -0
- share/doc/dart/data/urdf/wam/meshes/images/lpu_128x.jpg +0 -0
- share/doc/dart/data/urdf/wam/meshes/images/shoulder_256x.jpg +0 -0
- share/doc/dart/data/urdf/wam/meshes/images/upperarm_128x.jpg +0 -0
- share/doc/dart/data/urdf/wam/meshes/images/wrist_yaw_128x.jpg +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam1.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam1.dae +187 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam1_collision.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam2.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam2.dae +187 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam2_collision.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam3.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam3.dae +187 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam3_collision.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam4.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam4.dae +187 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam4_collision.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam5.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam5.dae +187 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam5_collision.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam6.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam6.dae +187 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam6_collision.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam7.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam7.dae +137 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam7_collision.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam_base.STL +0 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam_base.dae +103 -0
- share/doc/dart/data/urdf/wam/meshes/wam/wam_base_collision.STL +0 -0
- share/doc/dart/data/urdf/wam/wam.urdf +230 -0
- share/doc/dart/data/vsk/Nick01.vsk +398 -0
- share/doc/dart/data/vsk/SehoonVSK3.vsk +398 -0
- share/doc/dart/data/vsk/Yuting.vsk +398 -0
- share/doc/dart/data/vsk/test/empty.vsk +3 -0
- share/doc/dart/examples/CMakeLists.txt +44 -0
- share/doc/dart/examples/README.md +33 -0
- share/doc/dart/examples/add_delete_skels/CMakeLists.txt +19 -0
- share/doc/dart/examples/add_delete_skels/main.cpp +165 -0
- share/doc/dart/examples/atlas_puppet/CMakeLists.txt +19 -0
- share/doc/dart/examples/atlas_puppet/README.md +20 -0
- share/doc/dart/examples/atlas_puppet/main.cpp +930 -0
- share/doc/dart/examples/atlas_simbicon/AtlasSimbiconEventHandler.cpp +71 -0
- share/doc/dart/examples/atlas_simbicon/AtlasSimbiconEventHandler.hpp +56 -0
- share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWidget.cpp +187 -0
- share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWidget.hpp +85 -0
- share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWorldNode.cpp +134 -0
- share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWorldNode.hpp +75 -0
- share/doc/dart/examples/atlas_simbicon/CMakeLists.txt +19 -0
- share/doc/dart/examples/atlas_simbicon/Controller.cpp +996 -0
- share/doc/dart/examples/atlas_simbicon/Controller.hpp +203 -0
- share/doc/dart/examples/atlas_simbicon/README.md +20 -0
- share/doc/dart/examples/atlas_simbicon/State.cpp +674 -0
- share/doc/dart/examples/atlas_simbicon/State.hpp +336 -0
- share/doc/dart/examples/atlas_simbicon/StateMachine.cpp +222 -0
- share/doc/dart/examples/atlas_simbicon/StateMachine.hpp +134 -0
- share/doc/dart/examples/atlas_simbicon/TerminalCondition.cpp +111 -0
- share/doc/dart/examples/atlas_simbicon/TerminalCondition.hpp +102 -0
- share/doc/dart/examples/atlas_simbicon/main.cpp +102 -0
- share/doc/dart/examples/biped_stand/CMakeLists.txt +19 -0
- share/doc/dart/examples/biped_stand/README.md +20 -0
- share/doc/dart/examples/biped_stand/main.cpp +287 -0
- share/doc/dart/examples/box_stacking/CMakeLists.txt +19 -0
- share/doc/dart/examples/box_stacking/README.md +20 -0
- share/doc/dart/examples/box_stacking/main.cpp +417 -0
- share/doc/dart/examples/boxes/CMakeLists.txt +19 -0
- share/doc/dart/examples/boxes/README.md +20 -0
- share/doc/dart/examples/boxes/main.cpp +157 -0
- share/doc/dart/examples/drag_and_drop/CMakeLists.txt +19 -0
- share/doc/dart/examples/drag_and_drop/README.md +20 -0
- share/doc/dart/examples/drag_and_drop/main.cpp +101 -0
- share/doc/dart/examples/empty/CMakeLists.txt +19 -0
- share/doc/dart/examples/empty/README.md +20 -0
- share/doc/dart/examples/empty/main.cpp +164 -0
- share/doc/dart/examples/fetch/CMakeLists.txt +19 -0
- share/doc/dart/examples/fetch/README.md +20 -0
- share/doc/dart/examples/fetch/main.cpp +246 -0
- share/doc/dart/examples/hardcoded_design/CMakeLists.txt +19 -0
- share/doc/dart/examples/hardcoded_design/HardcodedEventHandler.cpp +71 -0
- share/doc/dart/examples/hardcoded_design/HardcodedEventHandler.hpp +56 -0
- share/doc/dart/examples/hardcoded_design/README.md +27 -0
- share/doc/dart/examples/hardcoded_design/main.cpp +186 -0
- share/doc/dart/examples/heightmap/CMakeLists.txt +19 -0
- share/doc/dart/examples/heightmap/README.md +20 -0
- share/doc/dart/examples/heightmap/main.cpp +460 -0
- share/doc/dart/examples/hello_world/CMakeLists.txt +19 -0
- share/doc/dart/examples/hello_world/README.md +20 -0
- share/doc/dart/examples/hello_world/main.cpp +114 -0
- share/doc/dart/examples/hubo_puppet/CMakeLists.txt +19 -0
- share/doc/dart/examples/hubo_puppet/README.md +20 -0
- share/doc/dart/examples/hubo_puppet/main.cpp +1464 -0
- share/doc/dart/examples/human_joint_limits/CMakeLists.txt +49 -0
- share/doc/dart/examples/human_joint_limits/HumanArmJointLimitConstraint.cpp +411 -0
- share/doc/dart/examples/human_joint_limits/HumanArmJointLimitConstraint.hpp +182 -0
- share/doc/dart/examples/human_joint_limits/HumanLegJointLimitConstraint.cpp +432 -0
- share/doc/dart/examples/human_joint_limits/HumanLegJointLimitConstraint.hpp +179 -0
- share/doc/dart/examples/human_joint_limits/main.cpp +157 -0
- share/doc/dart/examples/hybrid_dynamics/CMakeLists.txt +19 -0
- share/doc/dart/examples/hybrid_dynamics/README.md +17 -0
- share/doc/dart/examples/hybrid_dynamics/main.cpp +187 -0
- share/doc/dart/examples/imgui/CMakeLists.txt +19 -0
- share/doc/dart/examples/imgui/README.md +20 -0
- share/doc/dart/examples/imgui/main.cpp +289 -0
- share/doc/dart/examples/joint_constraints/CMakeLists.txt +19 -0
- share/doc/dart/examples/joint_constraints/Controller.cpp +110 -0
- share/doc/dart/examples/joint_constraints/Controller.hpp +105 -0
- share/doc/dart/examples/joint_constraints/README.md +22 -0
- share/doc/dart/examples/joint_constraints/main.cpp +242 -0
- share/doc/dart/examples/mixed_chain/CMakeLists.txt +19 -0
- share/doc/dart/examples/mixed_chain/README.md +35 -0
- share/doc/dart/examples/mixed_chain/main.cpp +188 -0
- share/doc/dart/examples/operational_space_control/CMakeLists.txt +19 -0
- share/doc/dart/examples/operational_space_control/README.md +20 -0
- share/doc/dart/examples/operational_space_control/main.cpp +338 -0
- share/doc/dart/examples/point_cloud/CMakeLists.txt +19 -0
- share/doc/dart/examples/point_cloud/README.md +20 -0
- share/doc/dart/examples/point_cloud/main.cpp +740 -0
- share/doc/dart/examples/rerun/CMakeLists.txt +19 -0
- share/doc/dart/examples/rigid_chain/CMakeLists.txt +19 -0
- share/doc/dart/examples/rigid_chain/README.md +19 -0
- share/doc/dart/examples/rigid_chain/main.cpp +110 -0
- share/doc/dart/examples/rigid_cubes/CMakeLists.txt +19 -0
- share/doc/dart/examples/rigid_cubes/README.md +91 -0
- share/doc/dart/examples/rigid_cubes/main.cpp +201 -0
- share/doc/dart/examples/rigid_loop/CMakeLists.txt +19 -0
- share/doc/dart/examples/rigid_loop/README.md +34 -0
- share/doc/dart/examples/rigid_loop/main.cpp +127 -0
- share/doc/dart/examples/rigid_shapes/CMakeLists.txt +19 -0
- share/doc/dart/examples/rigid_shapes/README.md +19 -0
- share/doc/dart/examples/rigid_shapes/main.cpp +250 -0
- share/doc/dart/examples/simple_frames/CMakeLists.txt +19 -0
- share/doc/dart/examples/simple_frames/README.md +27 -0
- share/doc/dart/examples/simple_frames/main.cpp +124 -0
- share/doc/dart/examples/simulation_event_handler/CMakeLists.txt +19 -0
- share/doc/dart/examples/simulation_event_handler/README.md +189 -0
- share/doc/dart/examples/simulation_event_handler/SimulationEventHandler.cpp +572 -0
- share/doc/dart/examples/simulation_event_handler/SimulationEventHandler.hpp +211 -0
- share/doc/dart/examples/simulation_event_handler/main.cpp +277 -0
- share/doc/dart/examples/soft_bodies/CMakeLists.txt +19 -0
- share/doc/dart/examples/soft_bodies/README.md +20 -0
- share/doc/dart/examples/soft_bodies/main.cpp +219 -0
- share/doc/dart/examples/speed_test/CMakeLists.txt +19 -0
- share/doc/dart/examples/speed_test/README.md +20 -0
- share/doc/dart/examples/speed_test/main.cpp +250 -0
- share/doc/dart/examples/tinkertoy/CMakeLists.txt +19 -0
- share/doc/dart/examples/tinkertoy/README.md +20 -0
- share/doc/dart/examples/tinkertoy/TinkertoyWidget.cpp +208 -0
- share/doc/dart/examples/tinkertoy/TinkertoyWidget.hpp +70 -0
- share/doc/dart/examples/tinkertoy/TinkertoyWorldNode.cpp +35 -0
- share/doc/dart/examples/tinkertoy/TinkertoyWorldNode.hpp +470 -0
- share/doc/dart/examples/tinkertoy/main.cpp +186 -0
- share/doc/dart/examples/vehicle/CMakeLists.txt +19 -0
- share/doc/dart/examples/vehicle/README.md +22 -0
- share/doc/dart/examples/vehicle/main.cpp +195 -0
- share/doc/dart/examples/wam_ikfast/CMakeLists.txt +22 -0
- share/doc/dart/examples/wam_ikfast/Helpers.cpp +148 -0
- share/doc/dart/examples/wam_ikfast/Helpers.hpp +46 -0
- share/doc/dart/examples/wam_ikfast/InputHandler.cpp +110 -0
- share/doc/dart/examples/wam_ikfast/InputHandler.hpp +73 -0
- share/doc/dart/examples/wam_ikfast/README.md +20 -0
- share/doc/dart/examples/wam_ikfast/WamWorld.cpp +46 -0
- share/doc/dart/examples/wam_ikfast/WamWorld.hpp +53 -0
- share/doc/dart/examples/wam_ikfast/ikfast/CMakeLists.txt +11 -0
- share/doc/dart/examples/wam_ikfast/ikfast/ikfast71.Transform6D.4_6_9_10_11_12_f8.cpp +14930 -0
- share/doc/dart/examples/wam_ikfast/osgWamIkFast.cpp +96 -0
- share/doc/dart/tutorials/CMakeLists.txt +12 -0
- share/doc/dart/tutorials/README.md +45 -0
- share/doc/dart/tutorials/tutorial_biped/CMakeLists.txt +19 -0
- share/doc/dart/tutorials/tutorial_biped/README +18 -0
- share/doc/dart/tutorials/tutorial_biped/main.cpp +374 -0
- share/doc/dart/tutorials/tutorial_biped_finished/CMakeLists.txt +19 -0
- share/doc/dart/tutorials/tutorial_biped_finished/README +18 -0
- share/doc/dart/tutorials/tutorial_biped_finished/main.cpp +532 -0
- share/doc/dart/tutorials/tutorial_collisions/CMakeLists.txt +19 -0
- share/doc/dart/tutorials/tutorial_collisions/README +18 -0
- share/doc/dart/tutorials/tutorial_collisions/main.cpp +506 -0
- share/doc/dart/tutorials/tutorial_collisions_finished/CMakeLists.txt +19 -0
- share/doc/dart/tutorials/tutorial_collisions_finished/README +18 -0
- share/doc/dart/tutorials/tutorial_collisions_finished/main.cpp +679 -0
- share/doc/dart/tutorials/tutorial_dominoes/CMakeLists.txt +19 -0
- share/doc/dart/tutorials/tutorial_dominoes/README +18 -0
- share/doc/dart/tutorials/tutorial_dominoes/main.cpp +394 -0
- share/doc/dart/tutorials/tutorial_dominoes_finished/CMakeLists.txt +19 -0
- share/doc/dart/tutorials/tutorial_dominoes_finished/README +18 -0
- share/doc/dart/tutorials/tutorial_dominoes_finished/main.cpp +559 -0
- share/doc/dart/tutorials/tutorial_multi_pendulum/CMakeLists.txt +19 -0
- share/doc/dart/tutorials/tutorial_multi_pendulum/README +18 -0
- share/doc/dart/tutorials/tutorial_multi_pendulum/main.cpp +443 -0
- share/doc/dart/tutorials/tutorial_multi_pendulum_finished/CMakeLists.txt +19 -0
- share/doc/dart/tutorials/tutorial_multi_pendulum_finished/README +18 -0
- share/doc/dart/tutorials/tutorial_multi_pendulum_finished/main.cpp +512 -0
|
@@ -0,0 +1,1128 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2011-2025, The DART development contributors
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* The list of contributors can be found at:
|
|
6
|
+
* https://github.com/dartsim/dart/blob/main/LICENSE
|
|
7
|
+
*
|
|
8
|
+
* This file is provided under the following "BSD-style" License:
|
|
9
|
+
* Redistribution and use in source and binary forms, with or
|
|
10
|
+
* without modification, are permitted provided that the following
|
|
11
|
+
* conditions are met:
|
|
12
|
+
* * Redistributions of source code must retain the above copyright
|
|
13
|
+
* notice, this list of conditions and the following disclaimer.
|
|
14
|
+
* * Redistributions in binary form must reproduce the above
|
|
15
|
+
* copyright notice, this list of conditions and the following
|
|
16
|
+
* disclaimer in the documentation and/or other materials provided
|
|
17
|
+
* with the distribution.
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
19
|
+
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
20
|
+
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
21
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
|
23
|
+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
24
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
25
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
|
26
|
+
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
27
|
+
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
28
|
+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
29
|
+
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
30
|
+
* POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
#ifndef DART_DYNAMICS_JOINT_HPP_
|
|
34
|
+
#define DART_DYNAMICS_JOINT_HPP_
|
|
35
|
+
|
|
36
|
+
#include <dart/dynamics/Frame.hpp>
|
|
37
|
+
#include <dart/dynamics/MimicDofProperties.hpp>
|
|
38
|
+
#include <dart/dynamics/SmartPointer.hpp>
|
|
39
|
+
#include <dart/dynamics/detail/JointAspect.hpp>
|
|
40
|
+
|
|
41
|
+
#include <dart/math/MathTypes.hpp>
|
|
42
|
+
|
|
43
|
+
#include <dart/common/Deprecated.hpp>
|
|
44
|
+
#include <dart/common/EmbeddedAspect.hpp>
|
|
45
|
+
#include <dart/common/Subject.hpp>
|
|
46
|
+
#include <dart/common/VersionCounter.hpp>
|
|
47
|
+
|
|
48
|
+
#include <memory>
|
|
49
|
+
#include <string>
|
|
50
|
+
#include <vector>
|
|
51
|
+
|
|
52
|
+
namespace dart {
|
|
53
|
+
namespace dynamics {
|
|
54
|
+
|
|
55
|
+
class Joint;
|
|
56
|
+
class BodyNode;
|
|
57
|
+
class Skeleton;
|
|
58
|
+
class DegreeOfFreedom;
|
|
59
|
+
|
|
60
|
+
/// class Joint
|
|
61
|
+
DART_DECLARE_CLASS_WITH_VIRTUAL_BASE_BEGIN
|
|
62
|
+
class Joint : public virtual common::Subject,
|
|
63
|
+
public virtual common::VersionCounter,
|
|
64
|
+
public common::EmbedProperties<Joint, detail::JointProperties>
|
|
65
|
+
{
|
|
66
|
+
public:
|
|
67
|
+
using CompositeProperties = common::Composite::Properties;
|
|
68
|
+
using Properties = detail::JointProperties;
|
|
69
|
+
|
|
70
|
+
typedef detail::ActuatorType ActuatorType;
|
|
71
|
+
static constexpr ActuatorType FORCE = detail::FORCE;
|
|
72
|
+
static constexpr ActuatorType PASSIVE = detail::PASSIVE;
|
|
73
|
+
static constexpr ActuatorType SERVO = detail::SERVO;
|
|
74
|
+
static constexpr ActuatorType MIMIC = detail::MIMIC;
|
|
75
|
+
static constexpr ActuatorType ACCELERATION = detail::ACCELERATION;
|
|
76
|
+
static constexpr ActuatorType VELOCITY = detail::VELOCITY;
|
|
77
|
+
static constexpr ActuatorType LOCKED = detail::LOCKED;
|
|
78
|
+
|
|
79
|
+
DART_BAKE_SPECIALIZED_ASPECT_IRREGULAR(Aspect, JointAspect)
|
|
80
|
+
|
|
81
|
+
struct ExtendedProperties : Properties
|
|
82
|
+
{
|
|
83
|
+
/// Composed constructor
|
|
84
|
+
ExtendedProperties(
|
|
85
|
+
const Properties& standardProperties = Properties(),
|
|
86
|
+
const CompositeProperties& aspectProperties = CompositeProperties());
|
|
87
|
+
|
|
88
|
+
/// Composed move constructor
|
|
89
|
+
ExtendedProperties(
|
|
90
|
+
Properties&& standardProperties,
|
|
91
|
+
CompositeProperties&& aspectProperties);
|
|
92
|
+
|
|
93
|
+
/// Properties of all the Aspects attached to this Joint
|
|
94
|
+
CompositeProperties mCompositeProperties;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/// Default actuator type
|
|
98
|
+
static const ActuatorType DefaultActuatorType;
|
|
99
|
+
|
|
100
|
+
Joint(const Joint&) = delete;
|
|
101
|
+
|
|
102
|
+
/// Destructor
|
|
103
|
+
virtual ~Joint();
|
|
104
|
+
|
|
105
|
+
/// Set the Properties of this Joint
|
|
106
|
+
void setProperties(const Properties& properties);
|
|
107
|
+
|
|
108
|
+
/// Set the AspectProperties of this Joint
|
|
109
|
+
void setAspectProperties(const AspectProperties& properties);
|
|
110
|
+
|
|
111
|
+
/// Get the Properties of this Joint
|
|
112
|
+
const Properties& getJointProperties() const;
|
|
113
|
+
|
|
114
|
+
/// Copy the properties of another Joint
|
|
115
|
+
void copy(const Joint& _otherJoint);
|
|
116
|
+
|
|
117
|
+
/// Copy the properties of another Joint
|
|
118
|
+
void copy(const Joint* _otherJoint);
|
|
119
|
+
|
|
120
|
+
/// Same as copy(const Joint&)
|
|
121
|
+
Joint& operator=(const Joint& _otherJoint);
|
|
122
|
+
|
|
123
|
+
/// \brief Set joint name and return the name.
|
|
124
|
+
/// \param[in] _name The specified joint name to be set.
|
|
125
|
+
/// \param[in] _renameDofs If true, the names of the joint's degrees of
|
|
126
|
+
/// freedom will be updated by calling updateDegreeOfFreedomNames().
|
|
127
|
+
///
|
|
128
|
+
/// If the name is already taken, this will return an altered version which
|
|
129
|
+
/// will be used by the Skeleton. Otherwise, return _name.
|
|
130
|
+
const std::string& setName(const std::string& _name, bool _renameDofs = true);
|
|
131
|
+
|
|
132
|
+
/// Get joint name
|
|
133
|
+
const std::string& getName() const;
|
|
134
|
+
|
|
135
|
+
/// Gets a string representing the joint type
|
|
136
|
+
virtual const std::string& getType() const = 0;
|
|
137
|
+
|
|
138
|
+
/// Set actuator type
|
|
139
|
+
void setActuatorType(ActuatorType _actuatorType);
|
|
140
|
+
|
|
141
|
+
/// Get actuator type
|
|
142
|
+
ActuatorType getActuatorType() const;
|
|
143
|
+
|
|
144
|
+
/// Set the mimic joint with a single reference joint and the same multiplier
|
|
145
|
+
/// and offset for all dependent joint's DoFs.
|
|
146
|
+
void setMimicJoint(
|
|
147
|
+
const Joint* referenceJoint,
|
|
148
|
+
double mimicMultiplier = 1.0,
|
|
149
|
+
double mimicOffset = 0.0);
|
|
150
|
+
|
|
151
|
+
/// Sets the mimic joint properties for a specific DoF of the dependent joint.
|
|
152
|
+
void setMimicJointDof(std::size_t index, const MimicDofProperties& mimicProp);
|
|
153
|
+
|
|
154
|
+
/// Sets the mimic joint properties for all DoFs of the dependent joint using
|
|
155
|
+
/// a vector of MimicDofProperties.
|
|
156
|
+
void setMimicJointDofs(const std::vector<MimicDofProperties>& mimicProps);
|
|
157
|
+
|
|
158
|
+
/// Sets the mimic joint properties for specific DoFs of the dependent joint
|
|
159
|
+
/// using a map of DoF index and MimicDofProperties.
|
|
160
|
+
void setMimicJointDofs(
|
|
161
|
+
const std::map<std::size_t, MimicDofProperties>& mimicPropMap);
|
|
162
|
+
|
|
163
|
+
/// Returns the reference joint for the specified DoF of the dependent joint.
|
|
164
|
+
const Joint* getMimicJoint(std::size_t index = 0) const;
|
|
165
|
+
|
|
166
|
+
/// Returns the mimic joint multiplier for the specified DoF of the dependent
|
|
167
|
+
/// joint.
|
|
168
|
+
double getMimicMultiplier(std::size_t index = 0) const;
|
|
169
|
+
|
|
170
|
+
/// Returns the mimic joint offset for the specified DoF of the dependent
|
|
171
|
+
/// joint.
|
|
172
|
+
double getMimicOffset(std::size_t index = 0) const;
|
|
173
|
+
|
|
174
|
+
/// Returns the vector of MimicDofProperties for all DoFs of the dependent
|
|
175
|
+
/// joint.
|
|
176
|
+
const std::vector<MimicDofProperties>& getMimicDofProperties() const;
|
|
177
|
+
|
|
178
|
+
/// Return true if this joint is kinematic joint.
|
|
179
|
+
///
|
|
180
|
+
/// Kinematic joint means the motion is prescribed by position or velocity or
|
|
181
|
+
/// acceleration, which is determined by the actuator type.
|
|
182
|
+
/// ACCELERATION/VELOCITY/LOCKED are kinematic joints while
|
|
183
|
+
/// FORCE/PASSIVE/SERVO are dynamic joints.
|
|
184
|
+
bool isKinematic() const;
|
|
185
|
+
|
|
186
|
+
/// Return true if this joint is dynamic joint.
|
|
187
|
+
bool isDynamic() const;
|
|
188
|
+
|
|
189
|
+
/// Get the child BodyNode of this Joint
|
|
190
|
+
BodyNode* getChildBodyNode();
|
|
191
|
+
|
|
192
|
+
/// Get the (const) child BodyNode of this Joint
|
|
193
|
+
const BodyNode* getChildBodyNode() const;
|
|
194
|
+
|
|
195
|
+
/// Get the parent BodyNode of this Joint
|
|
196
|
+
BodyNode* getParentBodyNode();
|
|
197
|
+
|
|
198
|
+
/// Get the (const) parent BodyNode of this Joint
|
|
199
|
+
const BodyNode* getParentBodyNode() const;
|
|
200
|
+
|
|
201
|
+
/// Get the Skeleton that this Joint belongs to
|
|
202
|
+
SkeletonPtr getSkeleton();
|
|
203
|
+
|
|
204
|
+
/// Get the (const) Skeleton that this Joint belongs to.
|
|
205
|
+
std::shared_ptr<const Skeleton> getSkeleton() const;
|
|
206
|
+
|
|
207
|
+
/// Set transformation from parent body node to this joint
|
|
208
|
+
virtual void setTransformFromParentBodyNode(const Eigen::Isometry3d& _T);
|
|
209
|
+
|
|
210
|
+
/// Set transformation from child body node to this joint
|
|
211
|
+
virtual void setTransformFromChildBodyNode(const Eigen::Isometry3d& _T);
|
|
212
|
+
|
|
213
|
+
/// Get transformation from parent body node to this joint
|
|
214
|
+
const Eigen::Isometry3d& getTransformFromParentBodyNode() const;
|
|
215
|
+
|
|
216
|
+
/// Get transformation from child body node to this joint
|
|
217
|
+
const Eigen::Isometry3d& getTransformFromChildBodyNode() const;
|
|
218
|
+
|
|
219
|
+
/// Sets whether enforcing joint position and velocity limits.
|
|
220
|
+
///
|
|
221
|
+
/// The joint position limit is valid when the actuator type is one of
|
|
222
|
+
/// PASSIVE/FORCE.
|
|
223
|
+
///
|
|
224
|
+
/// \sa ActuatorType
|
|
225
|
+
///
|
|
226
|
+
/// \deprecated Deprecated since DART 6.10. Please use
|
|
227
|
+
/// setLimitEnforcement() instead
|
|
228
|
+
DART_DEPRECATED(6.10)
|
|
229
|
+
void setPositionLimitEnforced(bool enforced);
|
|
230
|
+
|
|
231
|
+
/// Sets whether enforcing joint position and velocity limits.
|
|
232
|
+
///
|
|
233
|
+
/// This enforcement is only enabled when the actuator type is PASSIVE or
|
|
234
|
+
/// FORCE.
|
|
235
|
+
///
|
|
236
|
+
/// \sa ActuatorType
|
|
237
|
+
void setLimitEnforcement(bool enforced);
|
|
238
|
+
|
|
239
|
+
/// Returns whether enforcing joint position limit
|
|
240
|
+
///
|
|
241
|
+
/// This enforcement is only enabled when the actuator type is PASSIVE or
|
|
242
|
+
/// FORCE.
|
|
243
|
+
///
|
|
244
|
+
/// \sa ActuatorType
|
|
245
|
+
///
|
|
246
|
+
/// \deprecated Deprecated since DART 6.10. Please use
|
|
247
|
+
/// areLimitsEnforced() instead
|
|
248
|
+
DART_DEPRECATED(6.10)
|
|
249
|
+
bool isPositionLimitEnforced() const;
|
|
250
|
+
|
|
251
|
+
/// Returns whether enforcing joint position and velocity limits
|
|
252
|
+
///
|
|
253
|
+
/// This enforcement is only enabled when the actuator type is PASSIVE or
|
|
254
|
+
/// FORCE.
|
|
255
|
+
///
|
|
256
|
+
/// \sa ActuatorType
|
|
257
|
+
bool areLimitsEnforced() const;
|
|
258
|
+
|
|
259
|
+
/// Get a unique index in skeleton of a generalized coordinate in this Joint
|
|
260
|
+
virtual std::size_t getIndexInSkeleton(std::size_t _index) const = 0;
|
|
261
|
+
|
|
262
|
+
/// Get a unique index in the kinematic tree of a generalized coordinate in
|
|
263
|
+
/// this Joint
|
|
264
|
+
virtual std::size_t getIndexInTree(std::size_t _index) const = 0;
|
|
265
|
+
|
|
266
|
+
/// Get the index of this Joint within its Skeleton
|
|
267
|
+
std::size_t getJointIndexInSkeleton() const;
|
|
268
|
+
|
|
269
|
+
/// Get the index of this Joint within its tree
|
|
270
|
+
std::size_t getJointIndexInTree() const;
|
|
271
|
+
|
|
272
|
+
/// Get the index of the tree that this Joint belongs to
|
|
273
|
+
std::size_t getTreeIndex() const;
|
|
274
|
+
|
|
275
|
+
/// Get an object to access the _index-th degree of freedom (generalized
|
|
276
|
+
/// coordinate) of this Joint
|
|
277
|
+
virtual DegreeOfFreedom* getDof(std::size_t _index) = 0;
|
|
278
|
+
|
|
279
|
+
/// Get an object to access the _index-th degree of freedom (generalized
|
|
280
|
+
/// coordinate) of this Joint
|
|
281
|
+
virtual const DegreeOfFreedom* getDof(std::size_t _index) const = 0;
|
|
282
|
+
|
|
283
|
+
/// Alternative to DegreeOfFreedom::setName()
|
|
284
|
+
virtual const std::string& setDofName(
|
|
285
|
+
std::size_t _index, const std::string& _name, bool _preserveName = true)
|
|
286
|
+
= 0;
|
|
287
|
+
|
|
288
|
+
/// Alternative to DegreeOfFreedom::preserveName()
|
|
289
|
+
virtual void preserveDofName(std::size_t _index, bool _preserve) = 0;
|
|
290
|
+
|
|
291
|
+
/// Alternative to DegreeOfFreedom::isNamePreserved()
|
|
292
|
+
virtual bool isDofNamePreserved(std::size_t _index) const = 0;
|
|
293
|
+
|
|
294
|
+
/// Alternative to DegreeOfFreedom::getName()
|
|
295
|
+
virtual const std::string& getDofName(std::size_t _index) const = 0;
|
|
296
|
+
|
|
297
|
+
/// Get number of generalized coordinates
|
|
298
|
+
virtual std::size_t getNumDofs() const = 0;
|
|
299
|
+
|
|
300
|
+
//----------------------------------------------------------------------------
|
|
301
|
+
/// \{ \name Command
|
|
302
|
+
//----------------------------------------------------------------------------
|
|
303
|
+
|
|
304
|
+
/// Set a single command
|
|
305
|
+
virtual void setCommand(std::size_t _index, double _command) = 0;
|
|
306
|
+
|
|
307
|
+
/// Get a single command
|
|
308
|
+
virtual double getCommand(std::size_t _index) const = 0;
|
|
309
|
+
|
|
310
|
+
/// Set all commands for this Joint
|
|
311
|
+
virtual void setCommands(const Eigen::VectorXd& _commands) = 0;
|
|
312
|
+
|
|
313
|
+
/// Get all commands for this Joint
|
|
314
|
+
virtual Eigen::VectorXd getCommands() const = 0;
|
|
315
|
+
|
|
316
|
+
/// Set all the commands for this Joint to zero
|
|
317
|
+
virtual void resetCommands() = 0;
|
|
318
|
+
|
|
319
|
+
/// \}
|
|
320
|
+
|
|
321
|
+
//----------------------------------------------------------------------------
|
|
322
|
+
/// \{ \name Position
|
|
323
|
+
//----------------------------------------------------------------------------
|
|
324
|
+
|
|
325
|
+
/// Set the position of a single generalized coordinate
|
|
326
|
+
virtual void setPosition(std::size_t _index, double _position) = 0;
|
|
327
|
+
|
|
328
|
+
/// Get the position of a single generalized coordinate
|
|
329
|
+
virtual double getPosition(std::size_t _index) const = 0;
|
|
330
|
+
|
|
331
|
+
/// Set the positions of all generalized coordinates in this Joint
|
|
332
|
+
virtual void setPositions(const Eigen::VectorXd& _positions) = 0;
|
|
333
|
+
|
|
334
|
+
/// Get the positions of all generalized coordinates in this Joint
|
|
335
|
+
virtual Eigen::VectorXd getPositions() const = 0;
|
|
336
|
+
|
|
337
|
+
/// Set lower limit for position
|
|
338
|
+
virtual void setPositionLowerLimit(std::size_t _index, double _position) = 0;
|
|
339
|
+
|
|
340
|
+
/// Get lower limit for position
|
|
341
|
+
virtual double getPositionLowerLimit(std::size_t _index) const = 0;
|
|
342
|
+
|
|
343
|
+
/// Set the position lower limits of all the generalized coordinates.
|
|
344
|
+
virtual void setPositionLowerLimits(const Eigen::VectorXd& lowerLimits) = 0;
|
|
345
|
+
|
|
346
|
+
/// Get the position lower limits of all the generalized coordinates.
|
|
347
|
+
virtual Eigen::VectorXd getPositionLowerLimits() const = 0;
|
|
348
|
+
|
|
349
|
+
/// Set upper limit for position
|
|
350
|
+
virtual void setPositionUpperLimit(std::size_t _index, double _position) = 0;
|
|
351
|
+
|
|
352
|
+
/// Get upper limit for position
|
|
353
|
+
virtual double getPositionUpperLimit(std::size_t _index) const = 0;
|
|
354
|
+
|
|
355
|
+
/// Set the position upper limits of all the generalized coordinates.
|
|
356
|
+
virtual void setPositionUpperLimits(const Eigen::VectorXd& upperLimits) = 0;
|
|
357
|
+
|
|
358
|
+
/// Get the position upper limits of all the generalized coordinates.
|
|
359
|
+
virtual Eigen::VectorXd getPositionUpperLimits() const = 0;
|
|
360
|
+
|
|
361
|
+
/// Get whether a generalized coordinate is cyclic. Return true if and only
|
|
362
|
+
/// if this generalized coordinate has an infinite number of positions that
|
|
363
|
+
/// produce the same relative transform. Note that, for a multi-DOF joint,
|
|
364
|
+
/// producing a cycle may require altering the position of this Joint's other
|
|
365
|
+
/// generalized coordinates.
|
|
366
|
+
virtual bool isCyclic(std::size_t _index) const = 0;
|
|
367
|
+
|
|
368
|
+
/// Get whether the position of a generalized coordinate has limits.
|
|
369
|
+
virtual bool hasPositionLimit(std::size_t _index) const = 0;
|
|
370
|
+
|
|
371
|
+
/// Set the position of this generalized coordinate to its initial position
|
|
372
|
+
virtual void resetPosition(std::size_t _index) = 0;
|
|
373
|
+
|
|
374
|
+
/// Set the positions of all generalized coordinates in this Joint to their
|
|
375
|
+
/// initial positions
|
|
376
|
+
virtual void resetPositions() = 0;
|
|
377
|
+
|
|
378
|
+
/// Change the position that resetPositions() will give to this coordinate
|
|
379
|
+
virtual void setInitialPosition(std::size_t _index, double _initial) = 0;
|
|
380
|
+
|
|
381
|
+
/// Get the position that resetPosition() will give to this coordinate
|
|
382
|
+
virtual double getInitialPosition(std::size_t _index) const = 0;
|
|
383
|
+
|
|
384
|
+
/// Change the positions that resetPositions() will give to this Joint's
|
|
385
|
+
/// coordinates
|
|
386
|
+
virtual void setInitialPositions(const Eigen::VectorXd& _initial) = 0;
|
|
387
|
+
|
|
388
|
+
/// Get the positions that resetPositions() will give to this Joint's
|
|
389
|
+
/// coordinates
|
|
390
|
+
virtual Eigen::VectorXd getInitialPositions() const = 0;
|
|
391
|
+
|
|
392
|
+
/// \}
|
|
393
|
+
|
|
394
|
+
//----------------------------------------------------------------------------
|
|
395
|
+
/// \{ \name Velocity
|
|
396
|
+
//----------------------------------------------------------------------------
|
|
397
|
+
|
|
398
|
+
/// Set the velocity of a single generalized coordinate
|
|
399
|
+
virtual void setVelocity(std::size_t _index, double _velocity) = 0;
|
|
400
|
+
|
|
401
|
+
/// Get the velocity of a single generalized coordinate
|
|
402
|
+
virtual double getVelocity(std::size_t _index) const = 0;
|
|
403
|
+
|
|
404
|
+
/// Set the velocities of all generalized coordinates in this Joint
|
|
405
|
+
virtual void setVelocities(const Eigen::VectorXd& _velocities) = 0;
|
|
406
|
+
|
|
407
|
+
/// Get the velocities of all generalized coordinates in this Joint
|
|
408
|
+
virtual Eigen::VectorXd getVelocities() const = 0;
|
|
409
|
+
|
|
410
|
+
/// Set lower limit for velocity
|
|
411
|
+
virtual void setVelocityLowerLimit(std::size_t _index, double _velocity) = 0;
|
|
412
|
+
|
|
413
|
+
/// Get lower limit for velocity
|
|
414
|
+
virtual double getVelocityLowerLimit(std::size_t _index) const = 0;
|
|
415
|
+
|
|
416
|
+
/// Set the velocity lower limits of all the generalized coordinates.
|
|
417
|
+
virtual void setVelocityLowerLimits(const Eigen::VectorXd& lowerLimits) = 0;
|
|
418
|
+
|
|
419
|
+
/// Get the velocity lower limits of all the generalized coordinates.
|
|
420
|
+
virtual Eigen::VectorXd getVelocityLowerLimits() const = 0;
|
|
421
|
+
|
|
422
|
+
/// Set upper limit for velocity
|
|
423
|
+
virtual void setVelocityUpperLimit(std::size_t _index, double _velocity) = 0;
|
|
424
|
+
|
|
425
|
+
/// Get upper limit for velocity
|
|
426
|
+
virtual double getVelocityUpperLimit(std::size_t _index) const = 0;
|
|
427
|
+
|
|
428
|
+
/// Set the velocity upper limits of all the generalized coordinates.
|
|
429
|
+
virtual void setVelocityUpperLimits(const Eigen::VectorXd& upperLimits) = 0;
|
|
430
|
+
|
|
431
|
+
/// Get the velocity upper limits of all the generalized coordinates.
|
|
432
|
+
virtual Eigen::VectorXd getVelocityUpperLimits() const = 0;
|
|
433
|
+
|
|
434
|
+
/// Set the velocity of a generalized coordinate in this Joint to its initial
|
|
435
|
+
/// velocity
|
|
436
|
+
virtual void resetVelocity(std::size_t _index) = 0;
|
|
437
|
+
|
|
438
|
+
/// Set the velocities of all generalized coordinates in this Joint to their
|
|
439
|
+
/// initial velocities
|
|
440
|
+
virtual void resetVelocities() = 0;
|
|
441
|
+
|
|
442
|
+
/// Change the velocity that resetVelocity() will give to this coordinate
|
|
443
|
+
virtual void setInitialVelocity(std::size_t _index, double _initial) = 0;
|
|
444
|
+
|
|
445
|
+
/// Get the velocity that resetVelocity() will give to this coordinate
|
|
446
|
+
virtual double getInitialVelocity(std::size_t _index) const = 0;
|
|
447
|
+
|
|
448
|
+
/// Change the velocities that resetVelocities() will give to this Joint's
|
|
449
|
+
/// coordinates
|
|
450
|
+
virtual void setInitialVelocities(const Eigen::VectorXd& _initial) = 0;
|
|
451
|
+
|
|
452
|
+
/// Get the velocities that resetVelocities() will give to this Joint's
|
|
453
|
+
/// coordinates
|
|
454
|
+
virtual Eigen::VectorXd getInitialVelocities() const = 0;
|
|
455
|
+
|
|
456
|
+
/// \}
|
|
457
|
+
|
|
458
|
+
//----------------------------------------------------------------------------
|
|
459
|
+
/// \{ \name Acceleration
|
|
460
|
+
//----------------------------------------------------------------------------
|
|
461
|
+
|
|
462
|
+
/// Set the acceleration of a single generalized coordinate
|
|
463
|
+
virtual void setAcceleration(std::size_t _index, double _acceleration) = 0;
|
|
464
|
+
|
|
465
|
+
/// Get the acceleration of a single generalized coordinate
|
|
466
|
+
virtual double getAcceleration(std::size_t _index) const = 0;
|
|
467
|
+
|
|
468
|
+
/// Set the accelerations of all generalized coordinates in this Joint
|
|
469
|
+
virtual void setAccelerations(const Eigen::VectorXd& _accelerations) = 0;
|
|
470
|
+
|
|
471
|
+
/// Get the accelerations of all generalized coordinates in this Joint
|
|
472
|
+
virtual Eigen::VectorXd getAccelerations() const = 0;
|
|
473
|
+
|
|
474
|
+
/// Set the accelerations of all generalized coordinates in this Joint to zero
|
|
475
|
+
virtual void resetAccelerations() = 0;
|
|
476
|
+
|
|
477
|
+
/// Set lower limit for acceleration
|
|
478
|
+
virtual void setAccelerationLowerLimit(
|
|
479
|
+
std::size_t _index, double _acceleration)
|
|
480
|
+
= 0;
|
|
481
|
+
|
|
482
|
+
/// Get lower limit for acceleration
|
|
483
|
+
virtual double getAccelerationLowerLimit(std::size_t _index) const = 0;
|
|
484
|
+
|
|
485
|
+
/// Set the acceleration upper limits of all the generalized coordinates.
|
|
486
|
+
virtual void setAccelerationLowerLimits(const Eigen::VectorXd& lowerLimits)
|
|
487
|
+
= 0;
|
|
488
|
+
|
|
489
|
+
/// Get the acceleration upper limits of all the generalized coordinates.
|
|
490
|
+
virtual Eigen::VectorXd getAccelerationLowerLimits() const = 0;
|
|
491
|
+
|
|
492
|
+
/// Set upper limit for acceleration
|
|
493
|
+
virtual void setAccelerationUpperLimit(
|
|
494
|
+
std::size_t _index, double _acceleration)
|
|
495
|
+
= 0;
|
|
496
|
+
|
|
497
|
+
/// Get upper limit for acceleration
|
|
498
|
+
virtual double getAccelerationUpperLimit(std::size_t _index) const = 0;
|
|
499
|
+
|
|
500
|
+
/// Set the acceleration upper limits of all the generalized coordinates.
|
|
501
|
+
virtual void setAccelerationUpperLimits(const Eigen::VectorXd& upperLimits)
|
|
502
|
+
= 0;
|
|
503
|
+
|
|
504
|
+
/// Get the acceleration upper limits of all the generalized coordinates.
|
|
505
|
+
virtual Eigen::VectorXd getAccelerationUpperLimits() const = 0;
|
|
506
|
+
|
|
507
|
+
/// \}
|
|
508
|
+
|
|
509
|
+
//----------------------------------------------------------------------------
|
|
510
|
+
/// \{ \name Force
|
|
511
|
+
//----------------------------------------------------------------------------
|
|
512
|
+
|
|
513
|
+
/// Set the force of a single generalized coordinate
|
|
514
|
+
virtual void setForce(std::size_t _index, double _force) = 0;
|
|
515
|
+
|
|
516
|
+
/// Get the force of a single generalized coordinate
|
|
517
|
+
virtual double getForce(std::size_t _index) const = 0;
|
|
518
|
+
|
|
519
|
+
/// Set the forces of all generalized coordinates in this Joint
|
|
520
|
+
virtual void setForces(const Eigen::VectorXd& _forces) = 0;
|
|
521
|
+
|
|
522
|
+
/// Get the forces of all generalized coordinates in this Joint
|
|
523
|
+
virtual Eigen::VectorXd getForces() const = 0;
|
|
524
|
+
|
|
525
|
+
/// Set the forces of all generalized coordinates in this Joint to zero
|
|
526
|
+
virtual void resetForces() = 0;
|
|
527
|
+
|
|
528
|
+
/// Set lower limit for force
|
|
529
|
+
virtual void setForceLowerLimit(std::size_t _index, double _force) = 0;
|
|
530
|
+
|
|
531
|
+
/// Get lower limit for force
|
|
532
|
+
virtual double getForceLowerLimit(std::size_t _index) const = 0;
|
|
533
|
+
|
|
534
|
+
/// Set the force upper limits of all the generalized coordinates.
|
|
535
|
+
virtual void setForceLowerLimits(const Eigen::VectorXd& lowerLimits) = 0;
|
|
536
|
+
|
|
537
|
+
/// Get the force upper limits of all the generalized coordinates.
|
|
538
|
+
virtual Eigen::VectorXd getForceLowerLimits() const = 0;
|
|
539
|
+
|
|
540
|
+
/// Set upper limit for force
|
|
541
|
+
virtual void setForceUpperLimit(std::size_t _index, double _force) = 0;
|
|
542
|
+
|
|
543
|
+
/// Get upper limit for force
|
|
544
|
+
virtual double getForceUpperLimit(std::size_t _index) const = 0;
|
|
545
|
+
|
|
546
|
+
/// Set the force upper limits of all the generalized coordinates.
|
|
547
|
+
virtual void setForceUpperLimits(const Eigen::VectorXd& upperLimits) = 0;
|
|
548
|
+
|
|
549
|
+
/// Get the force upper limits of all the generalized coordinates.
|
|
550
|
+
virtual Eigen::VectorXd getForceUpperLimits() const = 0;
|
|
551
|
+
|
|
552
|
+
/// \}
|
|
553
|
+
|
|
554
|
+
//----------------------------------------------------------------------------
|
|
555
|
+
/// \{ \name Sanity Check
|
|
556
|
+
//----------------------------------------------------------------------------
|
|
557
|
+
|
|
558
|
+
/// Returns false if the initial position or initial velocity are outside of
|
|
559
|
+
/// limits
|
|
560
|
+
// TODO: Consider extending this to a more comprehensive sanity check
|
|
561
|
+
bool checkSanity(bool _printWarnings = true) const;
|
|
562
|
+
|
|
563
|
+
//----------------------------------------------------------------------------
|
|
564
|
+
/// \{ \name Velocity change
|
|
565
|
+
//----------------------------------------------------------------------------
|
|
566
|
+
|
|
567
|
+
/// Set a single velocity change
|
|
568
|
+
virtual void setVelocityChange(std::size_t _index, double _velocityChange)
|
|
569
|
+
= 0;
|
|
570
|
+
|
|
571
|
+
/// Get a single velocity change
|
|
572
|
+
virtual double getVelocityChange(std::size_t _index) const = 0;
|
|
573
|
+
|
|
574
|
+
/// Set zero all the velocity change
|
|
575
|
+
virtual void resetVelocityChanges() = 0;
|
|
576
|
+
|
|
577
|
+
/// \}
|
|
578
|
+
|
|
579
|
+
//----------------------------------------------------------------------------
|
|
580
|
+
/// \{ \name Constraint impulse
|
|
581
|
+
//----------------------------------------------------------------------------
|
|
582
|
+
|
|
583
|
+
/// Set a single constraint impulse
|
|
584
|
+
virtual void setConstraintImpulse(std::size_t _index, double _impulse) = 0;
|
|
585
|
+
|
|
586
|
+
/// Get a single constraint impulse
|
|
587
|
+
virtual double getConstraintImpulse(std::size_t _index) const = 0;
|
|
588
|
+
|
|
589
|
+
/// Set zero all the constraint impulses
|
|
590
|
+
virtual void resetConstraintImpulses() = 0;
|
|
591
|
+
|
|
592
|
+
/// \}
|
|
593
|
+
|
|
594
|
+
//----------------------------------------------------------------------------
|
|
595
|
+
/// \{ \name Integration and finite difference
|
|
596
|
+
//----------------------------------------------------------------------------
|
|
597
|
+
|
|
598
|
+
/// Integrate positions using Euler method
|
|
599
|
+
virtual void integratePositions(double _dt) = 0;
|
|
600
|
+
|
|
601
|
+
/// Integrate velocities using Euler method
|
|
602
|
+
virtual void integrateVelocities(double _dt) = 0;
|
|
603
|
+
|
|
604
|
+
/// Return the difference of two generalized coordinates which are measured in
|
|
605
|
+
/// the configuration space of this Skeleton.
|
|
606
|
+
virtual Eigen::VectorXd getPositionDifferences(
|
|
607
|
+
const Eigen::VectorXd& _q2, const Eigen::VectorXd& _q1) const = 0;
|
|
608
|
+
|
|
609
|
+
/// \}
|
|
610
|
+
|
|
611
|
+
//----------------------------------------------------------------------------
|
|
612
|
+
/// \{ \name Passive forces - spring, viscous friction, Coulomb friction
|
|
613
|
+
//----------------------------------------------------------------------------
|
|
614
|
+
|
|
615
|
+
/// Set stiffness of joint spring force.
|
|
616
|
+
/// \param[in] _index Index of joint axis.
|
|
617
|
+
/// \param[in] _k Spring stiffness.
|
|
618
|
+
virtual void setSpringStiffness(std::size_t _index, double _k) = 0;
|
|
619
|
+
|
|
620
|
+
/// Get stiffness of joint spring force.
|
|
621
|
+
/// \param[in] _index Index of joint axis.
|
|
622
|
+
virtual double getSpringStiffness(std::size_t _index) const = 0;
|
|
623
|
+
|
|
624
|
+
/// Set rest position of spring force.
|
|
625
|
+
/// \param[in] _index Index of joint axis.
|
|
626
|
+
/// \param[in] _q0 Rest position.
|
|
627
|
+
virtual void setRestPosition(std::size_t _index, double _q0) = 0;
|
|
628
|
+
|
|
629
|
+
/// Get rest position of spring force.
|
|
630
|
+
/// \param[in] _index Index of joint axis.
|
|
631
|
+
/// \return Rest position.
|
|
632
|
+
virtual double getRestPosition(std::size_t _index) const = 0;
|
|
633
|
+
|
|
634
|
+
/// Set coefficient of joint damping (viscous friction) force.
|
|
635
|
+
/// \param[in] _index Index of joint axis.
|
|
636
|
+
/// \param[in] _coeff Damping coefficient.
|
|
637
|
+
virtual void setDampingCoefficient(std::size_t _index, double _coeff) = 0;
|
|
638
|
+
|
|
639
|
+
/// Get coefficient of joint damping (viscous friction) force.
|
|
640
|
+
/// \param[in] _index Index of joint axis.
|
|
641
|
+
virtual double getDampingCoefficient(std::size_t _index) const = 0;
|
|
642
|
+
|
|
643
|
+
/// Set joint Coulomb friction froce.
|
|
644
|
+
/// \param[in] _index Index of joint axis.
|
|
645
|
+
/// \param[in] _friction Joint Coulomb friction froce given index.
|
|
646
|
+
virtual void setCoulombFriction(std::size_t _index, double _friction) = 0;
|
|
647
|
+
|
|
648
|
+
/// Get joint Coulomb friction froce.
|
|
649
|
+
/// \param[in] _index Index of joint axis.
|
|
650
|
+
virtual double getCoulombFriction(std::size_t _index) const = 0;
|
|
651
|
+
|
|
652
|
+
/// \}
|
|
653
|
+
|
|
654
|
+
//----------------------------------------------------------------------------
|
|
655
|
+
|
|
656
|
+
/// Get potential energy
|
|
657
|
+
DART_DEPRECATED(6.1)
|
|
658
|
+
double getPotentialEnergy() const;
|
|
659
|
+
|
|
660
|
+
/// Compute and return the potential energy
|
|
661
|
+
virtual double computePotentialEnergy() const = 0;
|
|
662
|
+
|
|
663
|
+
//----------------------------------------------------------------------------
|
|
664
|
+
|
|
665
|
+
/// Deprecated. Use getRelativeTransform() instead.
|
|
666
|
+
DART_DEPRECATED(6.0)
|
|
667
|
+
const Eigen::Isometry3d& getLocalTransform() const;
|
|
668
|
+
|
|
669
|
+
/// Deprecated. Use getLocalSpatialVelocity() instead.
|
|
670
|
+
DART_DEPRECATED(6.0)
|
|
671
|
+
const Eigen::Vector6d& getLocalSpatialVelocity() const;
|
|
672
|
+
|
|
673
|
+
/// Deprecated. Use getLocalSpatialAcceleration() instead.
|
|
674
|
+
DART_DEPRECATED(6.0)
|
|
675
|
+
const Eigen::Vector6d& getLocalSpatialAcceleration() const;
|
|
676
|
+
|
|
677
|
+
/// Deprecated. Use getLocalPrimaryAcceleration() instead.
|
|
678
|
+
DART_DEPRECATED(6.0)
|
|
679
|
+
const Eigen::Vector6d& getLocalPrimaryAcceleration() const;
|
|
680
|
+
|
|
681
|
+
/// Deprecated. Use getRelativeJacobian() instead.
|
|
682
|
+
DART_DEPRECATED(6.0)
|
|
683
|
+
const math::Jacobian getLocalJacobian() const;
|
|
684
|
+
|
|
685
|
+
/// Deprecated. Use getRelativeJacobian() instead.
|
|
686
|
+
DART_DEPRECATED(6.0)
|
|
687
|
+
math::Jacobian getLocalJacobian(const Eigen::VectorXd& positions) const;
|
|
688
|
+
|
|
689
|
+
/// Deprecated. Use getRelativeJacobianTimeDeriv() instead.
|
|
690
|
+
DART_DEPRECATED(6.0)
|
|
691
|
+
const math::Jacobian getLocalJacobianTimeDeriv() const;
|
|
692
|
+
|
|
693
|
+
/// Get transform of the child BodyNode relative to the parent BodyNode
|
|
694
|
+
/// expressed in the child BodyNode frame
|
|
695
|
+
const Eigen::Isometry3d& getRelativeTransform() const;
|
|
696
|
+
|
|
697
|
+
/// Get spatial velocity of the child BodyNode relative to the parent BodyNode
|
|
698
|
+
/// expressed in the child BodyNode frame
|
|
699
|
+
const Eigen::Vector6d& getRelativeSpatialVelocity() const;
|
|
700
|
+
|
|
701
|
+
/// Get spatial acceleration of the child BodyNode relative to the parent
|
|
702
|
+
/// BodyNode expressed in the child BodyNode frame
|
|
703
|
+
const Eigen::Vector6d& getRelativeSpatialAcceleration() const;
|
|
704
|
+
|
|
705
|
+
/// Get J * \f$ \ddot{q} \f$ of this joint
|
|
706
|
+
const Eigen::Vector6d& getRelativePrimaryAcceleration() const;
|
|
707
|
+
|
|
708
|
+
/// Get spatial Jacobian of the child BodyNode relative to the parent BodyNode
|
|
709
|
+
/// expressed in the child BodyNode frame
|
|
710
|
+
virtual const math::Jacobian getRelativeJacobian() const = 0;
|
|
711
|
+
|
|
712
|
+
/// Get spatial Jacobian of the child BodyNode relative to the parent BodyNode
|
|
713
|
+
/// expressed in the child BodyNode frame
|
|
714
|
+
virtual math::Jacobian getRelativeJacobian(
|
|
715
|
+
const Eigen::VectorXd& positions) const = 0;
|
|
716
|
+
|
|
717
|
+
/// Get time derivative of spatial Jacobian of the child BodyNode relative to
|
|
718
|
+
/// the parent BodyNode expressed in the child BodyNode frame
|
|
719
|
+
virtual const math::Jacobian getRelativeJacobianTimeDeriv() const = 0;
|
|
720
|
+
|
|
721
|
+
/// Get constraint wrench expressed in body node frame
|
|
722
|
+
virtual Eigen::Vector6d getBodyConstraintWrench() const = 0;
|
|
723
|
+
// TODO: Need more informative name.
|
|
724
|
+
|
|
725
|
+
/// Get spring force
|
|
726
|
+
///
|
|
727
|
+
/// We apply spring force in implicit manner. The spring force is
|
|
728
|
+
/// F = -(springStiffness * q(k+1)), where q(k+1) is approximated as
|
|
729
|
+
/// q(k) + h * dq(k) * h^2 * ddq(k). Since, in the recursive forward dynamics
|
|
730
|
+
/// algorithm, ddq(k) is unknown variable that we want to obtain as the
|
|
731
|
+
/// result, the spring force here is just
|
|
732
|
+
/// F = -springStiffness * (q(k) + h * dq(k)) and
|
|
733
|
+
/// -springStiffness * h^2 * ddq(k) term is rearranged at the recursive
|
|
734
|
+
/// forward dynamics algorithm, and it affects on the articulated inertia.
|
|
735
|
+
/// \sa BodyNode::updateArticulatedInertia(double).
|
|
736
|
+
///
|
|
737
|
+
/// \param[in] _timeStep Time step used for approximating q(k+1).
|
|
738
|
+
// Eigen::VectorXd getSpringForces(double _timeStep) const;
|
|
739
|
+
|
|
740
|
+
/// Get damping force
|
|
741
|
+
///
|
|
742
|
+
/// We apply the damping force in implicit manner. The damping force is
|
|
743
|
+
/// F = -(dampingCoefficient * dq(k+1)), where dq(k+1) is approximated as
|
|
744
|
+
/// dq(k) + h * ddq(k). Since, in the recursive forward dynamics algorithm,
|
|
745
|
+
/// ddq(k) is unknown variable that we want to obtain as the result, the
|
|
746
|
+
/// damping force here is just F = -(dampingCoefficient * dq(k)) and
|
|
747
|
+
/// -dampingCoefficient * h * ddq(k) term is rearranged at the recursive
|
|
748
|
+
/// forward dynamics algorithm, and it affects on the articulated inertia.
|
|
749
|
+
/// \sa BodyNode::updateArticulatedInertia(double).
|
|
750
|
+
// Eigen::VectorXd getDampingForces() const;
|
|
751
|
+
|
|
752
|
+
/// Returns wrench exerted to the child body node to satisfy the joint
|
|
753
|
+
/// constraint.
|
|
754
|
+
///
|
|
755
|
+
/// \param[in] withRespectTo: The reference frame where the wrench is
|
|
756
|
+
/// measured. The default (i.e., nullptr) is to get the wrench measured in the
|
|
757
|
+
/// joint frame.
|
|
758
|
+
/// \return Wrench where the first three elements represent torque and the
|
|
759
|
+
/// last three elements represent force. Zero vector if this joint has no
|
|
760
|
+
/// child body node defined.
|
|
761
|
+
Eigen::Vector6d getWrenchToChildBodyNode(
|
|
762
|
+
const Frame* withRespectTo = nullptr) const;
|
|
763
|
+
|
|
764
|
+
/// Returns wrench exerted to the parent body node to satisfy the joint
|
|
765
|
+
/// constraint.
|
|
766
|
+
///
|
|
767
|
+
/// \param[in] withRespectTo: The reference frame where the wrench is
|
|
768
|
+
/// measured. The default (i.e., nullptr) is to get the wrench measured in the
|
|
769
|
+
/// joint frame.
|
|
770
|
+
/// \return Wrench where the first three elements represent torque and the
|
|
771
|
+
/// last three elements represent force. Zero vector if this joint has no
|
|
772
|
+
/// child body node defined.
|
|
773
|
+
Eigen::Vector6d getWrenchToParentBodyNode(
|
|
774
|
+
const Frame* withRespectTo = nullptr) const;
|
|
775
|
+
|
|
776
|
+
//----------------------------------------------------------------------------
|
|
777
|
+
/// \{ \name Update Notifiers
|
|
778
|
+
//----------------------------------------------------------------------------
|
|
779
|
+
|
|
780
|
+
/// Notify that a position has updated
|
|
781
|
+
DART_DEPRECATED(6.2)
|
|
782
|
+
void notifyPositionUpdate();
|
|
783
|
+
|
|
784
|
+
/// Notify that a position has updated
|
|
785
|
+
void notifyPositionUpdated();
|
|
786
|
+
|
|
787
|
+
/// Notify that a velocity has updated
|
|
788
|
+
DART_DEPRECATED(6.2)
|
|
789
|
+
void notifyVelocityUpdate();
|
|
790
|
+
|
|
791
|
+
/// Notify that a velocity has updated
|
|
792
|
+
void notifyVelocityUpdated();
|
|
793
|
+
|
|
794
|
+
/// Notify that an acceleration has updated
|
|
795
|
+
DART_DEPRECATED(6.2)
|
|
796
|
+
void notifyAccelerationUpdate();
|
|
797
|
+
|
|
798
|
+
/// Notify that an acceleration has updated
|
|
799
|
+
void notifyAccelerationUpdated();
|
|
800
|
+
|
|
801
|
+
/// \}
|
|
802
|
+
|
|
803
|
+
//----------------------------------------------------------------------------
|
|
804
|
+
// Friendship
|
|
805
|
+
//----------------------------------------------------------------------------
|
|
806
|
+
|
|
807
|
+
friend class BodyNode;
|
|
808
|
+
friend class SoftBodyNode;
|
|
809
|
+
friend class Skeleton;
|
|
810
|
+
|
|
811
|
+
protected:
|
|
812
|
+
/// Constructor called by inheriting class
|
|
813
|
+
Joint();
|
|
814
|
+
|
|
815
|
+
/// Create a clone of this Joint. This may only be called by the Skeleton
|
|
816
|
+
/// class.
|
|
817
|
+
virtual Joint* clone() const = 0;
|
|
818
|
+
|
|
819
|
+
/// Called by the Skeleton class
|
|
820
|
+
virtual void registerDofs() = 0;
|
|
821
|
+
|
|
822
|
+
/// \brief Create a DegreeOfFreedom pointer.
|
|
823
|
+
/// \param[in] _indexInJoint DegreeOfFreedom's index within the joint. Note
|
|
824
|
+
/// that the index should be unique within the joint.
|
|
825
|
+
///
|
|
826
|
+
/// DegreeOfFreedom should be created by the Joint because the DegreeOfFreedom
|
|
827
|
+
/// class has a protected constructor, and the Joint is responsible for memory
|
|
828
|
+
/// management of the pointer which is returned.
|
|
829
|
+
DegreeOfFreedom* createDofPointer(std::size_t _indexInJoint);
|
|
830
|
+
|
|
831
|
+
/// Update the names of the joint's degrees of freedom. Used when setName() is
|
|
832
|
+
/// called with _renameDofs set to true.
|
|
833
|
+
virtual void updateDegreeOfFreedomNames() = 0;
|
|
834
|
+
|
|
835
|
+
//----------------------------------------------------------------------------
|
|
836
|
+
/// \{ \name Recursive dynamics routines
|
|
837
|
+
//----------------------------------------------------------------------------
|
|
838
|
+
|
|
839
|
+
/// Deprecated. Use updateRelativeTransform() instead.
|
|
840
|
+
DART_DEPRECATED(6.0)
|
|
841
|
+
void updateLocalTransform() const;
|
|
842
|
+
|
|
843
|
+
/// Deprecated. Use updateRelativeSpatialVelocity() instead.
|
|
844
|
+
DART_DEPRECATED(6.0)
|
|
845
|
+
void updateLocalSpatialVelocity() const;
|
|
846
|
+
|
|
847
|
+
/// Deprecated. Use updateRelativeSpatialAcceleration() instead.
|
|
848
|
+
DART_DEPRECATED(6.0)
|
|
849
|
+
void updateLocalSpatialAcceleration() const;
|
|
850
|
+
|
|
851
|
+
/// Deprecated. Use updateRelativePrimaryAcceleration() instead.
|
|
852
|
+
DART_DEPRECATED(6.0)
|
|
853
|
+
void updateLocalPrimaryAcceleration() const;
|
|
854
|
+
|
|
855
|
+
/// Deprecated. Use updateRelativeJacobian() instead.
|
|
856
|
+
DART_DEPRECATED(6.0)
|
|
857
|
+
void updateLocalJacobian(bool mandatory = true) const;
|
|
858
|
+
|
|
859
|
+
/// Deprecated. Use updateRelativeJacobianTimeDeriv() instead.
|
|
860
|
+
DART_DEPRECATED(6.0)
|
|
861
|
+
void updateLocalJacobianTimeDeriv() const;
|
|
862
|
+
|
|
863
|
+
/// Update transform of the child BodyNode relative to the parent BodyNode
|
|
864
|
+
/// expressed in the child BodyNode frame
|
|
865
|
+
virtual void updateRelativeTransform() const = 0;
|
|
866
|
+
|
|
867
|
+
/// Update spatial velocity of the child BodyNode relative to the parent
|
|
868
|
+
/// BodyNode expressed in the child BodyNode frame
|
|
869
|
+
virtual void updateRelativeSpatialVelocity() const = 0;
|
|
870
|
+
|
|
871
|
+
/// Update spatial acceleration of the child BodyNode relative to the parent
|
|
872
|
+
/// BodyNode expressed in the child BodyNode frame
|
|
873
|
+
virtual void updateRelativeSpatialAcceleration() const = 0;
|
|
874
|
+
|
|
875
|
+
/// Update J * \f$ \ddot{q} \f$ of this joint
|
|
876
|
+
virtual void updateRelativePrimaryAcceleration() const = 0;
|
|
877
|
+
|
|
878
|
+
/// Update spatial Jacobian of the child BodyNode relative to the parent
|
|
879
|
+
/// BodyNode expressed in the child BodyNode frame
|
|
880
|
+
///
|
|
881
|
+
/// \param[in] mandatory This argument can be set to false if the Jacobian
|
|
882
|
+
/// update request is due to a change in Joint positions, because not all
|
|
883
|
+
/// Joint types have a relative Jacobian that depends on their Joint
|
|
884
|
+
/// positions, so a relative Jacobian update would not actually be required.
|
|
885
|
+
virtual void updateRelativeJacobian(bool mandatory = true) const = 0;
|
|
886
|
+
|
|
887
|
+
/// Update time derivative of spatial Jacobian of the child BodyNode relative
|
|
888
|
+
/// to the parent BodyNode expressed in the child BodyNode frame
|
|
889
|
+
///
|
|
890
|
+
/// If the relative Jacobian time derivative of this Joint is zero, then this
|
|
891
|
+
/// function will be a no op.
|
|
892
|
+
virtual void updateRelativeJacobianTimeDeriv() const = 0;
|
|
893
|
+
|
|
894
|
+
/// Tells the Skeleton to update the articulated inertia if it needs updating
|
|
895
|
+
void updateArticulatedInertia() const;
|
|
896
|
+
|
|
897
|
+
/// Add joint velocity to _vel
|
|
898
|
+
virtual void addVelocityTo(Eigen::Vector6d& _vel) = 0;
|
|
899
|
+
|
|
900
|
+
/// Set joint partial acceleration to _partialAcceleration
|
|
901
|
+
virtual void setPartialAccelerationTo(
|
|
902
|
+
Eigen::Vector6d& _partialAcceleration,
|
|
903
|
+
const Eigen::Vector6d& _childVelocity)
|
|
904
|
+
= 0;
|
|
905
|
+
// TODO(JS): Rename with more informative name
|
|
906
|
+
|
|
907
|
+
/// Add joint acceleration to _acc
|
|
908
|
+
virtual void addAccelerationTo(Eigen::Vector6d& _acc) = 0;
|
|
909
|
+
|
|
910
|
+
/// Add joint velocity change to _velocityChange
|
|
911
|
+
virtual void addVelocityChangeTo(Eigen::Vector6d& _velocityChange) = 0;
|
|
912
|
+
|
|
913
|
+
/// Add child's articulated inertia to parent's one
|
|
914
|
+
virtual void addChildArtInertiaTo(
|
|
915
|
+
Eigen::Matrix6d& _parentArtInertia,
|
|
916
|
+
const Eigen::Matrix6d& _childArtInertia)
|
|
917
|
+
= 0;
|
|
918
|
+
|
|
919
|
+
/// Add child's articulated inertia to parent's one. Forward dynamics routine.
|
|
920
|
+
virtual void addChildArtInertiaImplicitTo(
|
|
921
|
+
Eigen::Matrix6d& _parentArtInertiaImplicit,
|
|
922
|
+
const Eigen::Matrix6d& _childArtInertiaImplicit)
|
|
923
|
+
= 0;
|
|
924
|
+
// TODO(JS): rename to updateAInertiaChildAInertia()
|
|
925
|
+
|
|
926
|
+
/// Update inverse of projected articulated body inertia
|
|
927
|
+
virtual void updateInvProjArtInertia(const Eigen::Matrix6d& _artInertia) = 0;
|
|
928
|
+
|
|
929
|
+
/// Forward dynamics routine.
|
|
930
|
+
virtual void updateInvProjArtInertiaImplicit(
|
|
931
|
+
const Eigen::Matrix6d& _artInertia, double _timeStep)
|
|
932
|
+
= 0;
|
|
933
|
+
// TODO(JS): rename to updateAInertiaPsi()
|
|
934
|
+
|
|
935
|
+
/// Add child's bias force to parent's one
|
|
936
|
+
virtual void addChildBiasForceTo(
|
|
937
|
+
Eigen::Vector6d& _parentBiasForce,
|
|
938
|
+
const Eigen::Matrix6d& _childArtInertia,
|
|
939
|
+
const Eigen::Vector6d& _childBiasForce,
|
|
940
|
+
const Eigen::Vector6d& _childPartialAcc)
|
|
941
|
+
= 0;
|
|
942
|
+
|
|
943
|
+
/// Add child's bias impulse to parent's one
|
|
944
|
+
virtual void addChildBiasImpulseTo(
|
|
945
|
+
Eigen::Vector6d& _parentBiasImpulse,
|
|
946
|
+
const Eigen::Matrix6d& _childArtInertia,
|
|
947
|
+
const Eigen::Vector6d& _childBiasImpulse)
|
|
948
|
+
= 0;
|
|
949
|
+
|
|
950
|
+
/// Update joint total force
|
|
951
|
+
virtual void updateTotalForce(
|
|
952
|
+
const Eigen::Vector6d& _bodyForce, double _timeStep)
|
|
953
|
+
= 0;
|
|
954
|
+
// TODO: rename
|
|
955
|
+
|
|
956
|
+
/// Update joint total impulse
|
|
957
|
+
virtual void updateTotalImpulse(const Eigen::Vector6d& _bodyImpulse) = 0;
|
|
958
|
+
// TODO: rename
|
|
959
|
+
|
|
960
|
+
/// Set total impulses to zero
|
|
961
|
+
virtual void resetTotalImpulses() = 0;
|
|
962
|
+
|
|
963
|
+
/// Update joint acceleration
|
|
964
|
+
virtual void updateAcceleration(
|
|
965
|
+
const Eigen::Matrix6d& _artInertia, const Eigen::Vector6d& _spatialAcc)
|
|
966
|
+
= 0;
|
|
967
|
+
|
|
968
|
+
/// Update joint velocity change
|
|
969
|
+
/// \param _artInertia
|
|
970
|
+
/// \param _velocityChange
|
|
971
|
+
virtual void updateVelocityChange(
|
|
972
|
+
const Eigen::Matrix6d& _artInertia,
|
|
973
|
+
const Eigen::Vector6d& _velocityChange)
|
|
974
|
+
= 0;
|
|
975
|
+
|
|
976
|
+
/// Update joint force for inverse dynamics.
|
|
977
|
+
/// \param[in] _bodyForce Transmitting spatial body force from the parent
|
|
978
|
+
/// BodyNode to the child BodyNode. The spatial force is expressed in the
|
|
979
|
+
/// child BodyNode's frame.
|
|
980
|
+
/// \param[in] _timeStep
|
|
981
|
+
/// \param[in] _withDampingForces
|
|
982
|
+
/// \param[in] _withSpringForces
|
|
983
|
+
virtual void updateForceID(
|
|
984
|
+
const Eigen::Vector6d& _bodyForce,
|
|
985
|
+
double _timeStep,
|
|
986
|
+
bool _withDampingForces,
|
|
987
|
+
bool _withSpringForces)
|
|
988
|
+
= 0;
|
|
989
|
+
|
|
990
|
+
/// Update joint force for forward dynamics.
|
|
991
|
+
/// \param[in] _bodyForce Transmitting spatial body force from the parent
|
|
992
|
+
/// BodyNode to the child BodyNode. The spatial force is expressed in the
|
|
993
|
+
/// child BodyNode's frame.
|
|
994
|
+
/// \param[in] _timeStep
|
|
995
|
+
/// \param[in] _withDampingForces
|
|
996
|
+
/// \param[in] _withSpringForces
|
|
997
|
+
virtual void updateForceFD(
|
|
998
|
+
const Eigen::Vector6d& _bodyForce,
|
|
999
|
+
double _timeStep,
|
|
1000
|
+
bool _withDampingForces,
|
|
1001
|
+
bool _withSpringForces)
|
|
1002
|
+
= 0;
|
|
1003
|
+
|
|
1004
|
+
/// Update joint impulses for inverse dynamics
|
|
1005
|
+
virtual void updateImpulseID(const Eigen::Vector6d& _bodyImpulse) = 0;
|
|
1006
|
+
|
|
1007
|
+
/// Update joint impulses for forward dynamics
|
|
1008
|
+
virtual void updateImpulseFD(const Eigen::Vector6d& _bodyImpulse) = 0;
|
|
1009
|
+
|
|
1010
|
+
/// Update constrained terms for forward dynamics
|
|
1011
|
+
virtual void updateConstrainedTerms(double _timeStep) = 0;
|
|
1012
|
+
|
|
1013
|
+
/// \}
|
|
1014
|
+
|
|
1015
|
+
//----------------------------------------------------------------------------
|
|
1016
|
+
/// \{ \name Recursive algorithm routines for equations of motion
|
|
1017
|
+
//----------------------------------------------------------------------------
|
|
1018
|
+
|
|
1019
|
+
/// Add child's bias force to parent's one
|
|
1020
|
+
virtual void addChildBiasForceForInvMassMatrix(
|
|
1021
|
+
Eigen::Vector6d& _parentBiasForce,
|
|
1022
|
+
const Eigen::Matrix6d& _childArtInertia,
|
|
1023
|
+
const Eigen::Vector6d& _childBiasForce)
|
|
1024
|
+
= 0;
|
|
1025
|
+
|
|
1026
|
+
/// Add child's bias force to parent's one
|
|
1027
|
+
virtual void addChildBiasForceForInvAugMassMatrix(
|
|
1028
|
+
Eigen::Vector6d& _parentBiasForce,
|
|
1029
|
+
const Eigen::Matrix6d& _childArtInertia,
|
|
1030
|
+
const Eigen::Vector6d& _childBiasForce)
|
|
1031
|
+
= 0;
|
|
1032
|
+
|
|
1033
|
+
///
|
|
1034
|
+
virtual void updateTotalForceForInvMassMatrix(
|
|
1035
|
+
const Eigen::Vector6d& _bodyForce)
|
|
1036
|
+
= 0;
|
|
1037
|
+
|
|
1038
|
+
///
|
|
1039
|
+
virtual void getInvMassMatrixSegment(
|
|
1040
|
+
Eigen::MatrixXd& _invMassMat,
|
|
1041
|
+
const std::size_t _col,
|
|
1042
|
+
const Eigen::Matrix6d& _artInertia,
|
|
1043
|
+
const Eigen::Vector6d& _spatialAcc)
|
|
1044
|
+
= 0;
|
|
1045
|
+
|
|
1046
|
+
///
|
|
1047
|
+
virtual void getInvAugMassMatrixSegment(
|
|
1048
|
+
Eigen::MatrixXd& _invMassMat,
|
|
1049
|
+
const std::size_t _col,
|
|
1050
|
+
const Eigen::Matrix6d& _artInertia,
|
|
1051
|
+
const Eigen::Vector6d& _spatialAcc)
|
|
1052
|
+
= 0;
|
|
1053
|
+
|
|
1054
|
+
///
|
|
1055
|
+
virtual void addInvMassMatrixSegmentTo(Eigen::Vector6d& _acc) = 0;
|
|
1056
|
+
|
|
1057
|
+
///
|
|
1058
|
+
virtual Eigen::VectorXd getSpatialToGeneralized(
|
|
1059
|
+
const Eigen::Vector6d& _spatial)
|
|
1060
|
+
= 0;
|
|
1061
|
+
|
|
1062
|
+
/// \}
|
|
1063
|
+
|
|
1064
|
+
protected:
|
|
1065
|
+
/// Child BodyNode pointer that this Joint belongs to
|
|
1066
|
+
BodyNode* mChildBodyNode;
|
|
1067
|
+
|
|
1068
|
+
/// Relative transformation of the child BodyNode relative to the parent
|
|
1069
|
+
/// BodyNode expressed in the child BodyNode frame
|
|
1070
|
+
///
|
|
1071
|
+
/// Do not use directly! Use getRelativeTransform() to access this
|
|
1072
|
+
mutable Eigen::Isometry3d mT;
|
|
1073
|
+
|
|
1074
|
+
/// Relative spatial velocity from parent BodyNode to child BodyNode where the
|
|
1075
|
+
/// velocity is expressed in child body Frame
|
|
1076
|
+
///
|
|
1077
|
+
/// Do not use directly! Use getRelativeSpatialVelocity() to access this
|
|
1078
|
+
mutable Eigen::Vector6d mSpatialVelocity;
|
|
1079
|
+
|
|
1080
|
+
/// Relative spatial acceleration from parent BodyNode to child BodyNode where
|
|
1081
|
+
/// the acceleration is expressed in the child body Frame
|
|
1082
|
+
///
|
|
1083
|
+
/// Do not use directly! Use getRelativeSpatialAcceleration() to access this
|
|
1084
|
+
mutable Eigen::Vector6d mSpatialAcceleration;
|
|
1085
|
+
|
|
1086
|
+
/// J * q_dd
|
|
1087
|
+
///
|
|
1088
|
+
/// Do not use directly! Use getRelativePrimaryAcceleration() to access this
|
|
1089
|
+
mutable Eigen::Vector6d mPrimaryAcceleration;
|
|
1090
|
+
|
|
1091
|
+
/// True iff this joint's position has changed since the last call to
|
|
1092
|
+
/// getRelativeTransform()
|
|
1093
|
+
mutable bool mNeedTransformUpdate;
|
|
1094
|
+
// TODO(JS): Rename this to mIsTransformDirty in DART 7
|
|
1095
|
+
|
|
1096
|
+
/// True iff this joint's position or velocity has changed since the last call
|
|
1097
|
+
/// to getRelativeSpatialVelocity()
|
|
1098
|
+
mutable bool mNeedSpatialVelocityUpdate;
|
|
1099
|
+
// TODO(JS): Rename this to mIsSpatialVelocityDirty in DART 7
|
|
1100
|
+
|
|
1101
|
+
/// True iff this joint's position, velocity, or acceleration has changed
|
|
1102
|
+
/// since the last call to getRelativeSpatialAcceleration()
|
|
1103
|
+
mutable bool mNeedSpatialAccelerationUpdate;
|
|
1104
|
+
// TODO(JS): Rename this to mIsSpatialAccelerationDirty in DART 7
|
|
1105
|
+
|
|
1106
|
+
/// True iff this joint's position, velocity, or acceleration has changed
|
|
1107
|
+
/// since the last call to getRelativePrimaryAcceleration()
|
|
1108
|
+
mutable bool mNeedPrimaryAccelerationUpdate;
|
|
1109
|
+
// TODO(JS): Rename this to mIsPrimaryAccelerationDirty in DART 7
|
|
1110
|
+
|
|
1111
|
+
/// True iff this joint's relative Jacobian has not been updated since the
|
|
1112
|
+
/// last position change
|
|
1113
|
+
mutable bool mIsRelativeJacobianDirty;
|
|
1114
|
+
|
|
1115
|
+
/// True iff this joint's relative Jacobian time derivative has not been
|
|
1116
|
+
/// updated since the last position or velocity change
|
|
1117
|
+
mutable bool mIsRelativeJacobianTimeDerivDirty;
|
|
1118
|
+
|
|
1119
|
+
public:
|
|
1120
|
+
// To get byte-aligned Eigen vectors
|
|
1121
|
+
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
|
|
1122
|
+
};
|
|
1123
|
+
DART_DECLARE_CLASS_WITH_VIRTUAL_BASE_END
|
|
1124
|
+
|
|
1125
|
+
} // namespace dynamics
|
|
1126
|
+
} // namespace dart
|
|
1127
|
+
|
|
1128
|
+
#endif // DART_DYNAMICS_JOINT_HPP_
|