gazebosim / gz-physics

Abstract physics interface designed to support simulation and rapid development of robot applications.
https://gazebosim.org
Apache License 2.0
64 stars 40 forks source link

[Fedora] Compilation failed: Incompatibilities with DART #23

Closed osrf-migration closed 5 years ago

osrf-migration commented 5 years ago

Original report (archived issue) by Til Hoff (Bitbucket: turakar).


Description

Ignition cannot be compiled because ign-physics fails.

Steps to reproduce

sudo dnf install cmake freeglut-devel ffmpeg-devel freeimage-devel gflags-devel glew-devel gts-devel ogre-devel protobuf-devel protobuf-c-devel qt5 tinyxml2-devel tinyxml-devel pkg-config protobuf-compiler python qt5-qtquickcontrols qt5-qtquickcontrols2 qt5-devel qt5-qtdeclarative-devel qt5-qtquickcontrols2-devel ruby rubygem-ronn uuid-devel libzip-devel jsoncpp-devel libcurl-devel libyaml-devel czmq-devel cppzmq-devel sqlite-devel libwebsockets-devel eigen3-devel

Expected behaviour

ign-physics compiles successfully.

Actual behaviour

Compilation gives errors:

--- stderr: ignition-physics1                                                                                        
/workspacepath/ignitionrobotics/ign-physics/dartsim/src/CustomMeshShape.cc: In constructor 'ignition::physics::dartsim::CustomMeshShape::CustomMeshShape(const ignition::common::Mesh&, const Vector3d&)':
/workspacepath/ignitionrobotics/ign-physics/dartsim/src/CustomMeshShape.cc:207:45: error: 'ai_real' does not name a type
         mesh->mVertices[j][k] = static_cast<ai_real>(v[k]);
                                             ^~~~~~~
/workspacepath/ignitionrobotics/ign-physics/dartsim/src/CustomMeshShape.cc:211:44: error: 'ai_real' does not name a type
         mesh->mNormals[j][k] = static_cast<ai_real>(n[k]);
                                            ^~~~~~~
gmake[2]: *** [dartsim/CMakeFiles/ignition-physics1-dartsim-plugin.dir/build.make:76: dartsim/CMakeFiles/ignition-physics1-dartsim-plugin.dir/src/CustomMeshShape.cc.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
/workspacepath/ignitionrobotics/ign-physics/dartsim/src/SDFFeatures.cc: In member function 'virtual ignition::physics::Identity ignition::physics::dartsim::SDFFeatures::ConstructSdfCollision(const ignition::physics::Identity&, const sdf::v8::Collision&)':
/workspacepath/ignitionrobotics/ign-physics/dartsim/src/SDFFeatures.cc:495:15: error: 'class dart::dynamics::DynamicsAspect' has no member named 'setSecondaryFrictionCoeff'; did you mean 'setFrictionCoeff'?
       aspect->setSecondaryFrictionCoeff(odeFriction->Get<double>("mu2"));
               ^~~~~~~~~~~~~~~~~~~~~~~~~
               setFrictionCoeff
/workspacepath/ignitionrobotics/ign-physics/dartsim/src/SDFFeatures.cc:499:15: error: 'class dart::dynamics::DynamicsAspect' has no member named 'setSlipCompliance'
       aspect->setSlipCompliance(odeFriction->Get<double>("slip1"));
               ^~~~~~~~~~~~~~~~~
/workspacepath/ignitionrobotics/ign-physics/dartsim/src/SDFFeatures.cc:503:15: error: 'class dart::dynamics::DynamicsAspect' has no member named 'setSecondarySlipCompliance'
       aspect->setSecondarySlipCompliance(odeFriction->Get<double>("slip2"));
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
/workspacepath/ignitionrobotics/ign-physics/dartsim/src/SDFFeatures.cc:508:15: error: 'class dart::dynamics::DynamicsAspect' has no member named 'setFirstFrictionDirection'
       aspect->setFirstFrictionDirection(math::eigen3::convert(fdir1));
               ^~~~~~~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [dartsim/CMakeFiles/ignition-physics1-dartsim-plugin.dir/build.make:154: dartsim/CMakeFiles/ignition-physics1-dartsim-plugin.dir/src/SDFFeatures.cc.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:2245: dartsim/CMakeFiles/ignition-physics1-dartsim-plugin.dir/all] Error 2
gmake: *** [Makefile:141: all] Error 2
---
Failed   <<< ignition-physics1  [ Exited with code 2 ]
Aborted  <<< ignition-rendering2

Versions

osrf-migration commented 5 years ago

Original comment by Til Hoff (Bitbucket: turakar).


osrf-migration commented 5 years ago

Original comment by Til Hoff (Bitbucket: turakar).


Ok, this seems to be related to this merged PR. This proposes to use this fork of DART. I did not yet had a chance to test this, but if this would fix the issue, some documentation or merging the changes upstream (my personal favourite) would help others compiling. This would also mean that compilation on other platforms (e.g. using official packages like Ubuntu) are broken.

osrf-migration commented 5 years ago

Original comment by Til Hoff (Bitbucket: turakar).


Switching to azeey/dart/friction_per_shape_more_params solves the errors related to friction params, but not those related to ai_real.

osrf-migration commented 5 years ago

Original comment by Addisu Z. Taddese (Bitbucket: azeey, GitHub: azeey).


We'll hopefully merge the fork to upstream some time soon. For the problem related to ai_real, I think you might be missing the Fedora equivalent of libassimp-dev.

osrf-migration commented 5 years ago

Original comment by Til Hoff (Bitbucket: turakar).


Thanks for your information, it compiles. I will close this issue now.

osrf-migration commented 5 years ago

Original comment by Til Hoff (Bitbucket: turakar).


stefanbuettner commented 3 years ago

I also ran into compilation problems with the latest DART 6.10.1 release and the latest ig-physics 4.1.0:

dartsim/src/SDFFeatures.cc: In member function ‘virtual ignition::physics::Identity ignition::physics::dartsim::SDFFeatures::ConstructSdfCollision(const ignition::physics::Identity&, const sdf::v11::Collision&)’:
dartsim/src/SDFFeatures.cc:821:15: error: ‘class dart::dynamics::DynamicsAspect’ has no member named ‘setSlipCompliance’; did you mean ‘setPrimarySlipCompliance’?
       aspect->setSlipCompliance(odeFriction->Get<double>("slip1"));
               ^~~~~~~~~~~~~~~~~
               setPrimarySlipCompliance
dartsim/src/ShapeFeatures.cc: In member function ‘virtual double ignition::physics::dartsim::ShapeFeatures::GetShapeFrictionPyramidPrimarySlipCompliance(const ignition::physics::Identity&) const’:
dartsim/src/ShapeFeatures.cc:472:18: error: ‘class dart::dynamics::DynamicsAspect’ has no member named ‘getSlipCompliance’; did you mean ‘getPrimarySlipCompliance’?
   return aspect->getSlipCompliance();
                  ^~~~~~~~~~~~~~~~~
                  getPrimarySlipCompliance
dartsim/src/ShapeFeatures.cc: In member function ‘virtual bool ignition::physics::dartsim::ShapeFeatures::SetShapeFrictionPyramidPrimarySlipCompliance(const ignition::physics::Identity&, double)’:
dartsim/src/ShapeFeatures.cc:508:11: error: ‘class dart::dynamics::DynamicsAspect’ has no member named ‘setSlipCompliance’; did you mean ‘setPrimarySlipCompliance’?
   aspect->setSlipCompliance(_value);
           ^~~~~~~~~~~~~~~~~
           setPrimarySlipCompliance
scpeters commented 3 years ago

I also ran into compilation problems with the latest DART 6.10.1 release and the latest ig-physics 4.1.0:

dartsim/src/SDFFeatures.cc: In member function ‘virtual ignition::physics::Identity ignition::physics::dartsim::SDFFeatures::ConstructSdfCollision(const ignition::physics::Identity&, const sdf::v11::Collision&)’:
dartsim/src/SDFFeatures.cc:821:15: error: ‘class dart::dynamics::DynamicsAspect’ has no member named ‘setSlipCompliance’; did you mean ‘setPrimarySlipCompliance’?
       aspect->setSlipCompliance(odeFriction->Get<double>("slip1"));
               ^~~~~~~~~~~~~~~~~
               setPrimarySlipCompliance
dartsim/src/ShapeFeatures.cc: In member function ‘virtual double ignition::physics::dartsim::ShapeFeatures::GetShapeFrictionPyramidPrimarySlipCompliance(const ignition::physics::Identity&) const’:
dartsim/src/ShapeFeatures.cc:472:18: error: ‘class dart::dynamics::DynamicsAspect’ has no member named ‘getSlipCompliance’; did you mean ‘getPrimarySlipCompliance’?
   return aspect->getSlipCompliance();
                  ^~~~~~~~~~~~~~~~~
                  getPrimarySlipCompliance
dartsim/src/ShapeFeatures.cc: In member function ‘virtual bool ignition::physics::dartsim::ShapeFeatures::SetShapeFrictionPyramidPrimarySlipCompliance(const ignition::physics::Identity&, double)’:
dartsim/src/ShapeFeatures.cc:508:11: error: ‘class dart::dynamics::DynamicsAspect’ has no member named ‘setSlipCompliance’; did you mean ‘setPrimarySlipCompliance’?
   aspect->setSlipCompliance(_value);
           ^~~~~~~~~~~~~~~~~
           setPrimarySlipCompliance

this should be fixed by #249