Gazebo | Ignition | Community
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

OK so I've also updated all my source repositories, and had to fix the missing SDF.hh error which seems to be due to the SDF repository removing the file SDF.hh. So I changed the includes in the files gazebo_ros_block_laser.cpp, gazebo_ros_bumper.cpp, and gazebo_ros_camera_utils.cpp to

#include <sdf/sdf.hh>

Then I still get the redefinition of ‘class sdf::Param’ error. How is this supposed to work? Should Gazebo even have a Param.hh file in its source repo? Here are the latest source files:

Latest version of gazebo/physics/State.hh https://bitbucket.org/osrf/gazebo/src/dd765457ec03337cf12fa75ce8327674e6c8d79c/gazebo/physics/State.hh?at=default includes "gazebo/sdf/sdf.hh"

Latest version of gazebo/sdf/sdf.hh https://bitbucket.org/osrf/gazebo/src/dd765457ec03337cf12fa75ce8327674e6c8d79c/gazebo/sdf/sdf.hh?at=default includes "gazebo/sdf/interface/Param.hh"

groovy-devel branch version of /gazebo_ros_pkgs/gazebo_plugins/include/gazebo_plugins/gazebo_ros_block_laser.h https://github.com/ros-simulation/gazebo_ros_pkgs/blob/groovy-devel/gazebo_plugins/include/gazebo_plugins/gazebo_ros_block_laser.h

#include <sdf/Param.hh>
  • which is the conflicting file from /usr/include/sdformat-1.4/sdf/Param.hh rather than "gazebo/sdf/interface/Param.hh"

Output of normal catkin_make run:

Built target gazebo_plugins_gencfg
Scanning dependencies of target gazebo_ros_camera_utils
[ 70%] Building CXX object gazebo_ros_pkgs/gazebo_plugins/CMakeFiles/gazebo_ros_block_laser.dir/src/gazebo_ros_block_laser.cpp.o
[ 70%] Building CXX object gazebo_ros_pkgs/gazebo_plugins/CMakeFiles/gazebo_ros_bumper.dir/src/gazebo_ros_bumper.cpp.o
[ 70%] Building CXX object gazebo_ros_pkgs/gazebo_plugins/CMakeFiles/gazebo_ros_camera_utils.dir/src/gazebo_ros_camera_utils.cpp.o
In file included from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:32:0:
/usr/include/sdformat-1.4/sdf/Param.hh:52:9: error: redefinition of ‘class sdf::Param’
/usr/local/include/gazebo-1.9/gazebo/sdf/interface/Param.hh:52:9: error: previous definition of ‘class sdf::Param’
In file included from /usr/local/include/gazebo-1.9/gazebo/sdf/interface/SDF.hh:25:0,
                 from /usr/local/include/gazebo-1.9/gazebo/sdf/sdf.hh:21,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/State.hh:26,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/ModelState.hh:30,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/Model.hh:31,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/Actor.hh:24,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/physics.hh:2,
                 from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/include/gazebo_plugins/gazebo_ros_block_laser.h:37,
                 from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_block_laser.cpp:26:
/usr/local/include/gazebo-1.9/gazebo/sdf/interface/Param.hh:52:9: error: redefinition of ‘class sdf::Param’
/usr/include/sdformat-1.4/sdf/Param.hh:52:9: error: previous definition of ‘class sdf::Param’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp: In member function ‘virtual void gazebo::GazeboRosBumper::Load(gazebo::sensors::SensorPtr, sdf::ElementPtr)’:
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:78:43: error: ‘class sdf::Element’ has no member named ‘Get’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:78:58: error: expected primary-expression before ‘>’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:78:60: error: expected primary-expression before ‘)’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:85:44: error: ‘class sdf::Element’ has no member named ‘Get’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:85:59: error: expected primary-expression before ‘>’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:85:61: error: expected primary-expression before ‘)’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:95:56: error: ‘class sdf::Element’ has no member named ‘Get’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:95:71: error: expected primary-expression before ‘>’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:95:73: error: expected primary-expression before ‘)’ token
In file included from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_camera_utils.cpp:35:0:
/usr/include/sdformat-1.4/sdf/Param.hh:52:9: error: redefinition of ‘class sdf::Param’
/usr/local/include/gazebo-1.9/gazebo/sdf/interface/Param.hh:52:9: error: previous definition of ‘class sdf::Param’

Output of verbose catkin_make run: https://gist.github.com/anonymous/c91bac3148ae5a96dec1

OK so I've also updated all my source repositories, and had to fix the missing SDF.hh error which seems to be due to the SDF repository removing the file SDF.hh. So I changed the includes in the files gazebo_ros_block_laser.cpp, gazebo_ros_bumper.cpp, and gazebo_ros_camera_utils.cpp to

#include <sdf/sdf.hh>

Then I still get the redefinition of ‘class sdf::Param’ error. How is this supposed to work? Should Gazebo even have a Param.hh file in its source repo? Here are the latest source files:

Latest version of gazebo/physics/State.hh https://bitbucket.org/osrf/gazebo/src/dd765457ec03337cf12fa75ce8327674e6c8d79c/gazebo/physics/State.hh?at=default includes "gazebo/sdf/sdf.hh"

Latest version of gazebo/sdf/sdf.hh https://bitbucket.org/osrf/gazebo/src/dd765457ec03337cf12fa75ce8327674e6c8d79c/gazebo/sdf/sdf.hh?at=default includes "gazebo/sdf/interface/Param.hh"

groovy-devel branch version of /gazebo_ros_pkgs/gazebo_plugins/include/gazebo_plugins/gazebo_ros_block_laser.h https://github.com/ros-simulation/gazebo_ros_pkgs/blob/groovy-devel/gazebo_plugins/include/gazebo_plugins/gazebo_ros_block_laser.h

#include <sdf/Param.hh>
  • which is the conflicting file from /usr/include/sdformat-1.4/sdf/Param.hh rather than "gazebo/sdf/interface/Param.hh"

Output of normal catkin_make run:

Built target gazebo_plugins_gencfg
Scanning dependencies of target gazebo_ros_camera_utils
[ 70%] Building CXX object gazebo_ros_pkgs/gazebo_plugins/CMakeFiles/gazebo_ros_block_laser.dir/src/gazebo_ros_block_laser.cpp.o
[ 70%] Building CXX object gazebo_ros_pkgs/gazebo_plugins/CMakeFiles/gazebo_ros_bumper.dir/src/gazebo_ros_bumper.cpp.o
[ 70%] Building CXX object gazebo_ros_pkgs/gazebo_plugins/CMakeFiles/gazebo_ros_camera_utils.dir/src/gazebo_ros_camera_utils.cpp.o
In file included from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:32:0:
/usr/include/sdformat-1.4/sdf/Param.hh:52:9: error: redefinition of ‘class sdf::Param’
/usr/local/include/gazebo-1.9/gazebo/sdf/interface/Param.hh:52:9: error: previous definition of ‘class sdf::Param’
In file included from /usr/local/include/gazebo-1.9/gazebo/sdf/interface/SDF.hh:25:0,
                 from /usr/local/include/gazebo-1.9/gazebo/sdf/sdf.hh:21,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/State.hh:26,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/ModelState.hh:30,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/Model.hh:31,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/Actor.hh:24,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/physics.hh:2,
                 from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/include/gazebo_plugins/gazebo_ros_block_laser.h:37,
                 from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_block_laser.cpp:26:
/usr/local/include/gazebo-1.9/gazebo/sdf/interface/Param.hh:52:9: error: redefinition of ‘class sdf::Param’
/usr/include/sdformat-1.4/sdf/Param.hh:52:9: error: previous definition of ‘class sdf::Param’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp: In member function ‘virtual void gazebo::GazeboRosBumper::Load(gazebo::sensors::SensorPtr, sdf::ElementPtr)’:
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:78:43: error: ‘class sdf::Element’ has no member named ‘Get’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:78:58: error: expected primary-expression before ‘>’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:78:60: error: expected primary-expression before ‘)’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:85:44: error: ‘class sdf::Element’ has no member named ‘Get’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:85:59: error: expected primary-expression before ‘>’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:85:61: error: expected primary-expression before ‘)’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:95:56: error: ‘class sdf::Element’ has no member named ‘Get’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:95:71: error: expected primary-expression before ‘>’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:95:73: error: expected primary-expression before ‘)’ token
In file included from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_camera_utils.cpp:35:0:
/usr/include/sdformat-1.4/sdf/Param.hh:52:9: error: redefinition of ‘class sdf::Param’
/usr/local/include/gazebo-1.9/gazebo/sdf/interface/Param.hh:52:9: error: previous definition of ‘class sdf::Param’

Output of verbose catkin_make run: https://gist.github.com/anonymous/c91bac3148ae5a96dec1

OK so I've also updated all my source repositories, and had to fix the missing SDF.hh error which seems to be due to the SDF repository removing the file SDF.hh. So I changed the includes in the files gazebo_ros_block_laser.cpp, gazebo_ros_bumper.cpp, and gazebo_ros_camera_utils.cpp to

#include <sdf/sdf.hh>

Then I still get the redefinition of ‘class sdf::Param’ error. How is this supposed to work? Should Gazebo even have a Param.hh file in its source repo? Here are the latest source files:

Latest version of gazebo/physics/State.hh https://bitbucket.org/osrf/gazebo/src/dd765457ec03337cf12fa75ce8327674e6c8d79c/gazebo/physics/State.hh?at=default includes "gazebo/sdf/sdf.hh"

Latest version of gazebo/sdf/sdf.hh https://bitbucket.org/osrf/gazebo/src/dd765457ec03337cf12fa75ce8327674e6c8d79c/gazebo/sdf/sdf.hh?at=default includes "gazebo/sdf/interface/Param.hh"

groovy-devel branch version of /gazebo_ros_pkgs/gazebo_plugins/include/gazebo_plugins/gazebo_ros_block_laser.h https://github.com/ros-simulation/gazebo_ros_pkgs/blob/groovy-devel/gazebo_plugins/include/gazebo_plugins/gazebo_ros_block_laser.h

#include <sdf/Param.hh>
  • which is the conflicting file from /usr/include/sdformat-1.4/sdf/Param.hh rather than "gazebo/sdf/interface/Param.hh"

Output of normal catkin_make run:

Built target gazebo_plugins_gencfg
Scanning dependencies of target gazebo_ros_camera_utils
[ 70%] Building CXX object gazebo_ros_pkgs/gazebo_plugins/CMakeFiles/gazebo_ros_block_laser.dir/src/gazebo_ros_block_laser.cpp.o
[ 70%] Building CXX object gazebo_ros_pkgs/gazebo_plugins/CMakeFiles/gazebo_ros_bumper.dir/src/gazebo_ros_bumper.cpp.o
[ 70%] Building CXX object gazebo_ros_pkgs/gazebo_plugins/CMakeFiles/gazebo_ros_camera_utils.dir/src/gazebo_ros_camera_utils.cpp.o
In file included from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:32:0:
/usr/include/sdformat-1.4/sdf/Param.hh:52:9: error: redefinition of ‘class sdf::Param’
/usr/local/include/gazebo-1.9/gazebo/sdf/interface/Param.hh:52:9: error: previous definition of ‘class sdf::Param’
In file included from /usr/local/include/gazebo-1.9/gazebo/sdf/interface/SDF.hh:25:0,
                 from /usr/local/include/gazebo-1.9/gazebo/sdf/sdf.hh:21,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/State.hh:26,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/ModelState.hh:30,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/Model.hh:31,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/Actor.hh:24,
                 from /usr/local/include/gazebo-1.9/gazebo/physics/physics.hh:2,
                 from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/include/gazebo_plugins/gazebo_ros_block_laser.h:37,
                 from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_block_laser.cpp:26:
/usr/local/include/gazebo-1.9/gazebo/sdf/interface/Param.hh:52:9: error: redefinition of ‘class sdf::Param’
/usr/include/sdformat-1.4/sdf/Param.hh:52:9: error: previous definition of ‘class sdf::Param’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp: In member function ‘virtual void gazebo::GazeboRosBumper::Load(gazebo::sensors::SensorPtr, sdf::ElementPtr)’:
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:78:43: error: ‘class sdf::Element’ has no member named ‘Get’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:78:58: error: expected primary-expression before ‘>’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:78:60: error: expected primary-expression before ‘)’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:85:44: error: ‘class sdf::Element’ has no member named ‘Get’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:85:59: error: expected primary-expression before ‘>’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:85:61: error: expected primary-expression before ‘)’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:95:56: error: ‘class sdf::Element’ has no member named ‘Get’
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:95:71: error: expected primary-expression before ‘>’ token
/home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_bumper.cpp:95:73: error: expected primary-expression before ‘)’ token
In file included from /home/zeyn/Dropbox/catkin_ws/src/gazebo_ros_pkgs/gazebo_plugins/src/gazebo_ros_camera_utils.cpp:35:0:
/usr/include/sdformat-1.4/sdf/Param.hh:52:9: error: redefinition of ‘class sdf::Param’
/usr/local/include/gazebo-1.9/gazebo/sdf/interface/Param.hh:52:9: error: previous definition of ‘class sdf::Param’

Output of verbose catkin_make run: https://gist.github.com/anonymous/c91bac3148ae5a96dec1

The only other thing is that I'm not quite up-to-speed with Catkin, and its possible I've got my environment in a muddle. My settings are:

zeyn@limivorous [~/catkin_ws] echo $LD_LIBRARY_PATH 
/usr/local/lib/gazebo-1.9/plugins:/usr/local/lib:/home/zeyn/Dropbox/catkin_ws/devel/lib:/home/zeyn/catkin_ws/devel/lib:/opt/ros/groovy/lib

zeyn@limivorous [~/catkin_ws] echo $ROS_PACKAGE_PATH 
/home/zeyn/Dropbox/catkin_ws/src:/home/zeyn/Dropbox/catkin_ws/src:/opt/ros/groovy/share:/opt/ros/groovy/stacks

(note that ~/catkin_ws is a symlink to ~/Dropbox/catkin_ws)