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.

Files changed (994) hide show
  1. dartpy-7.0.0.dev0.dist-info/METADATA +86 -0
  2. dartpy-7.0.0.dev0.dist-info/RECORD +994 -0
  3. dartpy-7.0.0.dev0.dist-info/WHEEL +5 -0
  4. dartpy-7.0.0.dev0.dist-info/licenses/LICENSE +31 -0
  5. dartpy.cpython-312-x86_64-linux-gnu.so +0 -0
  6. dartpy.libs/libBulletCollision-f96eb02c.so.3.25 +0 -0
  7. dartpy.libs/libBulletDynamics-3cff1f18.so.3.25 +0 -0
  8. dartpy.libs/libBulletSoftBody-220f01bd.so.3.25 +0 -0
  9. dartpy.libs/libLinearMath-71568d02.so.3.25 +0 -0
  10. dartpy.libs/libOpenThreads-8bc434db.so.3.3.1 +0 -0
  11. dartpy.libs/libSDL2-2-3db87ac0.0.so.0.3200.56 +0 -0
  12. dartpy.libs/libassimp-44cf3e77.so.5.4.3 +0 -0
  13. dartpy.libs/libccd-4f119cf4.so.2.0 +0 -0
  14. dartpy.libs/libconsole_bridge-f26e11cc.so.1.0 +0 -0
  15. dartpy.libs/libfcl-2607815a.so.0.7.0 +0 -0
  16. dartpy.libs/libfmt-277170bf.so.11.2.0 +0 -0
  17. dartpy.libs/libfontconfig-559ff509.so.1.14.0 +0 -0
  18. dartpy.libs/libfreetype-64806fc6.so.6.20.4 +0 -0
  19. dartpy.libs/libglfw-6f066845.so.3.4 +0 -0
  20. dartpy.libs/libimgui-ab87b07d.so +0 -0
  21. dartpy.libs/libnlopt-78f9bc34.so.1.0.0 +0 -0
  22. dartpy.libs/liboctomap-38e56f99.so.1.10.0 +0 -0
  23. dartpy.libs/liboctomath-bff26442.so.1.10.0 +0 -0
  24. dartpy.libs/libode-caca20fc.so.8.2.0 +0 -0
  25. dartpy.libs/libosg-e67375e5.so.3.6.5 +0 -0
  26. dartpy.libs/libosgDB-22ae780f.so.3.6.5 +0 -0
  27. dartpy.libs/libosgGA-6af4078b.so.3.6.5 +0 -0
  28. dartpy.libs/libosgManipulator-3270f659.so.3.6.5 +0 -0
  29. dartpy.libs/libosgShadow-127a8d77.so.3.6.5 +0 -0
  30. dartpy.libs/libosgText-87d82d87.so.3.6.5 +0 -0
  31. dartpy.libs/libosgUtil-55896958.so.3.6.5 +0 -0
  32. dartpy.libs/libosgViewer-76d832e3.so.3.6.5 +0 -0
  33. dartpy.libs/libpng16-bd65464e.so.16.50.0 +0 -0
  34. dartpy.libs/libtinyxml2-8d10763c.so.11.0.0 +0 -0
  35. dartpy.libs/liburdfdom_model-7b26ae88.so.4.0 +0 -0
  36. dartpy.libs/liburdfdom_model_state-95a5ad6e.so.4.0 +0 -0
  37. dartpy.libs/liburdfdom_sensor-55a145ea.so.4.0 +0 -0
  38. dartpy.libs/liburdfdom_world-a32c7194.so.4.0 +0 -0
  39. dartpy.libs/libvulkan-8caf1954.so.1.4.328 +0 -0
  40. include/dart/collision/CollisionDetector.hpp +305 -0
  41. include/dart/collision/CollisionFilter.hpp +126 -0
  42. include/dart/collision/CollisionGroup.hpp +546 -0
  43. include/dart/collision/CollisionObject.hpp +90 -0
  44. include/dart/collision/CollisionOption.hpp +71 -0
  45. include/dart/collision/CollisionResult.hpp +109 -0
  46. include/dart/collision/Contact.hpp +103 -0
  47. include/dart/collision/DistanceFilter.hpp +66 -0
  48. include/dart/collision/DistanceOption.hpp +80 -0
  49. include/dart/collision/DistanceResult.hpp +123 -0
  50. include/dart/collision/Option.hpp +42 -0
  51. include/dart/collision/RaycastOption.hpp +58 -0
  52. include/dart/collision/RaycastResult.hpp +80 -0
  53. include/dart/collision/Result.hpp +42 -0
  54. include/dart/collision/SmartPointer.hpp +51 -0
  55. include/dart/collision/all.hpp +17 -0
  56. include/dart/collision/bullet/BulletCollisionDetector.hpp +168 -0
  57. include/dart/collision/bullet/BulletCollisionGroup.hpp +98 -0
  58. include/dart/collision/bullet/BulletCollisionObject.hpp +75 -0
  59. include/dart/collision/bullet/BulletCollisionShape.hpp +62 -0
  60. include/dart/collision/bullet/BulletInclude.hpp +47 -0
  61. include/dart/collision/bullet/BulletTypes.hpp +57 -0
  62. include/dart/collision/bullet/all.hpp +8 -0
  63. include/dart/collision/bullet/bullet.hpp +14 -0
  64. include/dart/collision/bullet/detail/BulletCollisionDispatcher.hpp +70 -0
  65. include/dart/collision/bullet/detail/BulletOverlapFilterCallback.hpp +72 -0
  66. include/dart/collision/collision.hpp +14 -0
  67. include/dart/collision/dart/DARTCollide.hpp +106 -0
  68. include/dart/collision/dart/DARTCollisionDetector.hpp +109 -0
  69. include/dart/collision/dart/DARTCollisionGroup.hpp +82 -0
  70. include/dart/collision/dart/DARTCollisionObject.hpp +63 -0
  71. include/dart/collision/dart/all.hpp +6 -0
  72. include/dart/collision/dart/dart.hpp +14 -0
  73. include/dart/collision/detail/CollisionDetector.hpp +66 -0
  74. include/dart/collision/detail/CollisionGroup.hpp +287 -0
  75. include/dart/collision/detail/Contact-impl.hpp +56 -0
  76. include/dart/collision/detail/UnorderedPairs.hpp +153 -0
  77. include/dart/collision/fcl/BackwardCompatibility.hpp +145 -0
  78. include/dart/collision/fcl/CollisionShapes.hpp +374 -0
  79. include/dart/collision/fcl/FCLCollisionDetector.hpp +204 -0
  80. include/dart/collision/fcl/FCLCollisionGroup.hpp +95 -0
  81. include/dart/collision/fcl/FCLCollisionObject.hpp +72 -0
  82. include/dart/collision/fcl/FCLTypes.hpp +62 -0
  83. include/dart/collision/fcl/TriTriIntersectionTest.hpp +17 -0
  84. include/dart/collision/fcl/all.hpp +9 -0
  85. include/dart/collision/fcl/fcl.hpp +14 -0
  86. include/dart/collision/fcl/tri_tri_intersection_test.hpp +332 -0
  87. include/dart/collision/ode/OdeCollisionDetector.hpp +131 -0
  88. include/dart/collision/ode/OdeCollisionGroup.hpp +87 -0
  89. include/dart/collision/ode/OdeCollisionObject.hpp +89 -0
  90. include/dart/collision/ode/OdeTypes.hpp +51 -0
  91. include/dart/collision/ode/all.hpp +6 -0
  92. include/dart/collision/ode/detail/OdeBox.hpp +58 -0
  93. include/dart/collision/ode/detail/OdeCapsule.hpp +58 -0
  94. include/dart/collision/ode/detail/OdeCylinder.hpp +58 -0
  95. include/dart/collision/ode/detail/OdeGeom.hpp +83 -0
  96. include/dart/collision/ode/detail/OdeHeightmap-impl.hpp +170 -0
  97. include/dart/collision/ode/detail/OdeHeightmap.hpp +70 -0
  98. include/dart/collision/ode/detail/OdeMesh.hpp +83 -0
  99. include/dart/collision/ode/detail/OdePlane.hpp +67 -0
  100. include/dart/collision/ode/detail/OdeSphere.hpp +58 -0
  101. include/dart/collision/ode/ode.hpp +14 -0
  102. include/dart/common/Aspect.hpp +215 -0
  103. include/dart/common/AspectWithVersion.hpp +180 -0
  104. include/dart/common/CAllocator.hpp +65 -0
  105. include/dart/common/Castable.hpp +102 -0
  106. include/dart/common/ClassWithVirtualBase.hpp +47 -0
  107. include/dart/common/Cloneable.hpp +327 -0
  108. include/dart/common/Composite.hpp +205 -0
  109. include/dart/common/CompositeJoiner.hpp +160 -0
  110. include/dart/common/Console.hpp +75 -0
  111. include/dart/common/Deprecated.hpp +126 -0
  112. include/dart/common/EmbeddedAspect.hpp +466 -0
  113. include/dart/common/Empty.hpp +55 -0
  114. include/dart/common/Factory.hpp +146 -0
  115. include/dart/common/Filesystem.hpp +112 -0
  116. include/dart/common/FreeListAllocator.hpp +162 -0
  117. include/dart/common/IncludeWindows.hpp +50 -0
  118. include/dart/common/LocalResource.hpp +76 -0
  119. include/dart/common/LocalResourceRetriever.hpp +63 -0
  120. include/dart/common/LockableReference.hpp +166 -0
  121. include/dart/common/Logging.hpp +146 -0
  122. include/dart/common/Macros.hpp +78 -0
  123. include/dart/common/Memory.hpp +215 -0
  124. include/dart/common/MemoryAllocator.hpp +120 -0
  125. include/dart/common/MemoryAllocatorDebugger.hpp +98 -0
  126. include/dart/common/MemoryManager.hpp +189 -0
  127. include/dart/common/Metaprogramming.hpp +68 -0
  128. include/dart/common/NameManager.hpp +184 -0
  129. include/dart/common/Observer.hpp +85 -0
  130. include/dart/common/Optional.hpp +48 -0
  131. include/dart/common/Platform.hpp +92 -0
  132. include/dart/common/PoolAllocator.hpp +141 -0
  133. include/dart/common/Profile.hpp +56 -0
  134. include/dart/common/ProxyAspect.hpp +93 -0
  135. include/dart/common/RequiresAspect.hpp +79 -0
  136. include/dart/common/Resource.hpp +96 -0
  137. include/dart/common/ResourceRetriever.hpp +82 -0
  138. include/dart/common/SharedLibrary.hpp +201 -0
  139. include/dart/common/Signal.hpp +250 -0
  140. include/dart/common/Singleton.hpp +85 -0
  141. include/dart/common/SmartPointer.hpp +63 -0
  142. include/dart/common/SpecializedForAspect.hpp +207 -0
  143. include/dart/common/StlAllocator.hpp +111 -0
  144. include/dart/common/StlHelpers.hpp +61 -0
  145. include/dart/common/Stopwatch.hpp +143 -0
  146. include/dart/common/String.hpp +71 -0
  147. include/dart/common/SubPtr.hpp +17 -0
  148. include/dart/common/Subject.hpp +84 -0
  149. include/dart/common/Timer.hpp +119 -0
  150. include/dart/common/Uri.hpp +229 -0
  151. include/dart/common/VersionCounter.hpp +68 -0
  152. include/dart/common/Virtual.hpp +51 -0
  153. include/dart/common/all.hpp +53 -0
  154. include/dart/common/common.hpp +14 -0
  155. include/dart/common/detail/Aspect.hpp +102 -0
  156. include/dart/common/detail/AspectWithVersion.hpp +455 -0
  157. include/dart/common/detail/Castable-impl.hpp +109 -0
  158. include/dart/common/detail/Cloneable.hpp +638 -0
  159. include/dart/common/detail/Composite.hpp +241 -0
  160. include/dart/common/detail/CompositeData.hpp +393 -0
  161. include/dart/common/detail/CompositeJoiner.hpp +128 -0
  162. include/dart/common/detail/ConnectionBody.hpp +157 -0
  163. include/dart/common/detail/EmbeddedAspect.hpp +487 -0
  164. include/dart/common/detail/Factory-impl.hpp +200 -0
  165. include/dart/common/detail/LockableReference-impl.hpp +156 -0
  166. include/dart/common/detail/Logging-impl.hpp +162 -0
  167. include/dart/common/detail/Memory-impl.hpp +66 -0
  168. include/dart/common/detail/MemoryAllocator-impl.hpp +97 -0
  169. include/dart/common/detail/MemoryAllocatorDebugger-impl.hpp +201 -0
  170. include/dart/common/detail/MemoryManager-impl.hpp +102 -0
  171. include/dart/common/detail/Metaprogramming-impl.hpp +89 -0
  172. include/dart/common/detail/NameManager.hpp +301 -0
  173. include/dart/common/detail/NoOp.hpp +57 -0
  174. include/dart/common/detail/ProxyAspect.hpp +172 -0
  175. include/dart/common/detail/RequiresAspect.hpp +51 -0
  176. include/dart/common/detail/SharedLibraryManager.hpp +106 -0
  177. include/dart/common/detail/Signal.hpp +242 -0
  178. include/dart/common/detail/Singleton-impl.hpp +74 -0
  179. include/dart/common/detail/SpecializedForAspect.hpp +331 -0
  180. include/dart/common/detail/StlAllocator-impl.hpp +108 -0
  181. include/dart/common/detail/Stopwatch-impl.hpp +242 -0
  182. include/dart/common/detail/SubPtr.hpp +17 -0
  183. include/dart/common/detail/TemplateJoinerDispatchMacro.hpp +59 -0
  184. include/dart/common/detail/sub_ptr.hpp +139 -0
  185. include/dart/common/sub_ptr.hpp +103 -0
  186. include/dart/config.hpp +100 -0
  187. include/dart/constraint/BalanceConstraint.hpp +202 -0
  188. include/dart/constraint/BallJointConstraint.hpp +142 -0
  189. include/dart/constraint/BoxedLcpConstraintSolver.hpp +182 -0
  190. include/dart/constraint/BoxedLcpSolver.hpp +101 -0
  191. include/dart/constraint/ConstrainedGroup.hpp +120 -0
  192. include/dart/constraint/ConstraintBase.hpp +141 -0
  193. include/dart/constraint/ConstraintSolver.hpp +325 -0
  194. include/dart/constraint/ContactConstraint.hpp +286 -0
  195. include/dart/constraint/ContactSurface.hpp +191 -0
  196. include/dart/constraint/DantzigBoxedLcpSolver.hpp +71 -0
  197. include/dart/constraint/DantzigLCPSolver.hpp +87 -0
  198. include/dart/constraint/DynamicJointConstraint.hpp +120 -0
  199. include/dart/constraint/JointConstraint.hpp +182 -0
  200. include/dart/constraint/JointCoulombFrictionConstraint.hpp +149 -0
  201. include/dart/constraint/JointLimitConstraint.hpp +185 -0
  202. include/dart/constraint/LCPSolver.hpp +71 -0
  203. include/dart/constraint/MimicMotorConstraint.hpp +164 -0
  204. include/dart/constraint/PGSLCPSolver.hpp +109 -0
  205. include/dart/constraint/PgsBoxedLcpSolver.hpp +106 -0
  206. include/dart/constraint/ServoMotorConstraint.hpp +151 -0
  207. include/dart/constraint/SmartPointer.hpp +69 -0
  208. include/dart/constraint/SoftContactConstraint.hpp +262 -0
  209. include/dart/constraint/WeldJointConstraint.hpp +133 -0
  210. include/dart/constraint/all.hpp +25 -0
  211. include/dart/constraint/constraint.hpp +14 -0
  212. include/dart/constraint/detail/ConstraintSolver-impl.hpp +78 -0
  213. include/dart/dart.hpp +44 -0
  214. include/dart/dynamics/ArrowShape.hpp +121 -0
  215. include/dart/dynamics/AssimpInputResourceAdaptor.hpp +129 -0
  216. include/dart/dynamics/BallJoint.hpp +143 -0
  217. include/dart/dynamics/BodyNode.hpp +1279 -0
  218. include/dart/dynamics/BoxShape.hpp +90 -0
  219. include/dart/dynamics/Branch.hpp +107 -0
  220. include/dart/dynamics/CapsuleShape.hpp +105 -0
  221. include/dart/dynamics/Chain.hpp +142 -0
  222. include/dart/dynamics/CompositeNode.hpp +114 -0
  223. include/dart/dynamics/ConeShape.hpp +107 -0
  224. include/dart/dynamics/CylinderShape.hpp +96 -0
  225. include/dart/dynamics/DegreeOfFreedom.hpp +415 -0
  226. include/dart/dynamics/EllipsoidShape.hpp +115 -0
  227. include/dart/dynamics/EndEffector.hpp +158 -0
  228. include/dart/dynamics/Entity.hpp +258 -0
  229. include/dart/dynamics/EntityNode.hpp +77 -0
  230. include/dart/dynamics/EulerJoint.hpp +174 -0
  231. include/dart/dynamics/FixedFrame.hpp +105 -0
  232. include/dart/dynamics/FixedJacobianNode.hpp +168 -0
  233. include/dart/dynamics/Frame.hpp +388 -0
  234. include/dart/dynamics/FreeJoint.hpp +369 -0
  235. include/dart/dynamics/GenericJoint.hpp +825 -0
  236. include/dart/dynamics/Group.hpp +270 -0
  237. include/dart/dynamics/HeightmapShape.hpp +195 -0
  238. include/dart/dynamics/HierarchicalIK.hpp +419 -0
  239. include/dart/dynamics/IkFast.hpp +277 -0
  240. include/dart/dynamics/Inertia.hpp +176 -0
  241. include/dart/dynamics/InvalidIndex.hpp +46 -0
  242. include/dart/dynamics/InverseKinematics.hpp +1401 -0
  243. include/dart/dynamics/JacobianNode.hpp +312 -0
  244. include/dart/dynamics/Joint.hpp +1128 -0
  245. include/dart/dynamics/LineSegmentShape.hpp +140 -0
  246. include/dart/dynamics/Linkage.hpp +246 -0
  247. include/dart/dynamics/Marker.hpp +126 -0
  248. include/dart/dynamics/MeshShape.hpp +225 -0
  249. include/dart/dynamics/MetaSkeleton.hpp +1034 -0
  250. include/dart/dynamics/MimicDofProperties.hpp +62 -0
  251. include/dart/dynamics/MultiSphereConvexHullShape.hpp +111 -0
  252. include/dart/dynamics/MultiSphereShape.hpp +42 -0
  253. include/dart/dynamics/Node.hpp +273 -0
  254. include/dart/dynamics/NodeManagerJoiner.hpp +190 -0
  255. include/dart/dynamics/PlanarJoint.hpp +161 -0
  256. include/dart/dynamics/PlaneShape.hpp +105 -0
  257. include/dart/dynamics/PointCloudShape.hpp +186 -0
  258. include/dart/dynamics/PointMass.hpp +709 -0
  259. include/dart/dynamics/PrismaticJoint.hpp +120 -0
  260. include/dart/dynamics/PyramidShape.hpp +122 -0
  261. include/dart/dynamics/ReferentialSkeleton.hpp +550 -0
  262. include/dart/dynamics/RevoluteJoint.hpp +120 -0
  263. include/dart/dynamics/ScrewJoint.hpp +126 -0
  264. include/dart/dynamics/Shape.hpp +231 -0
  265. include/dart/dynamics/ShapeFrame.hpp +291 -0
  266. include/dart/dynamics/ShapeNode.hpp +134 -0
  267. include/dart/dynamics/SharedLibraryIkFast.hpp +147 -0
  268. include/dart/dynamics/SimpleFrame.hpp +247 -0
  269. include/dart/dynamics/Skeleton.hpp +1350 -0
  270. include/dart/dynamics/SmartPointer.hpp +185 -0
  271. include/dart/dynamics/SoftBodyNode.hpp +472 -0
  272. include/dart/dynamics/SoftMeshShape.hpp +100 -0
  273. include/dart/dynamics/SpecializedNodeManager.hpp +230 -0
  274. include/dart/dynamics/SphereShape.hpp +89 -0
  275. include/dart/dynamics/TemplatedJacobianNode.hpp +128 -0
  276. include/dart/dynamics/TranslationalJoint.hpp +105 -0
  277. include/dart/dynamics/TranslationalJoint2D.hpp +156 -0
  278. include/dart/dynamics/UniversalJoint.hpp +128 -0
  279. include/dart/dynamics/VoxelGridShape.hpp +171 -0
  280. include/dart/dynamics/WeldJoint.hpp +116 -0
  281. include/dart/dynamics/ZeroDofJoint.hpp +562 -0
  282. include/dart/dynamics/all.hpp +69 -0
  283. include/dart/dynamics/detail/BasicNodeManager.hpp +539 -0
  284. include/dart/dynamics/detail/BodyNode.hpp +344 -0
  285. include/dart/dynamics/detail/BodyNodeAspect.hpp +177 -0
  286. include/dart/dynamics/detail/BodyNodePtr.hpp +351 -0
  287. include/dart/dynamics/detail/CompositeNode.hpp +93 -0
  288. include/dart/dynamics/detail/DegreeOfFreedomPtr.hpp +338 -0
  289. include/dart/dynamics/detail/EndEffectorAspect.hpp +106 -0
  290. include/dart/dynamics/detail/EntityNode.hpp +81 -0
  291. include/dart/dynamics/detail/EntityNodeAspect.hpp +101 -0
  292. include/dart/dynamics/detail/EulerJointAspect.hpp +93 -0
  293. include/dart/dynamics/detail/FixedFrameAspect.hpp +58 -0
  294. include/dart/dynamics/detail/FixedJacobianNode.hpp +55 -0
  295. include/dart/dynamics/detail/GenericJoint.hpp +2471 -0
  296. include/dart/dynamics/detail/GenericJointAspect.hpp +353 -0
  297. include/dart/dynamics/detail/HeightmapShape-impl.hpp +243 -0
  298. include/dart/dynamics/detail/InverseKinematics.hpp +83 -0
  299. include/dart/dynamics/detail/InverseKinematicsPtr.hpp +341 -0
  300. include/dart/dynamics/detail/JointAspect.hpp +161 -0
  301. include/dart/dynamics/detail/JointPtr.hpp +293 -0
  302. include/dart/dynamics/detail/MarkerAspect.hpp +68 -0
  303. include/dart/dynamics/detail/MetaSkeleton-impl.hpp +151 -0
  304. include/dart/dynamics/detail/Node.hpp +532 -0
  305. include/dart/dynamics/detail/NodeManagerJoiner.hpp +184 -0
  306. include/dart/dynamics/detail/NodePtr.hpp +259 -0
  307. include/dart/dynamics/detail/PlanarJointAspect.hpp +136 -0
  308. include/dart/dynamics/detail/PrismaticJointAspect.hpp +85 -0
  309. include/dart/dynamics/detail/RevoluteJointAspect.hpp +86 -0
  310. include/dart/dynamics/detail/ScrewJointAspect.hpp +90 -0
  311. include/dart/dynamics/detail/ShapeFrameAspect.hpp +169 -0
  312. include/dart/dynamics/detail/ShapeNode.hpp +51 -0
  313. include/dart/dynamics/detail/Skeleton.hpp +92 -0
  314. include/dart/dynamics/detail/SkeletonAspect.hpp +181 -0
  315. include/dart/dynamics/detail/SoftBodyNodeAspect.hpp +132 -0
  316. include/dart/dynamics/detail/SpecializedNodeManager.hpp +324 -0
  317. include/dart/dynamics/detail/TemplatedJacobianNode.hpp +294 -0
  318. include/dart/dynamics/detail/TranslationalJoint2DAspect.hpp +140 -0
  319. include/dart/dynamics/detail/UniversalJointAspect.hpp +86 -0
  320. include/dart/dynamics/dynamics.hpp +14 -0
  321. include/dart/dynamics/ikfast.h +345 -0
  322. include/dart/external/convhull_3d/convhull_3d.h +1878 -0
  323. include/dart/external/convhull_3d/safe_convhull_3d.h +53 -0
  324. include/dart/external/odelcpsolver/common.h +418 -0
  325. include/dart/external/odelcpsolver/error.h +62 -0
  326. include/dart/external/odelcpsolver/lcp.h +75 -0
  327. include/dart/external/odelcpsolver/matrix.h +277 -0
  328. include/dart/external/odelcpsolver/misc.h +82 -0
  329. include/dart/external/odelcpsolver/odeconfig.h +110 -0
  330. include/dart/gui/osg/DefaultEventHandler.hpp +237 -0
  331. include/dart/gui/osg/DragAndDrop.hpp +360 -0
  332. include/dart/gui/osg/GridVisual.hpp +218 -0
  333. include/dart/gui/osg/ImGuiHandler.hpp +113 -0
  334. include/dart/gui/osg/ImGuiViewer.hpp +83 -0
  335. include/dart/gui/osg/ImGuiWidget.hpp +91 -0
  336. include/dart/gui/osg/IncludeImGui.hpp +75 -0
  337. include/dart/gui/osg/InteractiveFrame.hpp +170 -0
  338. include/dart/gui/osg/MouseEventHandler.hpp +76 -0
  339. include/dart/gui/osg/RealTimeWorldNode.hpp +126 -0
  340. include/dart/gui/osg/ShapeFrameNode.hpp +117 -0
  341. include/dart/gui/osg/SupportPolygonVisual.hpp +202 -0
  342. include/dart/gui/osg/TrackballManipulator.hpp +97 -0
  343. include/dart/gui/osg/Utils.hpp +120 -0
  344. include/dart/gui/osg/Viewer.hpp +427 -0
  345. include/dart/gui/osg/WorldNode.hpp +211 -0
  346. include/dart/gui/osg/all.hpp +19 -0
  347. include/dart/gui/osg/detail/CameraModeCallback.hpp +82 -0
  348. include/dart/gui/osg/detail/Utils-impl.hpp +160 -0
  349. include/dart/gui/osg/osg.hpp +14 -0
  350. include/dart/gui/osg/render/BoxShapeNode.hpp +74 -0
  351. include/dart/gui/osg/render/CapsuleShapeNode.hpp +75 -0
  352. include/dart/gui/osg/render/ConeShapeNode.hpp +74 -0
  353. include/dart/gui/osg/render/CylinderShapeNode.hpp +75 -0
  354. include/dart/gui/osg/render/EllipsoidShapeNode.hpp +76 -0
  355. include/dart/gui/osg/render/HeightmapShapeNode.hpp +485 -0
  356. include/dart/gui/osg/render/LineSegmentShapeNode.hpp +75 -0
  357. include/dart/gui/osg/render/MeshShapeNode.hpp +86 -0
  358. include/dart/gui/osg/render/MultiSphereShapeNode.hpp +76 -0
  359. include/dart/gui/osg/render/PlaneShapeNode.hpp +75 -0
  360. include/dart/gui/osg/render/PointCloudShapeNode.hpp +85 -0
  361. include/dart/gui/osg/render/PyramidShapeNode.hpp +75 -0
  362. include/dart/gui/osg/render/ShapeNode.hpp +126 -0
  363. include/dart/gui/osg/render/SoftMeshShapeNode.hpp +75 -0
  364. include/dart/gui/osg/render/SphereShapeNode.hpp +76 -0
  365. include/dart/gui/osg/render/VoxelGridShapeNode.hpp +83 -0
  366. include/dart/gui/osg/render/WarningShapeNode.hpp +64 -0
  367. include/dart/gui/osg/render/all.hpp +19 -0
  368. include/dart/gui/osg/render/render.hpp +14 -0
  369. include/dart/integration/EulerIntegrator.hpp +64 -0
  370. include/dart/integration/Integrator.hpp +104 -0
  371. include/dart/integration/RK4Integrator.hpp +68 -0
  372. include/dart/integration/SemiImplicitEulerIntegrator.hpp +64 -0
  373. include/dart/integration/all.hpp +6 -0
  374. include/dart/integration/integration.hpp +14 -0
  375. include/dart/lcpsolver/Lemke.hpp +54 -0
  376. include/dart/lcpsolver/ODELCPSolver.hpp +88 -0
  377. include/dart/lcpsolver/all.hpp +4 -0
  378. include/dart/lcpsolver/lcpsolver.hpp +14 -0
  379. include/dart/math/ConfigurationSpace.hpp +144 -0
  380. include/dart/math/Constants.hpp +79 -0
  381. include/dart/math/Geometry.hpp +659 -0
  382. include/dart/math/Helpers.hpp +481 -0
  383. include/dart/math/Icosphere.hpp +106 -0
  384. include/dart/math/MathTypes.hpp +100 -0
  385. include/dart/math/Mesh.hpp +108 -0
  386. include/dart/math/Random.hpp +225 -0
  387. include/dart/math/TriMesh.hpp +121 -0
  388. include/dart/math/all.hpp +11 -0
  389. include/dart/math/detail/ConfigurationSpace.hpp +235 -0
  390. include/dart/math/detail/Geometry-impl.hpp +126 -0
  391. include/dart/math/detail/Icosphere-impl.hpp +214 -0
  392. include/dart/math/detail/Mesh-impl.hpp +151 -0
  393. include/dart/math/detail/Random-impl.hpp +353 -0
  394. include/dart/math/detail/TriMesh-impl.hpp +202 -0
  395. include/dart/math/math.hpp +14 -0
  396. include/dart/optimizer/Function.hpp +203 -0
  397. include/dart/optimizer/GenericMultiObjectiveProblem.hpp +174 -0
  398. include/dart/optimizer/GradientDescentSolver.hpp +240 -0
  399. include/dart/optimizer/MultiObjectiveProblem.hpp +168 -0
  400. include/dart/optimizer/MultiObjectiveSolver.hpp +168 -0
  401. include/dart/optimizer/Population.hpp +108 -0
  402. include/dart/optimizer/Problem.hpp +191 -0
  403. include/dart/optimizer/Solver.hpp +182 -0
  404. include/dart/optimizer/all.hpp +10 -0
  405. include/dart/optimizer/ipopt/BackwardCompatibility.hpp +43 -0
  406. include/dart/optimizer/ipopt/IpoptSolver.hpp +223 -0
  407. include/dart/optimizer/ipopt/all.hpp +4 -0
  408. include/dart/optimizer/ipopt/ipopt.hpp +14 -0
  409. include/dart/optimizer/nlopt/NloptSolver.hpp +212 -0
  410. include/dart/optimizer/nlopt/all.hpp +3 -0
  411. include/dart/optimizer/nlopt/nlopt.hpp +14 -0
  412. include/dart/optimizer/optimizer.hpp +14 -0
  413. include/dart/simulation/Recording.hpp +118 -0
  414. include/dart/simulation/SmartPointer.hpp +46 -0
  415. include/dart/simulation/World.hpp +405 -0
  416. include/dart/simulation/all.hpp +5 -0
  417. include/dart/simulation/detail/World-impl.hpp +129 -0
  418. include/dart/simulation/simulation.hpp +14 -0
  419. include/dart/utils/C3D.hpp +107 -0
  420. include/dart/utils/CompositeResourceRetriever.hpp +97 -0
  421. include/dart/utils/DartResourceRetriever.hpp +104 -0
  422. include/dart/utils/FileInfoC3D.hpp +91 -0
  423. include/dart/utils/FileInfoDof.hpp +109 -0
  424. include/dart/utils/FileInfoWorld.hpp +75 -0
  425. include/dart/utils/PackageResourceRetriever.hpp +118 -0
  426. include/dart/utils/SkelParser.hpp +70 -0
  427. include/dart/utils/VskParser.hpp +108 -0
  428. include/dart/utils/XmlHelpers.hpp +243 -0
  429. include/dart/utils/all.hpp +14 -0
  430. include/dart/utils/detail/XmlHelpers-impl.hpp +213 -0
  431. include/dart/utils/mjcf/MjcfParser.hpp +80 -0
  432. include/dart/utils/mjcf/all.hpp +3 -0
  433. include/dart/utils/mjcf/mjcf.hpp +14 -0
  434. include/dart/utils/sdf/SdfParser.hpp +98 -0
  435. include/dart/utils/sdf/all.hpp +3 -0
  436. include/dart/utils/sdf/sdf.hpp +14 -0
  437. include/dart/utils/urdf/BackwardCompatibility.hpp +52 -0
  438. include/dart/utils/urdf/DartLoader.hpp +277 -0
  439. include/dart/utils/urdf/IncludeUrdf.hpp +47 -0
  440. include/dart/utils/urdf/URDFTypes.hpp +42 -0
  441. include/dart/utils/urdf/all.hpp +5 -0
  442. include/dart/utils/urdf/urdf.hpp +14 -0
  443. include/dart/utils/urdf/urdf_world_parser.hpp +83 -0
  444. include/dart/utils/utils.hpp +14 -0
  445. lib64/libdart-collision-bullet.a +0 -0
  446. lib64/libdart-collision-ode.a +0 -0
  447. lib64/libdart-external-odelcpsolver.a +0 -0
  448. lib64/libdart-gui-osg.a +0 -0
  449. lib64/libdart-optimizer-ipopt.a +0 -0
  450. lib64/libdart-optimizer-nlopt.a +0 -0
  451. lib64/libdart-utils-urdf.a +0 -0
  452. lib64/libdart-utils.a +0 -0
  453. lib64/libdart.a +0 -0
  454. lib64/pkgconfig/dart.pc +12 -0
  455. share/dart/cmake/DARTConfig.cmake +194 -0
  456. share/dart/cmake/DARTConfigVersion.cmake +65 -0
  457. share/dart/cmake/DARTFindBullet.cmake +96 -0
  458. share/dart/cmake/DARTFindEigen3.cmake +9 -0
  459. share/dart/cmake/DARTFindIPOPT.cmake +20 -0
  460. share/dart/cmake/DARTFindNLOPT.cmake +17 -0
  461. share/dart/cmake/DARTFindODE.cmake +23 -0
  462. share/dart/cmake/DARTFindOpenSceneGraph.cmake +69 -0
  463. share/dart/cmake/DARTFindassimp.cmake +18 -0
  464. share/dart/cmake/DARTFindfcl.cmake +23 -0
  465. share/dart/cmake/DARTFindfmt.cmake +9 -0
  466. share/dart/cmake/DARTFindimgui.cmake +21 -0
  467. share/dart/cmake/DARTFindoctomap.cmake +17 -0
  468. share/dart/cmake/DARTFindspdlog.cmake +9 -0
  469. share/dart/cmake/DARTFindtinyxml2.cmake +27 -0
  470. share/dart/cmake/DARTFindurdfdom.cmake +29 -0
  471. share/dart/cmake/FindIPOPT.cmake +54 -0
  472. share/dart/cmake/FindNLOPT.cmake +54 -0
  473. share/dart/cmake/FindODE.cmake +54 -0
  474. share/dart/cmake/Findassimp.cmake +56 -0
  475. share/dart/cmake/Findfcl.cmake +67 -0
  476. share/dart/cmake/Findimgui.cmake +70 -0
  477. share/dart/cmake/Findtinyxml2.cmake +54 -0
  478. share/dart/cmake/dart_collision-bulletComponent.cmake +19 -0
  479. share/dart/cmake/dart_collision-bulletTargets-release.cmake +19 -0
  480. share/dart/cmake/dart_collision-bulletTargets.cmake +122 -0
  481. share/dart/cmake/dart_collision-odeComponent.cmake +19 -0
  482. share/dart/cmake/dart_collision-odeTargets-release.cmake +19 -0
  483. share/dart/cmake/dart_collision-odeTargets.cmake +122 -0
  484. share/dart/cmake/dart_dartComponent.cmake +19 -0
  485. share/dart/cmake/dart_dartTargets-release.cmake +19 -0
  486. share/dart/cmake/dart_dartTargets.cmake +125 -0
  487. share/dart/cmake/dart_external-odelcpsolverComponent.cmake +19 -0
  488. share/dart/cmake/dart_external-odelcpsolverTargets-release.cmake +19 -0
  489. share/dart/cmake/dart_external-odelcpsolverTargets.cmake +106 -0
  490. share/dart/cmake/dart_gui-osgComponent.cmake +19 -0
  491. share/dart/cmake/dart_gui-osgTargets-release.cmake +19 -0
  492. share/dart/cmake/dart_gui-osgTargets.cmake +122 -0
  493. share/dart/cmake/dart_optimizer-ipoptComponent.cmake +19 -0
  494. share/dart/cmake/dart_optimizer-ipoptTargets-release.cmake +19 -0
  495. share/dart/cmake/dart_optimizer-ipoptTargets.cmake +123 -0
  496. share/dart/cmake/dart_optimizer-nloptComponent.cmake +19 -0
  497. share/dart/cmake/dart_optimizer-nloptTargets-release.cmake +19 -0
  498. share/dart/cmake/dart_optimizer-nloptTargets.cmake +123 -0
  499. share/dart/cmake/dart_utils-urdfComponent.cmake +19 -0
  500. share/dart/cmake/dart_utils-urdfTargets-release.cmake +19 -0
  501. share/dart/cmake/dart_utils-urdfTargets.cmake +122 -0
  502. share/dart/cmake/dart_utilsComponent.cmake +19 -0
  503. share/dart/cmake/dart_utilsTargets-release.cmake +19 -0
  504. share/dart/cmake/dart_utilsTargets.cmake +122 -0
  505. share/dart/package.xml +42 -0
  506. share/doc/dart/data/c3d/nick_freeform_001.c3d +0 -0
  507. share/doc/dart/data/c3d/squat.c3d +0 -0
  508. share/doc/dart/data/dof/RHand.dof +205 -0
  509. share/doc/dart/data/dof/fixedHand.dof +205 -0
  510. share/doc/dart/data/dof/init_Tpose.dof +240 -0
  511. share/doc/dart/data/dof/same.dof +1003 -0
  512. share/doc/dart/data/dof/simMotion.dof +1817 -0
  513. share/doc/dart/data/dof/simMotion1.dof +1355 -0
  514. share/doc/dart/data/etc/fort.4 +43 -0
  515. share/doc/dart/data/humanJointLimits/neuralnets/net-larm +0 -0
  516. share/doc/dart/data/humanJointLimits/neuralnets/net-lleg +0 -0
  517. share/doc/dart/data/mjcf/openai/LICENSE.md +36 -0
  518. share/doc/dart/data/mjcf/openai/ant.xml +81 -0
  519. share/doc/dart/data/mjcf/openai/half_cheetah.xml +96 -0
  520. share/doc/dart/data/mjcf/openai/hopper.xml +50 -0
  521. share/doc/dart/data/mjcf/openai/humanoid.xml +121 -0
  522. share/doc/dart/data/mjcf/openai/humanoidstandup.xml +121 -0
  523. share/doc/dart/data/mjcf/openai/inverted_double_pendulum.xml +47 -0
  524. share/doc/dart/data/mjcf/openai/inverted_pendulum.xml +27 -0
  525. share/doc/dart/data/mjcf/openai/point.xml +31 -0
  526. share/doc/dart/data/mjcf/openai/pusher.xml +91 -0
  527. share/doc/dart/data/mjcf/openai/reacher.xml +39 -0
  528. share/doc/dart/data/mjcf/openai/robotics/fetch/pick_and_place.xml +35 -0
  529. share/doc/dart/data/mjcf/openai/robotics/fetch/push.xml +32 -0
  530. share/doc/dart/data/mjcf/openai/robotics/fetch/reach.xml +26 -0
  531. share/doc/dart/data/mjcf/openai/robotics/fetch/robot.xml +123 -0
  532. share/doc/dart/data/mjcf/openai/robotics/fetch/shared.xml +66 -0
  533. share/doc/dart/data/mjcf/openai/robotics/fetch/slide.xml +32 -0
  534. share/doc/dart/data/mjcf/openai/robotics/stls/.get +0 -0
  535. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/base_link_collision.stl +0 -0
  536. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/bellows_link_collision.stl +0 -0
  537. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/elbow_flex_link_collision.stl +0 -0
  538. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/estop_link.stl +0 -0
  539. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/forearm_roll_link_collision.stl +0 -0
  540. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/gripper_link.stl +0 -0
  541. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/head_pan_link_collision.stl +0 -0
  542. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/head_tilt_link_collision.stl +0 -0
  543. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/l_wheel_link_collision.stl +0 -0
  544. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/laser_link.stl +0 -0
  545. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/r_wheel_link_collision.stl +0 -0
  546. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/shoulder_lift_link_collision.stl +0 -0
  547. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/shoulder_pan_link_collision.stl +0 -0
  548. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/torso_fixed_link.stl +0 -0
  549. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/torso_lift_link_collision.stl +0 -0
  550. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/upperarm_roll_link_collision.stl +0 -0
  551. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/wrist_flex_link_collision.stl +0 -0
  552. share/doc/dart/data/mjcf/openai/robotics/stls/fetch/wrist_roll_link_collision.stl +0 -0
  553. share/doc/dart/data/mjcf/openai/robotics/textures/block.png +0 -0
  554. share/doc/dart/data/mjcf/openai/robotics/textures/block_hidden.png +0 -0
  555. share/doc/dart/data/mjcf/openai/striker.xml +101 -0
  556. share/doc/dart/data/mjcf/openai/swimmer.xml +39 -0
  557. share/doc/dart/data/mjcf/openai/thrower.xml +127 -0
  558. share/doc/dart/data/mjcf/openai/walker2d.xml +62 -0
  559. share/doc/dart/data/mjcf/test/default.xml +17 -0
  560. share/doc/dart/data/mjcf/test/include_default.xml +8 -0
  561. share/doc/dart/data/mjcf/test/include_main.xml +12 -0
  562. share/doc/dart/data/obj/Body_Hip.obj +22830 -0
  563. share/doc/dart/data/obj/BoxSmall.obj +23 -0
  564. share/doc/dart/data/obj/foot.obj +10970 -0
  565. share/doc/dart/data/other/torus1.path +11991 -0
  566. share/doc/dart/data/other/torus1.tris +5329 -0
  567. share/doc/dart/data/other/torus2.path +11991 -0
  568. share/doc/dart/data/other/torus2.tris +12961 -0
  569. share/doc/dart/data/screencap/.KEEP +0 -0
  570. share/doc/dart/data/sdf/atlas/atlas_v3.urdf +914 -0
  571. share/doc/dart/data/sdf/atlas/atlas_v3_no_head.sdf +1541 -0
  572. share/doc/dart/data/sdf/atlas/atlas_v3_no_head.urdf +914 -0
  573. share/doc/dart/data/sdf/atlas/atlas_v3_no_head_soft_feet.sdf +1567 -0
  574. share/doc/dart/data/sdf/atlas/ground.urdf +28 -0
  575. share/doc/dart/data/sdf/atlas/head.dae +8607 -0
  576. share/doc/dart/data/sdf/atlas/head.stl +0 -0
  577. share/doc/dart/data/sdf/atlas/head_camera.dae +2326 -0
  578. share/doc/dart/data/sdf/atlas/head_camera.stl +0 -0
  579. share/doc/dart/data/sdf/atlas/l_clav.dae +1278 -0
  580. share/doc/dart/data/sdf/atlas/l_clav.stl +0 -0
  581. share/doc/dart/data/sdf/atlas/l_farm.dae +1204 -0
  582. share/doc/dart/data/sdf/atlas/l_farm.stl +0 -0
  583. share/doc/dart/data/sdf/atlas/l_foot.dae +1330 -0
  584. share/doc/dart/data/sdf/atlas/l_foot.stl +0 -0
  585. share/doc/dart/data/sdf/atlas/l_hand.dae +964 -0
  586. share/doc/dart/data/sdf/atlas/l_hand.stl +0 -0
  587. share/doc/dart/data/sdf/atlas/l_larm.dae +1378 -0
  588. share/doc/dart/data/sdf/atlas/l_larm.stl +0 -0
  589. share/doc/dart/data/sdf/atlas/l_lglut.dae +897 -0
  590. share/doc/dart/data/sdf/atlas/l_lglut.stl +0 -0
  591. share/doc/dart/data/sdf/atlas/l_lleg.dae +6660 -0
  592. share/doc/dart/data/sdf/atlas/l_lleg.stl +0 -0
  593. share/doc/dart/data/sdf/atlas/l_scap.dae +1531 -0
  594. share/doc/dart/data/sdf/atlas/l_scap.stl +0 -0
  595. share/doc/dart/data/sdf/atlas/l_talus.dae +374 -0
  596. share/doc/dart/data/sdf/atlas/l_talus.stl +0 -0
  597. share/doc/dart/data/sdf/atlas/l_uarm.dae +1204 -0
  598. share/doc/dart/data/sdf/atlas/l_uarm.stl +0 -0
  599. share/doc/dart/data/sdf/atlas/l_uglut.dae +398 -0
  600. share/doc/dart/data/sdf/atlas/l_uglut.stl +0 -0
  601. share/doc/dart/data/sdf/atlas/l_uleg.dae +9087 -0
  602. share/doc/dart/data/sdf/atlas/l_uleg.stl +0 -0
  603. share/doc/dart/data/sdf/atlas/ltorso.dae +614 -0
  604. share/doc/dart/data/sdf/atlas/ltorso.stl +0 -0
  605. share/doc/dart/data/sdf/atlas/mtorso.dae +266 -0
  606. share/doc/dart/data/sdf/atlas/mtorso.stl +0 -0
  607. share/doc/dart/data/sdf/atlas/pelvis.dae +8727 -0
  608. share/doc/dart/data/sdf/atlas/pelvis.stl +0 -0
  609. share/doc/dart/data/sdf/atlas/r_clav.dae +1278 -0
  610. share/doc/dart/data/sdf/atlas/r_clav.stl +0 -0
  611. share/doc/dart/data/sdf/atlas/r_farm.dae +1204 -0
  612. share/doc/dart/data/sdf/atlas/r_farm.stl +0 -0
  613. share/doc/dart/data/sdf/atlas/r_foot.dae +1330 -0
  614. share/doc/dart/data/sdf/atlas/r_foot.stl +0 -0
  615. share/doc/dart/data/sdf/atlas/r_hand.dae +904 -0
  616. share/doc/dart/data/sdf/atlas/r_hand.stl +0 -0
  617. share/doc/dart/data/sdf/atlas/r_larm.dae +1378 -0
  618. share/doc/dart/data/sdf/atlas/r_larm.stl +0 -0
  619. share/doc/dart/data/sdf/atlas/r_lglut.dae +897 -0
  620. share/doc/dart/data/sdf/atlas/r_lglut.stl +0 -0
  621. share/doc/dart/data/sdf/atlas/r_lleg.dae +6661 -0
  622. share/doc/dart/data/sdf/atlas/r_lleg.stl +0 -0
  623. share/doc/dart/data/sdf/atlas/r_scap.dae +1531 -0
  624. share/doc/dart/data/sdf/atlas/r_scap.stl +0 -0
  625. share/doc/dart/data/sdf/atlas/r_talus.dae +374 -0
  626. share/doc/dart/data/sdf/atlas/r_talus.stl +0 -0
  627. share/doc/dart/data/sdf/atlas/r_uarm.dae +1144 -0
  628. share/doc/dart/data/sdf/atlas/r_uarm.stl +0 -0
  629. share/doc/dart/data/sdf/atlas/r_uglut.dae +398 -0
  630. share/doc/dart/data/sdf/atlas/r_uglut.stl +0 -0
  631. share/doc/dart/data/sdf/atlas/r_uleg.dae +9087 -0
  632. share/doc/dart/data/sdf/atlas/r_uleg.stl +0 -0
  633. share/doc/dart/data/sdf/atlas/utorso.dae +28342 -0
  634. share/doc/dart/data/sdf/atlas/utorso.stl +0 -0
  635. share/doc/dart/data/sdf/atlas/utorso_mod.dae +16508 -0
  636. share/doc/dart/data/sdf/atlas/utorso_mod.stl +0 -0
  637. share/doc/dart/data/sdf/atlas/utorso_pack.dae +8521 -0
  638. share/doc/dart/data/sdf/atlas/utorso_pack.stl +0 -0
  639. share/doc/dart/data/sdf/benchmark.world +2510 -0
  640. share/doc/dart/data/sdf/double_pendulum.world +168 -0
  641. share/doc/dart/data/sdf/double_pendulum_with_base.world +263 -0
  642. share/doc/dart/data/sdf/empty.world +13 -0
  643. share/doc/dart/data/sdf/ground.world +48 -0
  644. share/doc/dart/data/sdf/materials/textures/atlas_cage_and_camera_diffuse_flat.jpg +0 -0
  645. share/doc/dart/data/sdf/materials/textures/drc_extremities_diffuse.jpg +0 -0
  646. share/doc/dart/data/sdf/materials/textures/drc_labels_1.jpg +0 -0
  647. share/doc/dart/data/sdf/materials/textures/drc_torso_head_diffuse.jpg +0 -0
  648. share/doc/dart/data/sdf/materials/textures/extremities_diffuse_unplugged.jpg +0 -0
  649. share/doc/dart/data/sdf/materials/textures/right_leg_diffuse_unplugged.jpg +0 -0
  650. share/doc/dart/data/sdf/materials/textures/torso_diffuse_unplugged.jpg +0 -0
  651. share/doc/dart/data/sdf/quad.sdf +867 -0
  652. share/doc/dart/data/sdf/test/force_torque_test.world +173 -0
  653. share/doc/dart/data/sdf/test/force_torque_test2.world +214 -0
  654. share/doc/dart/data/sdf/test/issue1193_revolute_test.sdf +70 -0
  655. share/doc/dart/data/sdf/test/issue1193_revolute_with_offset_test.sdf +70 -0
  656. share/doc/dart/data/sdf/test/issue1624_cubes.sdf +5037 -0
  657. share/doc/dart/data/sdf/test/single_bodynode_skeleton.world +55 -0
  658. share/doc/dart/data/sdf/test/test_issue1583.model +45 -0
  659. share/doc/dart/data/sdf/test/test_issue1596.model +182 -0
  660. share/doc/dart/data/sdf/test/test_skeleton_joint.world +278 -0
  661. share/doc/dart/data/skel/biped.skel +850 -0
  662. share/doc/dart/data/skel/bullet_collision.skel +174 -0
  663. share/doc/dart/data/skel/chain.skel +212 -0
  664. share/doc/dart/data/skel/cube.skel +71 -0
  665. share/doc/dart/data/skel/cubes.skel +137 -0
  666. share/doc/dart/data/skel/empty.skel +10 -0
  667. share/doc/dart/data/skel/freeChain.skel +212 -0
  668. share/doc/dart/data/skel/fullbody1.skel +1177 -0
  669. share/doc/dart/data/skel/ground.skel +31 -0
  670. share/doc/dart/data/skel/joint_limit.skel +123 -0
  671. share/doc/dart/data/skel/kima/abdomen.dae +18933 -0
  672. share/doc/dart/data/skel/kima/head.dae +34634 -0
  673. share/doc/dart/data/skel/kima/kima_human_edited.skel +933 -0
  674. share/doc/dart/data/skel/kima/kima_human_left_arm.skel +323 -0
  675. share/doc/dart/data/skel/kima/kima_human_left_leg.skel +327 -0
  676. share/doc/dart/data/skel/kima/l-clavicle.dae +20111 -0
  677. share/doc/dart/data/skel/kima/l-foot.dae +28208 -0
  678. share/doc/dart/data/skel/kima/pelvis.dae +35919 -0
  679. share/doc/dart/data/skel/kima/r-clavicle.dae +20090 -0
  680. share/doc/dart/data/skel/kima/thorax.dae +47337 -0
  681. share/doc/dart/data/skel/mesh_collision.skel +137 -0
  682. share/doc/dart/data/skel/shapes.skel +378 -0
  683. share/doc/dart/data/skel/skateboard.skel +222 -0
  684. share/doc/dart/data/skel/softBodies.skel +284 -0
  685. share/doc/dart/data/skel/soft_cubes.skel +134 -0
  686. share/doc/dart/data/skel/soft_open_chain.skel +241 -0
  687. share/doc/dart/data/skel/sphere.skel +74 -0
  688. share/doc/dart/data/skel/spheres.skel +118 -0
  689. share/doc/dart/data/skel/test/SimplePendulum.skel +141 -0
  690. share/doc/dart/data/skel/test/ball_joints.skel +49 -0
  691. share/doc/dart/data/skel/test/box_stacking.skel +346 -0
  692. share/doc/dart/data/skel/test/boxes.skel +52 -0
  693. share/doc/dart/data/skel/test/chainwhipa.skel +193 -0
  694. share/doc/dart/data/skel/test/collision_of_prescribed_joints_test.skel +249 -0
  695. share/doc/dart/data/skel/test/dof_attribute_test.skel +206 -0
  696. share/doc/dart/data/skel/test/double_pendulum.skel +76 -0
  697. share/doc/dart/data/skel/test/double_pendulum_ball_joint.skel +76 -0
  698. share/doc/dart/data/skel/test/double_pendulum_euler_joint.skel +78 -0
  699. share/doc/dart/data/skel/test/double_pendulum_with_base.skel +1390 -0
  700. share/doc/dart/data/skel/test/drop.skel +116 -0
  701. share/doc/dart/data/skel/test/drop_BENCHMARK.skel +10 -0
  702. share/doc/dart/data/skel/test/drop_unrotated_box.skel +156 -0
  703. share/doc/dart/data/skel/test/empty.skel +10 -0
  704. share/doc/dart/data/skel/test/file_info_world_test.skel +1177 -0
  705. share/doc/dart/data/skel/test/free_joints.skel +49 -0
  706. share/doc/dart/data/skel/test/gazebo/drop_test.skel +161 -0
  707. share/doc/dart/data/skel/test/gazebo/force_torque_test.skel +138 -0
  708. share/doc/dart/data/skel/test/gazebo/force_torque_test2.skel +171 -0
  709. share/doc/dart/data/skel/test/hybrid_dynamics_test.skel +172 -0
  710. share/doc/dart/data/skel/test/joint_actuator_type_test.skel +185 -0
  711. share/doc/dart/data/skel/test/joint_dynamics_elements_test.skel +103 -0
  712. share/doc/dart/data/skel/test/joint_friction_test.skel +80 -0
  713. share/doc/dart/data/skel/test/joint_limit_test.skel +80 -0
  714. share/doc/dart/data/skel/test/planar_joint.skel +167 -0
  715. share/doc/dart/data/skel/test/serial_chain_BENCHMARK.skel +10 -0
  716. share/doc/dart/data/skel/test/serial_chain_ball_joint.skel +212 -0
  717. share/doc/dart/data/skel/test/serial_chain_ball_joint_20.skel +412 -0
  718. share/doc/dart/data/skel/test/serial_chain_ball_joint_40.skel +812 -0
  719. share/doc/dart/data/skel/test/serial_chain_eulerxyz_joint.skel +224 -0
  720. share/doc/dart/data/skel/test/serial_chain_revolute_joint.skel +244 -0
  721. share/doc/dart/data/skel/test/simple_tree_structure.skel +108 -0
  722. share/doc/dart/data/skel/test/simple_tree_structure_ball_joint.skel +108 -0
  723. share/doc/dart/data/skel/test/simple_tree_structure_euler_joint.skel +111 -0
  724. share/doc/dart/data/skel/test/single_pendulum.skel +55 -0
  725. share/doc/dart/data/skel/test/single_pendulum_ball_joint.skel +55 -0
  726. share/doc/dart/data/skel/test/single_pendulum_euler_joint.skel +56 -0
  727. share/doc/dart/data/skel/test/spheres.skel +118 -0
  728. share/doc/dart/data/skel/test/test_adaptive_deformable.skel +88 -0
  729. share/doc/dart/data/skel/test/test_articulated_bodies.skel +112 -0
  730. share/doc/dart/data/skel/test/test_articulated_bodies_10bodies.skel +401 -0
  731. share/doc/dart/data/skel/test/test_double_pendulum.skel +105 -0
  732. share/doc/dart/data/skel/test/test_drop_box.skel +87 -0
  733. share/doc/dart/data/skel/test/test_drop_box_offset.skel +87 -0
  734. share/doc/dart/data/skel/test/test_drop_low_stiffness.skel +86 -0
  735. share/doc/dart/data/skel/test/test_drop_sphere.skel +86 -0
  736. share/doc/dart/data/skel/test/test_shapes.skel +324 -0
  737. share/doc/dart/data/skel/test/test_single_body.skel +55 -0
  738. share/doc/dart/data/skel/test/test_single_pendulum.skel +55 -0
  739. share/doc/dart/data/skel/test/translational_joints.skel +49 -0
  740. share/doc/dart/data/skel/test/tree_structure.skel +428 -0
  741. share/doc/dart/data/skel/test/tree_structure_ball_joint.skel +441 -0
  742. share/doc/dart/data/skel/test/tree_structure_euler_joint.skel +441 -0
  743. share/doc/dart/data/skel/two_cubes.skel +118 -0
  744. share/doc/dart/data/skel/vehicle.skel +322 -0
  745. share/doc/dart/data/test/hello_world.txt +1 -0
  746. share/doc/dart/data/urdf/KR5/KR5 sixx R650.urdf +397 -0
  747. share/doc/dart/data/urdf/KR5/ground.urdf +28 -0
  748. share/doc/dart/data/urdf/KR5/meshes/base_link.STL +0 -0
  749. share/doc/dart/data/urdf/KR5/meshes/bicep.STL +0 -0
  750. share/doc/dart/data/urdf/KR5/meshes/elbow.STL +0 -0
  751. share/doc/dart/data/urdf/KR5/meshes/forearm.STL +0 -0
  752. share/doc/dart/data/urdf/KR5/meshes/palm.STL +0 -0
  753. share/doc/dart/data/urdf/KR5/meshes/shoulder.STL +0 -0
  754. share/doc/dart/data/urdf/KR5/meshes/wrist.STL +0 -0
  755. share/doc/dart/data/urdf/drchubo/CMakeLists.txt +5 -0
  756. share/doc/dart/data/urdf/drchubo/drchubo.urdf +1508 -0
  757. share/doc/dart/data/urdf/drchubo/meshes/convhull_LAP_merged.stl +0 -0
  758. share/doc/dart/data/urdf/drchubo/meshes/convhull_LAR_merged.stl +0 -0
  759. share/doc/dart/data/urdf/drchubo/meshes/convhull_LEP_merged.stl +0 -0
  760. share/doc/dart/data/urdf/drchubo/meshes/convhull_LF1.stl +0 -0
  761. share/doc/dart/data/urdf/drchubo/meshes/convhull_LF2.stl +0 -0
  762. share/doc/dart/data/urdf/drchubo/meshes/convhull_LF3.stl +0 -0
  763. share/doc/dart/data/urdf/drchubo/meshes/convhull_LHP_merged.stl +0 -0
  764. share/doc/dart/data/urdf/drchubo/meshes/convhull_LHR_merged.stl +0 -0
  765. share/doc/dart/data/urdf/drchubo/meshes/convhull_LHY_merged.stl +0 -0
  766. share/doc/dart/data/urdf/drchubo/meshes/convhull_LKP_merged.stl +0 -0
  767. share/doc/dart/data/urdf/drchubo/meshes/convhull_LSP_merged.stl +0 -0
  768. share/doc/dart/data/urdf/drchubo/meshes/convhull_LSR_merged.stl +0 -0
  769. share/doc/dart/data/urdf/drchubo/meshes/convhull_LSY_merged.stl +0 -0
  770. share/doc/dart/data/urdf/drchubo/meshes/convhull_LWP_merged.stl +0 -0
  771. share/doc/dart/data/urdf/drchubo/meshes/convhull_LWR_merged.stl +0 -0
  772. share/doc/dart/data/urdf/drchubo/meshes/convhull_LWY_merged.stl +0 -0
  773. share/doc/dart/data/urdf/drchubo/meshes/convhull_NK1_merged.stl +0 -0
  774. share/doc/dart/data/urdf/drchubo/meshes/convhull_NK2.stl +0 -0
  775. share/doc/dart/data/urdf/drchubo/meshes/convhull_NKY_merged.stl +0 -0
  776. share/doc/dart/data/urdf/drchubo/meshes/convhull_RAP_merged.stl +0 -0
  777. share/doc/dart/data/urdf/drchubo/meshes/convhull_RAR_merged.stl +0 -0
  778. share/doc/dart/data/urdf/drchubo/meshes/convhull_REP_merged.stl +0 -0
  779. share/doc/dart/data/urdf/drchubo/meshes/convhull_RF1.stl +0 -0
  780. share/doc/dart/data/urdf/drchubo/meshes/convhull_RF2.stl +0 -0
  781. share/doc/dart/data/urdf/drchubo/meshes/convhull_RF3.stl +0 -0
  782. share/doc/dart/data/urdf/drchubo/meshes/convhull_RHP_merged.stl +0 -0
  783. share/doc/dart/data/urdf/drchubo/meshes/convhull_RHR_merged.stl +0 -0
  784. share/doc/dart/data/urdf/drchubo/meshes/convhull_RHY_merged.stl +0 -0
  785. share/doc/dart/data/urdf/drchubo/meshes/convhull_RKP_merged.stl +0 -0
  786. share/doc/dart/data/urdf/drchubo/meshes/convhull_RSP_merged.stl +0 -0
  787. share/doc/dart/data/urdf/drchubo/meshes/convhull_RSR_merged.stl +0 -0
  788. share/doc/dart/data/urdf/drchubo/meshes/convhull_RSY_merged.stl +0 -0
  789. share/doc/dart/data/urdf/drchubo/meshes/convhull_RWP_merged.stl +0 -0
  790. share/doc/dart/data/urdf/drchubo/meshes/convhull_RWR_merged.stl +0 -0
  791. share/doc/dart/data/urdf/drchubo/meshes/convhull_RWY_merged.stl +0 -0
  792. share/doc/dart/data/urdf/drchubo/meshes/convhull_TSY_merged.stl +0 -0
  793. share/doc/dart/data/urdf/drchubo/meshes/convhull_Torso_merged.stl +0 -0
  794. share/doc/dart/data/urdf/drchubo/package.xml +11 -0
  795. share/doc/dart/data/urdf/test/invalid.urdf +1 -0
  796. share/doc/dart/data/urdf/test/invalid_mesh.stl +1 -0
  797. share/doc/dart/data/urdf/test/invalid_mesh.urdf +10 -0
  798. share/doc/dart/data/urdf/test/issue838.urdf +86 -0
  799. share/doc/dart/data/urdf/test/joint_properties.urdf +60 -0
  800. share/doc/dart/data/urdf/test/missing_mesh.urdf +10 -0
  801. share/doc/dart/data/urdf/test/missing_package.urdf +10 -0
  802. share/doc/dart/data/urdf/test/primitive_geometry.urdf +12 -0
  803. share/doc/dart/data/urdf/test/testWorld.urdf +9 -0
  804. share/doc/dart/data/urdf/wam/meshes/images/base_gray_128x.jpg +0 -0
  805. share/doc/dart/data/urdf/wam/meshes/images/forearm_256x.jpg +0 -0
  806. share/doc/dart/data/urdf/wam/meshes/images/lpu_128x.jpg +0 -0
  807. share/doc/dart/data/urdf/wam/meshes/images/shoulder_256x.jpg +0 -0
  808. share/doc/dart/data/urdf/wam/meshes/images/upperarm_128x.jpg +0 -0
  809. share/doc/dart/data/urdf/wam/meshes/images/wrist_yaw_128x.jpg +0 -0
  810. share/doc/dart/data/urdf/wam/meshes/wam/wam1.STL +0 -0
  811. share/doc/dart/data/urdf/wam/meshes/wam/wam1.dae +187 -0
  812. share/doc/dart/data/urdf/wam/meshes/wam/wam1_collision.STL +0 -0
  813. share/doc/dart/data/urdf/wam/meshes/wam/wam2.STL +0 -0
  814. share/doc/dart/data/urdf/wam/meshes/wam/wam2.dae +187 -0
  815. share/doc/dart/data/urdf/wam/meshes/wam/wam2_collision.STL +0 -0
  816. share/doc/dart/data/urdf/wam/meshes/wam/wam3.STL +0 -0
  817. share/doc/dart/data/urdf/wam/meshes/wam/wam3.dae +187 -0
  818. share/doc/dart/data/urdf/wam/meshes/wam/wam3_collision.STL +0 -0
  819. share/doc/dart/data/urdf/wam/meshes/wam/wam4.STL +0 -0
  820. share/doc/dart/data/urdf/wam/meshes/wam/wam4.dae +187 -0
  821. share/doc/dart/data/urdf/wam/meshes/wam/wam4_collision.STL +0 -0
  822. share/doc/dart/data/urdf/wam/meshes/wam/wam5.STL +0 -0
  823. share/doc/dart/data/urdf/wam/meshes/wam/wam5.dae +187 -0
  824. share/doc/dart/data/urdf/wam/meshes/wam/wam5_collision.STL +0 -0
  825. share/doc/dart/data/urdf/wam/meshes/wam/wam6.STL +0 -0
  826. share/doc/dart/data/urdf/wam/meshes/wam/wam6.dae +187 -0
  827. share/doc/dart/data/urdf/wam/meshes/wam/wam6_collision.STL +0 -0
  828. share/doc/dart/data/urdf/wam/meshes/wam/wam7.STL +0 -0
  829. share/doc/dart/data/urdf/wam/meshes/wam/wam7.dae +137 -0
  830. share/doc/dart/data/urdf/wam/meshes/wam/wam7_collision.STL +0 -0
  831. share/doc/dart/data/urdf/wam/meshes/wam/wam_base.STL +0 -0
  832. share/doc/dart/data/urdf/wam/meshes/wam/wam_base.dae +103 -0
  833. share/doc/dart/data/urdf/wam/meshes/wam/wam_base_collision.STL +0 -0
  834. share/doc/dart/data/urdf/wam/wam.urdf +230 -0
  835. share/doc/dart/data/vsk/Nick01.vsk +398 -0
  836. share/doc/dart/data/vsk/SehoonVSK3.vsk +398 -0
  837. share/doc/dart/data/vsk/Yuting.vsk +398 -0
  838. share/doc/dart/data/vsk/test/empty.vsk +3 -0
  839. share/doc/dart/examples/CMakeLists.txt +44 -0
  840. share/doc/dart/examples/README.md +33 -0
  841. share/doc/dart/examples/add_delete_skels/CMakeLists.txt +19 -0
  842. share/doc/dart/examples/add_delete_skels/main.cpp +165 -0
  843. share/doc/dart/examples/atlas_puppet/CMakeLists.txt +19 -0
  844. share/doc/dart/examples/atlas_puppet/README.md +20 -0
  845. share/doc/dart/examples/atlas_puppet/main.cpp +930 -0
  846. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconEventHandler.cpp +71 -0
  847. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconEventHandler.hpp +56 -0
  848. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWidget.cpp +187 -0
  849. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWidget.hpp +85 -0
  850. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWorldNode.cpp +134 -0
  851. share/doc/dart/examples/atlas_simbicon/AtlasSimbiconWorldNode.hpp +75 -0
  852. share/doc/dart/examples/atlas_simbicon/CMakeLists.txt +19 -0
  853. share/doc/dart/examples/atlas_simbicon/Controller.cpp +996 -0
  854. share/doc/dart/examples/atlas_simbicon/Controller.hpp +203 -0
  855. share/doc/dart/examples/atlas_simbicon/README.md +20 -0
  856. share/doc/dart/examples/atlas_simbicon/State.cpp +674 -0
  857. share/doc/dart/examples/atlas_simbicon/State.hpp +336 -0
  858. share/doc/dart/examples/atlas_simbicon/StateMachine.cpp +222 -0
  859. share/doc/dart/examples/atlas_simbicon/StateMachine.hpp +134 -0
  860. share/doc/dart/examples/atlas_simbicon/TerminalCondition.cpp +111 -0
  861. share/doc/dart/examples/atlas_simbicon/TerminalCondition.hpp +102 -0
  862. share/doc/dart/examples/atlas_simbicon/main.cpp +102 -0
  863. share/doc/dart/examples/biped_stand/CMakeLists.txt +19 -0
  864. share/doc/dart/examples/biped_stand/README.md +20 -0
  865. share/doc/dart/examples/biped_stand/main.cpp +287 -0
  866. share/doc/dart/examples/box_stacking/CMakeLists.txt +19 -0
  867. share/doc/dart/examples/box_stacking/README.md +20 -0
  868. share/doc/dart/examples/box_stacking/main.cpp +417 -0
  869. share/doc/dart/examples/boxes/CMakeLists.txt +19 -0
  870. share/doc/dart/examples/boxes/README.md +20 -0
  871. share/doc/dart/examples/boxes/main.cpp +157 -0
  872. share/doc/dart/examples/drag_and_drop/CMakeLists.txt +19 -0
  873. share/doc/dart/examples/drag_and_drop/README.md +20 -0
  874. share/doc/dart/examples/drag_and_drop/main.cpp +101 -0
  875. share/doc/dart/examples/empty/CMakeLists.txt +19 -0
  876. share/doc/dart/examples/empty/README.md +20 -0
  877. share/doc/dart/examples/empty/main.cpp +164 -0
  878. share/doc/dart/examples/fetch/CMakeLists.txt +19 -0
  879. share/doc/dart/examples/fetch/README.md +20 -0
  880. share/doc/dart/examples/fetch/main.cpp +246 -0
  881. share/doc/dart/examples/hardcoded_design/CMakeLists.txt +19 -0
  882. share/doc/dart/examples/hardcoded_design/HardcodedEventHandler.cpp +71 -0
  883. share/doc/dart/examples/hardcoded_design/HardcodedEventHandler.hpp +56 -0
  884. share/doc/dart/examples/hardcoded_design/README.md +27 -0
  885. share/doc/dart/examples/hardcoded_design/main.cpp +186 -0
  886. share/doc/dart/examples/heightmap/CMakeLists.txt +19 -0
  887. share/doc/dart/examples/heightmap/README.md +20 -0
  888. share/doc/dart/examples/heightmap/main.cpp +460 -0
  889. share/doc/dart/examples/hello_world/CMakeLists.txt +19 -0
  890. share/doc/dart/examples/hello_world/README.md +20 -0
  891. share/doc/dart/examples/hello_world/main.cpp +114 -0
  892. share/doc/dart/examples/hubo_puppet/CMakeLists.txt +19 -0
  893. share/doc/dart/examples/hubo_puppet/README.md +20 -0
  894. share/doc/dart/examples/hubo_puppet/main.cpp +1464 -0
  895. share/doc/dart/examples/human_joint_limits/CMakeLists.txt +49 -0
  896. share/doc/dart/examples/human_joint_limits/HumanArmJointLimitConstraint.cpp +411 -0
  897. share/doc/dart/examples/human_joint_limits/HumanArmJointLimitConstraint.hpp +182 -0
  898. share/doc/dart/examples/human_joint_limits/HumanLegJointLimitConstraint.cpp +432 -0
  899. share/doc/dart/examples/human_joint_limits/HumanLegJointLimitConstraint.hpp +179 -0
  900. share/doc/dart/examples/human_joint_limits/main.cpp +157 -0
  901. share/doc/dart/examples/hybrid_dynamics/CMakeLists.txt +19 -0
  902. share/doc/dart/examples/hybrid_dynamics/README.md +17 -0
  903. share/doc/dart/examples/hybrid_dynamics/main.cpp +187 -0
  904. share/doc/dart/examples/imgui/CMakeLists.txt +19 -0
  905. share/doc/dart/examples/imgui/README.md +20 -0
  906. share/doc/dart/examples/imgui/main.cpp +289 -0
  907. share/doc/dart/examples/joint_constraints/CMakeLists.txt +19 -0
  908. share/doc/dart/examples/joint_constraints/Controller.cpp +110 -0
  909. share/doc/dart/examples/joint_constraints/Controller.hpp +105 -0
  910. share/doc/dart/examples/joint_constraints/README.md +22 -0
  911. share/doc/dart/examples/joint_constraints/main.cpp +242 -0
  912. share/doc/dart/examples/mixed_chain/CMakeLists.txt +19 -0
  913. share/doc/dart/examples/mixed_chain/README.md +35 -0
  914. share/doc/dart/examples/mixed_chain/main.cpp +188 -0
  915. share/doc/dart/examples/operational_space_control/CMakeLists.txt +19 -0
  916. share/doc/dart/examples/operational_space_control/README.md +20 -0
  917. share/doc/dart/examples/operational_space_control/main.cpp +338 -0
  918. share/doc/dart/examples/point_cloud/CMakeLists.txt +19 -0
  919. share/doc/dart/examples/point_cloud/README.md +20 -0
  920. share/doc/dart/examples/point_cloud/main.cpp +740 -0
  921. share/doc/dart/examples/rerun/CMakeLists.txt +19 -0
  922. share/doc/dart/examples/rigid_chain/CMakeLists.txt +19 -0
  923. share/doc/dart/examples/rigid_chain/README.md +19 -0
  924. share/doc/dart/examples/rigid_chain/main.cpp +110 -0
  925. share/doc/dart/examples/rigid_cubes/CMakeLists.txt +19 -0
  926. share/doc/dart/examples/rigid_cubes/README.md +91 -0
  927. share/doc/dart/examples/rigid_cubes/main.cpp +201 -0
  928. share/doc/dart/examples/rigid_loop/CMakeLists.txt +19 -0
  929. share/doc/dart/examples/rigid_loop/README.md +34 -0
  930. share/doc/dart/examples/rigid_loop/main.cpp +127 -0
  931. share/doc/dart/examples/rigid_shapes/CMakeLists.txt +19 -0
  932. share/doc/dart/examples/rigid_shapes/README.md +19 -0
  933. share/doc/dart/examples/rigid_shapes/main.cpp +250 -0
  934. share/doc/dart/examples/simple_frames/CMakeLists.txt +19 -0
  935. share/doc/dart/examples/simple_frames/README.md +27 -0
  936. share/doc/dart/examples/simple_frames/main.cpp +124 -0
  937. share/doc/dart/examples/simulation_event_handler/CMakeLists.txt +19 -0
  938. share/doc/dart/examples/simulation_event_handler/README.md +189 -0
  939. share/doc/dart/examples/simulation_event_handler/SimulationEventHandler.cpp +572 -0
  940. share/doc/dart/examples/simulation_event_handler/SimulationEventHandler.hpp +211 -0
  941. share/doc/dart/examples/simulation_event_handler/main.cpp +277 -0
  942. share/doc/dart/examples/soft_bodies/CMakeLists.txt +19 -0
  943. share/doc/dart/examples/soft_bodies/README.md +20 -0
  944. share/doc/dart/examples/soft_bodies/main.cpp +219 -0
  945. share/doc/dart/examples/speed_test/CMakeLists.txt +19 -0
  946. share/doc/dart/examples/speed_test/README.md +20 -0
  947. share/doc/dart/examples/speed_test/main.cpp +250 -0
  948. share/doc/dart/examples/tinkertoy/CMakeLists.txt +19 -0
  949. share/doc/dart/examples/tinkertoy/README.md +20 -0
  950. share/doc/dart/examples/tinkertoy/TinkertoyWidget.cpp +208 -0
  951. share/doc/dart/examples/tinkertoy/TinkertoyWidget.hpp +70 -0
  952. share/doc/dart/examples/tinkertoy/TinkertoyWorldNode.cpp +35 -0
  953. share/doc/dart/examples/tinkertoy/TinkertoyWorldNode.hpp +470 -0
  954. share/doc/dart/examples/tinkertoy/main.cpp +186 -0
  955. share/doc/dart/examples/vehicle/CMakeLists.txt +19 -0
  956. share/doc/dart/examples/vehicle/README.md +22 -0
  957. share/doc/dart/examples/vehicle/main.cpp +195 -0
  958. share/doc/dart/examples/wam_ikfast/CMakeLists.txt +22 -0
  959. share/doc/dart/examples/wam_ikfast/Helpers.cpp +148 -0
  960. share/doc/dart/examples/wam_ikfast/Helpers.hpp +46 -0
  961. share/doc/dart/examples/wam_ikfast/InputHandler.cpp +110 -0
  962. share/doc/dart/examples/wam_ikfast/InputHandler.hpp +73 -0
  963. share/doc/dart/examples/wam_ikfast/README.md +20 -0
  964. share/doc/dart/examples/wam_ikfast/WamWorld.cpp +46 -0
  965. share/doc/dart/examples/wam_ikfast/WamWorld.hpp +53 -0
  966. share/doc/dart/examples/wam_ikfast/ikfast/CMakeLists.txt +11 -0
  967. share/doc/dart/examples/wam_ikfast/ikfast/ikfast71.Transform6D.4_6_9_10_11_12_f8.cpp +14930 -0
  968. share/doc/dart/examples/wam_ikfast/osgWamIkFast.cpp +96 -0
  969. share/doc/dart/tutorials/CMakeLists.txt +12 -0
  970. share/doc/dart/tutorials/README.md +45 -0
  971. share/doc/dart/tutorials/tutorial_biped/CMakeLists.txt +19 -0
  972. share/doc/dart/tutorials/tutorial_biped/README +18 -0
  973. share/doc/dart/tutorials/tutorial_biped/main.cpp +374 -0
  974. share/doc/dart/tutorials/tutorial_biped_finished/CMakeLists.txt +19 -0
  975. share/doc/dart/tutorials/tutorial_biped_finished/README +18 -0
  976. share/doc/dart/tutorials/tutorial_biped_finished/main.cpp +532 -0
  977. share/doc/dart/tutorials/tutorial_collisions/CMakeLists.txt +19 -0
  978. share/doc/dart/tutorials/tutorial_collisions/README +18 -0
  979. share/doc/dart/tutorials/tutorial_collisions/main.cpp +506 -0
  980. share/doc/dart/tutorials/tutorial_collisions_finished/CMakeLists.txt +19 -0
  981. share/doc/dart/tutorials/tutorial_collisions_finished/README +18 -0
  982. share/doc/dart/tutorials/tutorial_collisions_finished/main.cpp +679 -0
  983. share/doc/dart/tutorials/tutorial_dominoes/CMakeLists.txt +19 -0
  984. share/doc/dart/tutorials/tutorial_dominoes/README +18 -0
  985. share/doc/dart/tutorials/tutorial_dominoes/main.cpp +394 -0
  986. share/doc/dart/tutorials/tutorial_dominoes_finished/CMakeLists.txt +19 -0
  987. share/doc/dart/tutorials/tutorial_dominoes_finished/README +18 -0
  988. share/doc/dart/tutorials/tutorial_dominoes_finished/main.cpp +559 -0
  989. share/doc/dart/tutorials/tutorial_multi_pendulum/CMakeLists.txt +19 -0
  990. share/doc/dart/tutorials/tutorial_multi_pendulum/README +18 -0
  991. share/doc/dart/tutorials/tutorial_multi_pendulum/main.cpp +443 -0
  992. share/doc/dart/tutorials/tutorial_multi_pendulum_finished/CMakeLists.txt +19 -0
  993. share/doc/dart/tutorials/tutorial_multi_pendulum_finished/README +18 -0
  994. 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_