文档帮助中心文档
创建无人机自定义传感器接口的示例实现
createCustomSensorTemplate
例子
createCustomSensorTemplate创建UAV自定义传感器的示例实现,该传感器继承自UAV.SensorAdaptor.类。这个函数在MATLAB中打开一个新文件®编辑器。
UAV.SensorAdaptor.
全部折叠
这个示例使用:
为一个创建传感器适配器imuSensor从导航工具箱™中收集模拟无人机飞行场景的读数。
imuSensor
创建传感器适配器
使用createSensorAdaptorTemplate函数生成模板传感器并对其进行更新以适应imuSensor用于无人机场景的对象。
createSensorAdaptorTemplate
这个例子提供了适配器类uavIMU,可以使用以下命令查看。
uavIMU
编辑uavIMU.m
在UAV方案模拟中使用传感器适配器
在UAV方案模拟中使用IMU传感器适配器。首先,创建方案。
场景= uavScenario (“停止”,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 pi]));
使用该附加IMU传感器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的辛迪塔存储模拟数据的结构和字段。IMU传感器将输出加速度和角度率。
辛迪塔
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;尽管真的%的进步情况。isrunning =推进(情景);UpdateCounter = UpdateCounter + 1;%更新传感器并读取IMU数据。更新(方案);[iSupdated,T,ACC,Gyro] =读(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命令。金宝app
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系
得到审判现在