HITL是“人在环”(Human-in-the-loop)的缩写,它是人工智能的一个分支,利用人类和机器智能来创建机器学习模型。在传统的人在环方法中,人们参与到一个良性循环中,他们训练、调整和测试一个特定的算法。
一般来说,它是这样工作的:
首先,人类给数据贴上标签。这给了一个模型高质量(和高数量)训练数据.一个机器学习算法从这些数据中学会做决定。
接下来,人类调整模型。这可能以几种不同的方式发生,但通常情况下,人类会对数据进行评分,以解释过拟合,教分类器关于边缘情况,或在模型的范围内的新类别。
最后,人们可以通过对输出打分来测试和验证一个模型,特别是在算法对一个判断不自信或对一个错误决定过度自信的地方。
现在,需要注意的是,每一个动作都包含一个持续的反馈循环。人在循环的机器学习意味着把每一个训练、调整和测试任务反馈给算法,这样算法就会变得更聪明、更自信、更准确。当模型选择下一步需要学习的内容(即主动学习)并将该数据发送给人类注释器进行训练时,这种方法尤其有效。
“人在循环”是我们Appen多年来一直倡导的一种方法。我们已经看到它有助于改善每条条纹的模型,无论是文本分类器,计算机视觉算法,还是搜索和信息检索模型。我们可以为您独特的用例创建大量高度精确的训练数据,然后根据人类的洞察力调整您的模型,并测试它以确保其决策是准确的和可操作的。如果你想了解更多,请随时联系我。
如何将人和机器结合起来创造人工智能?
什么时候应该使用人在循环的机器学习?
人在循环和主动学习之间有什么区别?
谁在使用循环中人的机器学习?
硬件在环仿真模式 (HITL 或 HIL) 下 PX4 固件代码运行在真实的飞行控制器硬件平台上。 这种方法的优点是可以在实际硬件上测试大多数的实际飞行代码。
PX4 supports HITL for multicopters (using jMAVSim or Gazebo) and VTOL (using Gazebo).
目前兼容的机架构型和模拟器的情况如下:
机架 | SYS_AUTOSTART | Gazebo | jMAVSim |
---|---|---|---|
HIL Quadcopter X | 1001 | Y | Y |
HIL Standard VTOL QuadPlane | 1002 | Y | |
Generic Quadrotor x copter | 4001 | Y | Y |
DJI Flame Wheel f450 | 4011 | Y | Y |
硬件在环仿真(HITL)模式下标准的 PX4 固件在真实的硬件上运行。 JMAVSim 或 Gazebo (运行在开发计算机上) 通过 USB或者串口 完成与飞行控制器硬件平台连接。 模拟器充当在 PX4 和 QGroundControl 之间共享 MAVLink 数据的网关。
如果飞行控制器支持网络连接且使用的是稳定、低延迟的连接(如有线以太网,WIFI 通常不太稳定),那么模拟器也可以使用 UDP 完成通讯连接。 例如,该配置已经使用一台运行 PX4 且通过以太网连接到开发计算机的 Raspberry Pi 进行了验证测试 (包括 jMAVSim 运行命令的启动配置在 这里)。
下面展示了仿真模拟的环境:
SITL 开发计算机中的模拟环境中运行, 并使用专门为该环境生成的固件。 除了通过模拟器提供模拟环境数据的模拟驱动数据以外,系统正常运作的其他驱动数据。
与此相对照,HITL 在正常硬件上运行正常的 PX4 固件。 仿真数据进入整个仿真系统的时间点与 SITL 有所不同。 commander 和传感器等核心模块在启动时有HITL 模式,这种模式绕过了某些正常功能。
总而言之, HITL 在真实硬件上运行标准 PX4 固件,而 SITL 实际上要比标准 PX4 系统执行更多的代码。
PX4配置
激活 HITL 模式
在 HITL Enabled 下拉框中选择 Enabled 完成 HITL 模式的激活。
选择机架
选择一个你想要进行测试的 兼容的机架 。 Then click Apply and Restart on top-right of the Airframe Setup page.
如有必要, 校准您的 RC 遥控器 或操纵杆。
设置 UDP
在设置菜单的 "General" 选项卡下, 取消选中 AutoConnect 一栏中除 UDP 外的所有复选框。
(可选) 配置操纵杆和故障保护。 Set the following parameters in order to use a joystick instead of an RC remote control transmitter:
NAV_RCL_ACT to "Disabled". 这可确保在没有无线遥控的情况下运行 HITL 时 RC 失控保护不会介入。
完成所有的配置设定后 关闭 QGroundControl 并断开飞控板与计算机的连接。
模拟器特定设置
在以下章节中按照特定模拟器的适当设置步骤。
Gazebo
确保 QGroundControl 没有运行!
使用 Gazebo 构建PX4 (用于构建Gazebo 插件)。
- cd <Firmware_clone>
- make px4_sitl_default gazebo
打开飞行器模型的 sdf 文件(例如 Tools/sitl_gazebo/models/iris/iris.sdf)。
找到文件的 mavlink_interface plugin
分区,将 serialEnabled
和 hil_mode
参数更改为 true
。
iris.sdf文件时自动生成的。 因此,您需要保存您修改过的文件的副本,或者为每个版本重新编辑。
如有必要的话替换掉 serialDevice
参数 (/dev/ttyACM0
) 。
串口设备参数取决于载具与计算机使用哪个端口完成连接 (通常情况下都是
/dev/ttyACM0
)。 在 Ubuntu 上最简单的一个检测办法就是将自驾仪插入电脑,然后打开终端窗口输入dmesg | grep "tty"
命令。 命令执行结果中最后一个显示的设备就是我们关心的。
设置环境变量
source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
在 HITL 模式下运行 Gazebo ::
gazebo Tools/sitl_gazebo/worlds/iris.world
启动QGroundControl。 它应该会自动连接 PX4 和 Gazebo 。
jMAVSim (Quadrotor only)
确保 QGroundControl 没有运行!
在 HIL 模式下运行 jMAVSim
- sh
- ./Tools/jmavsim_run.sh -q -d /dev/ttyACM0 -b 921600 -r 250
Note 酌情替换序列端口名称/dev/ttyACM0
。 在 macOS 上,这个端口将是 /dev/tty.bankmodem1
。 在 Windows 上(包括Cygwin) 它将是 COM1 或另一个端口 - 请检查 Windows 设备管理器中的连接。
你可以使用 QGroundControl 实现对飞机的控制并令其 执行飞行任务 。