仿真环境中生成专家轨迹
文章目录
简介
本文为博客的子文,目的是生成专家轨迹,后续作为训练网络的真值标签,进行有监督学习。
仿真环境的整体运行流程如下:
- 全局规划
- 平滑轨迹
- kExecuteExpert模式下,选择专家轨迹中的最优轨迹。
- 然后控制飞机按照专家轨迹进行飞行,保存odometry.csv
- 然后对专家轨迹进行标签,得到轨迹真值label。
- 然后运行网络,并有标签真值轨迹进行有监督训练。
- 网络输出3条轨迹,kNetwork模式下,选择3条轨迹中的最优轨迹。
- 根据最优网络输出轨迹控制无人机运动,得到实际飞机的执行轨迹。
本模块主要实现全局规划,即专家轨迹的生成。流程框图如下:
输入:
- Reference Trajectory
- Full Quadrotor State
- Environment Pointcloud
输出: 规划的前3条轨迹
方法:M-H采样
代码运行
参考Readme.md中《Collect your own dataset》的步骤,注意打开配置文件 default.yaml and label_generation.yaml.中的perform_global_planning选项。
步骤
获取输入数据
Reference Trajectory
Reference Trajectory 通过给定起点和终点得到,是一条直线轨迹。
上图中,直线为Reference Trajectory, 枚红色轨迹为全局规划的输出轨迹。橙色为深度学习网络训练生成的用于飞机的实际执行轨迹。
Environment Pointcloud
Environment Pointcloud 通过给定飞机的起点和终点(终点通过起点加上40m得到),可以获取unity场景的有限范围的真实点云。
Full Quadrotor State
仿真环境中使用状态估计器(state_predictor_)给出飞机的实时位姿。
状态估计器(state_predictor_)的主要估计位姿的方法是通过上一次的控制指令,以及现在的时间,进行积分,代码如下: