无人机基于目标检测的路径规划任务

无人机目标检测相机配置

目标检测基于darknet-yolo框架,darknet用于C/C++代码实现,适用于嵌入式设备上的目标检测
更改目标检测相机
使用RGB-D相机的左摄像头而不是单目相机,修改配置如下

indoor.launch启动文件中模型使用realsense深度相机模型

<arg name="sdf" default="$(find mavlink_sitl_gazebo)/models/iris_realsense_camera/iris_realsense_camera.sdf"/>

~/catkin_ws/src/darknet_ros/darknet_ros/launch/task1.launch修改

  <!-- <arg name="image" default="/typhoon_h480_0/cgo3_camera/image_raw" /> -->
  <arg name="image" default="/iris_0/stereo_camera/left/image_raw" />

~/catkin_ws/src/darknet_ros/darknet_ros/config/uav_0.yaml修改

    # topic: /typhoon_h480_0/cgo3_camera/image_raw
    topic: /iris_0/stereo_camera/left/image_raw

检测目标坐标系转换

浅析相机坐标系的相关转换
https://blog.csdn.net/qq_15029743/article/details/90215104
在这里插入图片描述
1.像素坐标系转相机坐标系
需要知道像素物理单元距离以及相机的内参矩阵
请添加图片描述
其中fx应该是f/dx,将相机的像素物理距离考虑在内
查看相机内参矩阵,camera/realsense_camera/camera_info话题,其中K为内参矩阵

intrinsic_M = np.array([[554.254691191187, 0.0, 320.5],  [0.0, 554.254691191187, 240.5],  [0.0, 0.0, 1.0]])

2.相机坐标系转世界坐标系
需要获得R、T矩阵
/mavros/local_position/pose话题中获得偏移量,并转化为R T

# 构造四元数,并将之转化为旋转矩阵
    q = Quaternion(data.pose.orientation.w, data.pose.orientation.x, data.pose.orientation.y, data.pose.orientation.z)
    R = q.rotation_matrix
 #构造平移矩阵
    T = np.array([[data.pose.position.x ],[data.pose.position.y ],[data.pose.position.z ]])

3.坐标转换流程

请添加图片描述

 #目标中心点的xy坐标(u,v)
    u = int(u)-1
    v = int(v)-1
    #中心点深度值
    Zc = box_ave(depth_image, u, v) 
    #相机内参矩阵
    intrinsic_M = np.array([[554.254691191187, 0.0, 320.5],  [0.0, 554.254691191187, 240.5],  [0.0, 0.0, 1.0]])
    
    # 像素坐标系
    uv_M = np.array([[u],[v],[1]])
    
    # 相机坐标系
    pos_C = np.dot(np.linalg.inv(intrinsic_M), uv_M)*Zc
    # print('pos_C',pos_C)
    
    #相机坐标系ENU 有时需要将相机坐标转换为以ENU系为基准
    
    # 世界坐标系(两种方法),经实验验证,这是以无人机为原点的ENU世界坐标系
    T = np.array([[X_w],[Y_w],[Z_w]])
    # pos_W = np.dot(np.linalg.inv(Rot), (pos_C_ENU - T))
    pos_W = np.dot(Rot, pos_C_ENU) + T
    print('pos_W',pos_W)

无人机目标检测地图配置

在forest.world文件中加入人物casual_female,在insert里面加入模型

d435i相机目标检测

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值