mavlink / mavros

MAVLink to ROS gateway with proxy for Ground Control Station
Other
847 stars 983 forks source link

mavros - problem with the colcon build #1898

Open naorwaiss opened 9 months ago

naorwaiss commented 9 months ago

hi , new at mavros try to colcon build and get this error

naor@naor-laptop:~/mav_ros$ colcon build 
Starting >>> mavlink 
Starting >>> mavros_msgs
Finished <<< mavlink [0.18s]                                  
Starting >>> libmavconn
Finished <<< libmavconn [0.13s]                                      
Finished <<< mavros_msgs [1.76s]                     
Starting >>> mavros
Finished <<< mavros [0.40s]                    
Starting >>> mavros_extras
--- stderr: mavros_extras                             
/home/naor/mav_ros/src/mavros/mavros_extras/src/plugins/gps_status.cpp: In member function ‘void mavros::extra_plugins::GpsStatusPlugin::handle_gps2_raw(const mavlink_message_t*, mavlink::common::msg::GPS2_RAW&, mavros::plugin::filter::SystemAndOk)’:
/home/naor/mav_ros/src/mavros/mavros_extras/src/plugins/gps_status.cpp:138:37: error: ‘struct mavlink::common::msg::GPS2_RAW’ has no member named ‘alt_ellipsoid’
  138 |     ros_msg.alt_ellipsoid = mav_msg.alt_ellipsoid;
      |                                     ^~~~~~~~~~~~~
/home/naor/mav_ros/src/mavros/mavros_extras/src/plugins/gps_status.cpp:139:29: error: ‘struct mavlink::common::msg::GPS2_RAW’ has no member named ‘h_acc’
  139 |     ros_msg.h_acc = mav_msg.h_acc;
      |                             ^~~~~
/home/naor/mav_ros/src/mavros/mavros_extras/src/plugins/gps_status.cpp:140:29: error: ‘struct mavlink::common::msg::GPS2_RAW’ has no member named ‘v_acc’
  140 |     ros_msg.v_acc = mav_msg.v_acc;
      |                             ^~~~~
/home/naor/mav_ros/src/mavros/mavros_extras/src/plugins/gps_status.cpp:141:31: error: ‘struct mavlink::common::msg::GPS2_RAW’ has no member named ‘vel_acc’
  141 |     ros_msg.vel_acc = mav_msg.vel_acc;
      |                               ^~~~~~~
/home/naor/mav_ros/src/mavros/mavros_extras/src/plugins/gps_status.cpp:142:31: error: ‘struct mavlink::common::msg::GPS2_RAW’ has no member named ‘hdg_acc’
  142 |     ros_msg.hdg_acc = mav_msg.hdg_acc;
      |                               ^~~~~~~
make[2]: *** [CMakeFiles/mavros_extras_plugins.dir/build.make:232: CMakeFiles/mavros_extras_plugins.dir/src/plugins/gps_status.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:136: CMakeFiles/mavros_extras_plugins.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed   <<< mavros_extras [3.13s, exited with code 2]

Summary: 4 packages finished [5.42s]
  1 package failed: mavros_extras
  1 package had stderr output: mavros_extras

thanks for the help

vooon commented 9 months ago

That's quite strange because you should have compatible version of mavros_msgs within a workspace. It's even listed in colcon log.

What version of ROS do do you use? Can you try to update mavros and mavlink clones, clean build dir and retry?

naorwaiss commented 9 months ago

i am use ros2 with foxy the installation finish and the mavros_node is run

naorwaiss commented 9 months ago
naor@naor-laptop:~/git_mav$ colcon build 
Starting >>> libmavconn
Starting >>> mavros_msgs
Finished <<< mavros_msgs [4.15s]                                   
Finished <<< libmavconn [5.99s]                     
Starting >>> mavros
[Processing: mavros]                             
--- stderr: mavros                               
/home/naor/git_mav/src/mavros/mavros/src/plugins/setpoint_accel.cpp:19:10: fatal error: tf2_eigen/tf2_eigen.hpp: No such file or directory
   19 | #include "tf2_eigen/tf2_eigen.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/mavros_plugins.dir/build.make:271: CMakeFiles/mavros_plugins.dir/src/plugins/setpoint_accel.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:189: CMakeFiles/mavros_plugins.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed   <<< mavros [31.5s, exited with code 2]

Summary: 2 packages finished [38.5s]
  1 package failed: mavros
  1 package had stderr output: mavros
  1 package not processed

now the problem change little bit can help ?

vooon commented 9 months ago

That's compatibility problem with old releases. There was .h suffix, in more recent releases .hpp. So you either can try newer release, or find and replace tf2 imports to use .h.

Since Foxy is EOLed, in my opinion better to upgrade.