在学习无人机自动控制时,mavros是及其重要的,在这里分享一下安装的心得。
mavros - ROS Wikihttp://wiki.ros.org/mavros
有两种安装方式,二进制和源码安装,个人推荐第二种。
二进制安装
安装
直接一行代码
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
会自动在系统文件下生成编译好的mavros包
在/opt/ros/melodic/lib/mavros
在/opt/ros/melodic/include/mavros 下有msg头文件
在/opt/ros/melodic/share下有launch文件和定义的msg文件
可以作二次开发使用,在msg内添加自定义消息类型,也可以在launch里添加修改的launch文件
二次开发
修改插件黑名单
大家都会使用激光雷达距离传感器来定位,定高,但是在mavros下找不到这个距离的话题,默认情况下,distance_sensor插件是被放在黑名单里的,需要在黑名单里删除。
在/opt/ros/melodic/share/mavros/launch下的px4_pluginlists.yaml
把需要的插件注释掉即可
就可以看到话题了
其他的插件也一样
源码安装
可以参考本人的第一篇博客
报错不会很多,一般是网络超时问题,很好解决。
编译问题
在仅有源码安装的环境里编译offboard代码是会报错的,会提示找不到mavros的所有msg头文件
解决方法:
在对应的CMakeLists.txt文件内添加mavros_msg即可
在开头的find_package添加
mavros_msgs
这里是告诉电脑要用到mavros_ msg他就会自己去找。
使用
在~/mavros_ws/src/mavros/mavros/launch下能找到插件文件,和上面一样的效果
在~/mavros_ws/src/mavros/mavros/src/plugins能找到插件的对应文件,可以修改和添加,本人没有过多接触过就不多说了。
因为各种底层代码都有,比二进制安装更容易二次开发,所以作者推荐使用源码安装。
注:不要二进制和源码同时安装
这样虽然使用没什么问题,但是编译offboard代码时会使环境变量实效,而且二次开发也不好用。
欢迎大家在评论区指正讨论。