仿真器采集无人机仿真数据

仿真器采集无人机仿真数据

本文为博客的子文,介绍采用flightmare采集飞机飞行过程中的仿真数据,包括双目RGB图像,深度图像,全局场景点云,飞机的实时位姿。
网络训练需要输入:飞机的实时位姿,双目RGB图像,SGM计算的深度图像。
全局场景点云用于:网络训练轨迹的碰撞代价计算,以及用于全局规划。

仿真数据获取

代码构建了一个FlightmareBridge类,可以配置仿真环境,生成仿真数据。

class FlightmareBridge {
 public:
  FlightmareBridge(const ros::NodeHandle& nh, const ros::NodeHandle& pnh);
  void spawnObjects(const quadrotor_common::TrajectoryPoint& start_state);
  void generatePointcloud(const Eigen::Ref<Eigen::Vector3d>& min_corner,
                          const Eigen::Ref<Eigen::Vector3d>& max_corner,
                          const std::string& curr_data_dir);
  void disconnect();
  void getImages(const quadrotor_common::QuadStateEstimate& state_estimate,
                 const std::string curr_data_dir, const int frame_counter);
}

图像获取

给定飞机的位姿(temp_state_estimate),可以获取飞机在该位姿下采集的仿真RGB图像和真实深度图像。
SGM深度图像,采用OpenCV的SGM算法,输入采集的仿真双目RGB图像,得到计算的深度图像。
获取代码如下:

flightmare_bridge_->getImages(temp_state_estimate, "", 0);

场景点云获取

给定场景的最小点和最大点,即可获取仿真场景有限范围内的真实点云。场景获取之前要先在配置仿真场景,例如生成一些树和物体等。

flightmare_bridge_->spawnObjects(start_state);

仿真场景完成之后,可以调用如下函数,获取场景真实点云:

flightmare_bridge_->generatePointcloud(min_corner, max_corner,
                                           curr_data_dir_);

实时位姿获取

实时位姿需要飞机运行给定的轨迹,state_predictor才可以估计位姿,并保存下来。
这一步骤,可以参考博客,生成全局轨迹,再控制飞机运行,才能保存下来实时位姿。

获取的数据

网络训练代码运行过程中,会在 agile_autonomy_ws/src/agile_autonomy/planner_learning/data/train/路径下,生成仿真训练数据。
在这里插入图片描述
其中img中保存仿真图像数据,示例如下:
在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值