8.3、本章常见问题

8.3.1、深度相机的内参矩阵是什么?

问题解答:

深度相机的内参矩阵描述了相机的内部参数,包括焦距、主点位置和相机的畸变等信息。通常情况下,内参矩阵是一个3x3的矩阵,通常表示为:[ K = \begin{bmatrix} f_x & 0 & c_x \ 0 & f_y & c_y \ 0 & 0 & 1 \end{bmatrix} ]

其中,( f_x ) 和 ( f_y ) 是相机在水平和垂直方向的焦距,( c_x ) 和 ( c_y ) 是相机的主点位置(光学中心)的坐标。通常情况下,主点位置是图像中心的坐标。最后一行通常为 ( [0, 0, 1] ),表示一个单位的缩放因子。

对于深度相机,内参矩阵的值会根据具体的相机型号和参数设置而变化。你可以通过查阅相机的技术规格或文档来获取内参矩阵的具体数值。另外,有些深度相机可能还会考虑畸变参数,例如径向畸变和切向畸变,这些参数也可以包含在内参矩阵中。

如下图所示:

8.3.2、开发的人脸识别算法或者高度控制算法怎么移植到仿真环境中或者在仿真环境中做验证?

问题解答:

人脸识别的例子,可以用Python来写,在工具链里面做实验。后面将图像源,从我们工具链换成对应相机就行。或者直接使用NX硬件在环的模式,直接在C++和ROS环境下开发算法,并进行硬件在环视觉仿真,后面直接把NX接入到真机上,调整图像获取源为相机,就能进行实飞。高度控制算法,直接放到Simulink里面,通过第2讲底层飞控开发的流程,烧录到飞控里去

8.3.3、软件仿真时,如何将自己实现的python算法应用到该软件中,应调用的API有没有具体的说明文档?可否有已实现的demo代码流程讲解?

问题解答:

参考第8张PPT2.1小节,路径为:[安装目录]/RflySimAPIs/8.RflySimVision/PPT.pdf如下图所示:

8.3.4、请问如何修改例程中的无人机飞行轨迹,将目标搜索算法生成的轨迹点对应到无人机飞行的航点上,或者如何将我们搜索算法生成的轨迹点的位置参数输入给无人机,让它按照给定的位置飞行?

问题解答:

1.使用工具链提供的PX4MavCtrl.py接口发送轨迹上的点,当然需要有个判断机制,判断以及到达该点,通用过接口getPos获取飞机当前位置,然后调用判断机制,发送轨迹点具体方法有下:

SendPosNED();SendPosFRD(),SendPosXXX(),诸如SendPos开头的函数接口,需要注意是注意坐标系之间的差异,必要做坐标转换;

2.使用mavros 发送mavlink 指令发布话题/mavros/set_position/local 或者 /mavros/setpoint_raw/local,通过话题/mavros/local_position/pose 获取飞机位置,与工具链提供的接口一样需要有判断机制以及坐标系之间的变化。

8.3.5、深度相机除了深度外还可以知道像素点与相机实际中左右上下的距离吗?

问题解答:

深度相机通常可以提供像素点在相机坐标系中的三维坐标,这包括了像素点与相机实际中左右上下的距离信息。这个距离信息可以通过将像素点的深度值(也称为视差值)转换为相机坐标系中的实际距离来获取。

基于深度相机提供的像素点的深度值以及相机的内参矩阵,可以使用三角测量或者深度图像的几何关系来计算像素点在相机坐标系中的实际距离。这个过程称为深度图像的深度解算或深度还原。

一旦将像素点的深度值转换为相机坐标系中的实际距离,就可以获取像素点与相机实际中左右上下的距离信息。这些距离信息可以用于进行各种计算和应用,例如物体距离估计、姿态估计、三维重建等。

8.3.6、RflySim里的真值位姿怎么获取,以及怎么设置使用视觉定位

问题解答:

RflySim 工具链的为都是通过mavlink 传输的,对应ros ,可以订阅mavros 发布的位姿话题获取, 对于工具链提供的接口PX4MavCtrlV4.py 中有相关接口。使用视觉定位,需要设置QGC的中的EKF2_AID_MASK参数,把它设为数据源来自视觉就行,同时设置EKF2_HGT_MODE值,改为vision. 另外把视觉定位的位姿发送给mavros 就可以了

8.3.7、json文件除了设置图像分辨率,可以设置像元尺寸吗?默认像元尺寸是多大呢

问题解答:

RflySim工具链内的config里面暂时不支持像元尺寸自定义。

8.3.8、RflySim的激光雷达视场角怎么修改,可以改成64线的么?

问题解答:

可以改成64线,线束改DataHeigh,分辨率根据DataWidth 和视场角改。具体工具链激光雷达相关参数以及代码解析可参考路径为:[安装目录]/RflySimAPIs/8.RflySimVision/PPT.pdf如下图所示:

8.3.9、如何在qgc地面站,获取px4在gazebo里的仿真摄像头拍摄到的图像?

问题解答:

在QGroundControl(QGC)地面站中获取PX4在Gazebo仿真环境中的摄像头拍摄到的图像通常需要使用一些额外的工具和技巧。以下是一种可能的方法:

  1. 设置Gazebo中的摄像头模型:首先,在Gazebo仿真环境中确保已经添加了相应的摄像头模型,并且该模型已正确设置。

  2. 启动PX4仿真:使用PX4仿真器(例如jMAVSim或Gazebo)启动仿真,确保仿真器与QGC地面站连接正常。

  3. 查看Gazebo图像话题:在仿真器运行时,可以通过查看Gazebo仿真环境中发布的图像话题来获取摄像头拍摄到的图像。通常情况下,图像话题的名称取决于你在Gazebo中设置的摄像头模型的名称以及图像的话题类型(例如RGB图像、深度图像等)。

  4. 使用ROS工具:如果你的仿真环境中使用了ROS(Robot Operating System),可以通过ROS工具来获取摄像头拍摄到的图像。使用rostopic list命令查看可用的话题,然后使用rostopic echo或者rqt_image_view等工具来查看图像。

  5. 使用ROS Bridge:如果QGC支持ROS Bridge功能,你可以通过ROS Bridge将ROS中的图像话题转发到QGC中,从而在QGC中查看图像。这需要一些额外的设置和配置,具体取决于你的系统和环境。

请注意,具体的操作步骤可能会因你所使用的PX4版本、Gazebo版本以及QGC版本而有所不同。建议查阅相应的文档或者在相关社区寻求帮助以获取更详细的指导。

8.3.10、我们现在工具链已有的视觉里面的ROS控制例子,运用到真机是用什么来控制?比如日后用路径规划的那种。

问题解答:

也可以通过ROS来控,代码迁移的时候注意数据源切换就行。

8.3.11、对tensorrt进行make的时候,老是报错是怎么回事啊?

问题解答:

这是库的问题。可能是C++编译版本不匹配,代码用了C++11以上的高版本特性。

8.3.12、一台RflySim环境,然后两台无人机机载电脑进行软件在环仿真,必须分别配置传感器参数吧?

问题解答:

除了ip ,两台无人机载电脑还有特殊sysid 标识,RflySim3D电脑端,client 中config 需要包含所有相机, 对应飞机机载中server config 需要分开配置。首先确定要在RflySim中创建几个飞机,然后根据飞机的id 去配置传感器

8.3.12、RflySim工具链相机模型支持畸变参数、像主点平移等参数设置么?

问题解答:

RflySim工具链的相机是理想模型,没有畸变。即便使用标定板去标定,也会内参矩阵接近理想值。

8.3.13、可不可以提供穿环,撞击小球,人脸识别的源代码标注?

问题解答:

在第8章ppt中 第3小节中有注释,路径为:[RflySim安装目录]/RflySimAPIs/8.RflySimVision/PPT.pdf如下图所示:

8.3.14、仿真环境的真实度如何,比如:重力、磁场、气压、物理引擎(空气阻力、电机扭矩、碰撞)、传感器(气压计、陀螺仪、加速度机、罗盘、GPS)

问题解答:

重力、磁场、气压等模型都是用的Simulink里面成熟的模块,使用的是国际最新标准化模型。空气阻力模型,目前根据实飞数据拟合,逼真度需要配合实验来校正;传感器模型也是大多使用当前成熟的模型,可以通过实验数据与仿真数据对比,来验证真实度。

8.3.15、python Vision穿环例程这三个分别是什么意思?

问题解答:

这个例程就是远程实现穿环,config就是配置文件。client在windows下跑,server在linux下跑。具体例程可参考:[安装目录]\RflySimAPIs\8.RflySimVision\1.BasicExps\1-VisionCtrlDemos\e5_ ScreenCapAPI\2-CrossRing\。如下图所示:

8.3.17、请问RflySim仿真平台,两家无人机做视觉相关的协同算法,第一架飞机摄像头视角我能读出来,第二个通过改参数只能读到第一个的视角,或者是空的,有大佬知道第二架飞机摄像机参数该怎么设置吗?

问题解答:

json文件参数没设置对,SeqID要不一样,一个0,一个1就行。

8.3.18、目前视觉感知与控制,机载电脑半实物移植,有相关的教程吗?

问题解答:

这块教程正在完善。最新版平台,可以跑下我们的机器人比赛的场景。C:\PX4PSP\RflySimAPIs\8.RflySimVision\1.BasicExps\2-BaseDemoAuto

目前我们的WinWSL就是Ubuntu 20.04的,除了用不了GPU加速,其他和机载电脑基本一致。初期仿真,一般在WinWSL里面开发算法,通过ROS1/ROS2订阅图像数据,开发自己的算法,通过mavros控制飞机。

把算法直接拷贝到真机板卡上,做一下GPU加速或者针对板卡的优化,进行飞控和板卡在环仿真(也可以购买我们的视觉盒子,带飞控和机载板卡)

把算法拷贝到真机板卡上,修改ROS订阅图像源,从原来的仿真图像ROS消息,变为自己的相机ROS消息;并且适配下真机相机参数,就能实现。

目前,我们机器人比赛的算法,就是三步走,直接上真机飞行。更详细的教程,应该会随3.05版近期发布,目前这块工作正在梳理,到时候也可以关注我们的暑期培训。

8.3.19、请教一下现在无人机导航,视觉用的稳定可靠还是激光方案更好一点?

问题解答:

室内使用激光,低空室外就不好说了,需要根据应用场景情况选择适合的传感器方案,不过综合考虑,推荐使用激光。

8.3.20、视觉例程中怎么将摄像机改为固定连接机身的方式?

问题解答:

你可以看看API文档里面的相关传感器配置,传感器配置里面有MountType。RflySim工具链的吊舱功能也开发好了,也可以使用吊舱。

8.3.21、Rflysim的摄像头是不是固连在机身上,无人机向前飞行,机身倾斜,摄像头角度没变?

问题解答:

RflySim工具链有两种方式,一个是跟随飞机的倾斜角度变化的,另一个与飞机倾斜角度无关的。

8.3.22、无人系统视觉开发中,图像识别时,Yolo与大语言模型哪个较准确?

问题解答:

Yolo更准确。

更多问题请访问:https://github.com/RflySim/Docs/issues

results matching ""

    No results matching ""