0
$\begingroup$

I am developing an underwater vehicle using ROS2 and I am building a simulator using Gazebo classic. I need UUV specific sensors including DVLs and depth sensors. I have been unable to find compiled share object files that I can include in my xacro file.

However, there is a fantastic library written for use with ROS1 that I found here https://github.com/uuvsimulator/uuv_simulator/tree/master

I have been following the migration guide from ROS1 to ROS2, updating the included CMakeLists.txt and package.xml but I have been unable to build the packages successfully. Here is one error message for instance, but I suspect that there will be many more if i get this one resolved

"CMake Error at CMakeLists.txt:8 (find_package): By not providing "Findmessage_package.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "message_package", but CMake did not find one. "

This is failing on the package uuv_sensor_ros_plugins_msgs package. My package.xml is

<package format="2">
  <name>uuv_sensor_ros_plugins_msgs</name>
  <version>0.6.13</version>
  <description>The uuv_sensor_ros_plugins_msgs package</description>


  <maintainer email="[email protected]">Musa Morena Marcusso Manhaes</maintainer>
  <maintainer email="[email protected]">Sebastian Scherer</maintainer>
  <maintainer email="[email protected]">Luiz Ricardo Douat</maintainer>

  <author email="[email protected]">Musa Morena Marcusso Manhaes</author>
  <author email="[email protected]">Sebastian Scherer</author>
  <author email="[email protected]">Luiz Ricardo Douat</author>

  <license>Apache-2.0</license>
  <buildtool_depend>rosidl_default_generators</buildtool_depend>
  <exec_depend>rosidl_default_runtime</exec_depend>

  <buildtool_depend>ament_cmake</buildtool_depend>

  <depend>geometry_msgs</depend>
  <depend>message_generation</depend>

  <exec_depend>geometry_msgs</exec_depend>
  <exec_depend>message_runtime</exec_depend>

  <build_export_depend>geometry_msgs</build_export_depend>

  <export>
    <build_type>ament_cmake</build_type>
  </export>
</package> 

and my CMakeLists.txt is

cmake_minimum_required(VERSION 3.8)

project(uuv_sensor_ros_plugins_msgs)
find_package(rosidl_default_generators REQUIRED)

find_package(ament_cmake REQUIRED)

find_package(message_package REQUIRED
    geometry_msgs
    message_generation)

add_message_files(
  FILES
  DVL.msg
  DVLBeam.msg
  PositionWithCovariance.msg
  PositionWithCovarianceStamped.msg
  ChemicalParticleConcentration.msg
  Salinity.msg
)

add_service_files(
  FILES
  ChangeSensorState.srv
)


rosidl_generate_interfaces(
  DEPENDENCIES
  geometry_msgs
)

install(
    DIRECTORY
      msg
    DESTINATION
      share/${PROJECT_NAME}/
DIRECTORY
  srv
DESTINATION
  share/${PROJECT_NAME}/
)
ament_export_dependencies(geometry_msgs, message_runtime)
ament_package()

My primary question is, can anyone point me to a resource where I can get non standard gazebo_ros sensors that are already compiled? If not, is there a more clear example available of how to port packages other than whats on the ROS website? I am having trouble following it apparently.

Thank you so much everyone.

$\endgroup$
1
  • $\begingroup$ I have made some progress with this. I have found this repo from 2020 link. The authors ported the uuv simulator I mentioned above to ROS2 Foxy. I am trying to use this with Ubuntu 22.04/Humble/Gazebo11. I had one issue where I had to change the boost/bind include, but other than that I get no errors or warnings with the logger level set to DEBUG. However, colcon never completes. Is there a resource that demonstrates how to migrate a package from Foxy to Humble? $\endgroup$
    – Gideon
    Feb 13 at 21:16

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.