赞
踩
很简单,希望伴机电脑上天之前先进行相关验证工作,而验证顾名思义就是一个测试环境。然而测试就有大量的,显而易见的炸机,希望能在模拟环境中尽量多的炸机,只有这样,现场测试才能更加稳定可靠。
之前其实已经有了一个基于Ubuntu22.04 LTS的笔记本Laptop环境,尽管电脑是10年前的老电脑,但是还是基本可以用的。
为什么要切换到Jetson Orin的主要原因是:
(MP + Simulator(Jetson Orin) + AI(Jetson Orin) + CC(Companion Computer) + FlightControl(SITL) + RC + FPV)
Jetson Orin系统安装这里就不再展开,需要了解的朋友,可以详细参考:《Linux 36.2@Jetson Orin Nano之基础环境构建》
这里的更新系统,更多的是需要对系统进行一些软件包上的整理。
$ sudo apt-get update
$ sudo apt-get upgrade
比如:有的时候会出现一些依赖问题,或者多余的安装包,请使用以下指令进行清理。
$ sudo apt-get clean
$ sudo apt-get autoclean
Gazebo Garden安装
$ sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
$ sudo apt-get install gz-garden
$ sudo apt install libgz-sim7-dev rapidjson-dev
$ git clone git@github.com:ArduPilot/ardupilot_gazebo.git
$ git log -n 1
commit 2589e7b4548b08709c3a66e81e98c459202c2c27 (HEAD -> main, origin/main, origin/HEAD)
Author: Rhys Mainwaring <rhys.mainwaring@me.com>
Date: Mon Feb 5 13:06:18 2024 +0000
Runway: fix render order issue causing vehicle model to be hidden
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
$ cd ardupilot_gazebo
$ mkdir build && cd build
$ cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
$ make -j4
$ export GZ_SIM_SYSTEM_PLUGIN_PATH=<ardupilot_gazebo path>/build:$GZ_SIM_SYSTEM_PLUGIN_PATH
$ export GZ_SIM_RESOURCE_PATH=<ardupilot_gazebo path>/models:$HOME/ardupilot_gazebo/worlds:$GZ_SIM_RESOURCE_PATH
or
$ echo 'export GZ_SIM_SYSTEM_PLUGIN_PATH=$HOME/ardupilot_gazebo/build:${GZ_SIM_SYSTEM_PLUGIN_PATH}' >> ~/.bashrc
$ echo 'export GZ_SIM_RESOURCE_PATH=$HOME/ardupilot_gazebo/models:$HOME/ardupilot_gazebo/worlds:${GZ_SIM_RESOURCE_PATH}' >> ~/.bashrc
$ gz sim --version
Gazebo Sim, version 7.0.0
Copyright (C) 2018 Open Source Robotics Foundation.
Released under the Apache 2.0 License.
$ gz sim -v4 -r shapes.sdf
$ gz sim -v4 -r iris_runway.sdf --render-engine ogre
$ git clone git@github.com:SnapDragonfly/ardupilot.git
$ git checkout Copter-4.5-lida2003
$ git log -n 1
commit b4407356a9193069c7f48b9dfed8785504968fca (HEAD -> Copter-4.5-lida2003, origin/Copter-4.5-lida2003)
Merge: 220478c733 913ec4b29c
Author: Daniel Li <lida_mail@163.com>
Date: Thu Apr 11 07:44:19 2024 +0800
Merge branch 'Copter-4.5' into Copter-4.5-lida2003
$ cd ardupilot
$ git submodule update --init --recursive
$ Tools/environment_install/install-prereqs-ubuntu.sh -y
$ pwd
/home/daniel/ardupilot
$ export PATH=$PATH:<ardupilot path>/Tools/autotest
$ export PATH=/usr/lib/ccache:$PATH
$ . ~/.profile
$ ./waf configure --board sitl # software-in-the-loop simulator
or
$ ./waf configure --board sitl --debug # software-in-the-loop simulator with debug symbols
$ ./waf
第一次测试运行,清理虚拟EEPROM参数
$ sim_vehicle.py -w -v ArduCopter
加载默认参数后,正常启动SITL模拟器
$ sim_vehicle.py --console --map -v ArduCopter
or
$ sim_vehicle.py --console --map -v ArduCopter --custom-location=30.218788,120.092316,281,90
十里琅珰远航飞行:BF飞行路线:BetaFlight Mark4 + 十里琅珰 + ELRS3.0 + 500mW_Dyn
Jetson Orin运行起飞点模拟命令
$ sim_vehicle.py --console --map -v ArduCopter --custom-location=30.3051391,120.1556749,8.71000003814697,90
MissionPlanner 连接 TCP端口5763 //TCP5760被MAVProxy占用了
录制的视频,将Jetson Orin上的Map地图和WIndows桌面的MissionPlanner组合叠加显示
Jetson Orin(MAVProxyMap + Ardupilot 4.5.1SITL) + MissionPlanner
$ gz sim -v4 -r iris_runway.sdf
$ sim_vehicle.py --console --map -v ArduCopter
Jetson Orin(Gazebo + Ardupilot 4.5.1SITL) + MissionPlanner
整体来看效果不错,理论上断开SITL的TCP5760模拟端口,使用伴机电脑向SITL发出指令就能控制飞行器进行飞行。唯一需要考虑的是透过UART获取飞行信息并发出指令。
后续考虑的工作:
关于Ardupilot模拟相关详细内容,请参阅:
【1】ArduPilot开源飞控系统之简单介绍
【2】PX4模块设计之一:SITL & HITL模拟框架
【3】PX4模块设计之七:Ubuntu 20.04搭建Gazebo模拟器
【4】PX4模块设计之八:Ubuntu 20.04搭建FlightGear模拟器
【5】PX4开发环境搭建–模拟器编译及QGroundControl & RC遥控模拟配置
【6】ArduPilot开源飞控之MAVProxy简介
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。