飞控学习随记

常见指令

编译Arduplane程序

cd ardupilot/
./waf plane	

进入 Tools/autotest 文件夹中,启动3D flightgear

./fg_quad_view.sh 

进入ArduPLane文件夹中,启动仿真

sim_vehicle.py --map --console -L KSFO

(-L 选择起飞位置)
解锁arm throttle
起飞takeoff 50

下载航点

wp load ../Tools/autotest/Generic_Missions/CMAC-circuit.txt
wp list

多机仿真

sim_vehicle.py --map --console -I 0 has FDM in/out ports of 9002/9003 / GCS connection UDP:14550 --sysid=1 
sim_vehicle.py --map --console -I 1 has FDM in/out ports of 9012/9013 / GCS connection UDP:14560 --sysid=2
sim_vehicle.py --map --console -I 2 has FDM in/out ports of 9022/9023 / GCS connection UDP:14570 --sysid=3
sim_vehicle.py --map --console -I 3 has FDM in/out ports of 9024/9025 / GCS connection UDP:14580 --sysid=4

或者
(注意无人机设定序号从0开始,实际序号从1开始)

sim_vehicle.py -v ArduPlane -n 3 --auto-sysid --mcast --console --map
sim_vehicle.py -v ArduPlane -n 4 --auto-sysid -i "0 1 2 3" --mcast --console --map

分别对无人机进行设置
更多参数设置可以参考Tools/autotest/sim_vehicle.py代码,或者启动仿真后,输入help查看命令帮助
所有命令如下:

accelcal        : do 3D accelerometer calibration
accelcalsimple  : do simple accelerometer calibration
adsb            : adsb control
ahrstrim        : do AHRS trim
alias           : command aliases
alllinks        : send command on all links
alt             : show altitude information
arm             : arm motors #解锁油门
attitude        : attitude
auxopt          : select option for aux switches on CH7 and CH8 (ArduCopter only)
bat             : show battery information
batreset        : reset battery remaining
calpress        : calibrate pressure sensors
camctrlmsg      : camctrlmsg
cammsg          : cammsg
cammsg_old      : cammsg_old
canforward      : enable CAN forwarding
capabilities    : fetch autopilot capabilities
changealt       : change target altitude
changealt_abs   : change target absolute altitude
click           : set click location
command_int     : execute mavlink command_int
compassmot      : do compass/motor interference calibration
console         : console module
corrupt_params  : corrupt param storage
devid           : show device names from parameter IDs
dfu_boot        : boot into DFU mode
disarm          : disarm motors
engine          : engine
fence           : geo-fence management
flashbootloader : flash bootloader (dangerous)
forcecal        : force calibration save
formatsdcard    : format SD card
ftp             : file transfer
gethome         : get HOME_POSITION
ground          : do a ground start
guided          : fly to a clicked location on map
gyrocal         : do gyro calibration
hardfault_autopilot : hardfault autopilot
internalerror_autopilot : cause internal error in autopilot
land            : auto land
layout          : window layout management
led             : control board LED
level           : set level on a multicopter
link            : link control
lockup_autopilot : lockup autopilot
log             : log file handling
long            : execute mavlink long command
longloop_autopilot : cause long loop in autopilot
magcal          : magcal
magresetofs     : reset offsets for all compasses
magsetfield     : set expected mag field by field
map             : map control
mode            : mode change
module          : module commands
motortest       : motortest commands
namedvaluefloat : send a NAMED_VALUE_FLOAT
oreoled         : control OreoLEDs
output          : output control
panic_autopilot : panic autopilot
parachute       : parachute
param           : parameter handling
pause           : pause AUTO/GUIDED modes
playtune        : play tune remotely
position        : position
posvel          : posvel
rally           : rally point control
rc              : RC input control
rcbind          : bind RC receiver
reboot          : reboot autopilot
relay           : relay commands
repeat          : repeat a command at regular intervals
reset           : reopen the connection to the MAVLink master
resume          : resume AUTO/GUIDED modes
script          : run a script of MAVProxy commands
scripting       : control onboard scripting
servo           : servo commands
set             : mavproxy settings
setorigin       : set global origin
setspeed        : do_change_speed
setup           : go into setup mode
setyaw          : condition_yaw
shell           : run shell command
signing         : signing control
status          : show status
switch          : flight mode switch control
takeoff         : takeoff
terrain         : terrain control
time            : show autopilot time
tuneopt         : Select option for Tune Pot on Channel 6 (quadcopter only)
up              : adjust pitch trim by up to 5 degrees
vehicle         : vehicle control
velocity        : velocity
version         : fetch autopilot version
watch           : watch a MAVLink pattern
wipe_parameters : wipe autopilot parameters
wp              : waypoint management
vehicle 1

增加自定义模式

增加replan模式,并在执行完auto模式后自动切换到此模式

  • mode.h
    增加模式编号
    在这里插入图片描述
    定义类,内容先仿照guided模式,后续进行修改
    在这里插入图片描述

  • Plane.h中添加ModeReplan replan;
    在这里插入图片描述

  • Control_modes.cpp中添加
    在这里插入图片描述

  • events.cpp
    在这里插入图片描述
    在这里插入图片描述

  • GCS_Mavlink.cpp
    [外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csdnimg.cn-4f8uV32c43faa14dd9af0faa6ba9ab.png132)(https://imug-blog.csdnimg.cn/cd4f8343faa14dd9af0faa6efba1a94b.png)]

  • GCS_Plane.cpp
    在这里插入图片描述

发送总航点数和已完成航点数到Mavproxy

参考代码

const float wp_dist = current_loc.get_distance(flex_next_WP_loc);
    if (wp_dist <= acceptance_distance_m) {
        gcs().send_text(MAV_SEVERITY_INFO, "Reached waypoint #%i dist %um",
                          (unsigned)mission.get_current_nav_cmd().index,
                          (unsigned)current_loc.get_distance(flex_next_WP_loc));
        return true;
	}

仿真wp load 解决无法飞行问题

在这里插入图片描述第四列,22表示起飞点takeoff,一定要有

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值