ros-drivers / ros2_ouster_drivers

ROS2 Drivers for the Ouster OS-0, OS-1, and OS-2 Lidars
https://ouster.com/
Apache License 2.0
139 stars 78 forks source link

ROS2 Driver Support for OSx on Eloquent #112

Closed ermuir closed 2 years ago

ermuir commented 2 years ago

I have a requirement to (still) run ROS2 Eloquent on Ubuntu 18.04 and would like to integrate an OS0-32 and an OS2-32 sensor. I am able to successfully build from the Eloquent-devel branch, but the repo indicates it is for OS1 lidars. When I attempt to build from the ros2 branch, I get an error I believe due to the underlying ROS2 Eloquent (see below).

I am trying to make the move to Ubuntu 22.04 (which I successfully installed the ros2 branch on a different computer). But in the mean time, I was curious if anyone has had success with running all OSx lidars on ROS2 Eloquent.

Thanks,

Eric

Here is the error from running: colcon build

Starting >>> ouster_msgs Finished <<< ouster_msgs [3.14s]
Starting >>> ros2_ouster --- stderr: ros2_ouster
CMake Warning (dev) at /usr/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:438 (message): The package name passed to find_package_handle_standard_args (eigen) does not match the name of the calling package (PCL). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:153 (find_package_handle_standard_args) /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:638 (find_eigen) /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:850 (find_external_library) CMakeLists.txt:23 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at /usr/share/cmake-3.24/Modules/FindPackageHandleStandardArgs.cmake:438 (message): The package name passed to find_package_handle_standard_args (PCL_COMMON) does not match the name of the calling package (PCL). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:911 (find_package_handle_standard_args) CMakeLists.txt:23 (find_package) This warning is for project developers. Use -Wno-dev to suppress it.

/home/volair/ros2_ouster_drivers/ros2_ws/src/ros2_ouster_drivers/ros2_ouster/src/ouster_driver.cpp: In constructor ‘ros2_ouster::OusterDriver::OusterDriver(std::unique_ptr, const rclcpp::NodeOptions&)’: /home/volair/ros2_ouster_drivers/ros2_ws/src/ros2_ouster_drivers/ros2_ouster/src/ouster_driver.cpp:51:50: error: no matching function for call to ‘ros2_ouster::OusterDriver::declare_parameter(const char [9])’ this->declare_parameter("lidar_ip"); ^ In file included from /opt/ros/eloquent/include/rclcpp_lifecycle/lifecycle_node.hpp:665:0, from /home/volair/ros2_ouster_drivers/ros2_ws/src/ros2_ouster_drivers/ros2_ouster/include/ros2_ouster/interfaces/lifecycle_interface.hpp:20, from /home/volair/ros2_ouster_drivers/ros2_ws/src/ros2_ouster_drivers/ros2_ouster/src/ouster_driver.cpp:22: /opt/ros/eloquent/include/rclcpp_lifecycle/lifecycle_node_impl.hpp:135:1: note: candidate: template auto rclcpp_lifecycle::LifecycleNode::declare_parameter(const string&, const ParameterT&, const ParameterDescriptor&) LifecycleNode::declare_parameter( ^~~~~ /opt/ros/eloquent/include/rclcpp_lifecycle/lifecycle_node_impl.hpp:135:1: note: template argument deduction/substitution failed: /home/volair/ros2_ouster_drivers/ros2_ws/src/ros2_ouster_drivers/ros2_ouster/src/ouster_driver.cpp:51:50: note: candidate expects 3 arguments, 1 provided this->declare_parameter("lidar_ip"); ^ /home/volair/ros2_ouster_drivers/ros2_ws/src/ros2_ouster_drivers/ros2_ouster/src/ouster_driver.cpp:52:53: error: no matching function for call to ‘ros2_ouster::OusterDriver::declare_parameter(const char [12])’ this->declare_parameter("computer_ip"); ^ In file included from /opt/ros/eloquent/include/rclcpp_lifecycle/lifecycle_node.hpp:665:0, from /home/volair/ros2_ouster_drivers/ros2_ws/src/ros2_ouster_drivers/ros2_ouster/include/ros2_ouster/interfaces/lifecycle_interface.hpp:20, from /home/volair/ros2_ouster_drivers/ros2_ws/src/ros2_ouster_drivers/ros2_ouster/src/ouster_driver.cpp:22: /opt/ros/eloquent/include/rclcpp_lifecycle/lifecycle_node_impl.hpp:135:1: note: candidate: template auto rclcpp_lifecycle::LifecycleNode::declare_parameter(const string&, const ParameterT&, const ParameterDescriptor&) LifecycleNode::declare_parameter( ^~~~~ /opt/ros/eloquent/include/rclcpp_lifecycle/lifecycle_node_impl.hpp:135:1: note: template argument deduction/substitution failed: /home/volair/ros2_ouster_drivers/ros2_ws/src/ros2_ouster_drivers/ros2_ouster/src/ouster_driver.cpp:52:53: note: candidate expects 3 arguments, 1 provided this->declare_parameter("computer_ip"); ^ make[2]: [CMakeFiles/ouster_driver_core.dir/src/ouster_driver.cpp.o] Error 1 make[2]: Waiting for unfinished jobs.... make[1]: [CMakeFiles/ouster_driver_core.dir/all] Error 2 make: [all] Error 2

Failed <<< ros2_ouster [10.9s, exited with code 2]

Summary: 1 package finished [14.2s] 1 package failed: ros2_ouster 1 package had stderr output: ros2_ouster

SteveMacenski commented 2 years ago

Latest PR resolves.