Ubuntu18.04安装mavros
本来想在Raspberry Pi 3B上安装mavros,但由于某些原因失败了。 我会在下一篇文章中写到这段经历。 这次我使用的是Ubuntu18.04笔记本,已经有ros melodic环境了。 话不多说,请阅读下文。
参考:
1、Ubuntu18.04配置px4编译环境和mavros环境
2.ubuntu下使用GeographicLib库
3.PX4 [致命] [1595519040.562797928]:UAS:GeographicLib异常:文件不可读/usr/share/Geogr
4.在TX1上安装mavros时,出现错误UAS:GeographicLib异常:文件不可读...。
5、Linux下将一个文件夹中的所有内容复制到另一个文件夹(包括隐藏文件)
6.wstool安装
7、Linux系统下如何运行.sh文件
8.构建mavros失败(尝试了三种方法)
9. ROS MAVROS在树莓派上的安装和使用
10. Raspberry Pi 连接到 pixhawk
我的过程:
我的 ros 旋律以前很好。 因为参考了很多博客,我不确定下面哪些步骤是必要的,哪些是不必要的。 不过安装了就不会有问题了。 。 。
安装引导程序依赖项:
$ sudo apt-get install python-rosdep python-rosinstall-generator python -wstool python-rosinstall build-essential cmake
安装 rosdep(包管理器):
$ sudo rosdep init
$ rosdep update
检查ros环境:
$ export | grep ROS
安装 mavros 依赖项:
sudo apt-get install python-catkin-tools python-rosinstall-generator
sudo apt-get install libgeographic-dev
sudo apt-get install geographiclib-tools
sudo apt install python-future
安装马夫罗斯:
我没有使用源文件来安装。 我找到了两种方法,都发布在这里。 方法1和2我都用过,但我根本没有用2。 我使用了安装和依赖安装部分。
方法一:
sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras
方法二:
不知道和1有什么区别
# Mavlink
rosinstall_generator --rosdistro melodic mavlink | tee /tmp/mavros.rosinstall
#MAVROS
rosinstall_generator --upstream
mavros | tee -a /tmp/mavros.rosinstall
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4
rosdep install --from-paths src --ignore-src -y
如果此时缺少依赖,可以:
rosinstall_generator --rosdistro melodic $XXX | tee -a /tmp/mavros.rosinstall
然后运行:
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j4
rosdep install --from-paths src --ignore-src -y
catkin build
如果没有 wstool,您可以:
sudo apt-get install python-wstool
如果没有,只需:
sudo pip install -U wstool
请参阅上面列出的第 6 个博客。
还有一个可能的错误我没有遇到过,Mavros_extra 编译错误
tf2_eigen/tf2_eigen.h: No such file or directory
#include
这时需要将tf2_eigen添加到CMakeList中
find_package(catkin REQUIRED COMPONENTS
mavros
roscpp
mavros_msgs
sensor_msgs
geometry_msgs
std_msgs
visualization_msgs
urdf
tf
tf2_eigen
)
添加px4源码路径:
安装mavros后需要添加px4源码的路径,否则无法使用px4启动文件。 将其输入到终端打开的目录中。
gedit .bashrc
如果固件位于主目录中,请将以下内容添加到 .bashrc
source ~/Firmware/Tools/setup_gazebo.bash ~/Firmware/ ~/Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo
这里的路径是每次ros启动时都会启动无人机模型的地方。 因此,只需更改该路径下的固件,通过roslaunch启动无人机时,相应的更改不会对模拟产生影响。 人和机器都是有效的。
我的固件在/home/src中,所以我添加的是
source /home/src/Firmware/Tools/setup_gazebo.bash ~/Firmware/ /home/src/Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/src/Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/src/Firmware/Tools/sitl_gazebo
如果你想使用python3,记得将其添加到.bashrc中
alias python=python3
保存后,在终端中:
source .bashrc
运行测试马夫罗斯
roslaunch mavros px4.launch
这里有一个错误
[致命] [1595519040.562797928]:UAS:GeographicLib 异常:文件不可读 /usr/share/GeographicLib/geoids/egm96-5.pgm | 运行 install_geographiclib_dataset.sh 脚本以安装大地水准面模型数据集!
按照说明操作,您应该运行文件 install_geographiclib_dataset.sh。
我们在终端输入:
sudo /opt/ros/melodic/lib/mavros/install_geographiclib_datasets.sh
如果mavros是通过源文件安装的,请进入mavros文件夹并搜索install_geographiclib_datasets.sh文件,然后使用sudo权限运行它。
但问题还没有结束。 运行这个脚本会提醒我们没有文件夹/usr/share/GeographicLib。 我的解决方案是安装这个库。
首先下载文件:下载地址
我下载的是Geographiclib-1.4.8.tar.gz。 这里是百度网盘链接。 如果失败,请前往官方网站下载。 地理库
然后解压
tar xfpz GeographicLib-1.48.tar.gz
输入文件目录
cd GeographicLib-1.48
创建构建文件夹但进入
mkdir build
cd build
配置(使用库中提供的文件)
../configure
编译+安装
sudo make
sudo make install
接下来,将GeographicLib所需的依赖项添加到要使用的项目文件的cmakelist.txt中。
LIST(APPEND LINK_LIBS
${OpenCV_LIBS}
#$ENV{HOME}/ScaViSLAM/svslocal/lib/libGeographic.so
#${Geographic_LIBS}/usr/local/lib/libGeographic.a
/usr/local/lib/libGeographic.so.17.1.1
/usr/local/lib/libGeographic.so.17
/usr/local/lib/libGeographic.so
)
考虑到我们要求运行的 .sh 脚本应该已经添加了这个依赖项,所以我跳过了这一步。
再次运行.sh脚本,发现这次找到了对应的文件夹,并开始安装相关文件,也就是px4.launch启动时缺失的/usr/share/GeographicLib/geoids/egm96-5.pgm,报告错误。 如果我们查看这个.sh脚本树莓派源码编译安装,我们会发现它总共要安装3个这样的文件。
如果不需要脚本来安装,我们实际上可以这样安装:
进入 GeographicLib 文件夹,然后使用此格式安装 .sh 文件所需的最后三个文件。 注意,这句话中的gravity和egm96这两个词必须根据.sh替换为必要的词。
sudo geographiclib-get-gravity egm96
安装完成后,会出现类似如下的提示:
在/usr/local/share/GeographicLib/Magnetic中安装了磁性数据集emm2015。
注意这里的安装目录和报错目录不同树莓派源码编译安装,需要自动转移
在/usr/local/share/目录中:
sudo cp -r GeographicLib /usr/share/
再次运行
roslaunch mavros px4.launch
这次没问题了。 我的飞控是pixhawk2.4.8,我用USB线连接飞控侧面的USB口和笔记本电脑。