💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
摘要:
随着互联和自动驾驶车辆的新兴移动系统需求不断增加,迫使我们必须建立高质量的测试环境来支持它们的发展。本文介绍了一个基于Unity的虚拟模拟环境,用于新兴移动系统,称为信息与决策科学实验室的缩小智能数字城市(IDS 3D City),旨在与其物理对应体和其已建立的控制框架并行运行。通过利用机器人操作系统、AirSim和Unity,我们构建了一个模拟环境,能够比在物理试验台上进行实验设计更快地迭代。这个环境提供了一个中间步骤,用来验证我们控制算法的有效性,以便在物理试验台上实施之前。IDS 3D City还使我们能够证明我们的控制算法独立于底层车辆动力学的运作,因为AirSim引入的车辆动力学与我们的缩小智能城市的运作规模不同。最后,我们通过在虚拟和物理环境中进行实验并比较它们的输出,展示了我们数字环境的行为。
📚2 运行结果
部分代码:
%extract the hostnames of the vehicles used in the experiment, form is "manta_XXX"
hostnamesOpt = dataOpt{1,2:11:end};
hostnamesBsl = dataBsl{1,2:11:end};
% 111, 120, 131 are the ego vehicle IDs. Pick the vehicles to plot.
desired = "manta_120";
%extract the data corresponding to each vehicle from the optimal and baseline data sets
idx = find(hostnamesOpt == desired, 1);
start = 1 + (idx-1)*11;
tOpt = dataOpt{:,start};
pxOpt = dataOpt{:,start+2};
pyOpt = dataOpt{:,start+3};
vOpt = dataOpt{:,start+6};
rOpt = dataOpt{:,start+9};
segOpt= dataOpt{:,start+10};
idx = find(hostnamesBsl == desired, 1);
start = 1 + (idx-1)*11;
tBsl = dataBsl{:,start};
pxBsl = dataBsl{:,start+2};
pyBsl = dataBsl{:,start+3};
vBsl = dataBsl{:,start+6};
rBsl = dataBsl{:,start+9};
segBsl= dataBsl{:,start+10};
%delete any data saved before the cars started
bad = find(segOpt == "");
tOpt(bad)=[]; pxOpt(bad)=[]; pyOpt(bad)=[];vOpt(bad)=[];rOpt(bad)=[];segOpt(bad)=[];
bad = find(segBsl == "");
tBsl(bad)=[]; pxBsl(bad)=[]; pyBsl(bad)=[];vBsl(bad)=[];rBsl(bad)=[];segBsl(bad)=[];
% calculate the cumulative distance travelled along the road, r
cumROpt = ExtractR(rOpt,segOpt);
cumRBsl = ExtractR(rBsl,segBsl);
% only get R from A102 to S29 -- these are the segments where the experiment takes place
segStart = 'S40';
segEnd = 'S29';
startOpt = find( ismember(segOpt, segStart), 1);
endOpt = find( ismember(segOpt, segEnd), 1, 'last');
startBsl = find( ismember(segBsl, segStart), 1);
endBsl = find( ismember(segBsl, segEnd), 1, 'last');
%set t = 0 at the start of segment A102
fprintf("Start at: %g\n", tOpt(startOpt))
tEnter = tOpt(startOpt);
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
Raymond M. Zayas, Logan E. Beaver.