• 大小: 5KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: Matlab
  • 标签: Matlab  姿态解算  

资源简介

基于Life Performance公司的姿态传感器所编写的Matlab实例。 可以实时读取传感器数据并进行姿态解算。

资源截图

代码片段和文件信息

classdef lpms < handle
    % Lpms class to interface with LpmsSensors
    %
    % Known Issues:
    % - Serial Interrupt routine blocks main processing thread
    %   when transferring at data rate > 100Hz 
    %
    % TODO: 
    % - Implement 16bit data parsing

    
    properties (Constant)
        PACKET_ADDRESS0     = 0;
        PACKET_ADDRESS1     = 1;
        PACKET_FUNCTION0    = 2;
        PACKET_FUNCTION1    = 3;
        PACKET_LENGTH0      = 4;
        PACKET_LENGTH1      = 5;
        PACKET_RAW_DATA     = 6;
        PACKET_LRC_CHECK0   = 7;
        PACKET_LRC_CHECK1   = 8;
        PACKET_END          = 9;
        MAX_BUFFER = 4096;
        
        % Command register
        REPLY_ACK             = 0;
        REPLY_NACK            = 1;
        GET_CONFIG            = 4;
        GET_STATUS            = 5;
        GOTO_COMMAND_MODE     = 6;
        GOTO_STREAM_MODE      = 7;
        GET_SENSOR_DATA       = 9;
        
        GET_SERIAL_NUMBER     = 90;
        GET_DEVICE_NAME       = 91;
        GET_FIRMWARE_INFO     = 92;
        
        %Configuration register contents
        LPMS_GYR_AUTOCAL_ENABLED = bitshift(1 30);
        LPMS_LPBUS_DATA_MODE_16BIT_ENABLED = bitshift(1 22);
        LPMS_LINACC_OUTPUT_ENABLED = bitshift(1 21);
        LPMS_DYNAMIC_COVAR_ENABLED = bitshift(1 20);
        LPMS_ALTITUDE_OUTPUT_ENABLED = bitshift(1 19);
        LPMS_QUAT_OUTPUT_ENABLED = bitshift(1 18);
        LPMS_EULER_OUTPUT_ENABLED = bitshift(1 17);
        LPMS_ANGULAR_VELOCITY_OUTPUT_ENABLED = bitshift(1 16);
        LPMS_GYR_CALIBRA_ENABLED = bitshift(1 15);
        LPMS_HEAVEMOTION_OUTPUT_ENABLED = bitshift(1 14);
        LPMS_TEMPERATURE_OUTPUT_ENABLED = bitshift(1 13);
        LPMS_GYR_RAW_OUTPUT_ENABLED = bitshift(1 12);
        LPMS_ACC_RAW_OUTPUT_ENABLED = bitshift(1 11);
        LPMS_MAG_RAW_OUTPUT_ENABLED = bitshift(1 10);
        LPMS_PRESSURE_OUTPUT_ENABLED = bitshift(1 9);
        LPMS_STREAM_FREQ_5HZ_ENABLED      = 0;
        LPMS_STREAM_FREQ_10HZ_ENABLED     = 1;
        LPMS_STREAM_FREQ_25HZ_ENABLED     = 2;
        LPMS_STREAM_FREQ_50HZ_ENABLED     = 3;
        LPMS_STREAM_FREQ_100HZ_ENABLED    = 4;
        LPMS_STREAM_FREQ_200HZ_ENABLED    = 5;
        LPMS_STREAM_FREQ_400HZ_ENABLED    = 6;
        LPMS_STREAM_FREQ_MASK             = 7;
        
        LPMS_STREAM_FREQ_5HZ = 5;
        LPMS_STREAM_FREQ_10HZ = 10;
        LPMS_STREAM_FREQ_25HZ = 25;
        LPMS_STREAM_FREQ_50HZ = 50;
        LPMS_STREAM_FREQ_100HZ = 100;
        LPMS_STREAM_FREQ_200HZ = 200;
        LPMS_STREAM_FREQ_400HZ = 400;
        
        PARAMETER_SET_DELAY = 0.01;
        DATA_QUEUE_SIZE = 64;
    end
   
    properties
        % serial
        serConn;
        isSensorConnected = false;
        
        % define the properties of the class here (like fields of a struct)
        rxBuffer = uint8(zeros(1 lpms.MAX_BUFFER));
        rawTxBuffer = uint8(zer

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       25477  2018-07-20 16:23  LPMS MatLab实例\lpms.m
     文件         904  2018-07-20 16:23  LPMS MatLab实例\LpmsDataRecordingDemo.m
     文件        1099  2018-07-20 16:23  LPMS MatLab实例\LpmsRealTimePlotDemo.m

评论

共有 条评论