利用飞行日志分析器分析无人机自动驾驶仪飞行日志
导入飞行日志数据,创建图形和绘图,导出信号,并在飞行日志分析器应用程序中使用自定义信号映射。
的飞行日志分析器App可以让你分析模拟或真实飞行产生的日志文件。
日志分析有助于找到碰撞的根本原因,或监视飞行器飞行期间的运行状况。你可以执行基本的分析来确定:
控制器跟踪引用的效果如何
是否有强烈的震动
如果车辆出现电源故障
打开飞行日志分析器App
在应用程序选项卡,在机器人与自主系统,点击飞行日志分析器.
或者,您也可以使用flightLogAnalyzer
函数从MATLAB®命令提示符。
ULOG文件导入
加载ULOG文件。
ulg = ulogreader (“flight.ulg”)
ulg = uloreader的属性:FileName: "flight. "ulg" StartTime: 00:00:00.176000 EndTime: 00:02:15.224000 AvailableTopics: [51x5 table] DropoutIntervals: [0x2 duration]
在飞行日志分析器应用程序将来发布,选择进口>从工作空间.在日志数据部分的从工作空间导入飞行日志信号映射和日志数据对话框中,选择ulogreader
对象ulg
并点击进口.
默认情况下,该应用程序会以表格的形式显示卫星地图和记录的GPS数据和飞行模式。飞行模式及其相应的开始和结束时间列于飞行模式窗格
制作图形和图表
每架无人机(固定或多旋翼)都配备了一组传感器,如陀螺仪、加速度计、磁强计和气压计,以确定车辆状态。车辆状态包括车辆的位置、速度、高度、速度和旋转速率。
添加预定义的情节
在情节部分的应用程序工具条,单击添加图将空图形添加到绘图窗格中。
在图片库中,单击IMU要在陀螺仪图中添加图形,陀螺加速度计,加速度计.
您可以使用图库中的各种预定义图来可视化来自不同传感器的数据。
使用Panner改变情节焦点
在飞行模式类的第一个实例虚度飞行模式,注意它开始时间而且结束时间值。
专注于飞行模式的通过,在淘洗沙金的人窗格中,拖动红色和蓝色手柄到开始时间而且结束时间,分别为所需飞行模式的。
或者,您也可以键入开始时间而且结束时间中的值从(sec)而且(sec)盒子,在狭长地块下面。单击加速度把注意力集中在它上面。
如果无人机的振动在一个很好的范围内,那么z
-轴加速度应保持在以下x
设在和y
设在加速度。绘制的飞行数据表明,在飞行的这一点,无人机的振动处于一个良好的范围。使用淘洗沙金的人,关注其他三个虚度并观察无人机的加速度。
添加自定义图
接下来,创建一个自定义Timeseries绘图以比较估计的滚动与滚动目标。
首先,在定制的情节Section的图库,点击Timeseries.
在信号窗格中,单击添加信号两次加两个信号。
双击轴列的第一个信号和,在信号的浏览器窗口,输入
RollTarget
在搜索框,然后单击旁边的箭头AttitudeTargetEuler
并选择RollTarget
.然后,单击更新.对于第二个要添加的信号,重复前面的三个步骤
卷
.将第一个信号重命名为
RollTarget
第二个信号是卷
.中双击信号的项即可重命名信号信号的名字列并键入新名称。在细节窗格中,选择显示的传说在情节上展现传奇。
图显示,直到飞行的最后几秒,预估的滚动密切跟随滚动目标。
输出信号
选择出口>输出信号将信号作为时间表导出到MATLAB工作区或MAT文件(.mat
).
选择要导出的信号。要将它们导出到MAT文件,请选择对MAT-file并为MAT文件指定一个文件名。若要为MAT文件选择目标文件夹,请单击浏览并导航到要导出到的文件夹。
要将信号导出到MATLAB工作区,请选择MATLAB工作空间并为输出工作区变量指定一个名称。
信号以时间表的形式导出。
在飞行日志分析仪应用程序中使用自定义信号映射
默认信号映射返回一组预定义的信号。
flsmObj = flightLogSignalMapping (“ulog”);信息(flsmObj“信号”)
ans =18×4表SignalName IsMapped SignalFields FieldUnits _____________________ ________ __________________________________________________________________________________________________________________________________________________________________________________________________________ ___________________________________________________ " Accel“true”AccelX、访问AccelZ”“米/秒^ 2,m / s ^ 2米/秒^ 2”“空速PressDiff“真实”,IndicatedAirSpeed,温度”“爸爸,m / s, degreeC”“AttitudeEuler“true”卷,俯角,偏航" "rad, rad, rad" "态度erate " " true "BodyRotationRateX, BodyRotationRateY, BodyRotationRateZ" "rad/s, rad/s, rad/s" "姿态targeteuler " true "RollTarget, PitchTarget, YawTarget" "rad, rad, rad" "气压计" true "PressAbs, presaltitude, Temperature" "Pa, m, degreeC" "电池" true "Voltage_1, Voltage_2, Voltage_3, Voltage_4, Voltage_5, Voltage_6, Voltage_7, Voltage_8, Voltage_9, Voltage_10, Voltage_11, Voltage_12, Voltage_13, Voltage_14, Voltage_15, Voltage_16,RemainingCapacity”“v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, % " " GPS“真正”的纬度,经度,高度,水平速度,CourseAngle, SatellitesVisible”“学位,学位,m, m / s,学位,N / A”“陀螺”真正的“GyroX GyroY, GyroZ”“rad / s, rad / s, rad / s”“LocalENU“真正”的X, Y, Z”“m m, m”“LocalENUTarget XTarget“真实”,YTarget, ZTarget”“m, m m”“LocalENUVel“true”VX, v, VZ”“m / s, m / s, m / s”“LocalENUVelTarget VXTarget“真实”,VYTarget, VZTarget”“m / s, m / s, m / s”“LocalNED“真正”的X, Y, Z”“m,m, m" "LocalNEDTarget" true "XTarget, YTarget, ZTarget" "m, m, m" "LocalNEDVel" true "VX, VY, VZ" "m/s, m/s, m/s"
除了预定义的信号集,您还可以映射飞行日志中出现的其他信号。例如,使用mapSignal
映射风速
到flightLogSignalMapping
对象,flsmObj
.
mapSignal (flsmObj“风速”,...@(数据)取得时间(可以获得的数据,“wind_estimate”)),...@(数据)getModeValue(可以获得的数据,“wind_estimate”)),...(“WindSpeed_East”,“WindSpeed_North”]);
检查flsmObj
现在包含新信号。
信息(flsmObj“信号”)
ans =19×4表SignalName IsMapped SignalFields FieldUnits _____________________ ________ __________________________________________________________________________________________________________________________________________________________________________________________________________ ___________________________________________________ " Accel“true”AccelX、访问AccelZ”“米/秒^ 2,m / s ^ 2米/秒^ 2”“空速PressDiff“真实”,IndicatedAirSpeed,温度”“爸爸,m / s, degreeC”“AttitudeEuler“true”卷,俯角,偏航" "rad, rad, rad" "态度erate " " true "BodyRotationRateX, BodyRotationRateY, BodyRotationRateZ" "rad/s, rad/s, rad/s" "姿态targeteuler " true "RollTarget, PitchTarget, YawTarget" "rad, rad, rad" "气压计" true "PressAbs, presaltitude, Temperature" "Pa, m, degreeC" "电池" true "Voltage_1, Voltage_2, Voltage_3, Voltage_4, Voltage_5, Voltage_6, Voltage_7, Voltage_8, Voltage_9, Voltage_10, Voltage_11, Voltage_12, Voltage_13, Voltage_14, Voltage_15, Voltage_16,RemainingCapacity”“v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, % " " GPS“真正”的纬度,经度,高度,水平速度,CourseAngle, SatellitesVisible”“学位,学位,m, m / s,学位,N / A”“陀螺”真正的“GyroX GyroY, GyroZ”“rad / s, rad / s, rad / s”“LocalENU“真正”的X, Y, Z”“m m, m”“LocalENUTarget XTarget“真实”,YTarget, ZTarget”“m, m m”“LocalENUVel“true”VX, v, VZ”“m / s, m / s, m / s”“LocalENUVelTarget VXTarget“真实”,VYTarget, VZTarget”“m / s, m / s, m / s”“LocalNED“真正”的X, Y, Z”“m,m, m" "LocalNEDTarget" true "XTarget, YTarget, ZTarget" "m, m, m" "LocalNEDVel" true "VX, VY, VZ" "m/s, m/s, m/s"
中使用此自定义信号映射飞行日志分析器应用:
在应用程序工具条上,单击进口并选择从工作空间.
在对话框中,选择
flsmObj
从信号的映射列表。选择
ulogreader
对象ulg
从日志数据部分。点击进口.
创建一个自定义Timeseries绘制并遵循步骤添加自定义图添加WindSpeed_East
而且WindSpeed_North
信号从信号的浏览器.
您可以使用此过程将其他信号映射到自定义信号映射对象,并在应用程序中可视化它们。
参考文献
[1] PX4自动驾驶仪。“飞行日志分析。”PX4用户指南。2020年12月14日。https://docs.px4.io/master/en/log/flight_log_analysis.html
[2] PX4自动驾驶仪。“使用飞行回顾进行日志分析。”PX4用户指南。2020年12月14日。https://docs.px4.io/master/en/log/flight_review.html