文档帮助中心文档
创建示例实现无人机自定义传感器接口
createCustomSensorTemplate
例子
createCustomSensorTemplate创建了一个样本实现无人机自定义传感器的继承uav.SensorAdaptor类。这在MATLAB函数打开一个新文件®编辑器。
uav.SensorAdaptor
全部折叠
这个示例使用:
创建一个传感器的适配器imuSensor从导航工具箱™和收集数据的模拟无人机飞行场景。
imuSensor
创建传感器适配器
使用createSensorAdaptorTemplate函数模板来生成一个传感器和更新它适应imuSensor无人机场景中对象使用。
createSensorAdaptorTemplate
这个例子provivdes适配器类uavIMU,可以使用下面的命令查看。
uavIMU
编辑uavIMU.m
在无人机使用传感器适配器场景模拟
在无人机使用乌兹别克斯坦伊斯兰运动传感器适配器场景模拟。首先,创建的场景。
场景= uavScenario (“StopTime”8“UpdateRate”,100);
创建一个无人机平台和指定轨迹。添加一个固定翼网可视化。
平台= uavPlatform (“无人机”场景,“轨迹”,…waypointTrajectory ([0 0 0;100 0 0;100 100 0],“TimeOfArrival”,[0 5 8],“AutoBank”,真的));updateMesh(平台,“fixedwing”{10},(1 0 0),eul2tform([0 0π]));
附加乌兹别克斯坦伊斯兰运动传感器使用uavSensor对象和指定uavIMU作为输入。负载参数传感器模型。
uavSensor
imu = uavSensor (“IMU”平台,uavIMU (imuSensor));fn = fullfile (matlabroot,“工具箱”,“共享”,…“定位”,“positioningdata”,“generic.json”);loadparams (imu.SensorModel fn,“GenericLowCost9Axis”);
想象的场景。
图ax = show3D(场景);xlim(200年[-20]);ylim(200年[-20]);
Preallocate的simData结构和字段来存储仿真数据。乌兹别克斯坦伊斯兰运动加速度和角速率传感器将输出。
simData
simData =结构;simData。时间= duration.empty;simData。AccelerationX = 0 (0, 1);simData。AccelerationY = 0 (0, 1);simData。AccelerationZ = 0 (0, 1);simData。AngularRatesX = zeros(0,1); simData.AngularRatesY = zeros(0,1); simData.AngularRatesZ = zeros(0,1);
设置的场景。
设置(场景);
运行仿真使用推进函数。传感器和记录的数据进行更新。
推进
updateCounter = 0;而真正的%的进步情况。正在=进步(场景);updateCounter = updateCounter + 1;%更新传感器和读取IMU数据。updateSensors(场景);[isUpdated t acc,陀螺]=阅读(imu);%在结构中存储数据。simData。时间= [simData.Time;秒(t)];simData。AccelerationX = [simData.AccelerationX;acc (1)];simData。AccelerationY = [simData.AccelerationY;acc (2)];simData。AccelerationZ = [simData.AccelerationZ; acc(3)]; simData.AngularRatesX = [simData.AngularRatesX; gyro(1)]; simData.AngularRatesY = [simData.AngularRatesY; gyro(2)]; simData.AngularRatesZ = [simData.AngularRatesZ; gyro(3)];%更新可视化每10更新。如果updateCounter > 10 show3D(场景中,“FastUpdate”,真的,“父”、ax);updateCounter = 0;drawnowlimitrate结束%完成场景时退出循环。如果~正在打破;结束结束
可视化模拟IMU读数。
simTable = table2timetable (struct2table (simData));图stackedplot (simTable, (“AccelerationX”,“AccelerationY”,“AccelerationZ”,…“AngularRatesX”,“AngularRatesY”,“AngularRatesZ”),…“DisplayLabels”,(“AccX (m / s ^ 2)”,“AccY (m / s ^ 2)”,“AccZ (m / s ^ 2)”,…“AngularRateX (rad / s)”,“AngularRateY (rad / s)”,“AngularRateZ (rad / s)”]);
你有一个修改版的这个例子。你想打开这个例子与编辑?
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站翻译内容,看到当地事件和提供。根据你的位置,我们建议您选择:。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
联系你当地的办公室
得到审判现在