PX4日志生成及查看

PX4⽇志⽣成及查看
Pixhawk的飞⾏⽇志由固件中的sd2log模块记录在SD卡的log⽂件中,⽬前版本的格式为*.px4log(曾经是*.bin),根据sd2log的设置不同,包含飞⾏⽇志的⽂件夹的名字可能是sess***或者具体⽇期时间
启动⽇志
PX4中⽇志有时不随系统启动,需要在地⾯站中通过sdlog2命令启动⽇志记录,参数如下:
sdlog2 {start|stop|status|on|off} [-r ] [-b ] -e -a -t -x
-r Log rate in Hz, 0 means unlimited rate
设置记录的频率,0为不限,最好不要⽤,会占据很多cpu时间
-b Log buffer size in KiB, default is 8
设置缓存⼤⼩,默认为8KB,
-e Enable logging by default (if not, can be started by command)
开机⾃动开始记录,如果没有⾃动开始记录,仍然可以通过命令开始
-a Log only when armed (can be still overriden by command)
只有arm后才开始记录,可以通过命令更改。
-t Use date/time for naming log directories and files
⽤⽇期和时间命名⽇志⽂件夹和⽂件
-x Extended logging
拓展记录,可以记录更多的数据
也可以更改SDLOG_RATE进⾏设置
启动:
sdlog2 start -t -a -r 100
注意,这⾥仅仅是启动⽇志记录的程序,还没有开始记录⽇志,⽇志记录的开启和关闭⽤命令sdlog2 on和sdlog2 off来完成,如果希望执⾏start就开始记录的话,加上-e
关闭:
sdlog2 stop嵌入式pc
查看⽇志
查看⽇志使⽤FlightPlot.jar查看,通过可以下载,需要安装java环境
windows下直接双击运⾏
Linux/Mac下输⼊下⾯的命令:
java -jar FlightPlot.jar
然后选择对于的⽇志⽂件,⼀般在log/sess**⽬录下
点击Fields List,点选你想查看的额数据,然后确认。(可以通过ctrl+⿏标进⾏多个数据的同时点选和显⽰,但是之后不能单独移除,必须所以⼀次性点选的⼀起移除,所以也可以分别点选进⾏显⽰。)
⽇志Field的说明
统一平台在Firmware\src\modules\sdlog2\sdlog2_messages.h⽂件中有对⽇志每个Field的定义。下⾯是⽐较重要的⼏个数据:
/* --- ATT - ATTITUDE --- */
#define LOG_ATT_MSG 2
struct log_ATT_s {
float q_w; //下⾯4个是四元数
float q_x;
float q_y;
float q_z;
float roll;
float pitch;
float yaw;
float roll_rate;  //下⾯3个是⾓速度
float pitch_rate;
float yaw_rate;
};
/* --- ATSP - ATTITUDE SET POINT --- */
#define LOG_ATSP_MSG 3
struct log_ATSP_s {
float roll_sp;  //下⾯4个是期望值
float pitch_sp;
float yaw_sp;
float thrust_sp;
float q_w;      //期望的四元数
float q_x;
float q_y;
float q_z;
};
/* --- IMU - IMU SENSORS --- */
#define LOG_IMU_MSG 4
#define LOG_IMU1_MSG 22
#define LOG_IMU2_MSG 23
struct log_IMU_s {
float acc_x;  //下⾯⼀次为加速度、⾓速度、磁⼒计的读书,temp不知道 float acc_y;
float acc_z;
float gyro_x;
float gyro_y;
float gyro_z;
float mag_x;
float mag_y;
float mag_z;
float temp_acc;
float temp_gyro;
float temp_mag;
};
其他相对⽐较重要的数据有
/
* --- LPOS - LOCAL POSITION 相对位置信息--- */
#define LOG_LPOS_MSG 6
struct log_LPOS_s {
float x;    //相对于home的位置信息
float y;
float z;
float ground_dist; //离地⾼度
float ground_dist_rate; //爬升速度
float vx;  //3维的速度信息
float vy;
float vz;
int32_t ref_lat;  //相对home的经纬度
int32_t ref_lon;
float ref_alt;
float ref_alt;
uint8_t pos_flags;
uint8_t ground_dist_flags;
float eph;
float epv;
s22053
};
/* --- LPSP - LOCAL POSITION SETPOINT 位置控制的期望值--- */
#define LOG_LPSP_MSG 7
struct log_LPSP_s {
float x;
float y;
float z;
float yaw;
float vx;
float vy;
float vz;
float acc_x;
float acc_y;
float acc_z;
};
/* --- ATTC - ATTITUDE CONTROLS (ACTUATOR_0 CONTROLS) ⾓度控制输出--- */
#define LOG_ATTC_MSG 9
#define LOG_ATC1_MSG 46
struct log_ATTC_s {
float roll;
float pitch;
float yaw;
float thrust;
};
/* --- STAT - VEHICLE STATE 车辆的状态--- */
#define LOG_STAT_MSG 10
struct log_STAT_s {
uint8_t main_state;
uint8_t nav_state;
uint8_t arming_state;
uint8_t failsafe;
uint8_t is_rot_wing;
};
/* --- RC - RC INPUT CHANNELS 遥控器通道的输⼊--- */北师大珠海分校论坛
#define LOG_RC_MSG 11
struct log_RC_s {
float channel[12];上海冶金矿山机械厂
uint8_t rssi;
uint8_t channel_count;
uint8_t signal_lost;
uint32_t frame_drop;
};
/* --- OUT - ACTUATOR OUTPUT PWM制动器的输出--- */
#define LOG_OUT0_MSG 12
struct log_OUT_s {
float output[8];
};
⽣成csv⽂件
有些时候需要飞机的数据进⾏仿真或者其他处理,需要得到csv⽂件,在源代码的⽬录值下有⽣成csv⽂件的⼯具,在:              Firmware\Tools\sdlog2\下有个sdlog2_dump.py⽂件,参数为:
使⽤sdlog2_dump.py脚本可以把⽇志记录⽣成csv表格
sdlog2_dump的参数有:
-v 使⽤普通的调试输出,⽽不是CSV⽂件,就在在控制台上打印出来
-e 从错误中恢复,不懂
青黛霜
-d 所需使⽤的分隔符,默认为','
-n ⽇志⽂件中空值的替代符号,⽐如'null',默认为空''
-m 需要存储的消息类型和指定字段,可以有多个-m,默认存储所有数据
-t 指定时间列的名称(时间列的数值单位为us)
使⽤下⾯的命令可以⽣成csv⽂件
python sdlog2_dump.py log001.bin -f "export.csv" -t "TIME" -d "," -n ""
如果只想输出指定的数据,⽐如时间戳、ATT和IMU可以执⾏下⾯的命令:
python sdlog2_dump.py log001.bin -f "export.csv"  -m "TIME" -m "ATT" -m "IMU" -m "ATSP" -m "LPOS" -m "LPSP" -m "ATTC" -m "STAT" -m "RC" -m "OUT0" -m "LAND"

本文发布于:2024-09-21 15:34:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/374467.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:记录   数据   需要   时间   开始   控制   输出   指定
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议