产生偏心IMU数据
这个例子展示了如何生成惯性测量单元(IMU)数据从一个传感器安装在地面车辆。根据传感器的位置,乌兹别克斯坦伊斯兰运动加速度是不同的。
创建轨迹
指定车辆的路径轨迹,计算车辆使用lookupPose
。
%采样率。Fs = 100;%中转地点和到达的时间。路点= [1 1 1;3 1 1;3 0 0;0 0 0];t = [1;10;20;30);%创建轨迹和计算构成。traj = waypointTrajectory(锚点,t,“SampleRate”Fs);[posVeh, orientVeh velVeh、accVeh angvelVeh] = lookupPose (traj,…t (1): 1 / Fs: t ());
创建传感器和定义偏移量
创建两个9-axisimuSensor
对象由加速度计、陀螺仪和磁力计传感器。一个imuSensor
对象产生阅读的IMU安装在汽车的起源和另一个产生阅读的IMU安装在司机的座位。接下来,指定车辆之间的抵消起源和IMU安装在司机的座位。调用helperPlotIMU
可视化的位置传感器。
% IMU在车辆来源。imu = imuSensor (“accel-gyro-mag”,“SampleRate”Fs);% IMU在司机的座位。mountedIMU = imuSensor (“accel-gyro-mag”,“SampleRate”Fs);%的位置和方向抵消车辆和IMU安装。posVeh2IMU = (2.4 0.5 0.4);orientVeh2IMU =四元数([0 0 90),“eulerd”,“ZYX股票”,“帧”);%的可视化。:helperPlotIMU (posVeh (1), orientVeh (1:), posVeh2IMU, orientVeh2IMU);
使用车辆轨迹计算IMU轨迹
计算的地面真实轨迹IMU安装在司机的位置使用transformMotion
函数。这个函数使用位置和姿态补偿和车辆轨迹计算乌兹别克斯坦伊斯兰运动轨迹。
[posIMU, orientIMU velIMU、accIMU angvelIMU] = transformMotion (…posVeh2IMU orientVeh2IMU,…posVeh、orientVeh velVeh、accVeh angvelVeh);
生成传感器读数
生成的IMU读数IMU安装在车辆起源和IMU安装在司机的座位。
% IMU在车辆来源。(accel、陀螺、mag) = imu (accVeh、angvelVeh orientVeh);% IMU在司机的座位。[accelMounted, gyroMounted magMounted] = mountedIMU (…accIMU、angvelIMU orientIMU);
比较加速度计读数
比较两个艾莫斯的加速度计读数。请注意,x因为偏心位置设在加速度是不同的。
图(“名字”,加速度计比较的)次要情节(3、1、1)的阴谋((accel (: 1), accelMounted(: 1)])传说(与车辆的,“偏心”)标题(加速度计的)ylabel (“轴(m / s ^ 2)”次要情节(3、1、2)情节((accel (:, 2), accelMounted (:, 2)]) ylabel (“轴(m / s ^ 2)”次要情节(3,1,3)图((accel (:, 3), accelMounted (:, 3)]) ylabel (“z轴(m / s ^ 2)”)
比较陀螺仪数据
比较两个艾莫斯的陀螺仪读数。
图(“名字”,“陀螺仪比较”)次要情节(3、1、1)的阴谋([陀螺(:1),gyroMounted (: 1)]) ylim([-0.22 - 0.1])传说(与车辆的,“偏心”)标题(“陀螺”)ylabel (“轴(rad / s)”次要情节(3、1、2)情节([陀螺(:,2),gyroMounted (:, 2)]) ylabel (“轴(rad / s)”次要情节(3,1,3)情节([陀螺(:,3),gyroMounted (:, 3)]) ylabel (“z轴(rad / s)”)
比较磁强计读数
比较两个艾莫斯的磁强计读数。
图(“名字”,“磁强计比较”)次要情节(3、1、1)的阴谋([杂志(:1),magMounted(: 1)])传说(与车辆的,“偏心”)标题(“磁强计”)ylabel (“轴(\狗)”次要情节(3、1、2)情节([杂志(:,2),magMounted (:, 2)]) ylabel (“轴(\狗)”次要情节(3,1,3)情节([杂志(:,3),magMounted (:, 3)]) ylabel (“z轴(\狗)”)