#850 Merged at 80df334
  1. Steve Peters

This pull request adds support for the DART physics engine. Thanks to @jlee02 @karenliu @_jrivero_ and Tobias Kunz for their work to support this.

In order to install dart, please add the libccd-debs, fcl-debs, and dartsim PPA's to your apt sources and install libdart-core3-dev:

sudo apt-add repository ppa:libccd-debs
sudo apt-add repository ppa:fcl-debs
sudo apt-add repository ppa:dartsim
sudo apt-get update
sudo apt-get install libdart-core3-dev

These debs are available for precise, quantal, and raring. There is a problem with saucy that is being worked on.

This pull request targets gazebo_2.1, and I expect ABI to be compatible. To make sure, I just started an ABI checker) on Jenkins.

There are a number of places where DART doesn't pass integration tests. In these cases, issues have been created, and conditionals added to the test files. Search the issue tracker for component physics::DARTPhysics to see the full list.

I have not personally reviewed all the code in the gazebo/physics/dart subfolder, but I have tried to make sure the build is clean (no warnings, code_check errors, or test failures).

UPDATE: retargeted to gazebo_2.2 branch

Comments (16)

  1. Jose Luis Rivero

    A couple of quick points:

    • I think that Tobias is already hosting all dependencies inside the dartsim PPA so it will be the only one required.
    • Respect to the jenkins ABI checker, Should we use inside jenkins the dartsim ppa to get dart into the building process, right? I can take care of that.

    Thanks for the work Steve, awesome.

    1. Steve Peters author

      Responding to your points:

      • I didn't see libccd or fcl in the dartsim PPA, so I think we still need to add those. He appears to be hosting the non-core dependencies (urdfdom, console_bridge, assimp3 for precise, tinyxml2 for precise, flann 1.8).

      • Sure, lets add the dartsim pap to the ABI checker, and possibly a separate Jenkins job for dart testing.

  2. Jose Luis Rivero

    While testing the integration in jenkins seems like this branch is failing for the master branch in DART:

    In file included from /var/lib/jenkins/workspace/gazebo-default-dart_default-quantal-amd64-gpu-nvidia/gazebo/gazebo/physics/dart/DARTPhysics.cc:43:0:
    /var/lib/jenkins/workspace/gazebo-default-dart_default-quantal-amd64-gpu-nvidia/gazebo/gazebo/physics/dart/DARTBoxShape.hh: In member function 'virtual void gazebo::physics::DARTBoxShape::SetSize(const gazebo::math::Vector3&)':
    /var/lib/jenkins/workspace/gazebo-default-dart_default-quantal-amd64-gpu-nvidia/gazebo/gazebo/physics/dart/DARTBoxShape.hh:93:23: error: 'class dart::dynamics::BoxShape' has no member named 'setDim'
    In file included from /var/lib/jenkins/workspace/gazebo-default-dart_default-quantal-amd64-gpu-nvidia/gazebo/gazebo/physics/dart/DARTPhysics.cc:44:0:
    /var/lib/jenkins/workspace/gazebo-default-dart_default-quantal-amd64-gpu-nvidia/gazebo/gazebo/physics/dart/DARTSphereShape.hh: In member function 'virtual void gazebo::physics::DARTSphereShape::SetRadius(double)':
    /var/lib/jenkins/workspace/gazebo-default-dart_default-quantal-amd64-gpu-nvidia/gazebo/gazebo/physics/dart/DARTSphereShape.hh:78:29: error: 'class dart::dynamics::EllipsoidShape' has no member named 'setDim'

    This problem is not present on DART 3.0.0 ppa packages so probably something changed in master that is making it to fail.

    1. Jeongseok Lee

      You are right. We've changed master branch and it will make breaks with this pull request now. Present on DART 3.0.0 is release-3.0 branch of github repo, and its target is Gazebo 2.1.

      The next release of DART (probably DART 4.0.0) will be compatible with newer version of Gazebo.

  3. Steve Peters author

    This now has 2 approvals, but I'm holding off briefly on merging until I figure out a good way to merge forward to default. There's some changes in the gazebo_dart branch to make this work, but I'm still testing.