1 | initial version |
Here is how I resolved the problem. I am describing the steps for GazeboRosP3D.
create your package just like a regular ROS package. I am still using rosbuild by the way.
pull the gazebo_ros_p3d.h and gazebo_ros_p3d.cpp from simulator_gazebo/gazebo_plugins and change the .cpp file to include the correct header (e.g. #include <my_gazebo_plugins/gazebo_ros_p3d.h>
change your CMakeLists.txt as described by @AndreiHaidu in his answer. Also, add the
rosbuild_add_library(my_gazebo_ros_p3d src/gazebo_ros_p3d.cpp)
rosbuild_add_boost_directories()
rosbuild_link_boost(my_gazebo_ros_p3d thread)
change the manifest by adding
<depend package="tf">
<!-- this is needed for p3d plugin -->
in your model.sdf add
<plugin filename="libmy_gazebo_ros_p3d.so" name="my_gazebo_ros_p3d">
<bodyName>chassis</bodyName>
<topicName>/ground_truth_odom</topicName>
<alwaysOn>true</alwaysOn>
<updateRate>100.0</updateRate>
<gaussianNoise>0.0</gaussianNoise>
<frameName>map</frameName>
<xyzOffset>0 0 0</xyzOffset>
<rpyOffset>0 0 0</rpyOffset>
</plugin>
append the plugin path at /usr/share/gazebo-1.7/setup.sh by modifying
export GAZEBO_PLUGIN_PATH=/usr/lib/gazebo-1.7/plugins:<your plugin path>/my_gazebo_plugins/lib
source the gazebo setup.sh file
Based on the plugin, you may add different packages in the manifest.