- 电脑系统:ubuntu20.04 x64架构
- 机载电脑:ubuntu20.04 arm64(v8)架构
- PX4版本:v1.13.3
- PX4:https://docs.px4.io/v1.13/en/ (文档尽量看英文的,中文内容更新比较滞后,而且有很多错误)
- ROS: https://wiki.ros.org/
- mavlink: https://mavlink.io/zh/
- XTDrone: https://www.yuque.com/xtdrone/manual_cn/basic_config_13
- Tip:自己的工作电脑(x86)需要完整安装以下所有,机载电脑(arm64)只需完成0~4步
参考链接: https://mirrors.ustc.edu.cn/help/ubuntu.html (x86架构) https://mirrors.ustc.edu.cn/help/ubuntu-ports.html (arm64架构)
参考链接:https://wiki.ros.org/noetic/Installation/Ubuntu (参考英文版)
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 install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt update
sudo apt install ros-noetic-desktop
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
参考链接 https://docs.px4.io/v1.13/en/ros/mavros_installation.html 两种安装方式:
- 二进制安装(推荐):
sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo bash ./install_geographiclib_datasets.sh
- 源码编译安装(进阶):
sudo apt install ros-noetic-mavlink
sudo apt search vrpn
sudo apt install ros-noetic-vrpn-client-ros
参考链接:https://docs.px4.io/v1.13/en/dev_setup/dev_env_linux_ubuntu.html
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
git checkout v1.13.3
git submodule update --init --recursive
sudo bash /home/zhangsk/PX4-Autopilot/Tools/setup/ubuntu.sh
- px4 源码下在完成后,重启电脑后执行下面操作
make px4_sitl_default gazebo
可能会出现缺失了很多包而报错,只需要按照提示,把这些包都装上就可以了
-
编译过程中如果遇到编译器缺失的情况,参考以下链接:
https://blog.csdn.net/weixin_46430470/article/details/123938016 或者输入
sudo apt install gcc-arm-none-eabi
参考链接:https://docs.px4.io/v1.13/en/simulation/ros_interface.html
- 将以下代码添加到 .bashrc 文件中(针对v1.13.3版本,不同版本稍有区别)
source /home/zhangsk/PX4-Autopilot/Tools/setup_gazebo.bash /home/zhangsk/PX4-Autopilot /home/zhangsk/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/zhangsk/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/zhangsk/PX4-Autopilot/Tools/sitl_gazebo
- 第一次进行联合仿真的时候可能会出现
ResourceNotFound: gazebo_ros
报错,使用sudo apt install ros-noetic-gazebo-ros-pkgs
参考链接:https://docs.qgroundcontrol.com/master/en/getting_started/download_and_install.html
- 官方给出的是一个AppImage文件,没有应用图标。可以通过以下的方法创建应用图标
1.双击打开QGC
2.进入到 /tmp文件,按下 Ctrl+H 键显示隐藏文件
3.找到QGC的文件,点击进入
复制QGC的图标和其 .desktop 文件到一个自己创建的文件夹中
4.修改 .desktop 文件中的图标和AppImage路径
5.sudo chmod 777 xxx.desktop
6.sudo cp /your/path/xxx.desktop /usr/share/applications/
- 打开设置,添加虚拟手柄,否则后续会无法进入offboard模式
-
在创建自己的工作空间之前先安装一些工具包
sudo apt install python3-catkin-tools
-
创建并初始化工作空间,以及创建ros包并编译
mkdir -p zhangsk_ws/src cd zhangsk_ws catkin init cd src catkin_create_pkg xxx_pkg roscpp geometry_msgs catkin build
-
将路径添加到配置文件
echo "source /home/zhangsk/zhangsk_ws/devel/setup.bash" >> .bashrc
- 以下设置为飞控+机载电脑在使用动捕系统进行定位的前提
// 修改串口参数 MAV_2_CONFIG = TELEM 2 MAV_2_MODE = Onboard MAV_2_RATE = 80000 MAV_2_FORWARD = TRUE SER_TEL2_BAUD = 921600 // 修改EKF参数 EKF2_AID_MASK = 24 EKF2_HGT_MODE = VISION 设置完之后重新进行水平校准
- 如果通过有线连接
// 修改 mavros 下的 px4.launch 文件
fcu_url:="/dev/ttyTHS0:921600"
gcs_url:="udp://@{使用qgc的设备ip}"
- 如果通过wifi模块(数传)连接
// wifi模块设置如下
// 修改 mavros 下的 px4.launch 文件
fcu_url:="udp://:{UgCS Port}@{wifi模块的ip}{Local Port}"
gcs_url:="udp://@{使用qgc的设备ip}"
在仿真里面运行的程序和实际运行的不太一样,重启电脑也无法解决
catkin clean // 清空之前的编译文件
catkin build // 重新编译