一、什么是HITL

HITL是“人在环”(Human-in-the-loop)的缩写,它是人工智能的一个分支,利用人类和机器智能来创建机器学习模型。在传统的人在环方法中,人们参与到一个良性循环中,他们训练、调整和测试一个特定的算法。

一般来说,它是这样工作的:

首先,人类给数据贴上标签。这给了一个模型高质量(和高数量)训练数据.一个机器学习算法从这些数据中学会做决定。

接下来,人类调整模型。这可能以几种不同的方式发生,但通常情况下,人类会对数据进行评分,以解释过拟合,教分类器关于边缘情况,或在模型的范围内的新类别。

最后,人们可以通过对输出打分来测试和验证一个模型,特别是在算法对一个判断不自信或对一个错误决定过度自信的地方。

现在,需要注意的是,每一个动作都包含一个持续的反馈循环。人在循环的机器学习意味着把每一个训练、调整和测试任务反馈给算法,这样算法就会变得更聪明、更自信、更准确。当模型选择下一步需要学习的内容(即主动学习)并将该数据发送给人类注释器进行训练时,这种方法尤其有效。

“人在循环”是我们Appen多年来一直倡导的一种方法。我们已经看到它有助于改善每条条纹的模型,无论是文本分类器,计算机视觉算法,还是搜索和信息检索模型。我们可以为您独特的用例创建大量高度精确的训练数据,然后根据人类的洞察力调整您的模型,并测试它以确保其决策是准确的和可操作的。如果你想了解更多,请随时联系我。

二、Human-in-the-loop常见问题

        如何将人和机器结合起来创造人工智能?

  • 人在回路的方法结合了人类智能和机器智能的优点。机器善于从庞大的数据集中做出明智的决定,而人更善于在信息较少的情况下做出决定。例如,人们很擅长在看复杂的图像时挑选出离散的实体:“这是一根灯柱”或“这是一只猫,但你只能看到它的尾巴”。这正是一台机器需要了解灯柱或猫长什么样的信息。事实上,一台机器需要从不同的角度、部分遮挡、不同的颜色等角度看到许多不同的灯柱和猫,才能理解一个人的样子。一个由这些标签图像(即人类智能)组成的健壮数据集可以教会机器看到这些图像(即机器智能)。在某种程度上,有了足够的数据和足够的调整,这些机器算法可以快速地看到和理解图像,而且非常准确,而不需要人们不断地告诉它猫(或灯柱)到底长什么样。

        什么时候应该使用人在循环的机器学习?

  • 培训:正如我们上面讨论的,人类可以用来为模型训练提供标记数据。这可能是你看到数据科学家使用HitL方法最常见的地方。
  • 用于调优或测试:人类也可以帮助调整模型以获得更高的准确性。假设你的模特对一组特定的决定不自信,比如某张图片是否真的是一只猫。人类注释者可以给这些决策打分,有效地告诉模型,“是的,这是一只猫”或“不,这是一个路灯”,从而调整它,使其在未来更准确。

        人在循环和主动学习之间有什么区别?

  • 主动学习通常是指人类处理低信心单元并将其反馈到模型中。“人在环”的范围更广,包括主动学习方法,以及通过人类标记创建数据集。此外,HitL有时(尽管很少)会引用人们简单地验证(或无效)输出,而不将这些判断反馈给模型。

        谁在使用循环中人的机器学习?

  • HitL可以用于多种AI项目。这包括NLP、计算机视觉、情感分析、转录和大量其他用例。任何深度学习的人工智能都可以从某些插入循环的人类智能中受益。

三、硬件在环仿真(HITL)

硬件在环仿真模式 (HITL 或 HIL) 下 PX4 固件代码运行在真实的飞行控制器硬件平台上。 这种方法的优点是可以在实际硬件上测试大多数的实际飞行代码。

PX4 supports HITL for multicopters (using jMAVSim or Gazebo) and VTOL (using Gazebo).

四、HITL兼容机架

目前兼容的机架构型和模拟器的情况如下:

机架 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 仿真环境

硬件在环仿真(HITL)模式下标准的 PX4 固件在真实的硬件上运行。 JMAVSim 或 Gazebo (运行在开发计算机上) 通过 USB或者串口 完成与飞行控制器硬件平台连接。 模拟器充当在 PX4 和 QGroundControl 之间共享 MAVLink 数据的网关。

如果飞行控制器支持网络连接且使用的是稳定、低延迟的连接(如有线以太网,WIFI 通常不太稳定),那么模拟器也可以使用 UDP 完成通讯连接。 例如,该配置已经使用一台运行 PX4 且通过以太网连接到开发计算机的 Raspberry Pi 进行了验证测试 (包括 jMAVSim 运行命令的启动配置在 这里)。

下面展示了仿真模拟的环境:

  • 飞控板 HITL 模式被激活 (通过 QGroundControl) ,该模式下不会启动飞控板上任何传感器。
  • jMAVSim 或者 Gazebo 通过 USB 连接到飞控板。
  • 模拟器通过 UDP 连接到 QGroundControl 并将 MAVLink 数据传输至 PX4 。
  • GazebojMAVSim也可以连接到 offboard API和桥接MAVLink消息到 PX4。
  • (可选) 通过串口可将操纵杆/游戏手柄通过 QGroundControl 连接至仿真回路中。

六、HITL 相比于 SITL

SITL 开发计算机中的模拟环境中运行, 并使用专门为该环境生成的固件。 除了通过模拟器提供模拟环境数据的模拟驱动数据以外,系统正常运作的其他驱动数据。

与此相对照,HITL 在正常硬件上运行正常的 PX4 固件。 仿真数据进入整个仿真系统的时间点与 SITL 有所不同。 commander 和传感器等核心模块在启动时有HITL 模式,这种模式绕过了某些正常功能。

总而言之, HITL 在真实硬件上运行标准 PX4 固件,而 SITL 实际上要比标准 PX4 系统执行更多的代码。

七、配置 HITL

PX4配置

  1. 通过 USB 将自动驾驶仪直接连接到 QGroundControl
  2. 激活 HITL 模式

    1. 打开 Setup > Safety 选项卡。
    2. 在 HITL Enabled 下拉框中选择 Enabled 完成 HITL 模式的激活。

  1. 选择机架

    1. 打开 Setup > Airframes 选项卡。
    2. 选择一个你想要进行测试的 兼容的机架 。 Then click Apply and Restart on top-right of the Airframe Setup page.

  1. 如有必要, 校准您的 RC 遥控器 或操纵杆。

  2. 设置 UDP

    1. 在设置菜单的 "General" 选项卡下, 取消选中 AutoConnect 一栏中除 UDP 外的所有复选框。

  3. (可选) 配置操纵杆和故障保护。 Set the following parameters in order to use a joystick instead of an RC remote control transmitter:

    • COM_RC_IN_MODE 更改为 "Joystick/No RC Checks". 这允许操纵杆输入并禁用 RC 输入检查。
    • NAV_RCL_ACT to "Disabled". 这可确保在没有无线遥控的情况下运行 HITL 时 RC 失控保护不会介入。

      QGroundControl User Guide 中也有如何配置 操纵杆 和 虚拟操纵杆 的说明。

完成所有的配置设定后 关闭 QGroundControl 并断开飞控板与计算机的连接。

模拟器特定设置

在以下章节中按照特定模拟器的适当设置步骤。

Gazebo

确保 QGroundControl 没有运行!

  1. 使用 Gazebo 构建PX4 (用于构建Gazebo 插件)。

     cd <Firmware_clone>make px4_sitl_default gazebo
    
  2. 打开飞行器模型的 sdf 文件(例如 Tools/sitl_gazebo/models/iris/iris.sdf)。

  3. 找到文件的 mavlink_interface plugin 分区,将 serialEnabled 和 hil_mode 参数更改为 true 。

iris.sdf文件时自动生成的。 因此,您需要保存您修改过的文件的副本,或者为每个版本重新编辑。

  1. 如有必要的话替换掉 serialDevice 参数 (/dev/ttyACM0) 。

    串口设备参数取决于载具与计算机使用哪个端口完成连接 (通常情况下都是 /dev/ttyACM0)。 在 Ubuntu 上最简单的一个检测办法就是将自驾仪插入电脑,然后打开终端窗口输入 dmesg | grep "tty" 命令。 命令执行结果中最后一个显示的设备就是我们关心的。

  2. 设置环境变量

     source Tools/setup_gazebo.bash $(pwd) $(pwd)/build/px4_sitl_default
    

    在 HITL 模式下运行 Gazebo ::

     gazebo Tools/sitl_gazebo/worlds/iris.world
    
  3. 启动QGroundControl。 它应该会自动连接 PX4 和 Gazebo 。

jMAVSim (Quadrotor only)

确保 QGroundControl 没有运行!

  1. 将飞行控制器连接到计算机, 并等待其启动。
  2. 在 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 设备管理器中的连接。

  3. 开启 QGroundControl。 它应该会自动连接 PX4 和 Gazebo 。

八、在 HITL 仿真中执行自主飞行任务

你可以使用 QGroundControl 实现对飞机的控制并令其 执行飞行任务 。

【泛人工智能】无人机仿真HITL实践相关推荐

  1. 赛事快讯|2022中国工程机器人大赛——飞思无人机仿真与自主任务赛项演示视频来啦!

    作为第十一届中国工程机器人大赛暨国际公开赛的重要赛项,飞思无人机仿真与自主任务赛项诚邀全国各区域高效优秀人才及社会无人机极客参与其中,在实践中探索无人机奥秘! 中国工程机器人大赛-飞思实验室无人机仿真 ...

  2. 6款常见的无人机仿真开发平台(附超详细特点功能对比)

    随着无人机与无人集群的快速发展,开发者对于无人机系统仿真测试环境的需求也日渐显现.本文整理了几款常见的无人机仿真平台,旨在为开发者提供一款更为易用.通用且真实可靠的平台. 无人机与无人集群的研制应用快 ...

  3. AI公开课:19.04.10颜水成—360副总裁《人工智能:观察与实践》课堂笔记以及个人感悟—191017再次更新

    AI公开课:19.04.10颜水成-360副总裁<人工智能:观察与实践>课堂笔记以及个人感悟 导读       颜水成,新加坡国立大学副教授.360集团副总裁.人工智能研究院院长. 颜水成 ...

  4. 无人机仿真SLAM_gazebopromethues

    无人机仿真 总体概述 系统要求 PX4固件 简介 无人机固件整体框图 无人机软件框图 无人机硬件模型 Mavlink模块 位置估计与姿态估计模块 安装与编译 二次开发 机载计算机程序 控制模块 估计模 ...

  5. 多旋翼无人机仿真 rotors_simulator 是如何悬停的(一)

    多旋翼无人机仿真 rotors_simulator 是如何悬停的(一) 前言 mav_hovering_example.launch mav_generic_odometry_sensor.gazeb ...

  6. 【rotors】多旋翼无人机仿真(一)——搭建rotors仿真环境

    [rotors]多旋翼无人机仿真(一)--搭建rotors仿真环境 [rotors]多旋翼无人机仿真(二)--设置飞行轨迹 [rotors]多旋翼无人机仿真(三)--SE3控制 [rotors]多旋翼 ...

  7. 60 Minutes专访李开复:泛人工智能可能永远实现不了

    全世界只有3.14 % 的人关注了 数据与算法之美 尽管你听说过人工智能,但机器仍然无法像人类一样思考,但在过去的几年里,它们已经具备了学习的能力.突然之间,我们的设备睁开了眼睛和竖起了耳朵,汽车开始 ...

  8. 蓝桥杯评分标准_新闻 | 人工智能学院创新创业实践中心开展蓝桥杯国赛经验分享会...

    为让各位蓝桥杯国赛选手以饱满精力迎接接下来的比赛,天津科技大学人工智能学院创新创业实践中心邀请到计算机科学与技术专业教研室主任吴江红老师为各位蓝桥杯国赛选手分享经验,提高选手们的应试应赛能力. 吴江红 ...

  9. XTDorne平台搭建无人机仿真环境时遇到的问题及解决

    XTDorne平台搭建无人机仿真环境时遇到的问题及解决 PX4安装过程中遇到的问题及解决 PX4安装过程中遇到的问题及解决 执行make px4_sitl_default gazebo遇到的问题 问题 ...

最新文章

  1. 【 MATLAB 】使用 filter 函数产生给定线性时不变系统的单位阶跃响应
  2. Launcher3自定义壁纸旋转后拉伸无法恢复
  3. Python 输入与输出
  4. 打造“神犇”是教育的未来吗?
  5. D1. All are Same
  6. java单例模式 参数_java中的几种单例模式
  7. SQL Server整合–在单个SQL Server实例上托管多个数据库
  8. options请求_HTTP 协议 POST 请求,为什么会有一个 OPTION?
  9. php 数组任意位置插入值
  10. 自动布局和view 设置frame同时有效
  11. R软件中调用windows字体二
  12. Resnet18详细结构
  13. android版youtube最新版下载,youtube安卓版
  14. linux find命令 括号,Linux中find命令细节详解
  15. 软件测试人力面试题(含答案)
  16. 玩转直播:如何从 0 到 1 构建简单直播系统
  17. 醉林疯的PTA 7-2 换硬币 (20分)
  18. Python迭代器和生成器详解(包括yield详解)
  19. 【JS基础】e.preventDefault() 阻止默认操作
  20. Android手机电池耐用吗,八款超长待机的智能手机 大容量电池十分耐用

热门文章

  1. LED音乐频谱之概述
  2. pdb文件及引发的思考
  3. Rosalind Java|Inferring mRNA from Protein
  4. 嵌入式系统工程师 的职位要求
  5. Ubuntu输入法将显示繁体更换为显示简体
  6. 应用Bulter-Volmer方程与Monte Carlo 模型分析CO电氧化动力学
  7. 基于HTML5+vue的高校跳蚤市场-java二手交易网站springboot
  8. ASP.NET Core 正确获取查询字符串参数
  9. 典型环节的matlab仿真分析,实验一 典型环节的MATLAB仿真
  10. 我见过最通俗易懂的快速排序过程讲解,转自《坐在马桶上看算法:快速排序》