如果要在虚拟机上使用Ubuntu,可以参考
安装虚拟机。
如果需要安装VPN,推荐用lanten,下载地址
https://github.com/getlantern/lantern
下载完后,在lanten的目录下执行
sudo dpkg -i 下载的安装包名
即可安装
先安装git
sudo apt-get install git
如果提示
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
则更新源
执行sudo apt-get update
安装PX4和gazebo9
下载PX4源码
git clone -b stable https://github.com/PX4/Firmware.git --recursive
用git clone下载px4 Firmware时,如果一些子模块因为网络原因下载失败。可以在网络正常后,在Firmware路径下用git submodule update --init --recursive
继续下载剩余的子模块。
源码下载完毕后
cd Firmware
sudo bash ./Tools/setup/ubuntu.sh
在执行这个脚本的过程中会自动安装px4的编译环境和gazebo仿真环境,环境安装过程中如果报错一般是网速问题,可以开vpn,再重新执行脚本。直到安装成功。
安装完环境后编译生成gazebo仿真所需的sdf文件
make px4_sitl_default gazebo
如果要编译下载到飞控的代码,需重启电脑编译,以v5固件为例
make px4_fmu-v5_default
注意编译的时候Firmware路径不能不能有英文的括号,否则编译会报错或者一直循环config
笔者在编译成功后,利用make clean
清除编译后再次编译会报如下错
解决办法是用make distclean
重新清除一下即可。
如果要使用QT编译PX4作为看代码的工具,可以参考
安装ros和mavros
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python-rosdep
sudo rosdep init
如果rosdep init出现以下错误
一般是网络问题,无法访问那个链接,开个vpn一般能解决。
如果开了vpn后可以访问链接,但是还是报错,执行
sudo c_rehash /etc/ssl/certs
sudo -E rosdep init
如果执行成功,继续执行下面的命令
rosdep update
sudo apt install python-catkin-tools
mavros我这里直接用二进制安装,如果用源码安装参考
https://docs.px4.io/master/en/ros/mavros_installation.html
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
chmod +x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
安装好mavros后,需要添加一下px4源码的路径,否则不能使用px4的launch文件
gedit .bashrc
如果Firmware在home目录下,则添加如下
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启动无人机的时候,对应的修改才会对仿真的无人机有效
保存后 source .bashrc
测试mavros
roslaunch px4 mavros_posix_sitl.launch
如果正常启动gazebo,并且终端显示版本号,则说明px4、ros、mavros都正常安装了。
如果需要安装QGC地面站,可以在下面的网址下载
https://docs.qgroundcontrol.com/master/en/getting_started/download_and_install.html
下载后在地面站目录下执行
chmod +x QGroundControl.AppImage
再双击打开地面站即可,如果打开地面站时出现下面的提示
执行下面命令,再打开即可
sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager