UAV Seminar 2013: Mission Planning & Operations with Commercial ...

需积分: 9 1 下载量 59 浏览量 更新于2024-07-19 收藏 11.47MB PDF 举报
"UAV Seminar 2013 是一个专注于无人机(UAV)技术的研讨会,特别是如何利用商业软件进行任务规划与操作。参与者包括来自不同背景的专业人士,如军事、航空航天工程和战略研究领域。研讨会的议程涵盖了STK(System Tool Kit)软件的介绍、飞机测试与评估、收购工程、以及任务规划与操作等多个关键主题。STK是一款被全球广泛使用的航空航天标准软件,拥有超过45,000次的安装量和700多个用户组织。" 在本次研讨会中,首先进行了自我介绍,由来自亚洲太平洋地区的专家团队主导,包括Matt Halferty(亚太区总监,美国西点军校军官)、Jim Head(亚太区合作伙伴经理,新加坡国防研究与安全研究所战略研究硕士)、Nate McBee(亚太区航空航天系统工程师,田纳西大学航空航天工程硕士)和Dan Honaker(亚太区航空航天系统工程师,科罗拉多大学航空航天工程硕士)。他们共同展示了STK的产品概述和软件演示。 STK产品概述部分,详细介绍了该软件的主要功能,它是一款强大的工具,用于空间任务设计与工程、卫星运行以及空间态势感知。STK支持模型为基础的工程方法,能够进行飞行器建模、仿真和分析,从而辅助飞机的测试和评估。 在飞机测试与评估环节,研讨会深入探讨了基于模型的工程实践,并通过软件演示展示如何利用STK进行这些活动。这可能包括飞行性能预测、环境影响评估以及故障模拟等。 休息后,研讨会转向收购工程领域,关注成本管理和自动化贸易研究工具的应用。这些工具帮助决策者在设计阶段就考虑成本效益,优化资源配置,降低项目风险。 接着,重点讨论了任务规划与操作,STK在这方面的应用包括定制应用程序开发,用于实现特定任务需求;后任务分析,用于评估任务执行效果并提供反馈;以及影像处理和利用,这可能涉及遥感数据的解析和情报提取。 最后的环节是问答和总结,让与会者有机会就所学内容提问,并对整个研讨会进行回顾。Analytical Graphics, Inc.(AGI)作为STK的提供商,强调了其在提供商业现成软件方面的长期经验和全球影响力,为航天界的各个层面提供了强大的支持。 UAV Seminar 2013为参与者提供了一个深入理解无人机任务规划与操作中商业软件应用的平台,特别突出了STK在这一过程中的核心作用。通过研讨会,专业人士得以提升在航空领域的技术能力,掌握更高效的工具来应对日益复杂的无人机挑战。

class AbstractGreedyAndPrune(): def __init__(self, aoi: AoI, uavs_tours: dict, max_rounds: int, debug: bool = True): self.aoi = aoi self.max_rounds = max_rounds self.debug = debug self.graph = aoi.graph self.nnodes = self.aoi.n_targets self.uavs = list(uavs_tours.keys()) self.nuavs = len(self.uavs) self.uavs_tours = {i: uavs_tours[self.uavs[i]] for i in range(self.nuavs)} self.__check_depots() self.reachable_points = self.__reachable_points() def __pruning(self, mr_solution: MultiRoundSolution) -> MultiRoundSolution: return utility.pruning_multiroundsolution(mr_solution) def solution(self) -> MultiRoundSolution: mrs_builder = MultiRoundSolutionBuilder(self.aoi) for uav in self.uavs: mrs_builder.add_drone(uav) residual_ntours_to_assign = {i : self.max_rounds for i in range(self.nuavs)} tour_to_assign = self.max_rounds * self.nuavs visited_points = set() while not self.greedy_stop_condition(visited_points, tour_to_assign): itd_uav, ind_tour = self.local_optimal_choice(visited_points, residual_ntours_to_assign) residual_ntours_to_assign[itd_uav] -= 1 tour_to_assign -= 1 opt_tour = self.uavs_tours[itd_uav][ind_tour] visited_points |= set(opt_tour.targets_indexes) # update visited points mrs_builder.append_tour(self.uavs[itd_uav], opt_tour) return self.__pruning(mrs_builder.build()) class CumulativeGreedyCoverage(AbstractGreedyAndPrune): choice_dict = {} for ind_uav in range(self.nuavs): uav_residual_rounds = residual_ntours_to_assign[ind_uav] if uav_residual_rounds > 0: uav_tours = self.uavs_tours[ind_uav] for ind_tour in range(len(uav_tours)): tour = uav_tours[ind_tour] quality_tour = self.evaluate_tour(tour, uav_residual_rounds, visited_points) choice_dict[quality_tour] = (ind_uav, ind_tour) best_value = max(choice_dict, key=int) return choice_dict[best_value] def evaluate_tour(self, tour : Tour, round_count : int, visited_points : set): new_points = (set(tour.targets_indexes) - visited_points) return round_count * len(new_points) 如何改写上述程序,使其能返回所有已经探索过的目标点visited_points的数量,请用代码表示

2023-06-10 上传