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,930 @@
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
+ #include <dart/gui/osg/osg.hpp>
34
+
35
+ #include <dart/utils/all.hpp>
36
+ #include <dart/utils/urdf/all.hpp>
37
+
38
+ #include <dart/dart.hpp>
39
+
40
+ using namespace dart::common;
41
+ using namespace dart::dynamics;
42
+ using namespace dart::simulation;
43
+ using namespace dart::utils;
44
+ using namespace dart::math;
45
+
46
+ const double display_elevation = 0.05;
47
+
48
+ class RelaxedPosture : public dart::optimizer::Function
49
+ {
50
+ public:
51
+ RelaxedPosture(
52
+ const Eigen::VectorXd& idealPosture,
53
+ const Eigen::VectorXd& lower,
54
+ const Eigen::VectorXd& upper,
55
+ const Eigen::VectorXd& weights,
56
+ bool enforceIdeal = false)
57
+ : enforceIdealPosture(enforceIdeal),
58
+ mIdeal(idealPosture),
59
+ mLower(lower),
60
+ mUpper(upper),
61
+ mWeights(weights)
62
+ {
63
+ int dofs = mIdeal.size();
64
+ if (mLower.size() != dofs || mWeights.size() != dofs
65
+ || mUpper.size() != dofs) {
66
+ dterr << "[RelaxedPose::RelaxedPose] Dimension mismatch:\n"
67
+ << " ideal: " << mIdeal.size() << "\n"
68
+ << " lower: " << mLower.size() << "\n"
69
+ << " upper: " << mUpper.size() << "\n"
70
+ << " weights: " << mWeights.size() << "\n";
71
+ }
72
+ mResultVector.setZero(dofs);
73
+ }
74
+
75
+ double eval(const Eigen::VectorXd& _x) override
76
+ {
77
+ computeResultVector(_x);
78
+ return 0.5 * mResultVector.dot(mResultVector);
79
+ }
80
+
81
+ void evalGradient(
82
+ const Eigen::VectorXd& _x, Eigen::Map<Eigen::VectorXd> _grad) override
83
+ {
84
+ computeResultVector(_x);
85
+
86
+ _grad.setZero();
87
+ int smaller = std::min(mResultVector.size(), _grad.size());
88
+ for (int i = 0; i < smaller; ++i)
89
+ _grad[i] = mResultVector[i];
90
+ }
91
+
92
+ void computeResultVector(const Eigen::VectorXd& _x)
93
+ {
94
+ mResultVector.setZero();
95
+
96
+ if (enforceIdealPosture) {
97
+ // Try to get the robot into the best possible posture
98
+ for (int i = 0; i < _x.size(); ++i) {
99
+ if (mIdeal.size() <= i)
100
+ break;
101
+
102
+ mResultVector[i] = mWeights[i] * (_x[i] - mIdeal[i]);
103
+ }
104
+ } else {
105
+ // Only adjust the posture if it is really bad
106
+ for (int i = 0; i < _x.size(); ++i) {
107
+ if (mIdeal.size() <= i)
108
+ break;
109
+
110
+ if (_x[i] < mLower[i])
111
+ mResultVector[i] = mWeights[i] * (_x[i] - mLower[i]);
112
+ else if (mUpper[i] < _x[i])
113
+ mResultVector[i] = mWeights[i] * (_x[i] - mUpper[i]);
114
+ }
115
+ }
116
+ }
117
+
118
+ bool enforceIdealPosture;
119
+
120
+ protected:
121
+ Eigen::VectorXd mResultVector;
122
+
123
+ Eigen::VectorXd mIdeal;
124
+
125
+ Eigen::VectorXd mLower;
126
+
127
+ Eigen::VectorXd mUpper;
128
+
129
+ Eigen::VectorXd mWeights;
130
+ };
131
+
132
+ class TeleoperationWorld : public dart::gui::osg::WorldNode
133
+ {
134
+ public:
135
+ enum MoveEnum_t
136
+ {
137
+ MOVE_Q = 0,
138
+ MOVE_W,
139
+ MOVE_E,
140
+ MOVE_A,
141
+ MOVE_S,
142
+ MOVE_D,
143
+ MOVE_F,
144
+ MOVE_Z,
145
+
146
+ NUM_MOVE
147
+ };
148
+
149
+ TeleoperationWorld(WorldPtr _world, SkeletonPtr _robot)
150
+ : dart::gui::osg::WorldNode(_world),
151
+ mAtlas(_robot),
152
+ iter(0),
153
+ l_foot(_robot->getEndEffector("l_foot")),
154
+ r_foot(_robot->getEndEffector("r_foot"))
155
+ {
156
+ mMoveComponents.resize(NUM_MOVE, false);
157
+ mAnyMovement = false;
158
+ }
159
+
160
+ void setMovement(const std::vector<bool>& moveComponents)
161
+ {
162
+ mMoveComponents = moveComponents;
163
+
164
+ mAnyMovement = false;
165
+
166
+ for (bool move : mMoveComponents) {
167
+ if (move) {
168
+ mAnyMovement = true;
169
+ break;
170
+ }
171
+ }
172
+ }
173
+
174
+ void customPreRefresh() override
175
+ {
176
+ if (mAnyMovement) {
177
+ Eigen::Isometry3d old_tf = mAtlas->getBodyNode(0)->getWorldTransform();
178
+ Eigen::Isometry3d new_tf = Eigen::Isometry3d::Identity();
179
+ Eigen::Vector3d forward = old_tf.linear().col(0);
180
+ forward[2] = 0.0;
181
+ if (forward.norm() > 1e-10)
182
+ forward.normalize();
183
+ else
184
+ forward.setZero();
185
+
186
+ Eigen::Vector3d left = old_tf.linear().col(1);
187
+ left[2] = 0.0;
188
+ if (left.norm() > 1e-10)
189
+ left.normalize();
190
+ else
191
+ left.setZero();
192
+
193
+ const Eigen::Vector3d& up = Eigen::Vector3d::UnitZ();
194
+
195
+ const double linearStep = 0.01;
196
+ const double elevationStep = 0.2 * linearStep;
197
+ const double rotationalStep = 2.0 * constantsd::pi() / 180.0;
198
+
199
+ if (mMoveComponents[MOVE_W])
200
+ new_tf.translate(linearStep * forward);
201
+
202
+ if (mMoveComponents[MOVE_S])
203
+ new_tf.translate(-linearStep * forward);
204
+
205
+ if (mMoveComponents[MOVE_A])
206
+ new_tf.translate(linearStep * left);
207
+
208
+ if (mMoveComponents[MOVE_D])
209
+ new_tf.translate(-linearStep * left);
210
+
211
+ if (mMoveComponents[MOVE_F])
212
+ new_tf.translate(elevationStep * up);
213
+
214
+ if (mMoveComponents[MOVE_Z])
215
+ new_tf.translate(-elevationStep * up);
216
+
217
+ if (mMoveComponents[MOVE_Q])
218
+ new_tf.rotate(Eigen::AngleAxisd(rotationalStep, up));
219
+
220
+ if (mMoveComponents[MOVE_E])
221
+ new_tf.rotate(Eigen::AngleAxisd(-rotationalStep, up));
222
+
223
+ new_tf.pretranslate(old_tf.translation());
224
+ new_tf.rotate(old_tf.rotation());
225
+
226
+ mAtlas->getJoint(0)->setPositions(FreeJoint::convertToPositions(new_tf));
227
+ }
228
+
229
+ bool solved = mAtlas->getIK(true)->solveAndApply(true);
230
+
231
+ if (!solved)
232
+ ++iter;
233
+ else
234
+ iter = 0;
235
+
236
+ if (iter == 1000) {
237
+ std::cout << "Failing!" << std::endl;
238
+ }
239
+ }
240
+
241
+ protected:
242
+ SkeletonPtr mAtlas;
243
+ std::size_t iter;
244
+
245
+ EndEffectorPtr l_foot;
246
+ EndEffectorPtr r_foot;
247
+
248
+ Eigen::VectorXd grad;
249
+
250
+ std::vector<bool> mMoveComponents;
251
+
252
+ bool mAnyMovement;
253
+ };
254
+
255
+ class InputHandler : public ::osgGA::GUIEventHandler
256
+ {
257
+ public:
258
+ InputHandler(
259
+ dart::gui::osg::Viewer* viewer,
260
+ TeleoperationWorld* teleop,
261
+ const SkeletonPtr& atlas,
262
+ const WorldPtr& world)
263
+ : mViewer(viewer), mTeleop(teleop), mAtlas(atlas), mWorld(world)
264
+ {
265
+ initialize();
266
+ }
267
+
268
+ void initialize()
269
+ {
270
+ mRestConfig = mAtlas->getPositions();
271
+
272
+ mLegs.reserve(12);
273
+ for (std::size_t i = 0; i < mAtlas->getNumDofs(); ++i) {
274
+ if (mAtlas->getDof(i)->getName().substr(1, 5) == "_leg_")
275
+ mLegs.push_back(mAtlas->getDof(i)->getIndexInSkeleton());
276
+ }
277
+ // We should also adjust the pelvis when detangling the legs
278
+ mLegs.push_back(mAtlas->getDof("rootJoint_rot_x")->getIndexInSkeleton());
279
+ mLegs.push_back(mAtlas->getDof("rootJoint_rot_y")->getIndexInSkeleton());
280
+ mLegs.push_back(mAtlas->getDof("rootJoint_pos_z")->getIndexInSkeleton());
281
+
282
+ mAtlas->eachEndEffector([&](EndEffector* ee) {
283
+ if (const InverseKinematicsPtr ik = ee->getIK()) {
284
+ mDefaultBounds.push_back(ik->getErrorMethod().getBounds());
285
+ mDefaultTargetTf.push_back(ik->getTarget()->getRelativeTransform());
286
+ mConstraintActive.push_back(false);
287
+ mEndEffectorIndex.push_back(ee->getIndexInSkeleton());
288
+ }
289
+ });
290
+
291
+ mPosture = std::dynamic_pointer_cast<RelaxedPosture>(
292
+ mAtlas->getIK(true)->getObjective());
293
+
294
+ mBalance = std::dynamic_pointer_cast<dart::constraint::BalanceConstraint>(
295
+ mAtlas->getIK(true)->getProblem()->getEqConstraint(1));
296
+
297
+ mOptimizationKey = 'r';
298
+
299
+ mMoveComponents.resize(TeleoperationWorld::NUM_MOVE, false);
300
+ }
301
+
302
+ virtual bool handle(
303
+ const ::osgGA::GUIEventAdapter& ea, ::osgGA::GUIActionAdapter&) override
304
+ {
305
+ if (nullptr == mAtlas) {
306
+ return false;
307
+ }
308
+
309
+ if (::osgGA::GUIEventAdapter::KEYDOWN == ea.getEventType()) {
310
+ if (ea.getKey() == 'p') {
311
+ for (std::size_t i = 0; i < mAtlas->getNumDofs(); ++i)
312
+ std::cout << mAtlas->getDof(i)->getName() << ": "
313
+ << mAtlas->getDof(i)->getPosition() << std::endl;
314
+ std::cout << " -- -- -- -- -- " << std::endl;
315
+ return true;
316
+ }
317
+
318
+ if (ea.getKey() == 't') {
319
+ // Reset all the positions except for x, y, and yaw
320
+ for (std::size_t i = 0; i < mAtlas->getNumDofs(); ++i) {
321
+ if (i < 2 || 4 < i)
322
+ mAtlas->getDof(i)->setPosition(mRestConfig[i]);
323
+ }
324
+ return true;
325
+ }
326
+
327
+ if ('1' <= ea.getKey() && ea.getKey() <= '9') {
328
+ std::size_t index = ea.getKey() - '1';
329
+ if (index < mConstraintActive.size()) {
330
+ EndEffector* ee = mAtlas->getEndEffector(mEndEffectorIndex[index]);
331
+ const InverseKinematicsPtr& ik = ee->getIK();
332
+ if (ik && mConstraintActive[index]) {
333
+ mConstraintActive[index] = false;
334
+
335
+ ik->getErrorMethod().setBounds(mDefaultBounds[index]);
336
+ ik->getTarget()->setRelativeTransform(mDefaultTargetTf[index]);
337
+ mWorld->removeSimpleFrame(ik->getTarget());
338
+ } else if (ik) {
339
+ mConstraintActive[index] = true;
340
+
341
+ // Use the standard default bounds instead of our custom default
342
+ // bounds
343
+ ik->getErrorMethod().setBounds();
344
+ ik->getTarget()->setTransform(ee->getTransform());
345
+ mWorld->addSimpleFrame(ik->getTarget());
346
+ }
347
+ }
348
+ return true;
349
+ }
350
+
351
+ if ('x' == ea.getKey()) {
352
+ EndEffector* ee = mAtlas->getEndEffector("l_foot");
353
+ ee->getSupport()->setActive(!ee->getSupport()->isActive());
354
+ return true;
355
+ }
356
+
357
+ if ('c' == ea.getKey()) {
358
+ EndEffector* ee = mAtlas->getEndEffector("r_foot");
359
+ ee->getSupport()->setActive(!ee->getSupport()->isActive());
360
+ return true;
361
+ }
362
+
363
+ switch (ea.getKey()) {
364
+ case 'w':
365
+ mMoveComponents[TeleoperationWorld::MOVE_W] = true;
366
+ break;
367
+ case 'a':
368
+ mMoveComponents[TeleoperationWorld::MOVE_A] = true;
369
+ break;
370
+ case 's':
371
+ mMoveComponents[TeleoperationWorld::MOVE_S] = true;
372
+ break;
373
+ case 'd':
374
+ mMoveComponents[TeleoperationWorld::MOVE_D] = true;
375
+ break;
376
+ case 'q':
377
+ mMoveComponents[TeleoperationWorld::MOVE_Q] = true;
378
+ break;
379
+ case 'e':
380
+ mMoveComponents[TeleoperationWorld::MOVE_E] = true;
381
+ break;
382
+ case 'f':
383
+ mMoveComponents[TeleoperationWorld::MOVE_F] = true;
384
+ break;
385
+ case 'z':
386
+ mMoveComponents[TeleoperationWorld::MOVE_Z] = true;
387
+ break;
388
+ }
389
+
390
+ switch (ea.getKey()) {
391
+ case 'w':
392
+ case 'a':
393
+ case 's':
394
+ case 'd':
395
+ case 'q':
396
+ case 'e':
397
+ case 'f':
398
+ case 'z': {
399
+ mTeleop->setMovement(mMoveComponents);
400
+ return true;
401
+ }
402
+ }
403
+
404
+ if (mOptimizationKey == ea.getKey()) {
405
+ if (mPosture)
406
+ mPosture->enforceIdealPosture = true;
407
+
408
+ if (mBalance)
409
+ mBalance->setErrorMethod(
410
+ dart::constraint::BalanceConstraint::OPTIMIZE_BALANCE);
411
+
412
+ return true;
413
+ }
414
+ }
415
+
416
+ if (::osgGA::GUIEventAdapter::KEYUP == ea.getEventType()) {
417
+ if (ea.getKey() == mOptimizationKey) {
418
+ if (mPosture)
419
+ mPosture->enforceIdealPosture = false;
420
+
421
+ if (mBalance)
422
+ mBalance->setErrorMethod(
423
+ dart::constraint::BalanceConstraint::FROM_CENTROID);
424
+
425
+ return true;
426
+ }
427
+
428
+ switch (ea.getKey()) {
429
+ case 'w':
430
+ mMoveComponents[TeleoperationWorld::MOVE_W] = false;
431
+ break;
432
+ case 'a':
433
+ mMoveComponents[TeleoperationWorld::MOVE_A] = false;
434
+ break;
435
+ case 's':
436
+ mMoveComponents[TeleoperationWorld::MOVE_S] = false;
437
+ break;
438
+ case 'd':
439
+ mMoveComponents[TeleoperationWorld::MOVE_D] = false;
440
+ break;
441
+ case 'q':
442
+ mMoveComponents[TeleoperationWorld::MOVE_Q] = false;
443
+ break;
444
+ case 'e':
445
+ mMoveComponents[TeleoperationWorld::MOVE_E] = false;
446
+ break;
447
+ case 'f':
448
+ mMoveComponents[TeleoperationWorld::MOVE_F] = false;
449
+ break;
450
+ case 'z':
451
+ mMoveComponents[TeleoperationWorld::MOVE_Z] = false;
452
+ break;
453
+ }
454
+
455
+ switch (ea.getKey()) {
456
+ case 'w':
457
+ case 'a':
458
+ case 's':
459
+ case 'd':
460
+ case 'q':
461
+ case 'e':
462
+ case 'f':
463
+ case 'z': {
464
+ mTeleop->setMovement(mMoveComponents);
465
+ return true;
466
+ }
467
+ }
468
+ }
469
+
470
+ return false;
471
+ }
472
+
473
+ protected:
474
+ dart::gui::osg::Viewer* mViewer;
475
+
476
+ TeleoperationWorld* mTeleop;
477
+
478
+ SkeletonPtr mAtlas;
479
+
480
+ WorldPtr mWorld;
481
+
482
+ Eigen::VectorXd mRestConfig;
483
+
484
+ std::vector<std::size_t> mLegs;
485
+
486
+ std::vector<bool> mConstraintActive;
487
+
488
+ std::vector<std::size_t> mEndEffectorIndex;
489
+
490
+ std::vector<std::pair<Eigen::Vector6d, Eigen::Vector6d>> mDefaultBounds;
491
+
492
+ dart::common::aligned_vector<Eigen::Isometry3d> mDefaultTargetTf;
493
+
494
+ std::shared_ptr<RelaxedPosture> mPosture;
495
+
496
+ std::shared_ptr<dart::constraint::BalanceConstraint> mBalance;
497
+
498
+ char mOptimizationKey;
499
+
500
+ std::vector<bool> mMoveComponents;
501
+ };
502
+
503
+ SkeletonPtr createGround()
504
+ {
505
+ // Create a Skeleton to represent the ground
506
+ SkeletonPtr ground = Skeleton::create("ground");
507
+ Eigen::Isometry3d tf(Eigen::Isometry3d::Identity());
508
+ double thickness = 0.01;
509
+ tf.translation() = Eigen::Vector3d(0, 0, -thickness / 2.0);
510
+ WeldJoint::Properties joint;
511
+ joint.mT_ParentBodyToJoint = tf;
512
+ ground->createJointAndBodyNodePair<WeldJoint>(nullptr, joint);
513
+ ShapePtr groundShape
514
+ = std::make_shared<BoxShape>(Eigen::Vector3d(10, 10, thickness));
515
+
516
+ auto shapeNode = ground->getBodyNode(0)
517
+ ->createShapeNodeWith<
518
+ VisualAspect,
519
+ CollisionAspect,
520
+ DynamicsAspect>(groundShape);
521
+ shapeNode->getVisualAspect()->setColor(dart::Color::Blue(0.2));
522
+
523
+ return ground;
524
+ }
525
+
526
+ SkeletonPtr createAtlas()
527
+ {
528
+ // Parse in the atlas model
529
+ DartLoader urdf;
530
+ SkeletonPtr atlas
531
+ = urdf.parseSkeleton("dart://sample/sdf/atlas/atlas_v3_no_head.urdf");
532
+
533
+ // Add a box to the root node to make it easier to click and drag
534
+ double scale = 0.25;
535
+ ShapePtr boxShape
536
+ = std::make_shared<BoxShape>(scale * Eigen::Vector3d(1.0, 1.0, 0.5));
537
+
538
+ Eigen::Isometry3d tf(Eigen::Isometry3d::Identity());
539
+ tf.translation() = Eigen::Vector3d(0.1 * Eigen::Vector3d(0.0, 0.0, 1.0));
540
+
541
+ auto shapeNode
542
+ = atlas->getBodyNode(0)->createShapeNodeWith<VisualAspect>(boxShape);
543
+ shapeNode->getVisualAspect()->setColor(dart::Color::Black());
544
+ shapeNode->setRelativeTransform(tf);
545
+
546
+ return atlas;
547
+ }
548
+
549
+ void setupStartConfiguration(const SkeletonPtr& atlas)
550
+ {
551
+ // Squat with the right leg
552
+ atlas->getDof("r_leg_hpy")->setPosition(-45.0 * constantsd::pi() / 180.0);
553
+ atlas->getDof("r_leg_kny")->setPosition(90.0 * constantsd::pi() / 180.0);
554
+ atlas->getDof("r_leg_aky")->setPosition(-45.0 * constantsd::pi() / 180.0);
555
+
556
+ // Squat with the left left
557
+ atlas->getDof("l_leg_hpy")->setPosition(-45.0 * constantsd::pi() / 180.0);
558
+ atlas->getDof("l_leg_kny")->setPosition(90.0 * constantsd::pi() / 180.0);
559
+ atlas->getDof("l_leg_aky")->setPosition(-45.0 * constantsd::pi() / 180.0);
560
+
561
+ // Get the right arm into a comfortable position
562
+ atlas->getDof("r_arm_shx")->setPosition(65.0 * constantsd::pi() / 180.0);
563
+ atlas->getDof("r_arm_ely")->setPosition(90.0 * constantsd::pi() / 180.0);
564
+ atlas->getDof("r_arm_elx")->setPosition(-90.0 * constantsd::pi() / 180.0);
565
+ atlas->getDof("r_arm_wry")->setPosition(65.0 * constantsd::pi() / 180.0);
566
+
567
+ // Get the left arm into a comfortable position
568
+ atlas->getDof("l_arm_shx")->setPosition(-65.0 * constantsd::pi() / 180.0);
569
+ atlas->getDof("l_arm_ely")->setPosition(90.0 * constantsd::pi() / 180.0);
570
+ atlas->getDof("l_arm_elx")->setPosition(90.0 * constantsd::pi() / 180.0);
571
+ atlas->getDof("l_arm_wry")->setPosition(65.0 * constantsd::pi() / 180.0);
572
+
573
+ // Prevent the knees from bending backwards
574
+ atlas->getDof("r_leg_kny")
575
+ ->setPositionLowerLimit(10 * constantsd::pi() / 180.0);
576
+ atlas->getDof("l_leg_kny")
577
+ ->setPositionLowerLimit(10 * constantsd::pi() / 180.0);
578
+ }
579
+
580
+ void setupEndEffectors(const SkeletonPtr& atlas)
581
+ {
582
+ // Apply very small weights to the gradient of the root joint in order to
583
+ // encourage the arms to use arm joints instead of only moving around the root
584
+ // joint
585
+ Eigen::VectorXd rootjoint_weights = Eigen::VectorXd::Ones(6);
586
+ rootjoint_weights = 0.01 * rootjoint_weights;
587
+
588
+ // Setting the bounds to be infinite allows the end effector to be implicitly
589
+ // unconstrained
590
+ Eigen::Vector3d linearBounds
591
+ = Eigen::Vector3d::Constant(std::numeric_limits<double>::infinity());
592
+
593
+ Eigen::Vector3d angularBounds
594
+ = Eigen::Vector3d::Constant(std::numeric_limits<double>::infinity());
595
+
596
+ // -- Set up the left hand --
597
+
598
+ // Create a relative transform for the EndEffector frame. This is the
599
+ // transform that the left hand will have relative to the BodyNode that it is
600
+ // attached to
601
+ Eigen::Isometry3d tf_hand(Eigen::Isometry3d::Identity());
602
+ tf_hand.translation() = Eigen::Vector3d(0.0009, 0.1254, 0.012);
603
+ tf_hand.rotate(Eigen::AngleAxisd(
604
+ 90.0 * constantsd::pi() / 180.0, Eigen::Vector3d::UnitZ()));
605
+
606
+ // Create the left hand's end effector and set its relative transform
607
+ EndEffector* l_hand
608
+ = atlas->getBodyNode("l_hand")->createEndEffector("l_hand");
609
+ l_hand->setDefaultRelativeTransform(tf_hand, true);
610
+
611
+ // Create an interactive frame to use as the target for the left hand
612
+ dart::gui::osg::InteractiveFramePtr lh_target(
613
+ new dart::gui::osg::InteractiveFrame(Frame::World(), "lh_target"));
614
+
615
+ // Set the target of the left hand to the interactive frame. We pass true into
616
+ // the function to tell it that it should create the IK module if it does not
617
+ // already exist. If we don't do that, then calling getIK() could return a
618
+ // nullptr if the IK module was never created.
619
+ l_hand->getIK(true)->setTarget(lh_target);
620
+
621
+ // Tell the left hand to use the whole body for its IK
622
+ l_hand->getIK()->useWholeBody();
623
+
624
+ // Set the weights for the gradient
625
+ l_hand->getIK()->getGradientMethod().setComponentWeights(rootjoint_weights);
626
+
627
+ // Set the bounds for the IK to be infinite so that the hands start out
628
+ // unconstrained
629
+ l_hand->getIK()->getErrorMethod().setLinearBounds(
630
+ -linearBounds, linearBounds);
631
+
632
+ l_hand->getIK()->getErrorMethod().setAngularBounds(
633
+ -angularBounds, angularBounds);
634
+
635
+ // -- Set up the right hand --
636
+
637
+ // The orientation of the right hand frame is different than the left, so we
638
+ // need to adjust the signs of the relative transform
639
+ tf_hand.translation()[0] = -tf_hand.translation()[0];
640
+ tf_hand.translation()[1] = -tf_hand.translation()[1];
641
+ tf_hand.linear() = tf_hand.linear().inverse().eval();
642
+
643
+ // Create the right hand's end effector and set its relative transform
644
+ EndEffector* r_hand
645
+ = atlas->getBodyNode("r_hand")->createEndEffector("r_hand");
646
+ r_hand->setDefaultRelativeTransform(tf_hand, true);
647
+
648
+ // Create an interactive frame to use as the target for the right hand
649
+ dart::gui::osg::InteractiveFramePtr rh_target(
650
+ new dart::gui::osg::InteractiveFrame(Frame::World(), "rh_target"));
651
+
652
+ // Create the right hand's IK and set its target
653
+ r_hand->getIK(true)->setTarget(rh_target);
654
+
655
+ // Tell the right hand to use the whole body for its IK
656
+ r_hand->getIK()->useWholeBody();
657
+
658
+ // Set the weights for the gradient
659
+ r_hand->getIK()->getGradientMethod().setComponentWeights(rootjoint_weights);
660
+
661
+ // Set the bounds for the IK to be infinite so that the hands start out
662
+ // unconstrained
663
+ r_hand->getIK()->getErrorMethod().setLinearBounds(
664
+ -linearBounds, linearBounds);
665
+
666
+ r_hand->getIK()->getErrorMethod().setAngularBounds(
667
+ -angularBounds, angularBounds);
668
+
669
+ // Define the support geometry for the feet. These points will be used to
670
+ // compute the convex hull of the robot's support polygon
671
+ dart::math::SupportGeometry support;
672
+ const double sup_pos_x = 0.10 - 0.186;
673
+ const double sup_neg_x = -0.03 - 0.186;
674
+ const double sup_pos_y = 0.03;
675
+ const double sup_neg_y = -0.03;
676
+ support.push_back(Eigen::Vector3d(sup_neg_x, sup_neg_y, 0.0));
677
+ support.push_back(Eigen::Vector3d(sup_pos_x, sup_neg_y, 0.0));
678
+ support.push_back(Eigen::Vector3d(sup_pos_x, sup_pos_y, 0.0));
679
+ support.push_back(Eigen::Vector3d(sup_neg_x, sup_pos_y, 0.0));
680
+
681
+ // Create a relative transform that goes from the center of the feet to the
682
+ // bottom of the feet
683
+ Eigen::Isometry3d tf_foot(Eigen::Isometry3d::Identity());
684
+ tf_foot.translation() = Eigen::Vector3d(0.186, 0.0, -0.08);
685
+
686
+ // Constrain the feet to snap to the ground
687
+ linearBounds[2] = 1e-8;
688
+
689
+ // Constrain the feet to lie flat on the ground
690
+ angularBounds[0] = 1e-8;
691
+ angularBounds[1] = 1e-8;
692
+
693
+ // Create an end effector for the left foot and set its relative transform
694
+ EndEffector* l_foot
695
+ = atlas->getBodyNode("l_foot")->createEndEffector("l_foot");
696
+ l_foot->setRelativeTransform(tf_foot);
697
+
698
+ // Create an interactive frame to use as the target for the left foot
699
+ dart::gui::osg::InteractiveFramePtr lf_target(
700
+ new dart::gui::osg::InteractiveFrame(Frame::World(), "lf_target"));
701
+
702
+ // Create the left foot's IK and set its target
703
+ l_foot->getIK(true)->setTarget(lf_target);
704
+
705
+ // Set the left foot's IK hierarchy level to 1. This will project its IK goals
706
+ // through the null space of any IK modules that are on level 0. This means
707
+ // that it will try to accomplish its goals while also accommodating the goals
708
+ // of other modules.
709
+ l_foot->getIK()->setHierarchyLevel(1);
710
+
711
+ // Use the bounds defined above
712
+ l_foot->getIK()->getErrorMethod().setLinearBounds(
713
+ -linearBounds, linearBounds);
714
+ l_foot->getIK()->getErrorMethod().setAngularBounds(
715
+ -angularBounds, angularBounds);
716
+
717
+ // Create Support for the foot and give it geometry
718
+ l_foot->getSupport(true)->setGeometry(support);
719
+
720
+ // Turn on support mode so that it can be used as a foot
721
+ l_foot->getSupport()->setActive();
722
+
723
+ // Create an end effector for the right foot and set its relative transform
724
+ EndEffector* r_foot
725
+ = atlas->getBodyNode("r_foot")->createEndEffector("r_foot");
726
+ r_foot->setRelativeTransform(tf_foot);
727
+
728
+ // Create an interactive frame to use as the target for the right foot
729
+ dart::gui::osg::InteractiveFramePtr rf_target(
730
+ new dart::gui::osg::InteractiveFrame(Frame::World(), "rf_target"));
731
+
732
+ // Create the right foot's IK module and set its target
733
+ r_foot->getIK(true)->setTarget(rf_target);
734
+
735
+ // Set the right foot's IK hierarchy level to 1
736
+ r_foot->getIK()->setHierarchyLevel(1);
737
+
738
+ // Use the bounds defined above
739
+ r_foot->getIK()->getErrorMethod().setLinearBounds(
740
+ -linearBounds, linearBounds);
741
+ r_foot->getIK()->getErrorMethod().setAngularBounds(
742
+ -angularBounds, angularBounds);
743
+
744
+ // Create Support for the foot and give it geometry
745
+ r_foot->getSupport(true)->setGeometry(support);
746
+
747
+ // Turn on support mode so that it can be used as a foot
748
+ r_foot->getSupport()->setActive();
749
+
750
+ // Move atlas to the ground so that it starts out squatting with its feet on
751
+ // the ground
752
+ double heightChange = -r_foot->getWorldTransform().translation()[2];
753
+ atlas->getDof(5)->setPosition(heightChange);
754
+
755
+ // Now that the feet are on the ground, we should set their target transforms
756
+ l_foot->getIK()->getTarget()->setTransform(l_foot->getTransform());
757
+ r_foot->getIK()->getTarget()->setTransform(r_foot->getTransform());
758
+ }
759
+
760
+ void setupWholeBodySolver(const SkeletonPtr& atlas)
761
+ {
762
+ // The default
763
+ std::shared_ptr<dart::optimizer::GradientDescentSolver> solver
764
+ = std::dynamic_pointer_cast<dart::optimizer::GradientDescentSolver>(
765
+ atlas->getIK(true)->getSolver());
766
+ solver->setNumMaxIterations(10);
767
+
768
+ std::size_t nDofs = atlas->getNumDofs();
769
+
770
+ double default_weight = 0.01;
771
+ Eigen::VectorXd weights = default_weight * Eigen::VectorXd::Ones(nDofs);
772
+ weights[2] = 0.0;
773
+ weights[3] = 0.0;
774
+ weights[4] = 0.0;
775
+
776
+ weights[6] *= 0.2;
777
+ weights[7] *= 0.2;
778
+ weights[8] *= 0.2;
779
+
780
+ Eigen::VectorXd lower_posture = Eigen::VectorXd::Constant(
781
+ nDofs, -std::numeric_limits<double>::infinity());
782
+ lower_posture[0] = -0.35;
783
+ lower_posture[1] = -0.35;
784
+ lower_posture[5] = 0.600;
785
+
786
+ lower_posture[6] = -0.1;
787
+ lower_posture[7] = -0.1;
788
+ lower_posture[8] = -0.1;
789
+
790
+ Eigen::VectorXd upper_posture = Eigen::VectorXd::Constant(
791
+ nDofs, std::numeric_limits<double>::infinity());
792
+ upper_posture[0] = 0.35;
793
+ upper_posture[1] = 0.35;
794
+ upper_posture[5] = 0.885;
795
+
796
+ upper_posture[6] = 0.1;
797
+ upper_posture[7] = 0.1;
798
+ upper_posture[8] = 0.1;
799
+
800
+ std::shared_ptr<RelaxedPosture> objective = std::make_shared<RelaxedPosture>(
801
+ atlas->getPositions(), lower_posture, upper_posture, weights);
802
+ atlas->getIK()->setObjective(objective);
803
+
804
+ std::shared_ptr<dart::constraint::BalanceConstraint> balance
805
+ = std::make_shared<dart::constraint::BalanceConstraint>(atlas->getIK());
806
+ atlas->getIK()->getProblem()->addEqConstraint(balance);
807
+
808
+ // // Shift the center of mass towards the support polygon center while
809
+ // trying
810
+ // // to keep the support polygon where it is
811
+ // balance->setErrorMethod(dart::constraint::BalanceConstraint::FROM_CENTROID);
812
+ // balance->setBalanceMethod(dart::constraint::BalanceConstraint::SHIFT_COM);
813
+
814
+ // // Keep shifting the center of mass towards the center of the support
815
+ // // polygon, even if it is already inside. This is useful for trying to
816
+ // // optimize a stance
817
+ // balance->setErrorMethod(dart::constraint::BalanceConstraint::OPTIMIZE_BALANCE);
818
+ // balance->setBalanceMethod(dart::constraint::BalanceConstraint::SHIFT_COM);
819
+
820
+ // // Try to leave the center of mass where it is while moving the support
821
+ // // polygon to be under the current center of mass location
822
+ balance->setErrorMethod(dart::constraint::BalanceConstraint::FROM_CENTROID);
823
+ balance->setBalanceMethod(dart::constraint::BalanceConstraint::SHIFT_SUPPORT);
824
+
825
+ // // Try to leave the center of mass where it is while moving the support
826
+ // // point that is closest to the center of mass
827
+ // balance->setErrorMethod(dart::constraint::BalanceConstraint::FROM_EDGE);
828
+ // balance->setBalanceMethod(dart::constraint::BalanceConstraint::SHIFT_SUPPORT);
829
+
830
+ // Note that using the FROM_EDGE error method is liable to leave the center of
831
+ // mass visualization red even when the constraint was successfully solved.
832
+ // This is because the constraint solver has a tiny bit of tolerance that
833
+ // allows the Problem to be considered solved when the center of mass is
834
+ // microscopically outside of the support polygon. This is an inherent risk of
835
+ // using FROM_EDGE instead of FROM_CENTROID.
836
+
837
+ // Feel free to experiment with the different balancing methods. You will find
838
+ // that some work much better for user interaction than others.
839
+ }
840
+
841
+ void enableDragAndDrops(
842
+ dart::gui::osg::Viewer& viewer, const SkeletonPtr& atlas)
843
+ {
844
+ // Turn on drag-and-drop for the whole Skeleton
845
+ for (std::size_t i = 0; i < atlas->getNumBodyNodes(); ++i)
846
+ viewer.enableDragAndDrop(atlas->getBodyNode(i), false, false);
847
+
848
+ atlas->eachEndEffector([&](EndEffector* ee) {
849
+ if (!ee->getIK())
850
+ return;
851
+
852
+ // Check whether the target is an interactive frame, and add it if it is
853
+ if (const auto& frame
854
+ = std::dynamic_pointer_cast<dart::gui::osg::InteractiveFrame>(
855
+ ee->getIK()->getTarget()))
856
+ viewer.enableDragAndDrop(frame.get());
857
+ });
858
+ }
859
+
860
+ int main()
861
+ {
862
+ // Create and configure the physics world
863
+ WorldPtr world = World::create();
864
+ world->setGravity(Eigen::Vector3d(0.0, -9.81, 0.0));
865
+
866
+ // Create and add skeletons to the world
867
+ SkeletonPtr atlas = createAtlas();
868
+ SkeletonPtr ground = createGround();
869
+ world->addSkeleton(atlas);
870
+ world->addSkeleton(ground);
871
+
872
+ // Setup robot configuration and control
873
+ setupStartConfiguration(atlas);
874
+ setupEndEffectors(atlas);
875
+ setupWholeBodySolver(atlas);
876
+
877
+ // Create the OSG world node
878
+ ::osg::ref_ptr<TeleoperationWorld> worldNode
879
+ = new TeleoperationWorld(world, atlas);
880
+
881
+ // Create the OSG viewer
882
+ dart::gui::osg::Viewer viewer;
883
+ viewer.allowSimulation(false); // Kinematic control only
884
+ viewer.addWorldNode(worldNode);
885
+
886
+ // Setup input handling
887
+ ::osg::ref_ptr<InputHandler> inputHandler
888
+ = new InputHandler(&viewer, worldNode, atlas, world);
889
+ viewer.addEventHandler(inputHandler);
890
+
891
+ // Enable interactive manipulation
892
+ enableDragAndDrops(viewer, atlas);
893
+
894
+ // Add visualizations
895
+ viewer.addAttachment(
896
+ new dart::gui::osg::SupportPolygonVisual(atlas, display_elevation));
897
+
898
+ // Configure viewer window
899
+ viewer.setUpViewInWindow(0, 0, 1280, 960);
900
+ viewer.getCameraManipulator()->setHomePosition(
901
+ ::osg::Vec3(5.34, 3.00, 2.41),
902
+ ::osg::Vec3(0.00, 0.00, 1.00),
903
+ ::osg::Vec3(-0.20, -0.08, 0.98));
904
+ viewer.setCameraManipulator(viewer.getCameraManipulator());
905
+
906
+ // Display usage instructions
907
+ std::cout << viewer.getInstructions() << std::endl;
908
+ std::cout << "\n=== Atlas Puppet Control Instructions ===\n"
909
+ << "Mouse Controls:\n"
910
+ << " Alt + Click: Translate body (preserve orientation)\n"
911
+ << " Ctrl + Click: Rotate body (preserve position)\n"
912
+ << " Shift + Click: Move using parent joint only\n\n"
913
+ << "Keyboard Controls:\n"
914
+ << " 1-4: Toggle EndEffector interactive targets\n"
915
+ << " WASD: Move robot (forward/left/back/right)\n"
916
+ << " Q/E: Rotate robot (counter-clockwise/clockwise)\n"
917
+ << " F/Z: Adjust elevation (up/down)\n"
918
+ << " X/C: Toggle left/right foot support\n"
919
+ << " R: Optimize robot posture\n"
920
+ << " T: Reset to relaxed posture\n\n"
921
+ << "Notes:\n"
922
+ << "- Uses iterative Jacobian methods (can be sensitive)\n"
923
+ << "- Use R/T keys for recovery from tangled configurations\n"
924
+ << "- Green polygon: support area, Blue/red ball: center of mass\n"
925
+ << "- Kinematic control only (no physics simulation)\n"
926
+ << std::endl;
927
+
928
+ // Start the OSG viewer main loop
929
+ return viewer.run();
930
+ }