# How do I add mavros_extras plugin from overlayed package to mavros

I want to use the mavros_extras package extension and after a week of a brutal battle just to get it installed from source, I realize I do not know how to actually add the plugins to mavros. I cannot find any fully descriptive documentation for how to do this (which is I think a problem itself), and so would like to ask how to do this. FYI: I have an overlayed package in ~/catkin_ws which has mavros, mavros_extras, test_mavros, libmavconn, mavlink, and several dependencies that rosdep couldnt resolve built inside of it. The dependencies I had to build in this package were angles,tf,control_msgs,control_toolbox, realtime_tools, urdf, and urdf_parser_plugin. This package is overlayed on top of the preinstalled ros and mavros at /opt/ros/kinetic/share/. All I would like to do is attempt to use the plugins in mavros_extras.

However, there is one catch: I have noticed that I cannot use the mavros in my build package as the mavros_node executable gives a segfault, when I try to start mavros with roslaunch or rosrun. Interestingly however, after some testing where I ran the executables directly, I have seen that this segfault is related to which setup.bash I source. (the one from ~/catkin_ws/devel/setup.bash or /opt/ros/kinetic/setup.bash. The mavros_node executable in my catkin workspace (~/catkin_ws/devel/lib/mavros/mavros_node) always gives a segfault. But interestingly, the one in /opt/ros/kinetic/lib/mavros/mavros_node gives a segfault too, but only when /opt/ros/kinetic/setup.bash has not been sourced. (Because I sourced ~/catkin_ws/devel/setup.bash instead.) This tells me that this is perhaps not some problem with the executable, but some weird thing with ros that I do not understand.

I should add, I have seen the tutorials available in the wiki, but they give me completely insufficient detail to know why I am doing what I am doing, and thus how to add plugins in my particular case.

OS: I am using the ros/mavros which come preinstalled in the custom Emlid-Raspbian OS for the Navio2 (emlid-raspbian-20190227).

Hardware: My hardware is a navio2 connected to a raspberry pi 3 B. armv7 (armhf)

edit retag close merge delete