From 7ee11fe28ecec59d32ec019e9437c3535c2ea482 Mon Sep 17 00:00:00 2001 From: Jack Date: Thu, 28 Apr 2022 10:30:36 -0700 Subject: [PATCH] numref (#308) * numref * cite error * editor Co-authored-by: Jiankai-Sun --- README.md | 1 + chapter_rl_sys/control.md | 4 +++- chapter_rl_sys/index.md | 4 ++-- chapter_rl_sys/perception.md | 10 ++++++---- chapter_rl_sys/planning.md | 10 ++++++---- chapter_rl_sys/rl_sys_intro.md | 8 +++++--- chapter_rl_sys/ros.md | 10 ++++++---- info/editors.md | 4 ++-- mlsys.bib | 19 ++----------------- 9 files changed, 33 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 6560915..b1d8085 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ - **机器人系统:** 机器人(无人车,无人机,家用机器人等)作为机器学习技术重要的应用领域,在最近数年得到了广泛应用。在实践中,机器人系统在实时性,安全性,鲁棒性等方面都有极高要求,这要求开发者具有算法和系统的双重思维,从而解决实际问题。本书中我们将结合最新研究成果和机器人系统实践经验讲解该类系统的设计原则和实现细节。 + 我们在持续拓展拓展本书的内容,如元学习系统,自动并行,深度学习集群调度,绿色AI系统,图学习系统等。我们也非常欢迎社区对于新内容提出建议,贡献章节。 ## 构建指南 diff --git a/chapter_rl_sys/control.md b/chapter_rl_sys/control.md index f3f2818..94c305d 100644 --- a/chapter_rl_sys/control.md +++ b/chapter_rl_sys/control.md @@ -6,7 +6,7 @@ 理论方面,线性二次控制(Linear-Quadratic Control)是经典的控制方法,最近有关于图神经网络在分布式线性二次控制的研究 :cite:`pmlr-v144-gama21a`。作者称将线性二次问题转换为自监督学习问题,能够找到基于图神经网络(Graph Neural -Networks,GNN)的最佳分布式控制器,他们还推导出了所得闭环系统稳定的充分条件。随着基于数据和学习的机器人控制方法不断得到重视,研究人员必须了解何时以及如何在现实世界中最好地利用这些方法,因为安全是至关重要的,有的研究通过学习不确定的动力学来安全地提高性能,鼓励安全或稳健的强化学习方法,以及可以正式认证所学控制策略的安全性的方法 :cite:`brunke2021safe`。图:numref:`safe\_learning\_control`展示了安全学习控制(Safe Learning +Networks,GNN)的最佳分布式控制器,他们还推导出了所得闭环系统稳定的充分条件。随着基于数据和学习的机器人控制方法不断得到重视,研究人员必须了解何时以及如何在现实世界中最好地利用这些方法,因为安全是至关重要的,有的研究通过学习不确定的动力学来安全地提高性能,鼓励安全或稳健的强化学习方法,以及可以正式认证所学控制策略的安全性的方法 :cite:`brunke2021safe`。 :numref:`safe\_learning\_control`展示了安全学习控制(Safe Learning Control)系统的框架图,用数据驱动的方法来学习控制策略,兼顾安全性。Lyapunov :cite:`pmlr-v144-mehrjou21a` 函数是评估非线性动力系统稳定性的有效工具,最近有人提出Neural Lyapunov来将安全性纳入考虑。 @@ -20,3 +20,5 @@ Lyapunov来将安全性纳入考虑。 :label:`safe\_learning\_control` +:bibliography:`../mlsys.bib` + diff --git a/chapter_rl_sys/index.md b/chapter_rl_sys/index.md index e26b2e6..52e9da0 100644 --- a/chapter_rl_sys/index.md +++ b/chapter_rl_sys/index.md @@ -1,6 +1,6 @@ -# 机器人学习系统 +# 机器人系统 -在本章中,我们介绍机器学习的一个重要分支——机器人学习及其在系统方面的知识。本章的学习目标包括: +在本章中,我们介绍机器学习的一个重要分支——机器人及其在系统方面的知识。本章的学习目标包括: - 掌握机器人学习基本知识。 diff --git a/chapter_rl_sys/perception.md b/chapter_rl_sys/perception.md index 5f0c1f8..a028344 100644 --- a/chapter_rl_sys/perception.md +++ b/chapter_rl_sys/perception.md @@ -1,18 +1,18 @@ ## 感知系统 -感知系统不仅可以包括视觉,还可以包含触觉、声音等。在未知环境中,机器人想实现自主移动和导航必须知道自己在哪(例如通过相机重定位 :cite:`ding2019camnet`),周围什么情况(例如通过3D物体检测 :cite:`yi2020segvoxelnet`或语义分割),这些要依靠感知系统来实现 :cite:`xu2019depth`:cite:`xu2020selfvoxelo`:cite:`xu2022rnnpose`:cite:`xu2022robust`:cite:`yang2021pdnet`:cite:`huang2021vs`:cite:`huang2021life:cite:`:cite:`huang2019prior`:cite:`zhu2020ssn`。 +感知系统不仅可以包括视觉,还可以包含触觉、声音等。在未知环境中,机器人想实现自主移动和导航必须知道自己在哪(例如通过相机重定位 :cite:`ding2019camnet`),周围什么情况(例如通过3D物体检测 :cite:`yi2020segvoxelnet`或语义分割),这些要依靠感知系统来实现 :cite:`xu2019depth,xu2020selfvoxelo,xu2022rnnpose,xu2022robust,yang2021pdnet,huang2021vs,huang2021life,huang2019prior,zhu2020ssn`。 一提到感知系统,不得不提的就是即时定位与建图(Simultaneous Localization and Mapping,SLAM)系统。SLAM大致过程包括地标提取、数据关联、状态估计、状态更新以及地标更新等。视觉里程计Visual -Odometry是SLAM中的重要部分,它估计两个时刻机器人的相对运动(Ego-motion)。ORB-SLAM :cite:`campos2021orb`系列是视觉SLAM中有代表性的工作,图 :numref:`orbslam3` 展示了最新的ORB-SLAM3的主要系统组件。香港科技大学开源的基于单目视觉与惯导融合的SLAM技术VINS-Mono :cite:`8421746`也很值得关注。多传感器融合、优化数据关联与回环检测、与前端异构处理器集成、提升鲁棒性和重定位精度都是SLAM技术接下来的发展方向。 +Odometry是SLAM中的重要部分,它估计两个时刻机器人的相对运动(Ego-motion)。ORB-SLAM :cite:`campos2021orb`系列是视觉SLAM中有代表性的工作, :numref:`orbslam3` 展示了最新的ORB-SLAM3的主要系统组件。香港科技大学开源的基于单目视觉与惯导融合的SLAM技术VINS-Mono :cite:`8421746`也很值得关注。多传感器融合、优化数据关联与回环检测、与前端异构处理器集成、提升鲁棒性和重定位精度都是SLAM技术接下来的发展方向。 -最近,随着机器学习的兴起,基于学习的SLAM框架也被提了出来。TartanVO :cite:`tartanvo2020corl`是第一个基于学习的视觉里程计(VO)模型,该模型可以推广到多个数据集和现实世界场景,并优于传统基于几何的方法。 +最近,随着机器学习的兴起,基于学习的SLAM框架也被提了出来。TartanVO是第一个基于学习的视觉里程计(VO)模型,该模型可以推广到多个数据集和现实世界场景,并优于传统基于几何的方法。 UnDeepVO :cite:`li2018undeepvo`是一个无监督深度学习方案,能够通过使用深度神经网络估计单目相机的 6-DoF 位姿及其视图深度。DROID-SLAM :cite:`teed2021droid`是用于单目、立体和 RGB-D 相机的深度视觉 SLAM,它通过Bundle Adjustment层对相机位姿和像素深度的反复迭代更新,具有很强的鲁棒性,故障大大减少,尽管对单目视频进行了训练,但它可以利用立体声或 RGB-D 视频在测试时提高性能。其中,Bundle Adjustment -(BA)与机器学习的结合被广泛研究 :cite:`tang2018ba`:cite:`tanaka2021learning`。CMU提出通过主动神经 +(BA)与机器学习的结合被广泛研究 :cite:`tang2018ba,tanaka2021learning`。CMU提出通过主动神经 SLAM 的模块化系统帮助智能机器人在未知环境中的高效探索 :cite:`chaplot2020learning`。 @@ -21,3 +21,5 @@ SLAM :width:`800px` :label:`orbslam3` + +:bibliography:`../mlsys.bib` diff --git a/chapter_rl_sys/planning.md b/chapter_rl_sys/planning.md index 25c4b0c..3e71735 100644 --- a/chapter_rl_sys/planning.md +++ b/chapter_rl_sys/planning.md @@ -2,13 +2,15 @@ 规划不仅包含运动路径规划,还包含高级任务规划 :cite:`9712373`。其中,运动规划是机器人技术的核心问题之一,应用范围从导航到复杂环境中的操作。它具有悠久的研究历史,方法需要有概率完整性和最优性的保证。然而,当经典运动规划在处理现实世界的机器人问题(在高维空间中)时,挑战仍然存在。研究人员在继续开发新算法来克服与这些方法相关的限制,包括优化计算和内存负载、更好的规划表示和处理维度灾难等。 -相比之下,机器学习的最新进展为机器人专家研究运动规划问题开辟了新视角:经典运动规划器的瓶颈可以以数据驱动的方式解决;基于深度学习的规划器可以避免几何输入的局限性,例如使用视觉或语义输入进行规划等。最近的工作有:基于深度神经网络的四足机器人快速运动规划框架 :cite:`jangdeep`,通过贝叶斯学习进行运动规划 :cite:`quintero2021motion`,通过运动规划器指导的视觉运动策略学习 :cite:`kadubandimotion`。ML4KP :cite:`ML4KP`是一个用于有效运动动力学运动规划的C++库,该库可以轻松地将机器学习方法集成到规划过程中。 -自动驾驶领域和行人和车辆轨迹预测 :cite:`qiu2021egocentric`方面也涌现出使用机器学习解决运动规划的工作,比如斯坦福大学提出Trajectron++ :cite:`salzmann2020trajectron++`。强化学习在规划系统上也有重要应用 :cite:`aradi2020survey`:cite:`sun2021adversarial`,比如基于MetaDrive模拟器 :cite:`li2021metadrive`,最近有一些关于多智能体强化学习,多智能体车流模拟、驾驶行为分析 :cite:`peng2021learning`,考虑安全性因素的强化学习 :cite:`peng2021safe`,以及拓展到由真人专家在旁边监督,出现危险的时候接管的专家参与的强化学习工作(Online +相比之下,机器学习的最新进展为机器人专家研究运动规划问题开辟了新视角:经典运动规划器的瓶颈可以以数据驱动的方式解决;基于深度学习的规划器可以避免几何输入的局限性,例如使用视觉或语义输入进行规划等。最近的工作有:基于深度神经网络的四足机器人快速运动规划框架,通过贝叶斯学习进行运动规划 :cite:`quintero2021motion`,通过运动规划器指导的视觉运动策略学习。ML4KP :cite:`ML4KP`是一个用于有效运动动力学运动规划的C++库,该库可以轻松地将机器学习方法集成到规划过程中。 +自动驾驶领域和行人和车辆轨迹预测 :cite:`qiu2021egocentric`方面也涌现出使用机器学习解决运动规划的工作,比如斯坦福大学提出Trajectron++ :cite:`salzmann2020trajectron++`。强化学习在规划系统上也有重要应用 :cite:`aradi2020survey,sun2021adversarial`,比如基于MetaDrive模拟器 :cite:`li2021metadrive`,最近有一些关于多智能体强化学习,多智能体车流模拟、驾驶行为分析 :cite:`peng2021learning`,考虑安全性因素的强化学习 :cite:`peng2021safe`,以及拓展到由真人专家在旁边监督,出现危险的时候接管的专家参与的强化学习工作(Online Imitation Learning、Offline -RL):cite:`li2021efficient`,样本效率极高,是单纯强化学习算法的50倍。为了更好地说明强化学习是如何应用在自动驾驶中的,图 :numref:`rl\_ad`展示了一个基于深度强化学习的自动驾驶POMDP模型。 +RL):cite:`li2021efficient`,样本效率极高,是单纯强化学习算法的50倍。为了更好地说明强化学习是如何应用在自动驾驶中的, :numref:`rl\_ad`展示了一个基于深度强化学习的自动驾驶POMDP模型。 ![基于深度强化学习的自动驾驶POMDP模型 :cite:`aradi2020survey`](../img/ch13/rl_ad.png) :width:`800px` -:label:`rl\_ad` \ No newline at end of file +:label:`rl\_ad` + +:bibliography:`../mlsys.bib` diff --git a/chapter_rl_sys/rl_sys_intro.md b/chapter_rl_sys/rl_sys_intro.md index 3d37ef7..91fb59a 100644 --- a/chapter_rl_sys/rl_sys_intro.md +++ b/chapter_rl_sys/rl_sys_intro.md @@ -6,10 +6,10 @@ Learning):cite:`peters2016robot`。机器人学习包含了计算机视觉、自然语言处理、语音处理、强化学习和模仿学习等人工智能技术在机器人上的应用,让机器人通过学习,自主地执行各种决策控制任务。 机器人学习系统(Robot Learning -System)是一个较新的概念。作为系统和机器人学习的交叉方向,仿照机器学习系统的概念,我们把机器人学习系统定义为"支持机器人模型训练和部署的系统"。按照涉及的机器人数量,可以划分为单机器人学习系统和多机器人学习系统。多机器人学习系统协作和沟通中涉及的安全和隐私问题,也会是一个值得研究的方向。最近机器人学习系统在室内自主移动 :cite:`zhu2017target`:cite:`pmlr-v100-bansal20a`:cite:`9123682`:cite:`huang2018navigationnet`,道路自动驾驶 :cite:`pmlr-v155-huang21a`:cite:`pmlr-v155-sun21a`:cite:`Sun2022SelfSupervisedTA`,机械臂工业操作 :cite:`tobin2017domain`:cite:`finn2017deep`:cite:`chen2020transferable`:cite:`duan2017one`等行业场景得到充分应用和发展。一些机器人学习基础设施项目也在进行中,如具备从公开可用的互联网资源、计算机模拟和 +System)是一个较新的概念。作为系统和机器人学习的交叉方向,仿照机器学习系统的概念,我们把机器人学习系统定义为"支持机器人模型训练和部署的系统"。按照涉及的机器人数量,可以划分为单机器人学习系统和多机器人学习系统。多机器人学习系统协作和沟通中涉及的安全和隐私问题,也会是一个值得研究的方向。最近机器人学习系统在室内自主移动 :cite:`zhu2017target,pmlr-v100-bansal20a,9123682,huang2018navigationnet`,道路自动驾驶 :cite:`pmlr-v155-huang21a,pmlr-v155-sun21a,Sun2022SelfSupervisedTA`,机械臂工业操作 :cite:`tobin2017domain,finn2017deep,chen2020transferable,duan2017one`等行业场景得到充分应用和发展。一些机器人学习基础设施项目也在进行中,如具备从公开可用的互联网资源、计算机模拟和 真实机器人试验中学习能力的大规模的计算系统RobotBrain :cite:`saxena2014robobrain`。在自动驾驶领域,受联网的自动驾驶汽车 (CAV) 对传统交通运输行业的影响,"车辆计算"(Vehicle Computing) :cite:`9491826` -(如图:numref:`vehicle-computing`)概念引起广泛关注,并激发了如何让计算能力有限使用周围的CAV计算平台来执行复杂的计算任务的研究。最近,有很多自动驾驶系统的模拟器,代表性的比如CARLA :cite:`Dosovitskiy17`,支持安全RL、MARL、真实地图数据导入、泛化性测试等任务的MetaDrive :cite:`li2021metadrive`,还有CarSim和 +(如 :numref:`vehicle-computing`)概念引起广泛关注,并激发了如何让计算能力有限使用周围的CAV计算平台来执行复杂的计算任务的研究。最近,有很多自动驾驶系统的模拟器,代表性的比如CARLA :cite:`Dosovitskiy17`,支持安全RL、MARL、真实地图数据导入、泛化性测试等任务的MetaDrive :cite:`li2021metadrive`,还有CarSim和 TruckSim :cite:`benekohal1988carsim`,它们可以作为各种自动驾驶算法的训练场并对算法效果进行评估。另外针对自动驾驶的系统开发平台也不断涌现,如ERDOS, D3 (Dynamic Deadline-Driven) :cite:`10.1145/3492321.3519576`和强调模块化思想的Pylot :cite:`gog2021pylot`,可以让模型训练与部署系统与这些平台对接。 @@ -20,7 +20,7 @@ Deadline-Driven) :cite:`10.1145/3492321.3519576`和强调模块化思想的Pylot :label:`vehicle\_computing` -图 :numref:`learning\_decision\_module`是一个典型的感知、规划、控制的模块化设计的自动驾驶系统框架图,接下来,我们也将按照这个顺序依次介绍通用框架、感知系统、规划系统和控制系统。 + :numref:`learning\_decision\_module`是一个典型的感知、规划、控制的模块化设计的自动驾驶系统框架图,接下来,我们也将按照这个顺序依次介绍通用框架、感知系统、规划系统和控制系统。 ![通过模仿学习进行自动驾驶框架图。 绿线表示自主驾驶系统的模块化流程。橙色实线表示神经判别器的训练。而橙色虚线表示规划和控制模块是不可微的。但是决策策略可以通过判别器对控制行动的奖励,重新参数化技术进行训练,如蓝色虚线所示 :cite:`pmlr-v155-huang21a`。](../img/ch13/idm.png) @@ -28,3 +28,5 @@ Deadline-Driven) :cite:`10.1145/3492321.3519576`和强调模块化思想的Pylot :width:`800px` :label:`learning\_decision\_module` + +:bibliography:`../mlsys.bib` diff --git a/chapter_rl_sys/ros.md b/chapter_rl_sys/ros.md index 8705fc0..d7f0bb4 100644 --- a/chapter_rl_sys/ros.md +++ b/chapter_rl_sys/ros.md @@ -27,7 +27,7 @@ Ardent Apalone 是于2017年发布。ROS2增加了对多机器人系统的支持,提高了多机器人之间通信的网络性能,而且支持微控制器和跨系统平台,不仅可以运行在现有的X86和ARM系统上,还将支持MCU等嵌入式微控制器,不止能运行在Linux系统之上,还增加了对Windows、MacOS、RTOS等系统的支持。更重要的是,ROS 2还加入了实时控制的支持,可以提高控制的时效性和整体机器人的性能。ROS 2的通信系统基于DDS(Data Distribution -Service),即数据分发服务,如图:numref:`ROS2\_arch`所示。 +Service),即数据分发服务,如 :numref:`ROS2\_arch`所示。 ROS2依赖于使用shell环境组合工作区。"工作区"(Workspace)是一个ROS术语,表示使用ROS2进行开发的系统位置。核心ROS2 工作区称为Underlay。随后的工作区称为Overlays。使用ROS2 @@ -39,7 +39,7 @@ ROS Graph是一个由ROS2元素组成的网络,在同一时间一起处理数据。它包括所有的可执行文件和它们之间的联系。ROS2 中的每个节点都应负责一个单一的模块用途(例如,一个节点用于控制车轮马达,一个节点用于控制激光测距仪等)。每个节点都可以通过主题、服务、动作或参数向其他节点发送和接收数据。一个完整的机器人系统由许多协同工作的节点组成。在 ROS 2 中,单个可执行文件(C++ 程序、Python -程序等)可以包含一个或多个节点,如图:numref:`ros2\_graph`。 +程序等)可以包含一个或多个节点,如 :numref:`ros2\_graph`。 ![一个完整的机器人系统由许多协同工作的节点组成。在ROS 2 中,单个可执行文件(C++ 程序、Python @@ -64,10 +64,10 @@ ROS 2 中,单个可执行文件(C++ 程序、Python ### ROS2 Topics ROS2将复杂系统分解为许多模块化节点。主题(Topics)是 ROS -Graph的重要元素,它充当节点交换消息的总线。一个节点可以向任意数量的主题发布数据,同时订阅任意数量的主题,如图:numref:`ros2\_topics`所示。主题是数据在节点之间以及因此在系统的不同部分之间移动的主要方式之一。 +Graph的重要元素,它充当节点交换消息的总线。一个节点可以向任意数量的主题发布数据,同时订阅任意数量的主题,如 :numref:`ros2\_topics`所示。主题是数据在节点之间以及因此在系统的不同部分之间移动的主要方式之一。 rqt是ROS的一个软件框架,以插件的形式实现了各种 GUI 工具。可以在 rqt -中将所有现有的GUI工具作为可停靠窗口运行!这些工具仍然可以以传统的独立方法运行,但rqt可以更轻松地同时管理屏幕上的所有各种窗口。 +中将所有现有的GUI工具作为可停靠窗口运行。这些工具仍然可以以传统的独立方法运行,但rqt可以更轻松地同时管理屏幕上的所有各种窗口。 ![一个节点可以向任意数量的主题发布数据,同时订阅任意数量的主题](../img/ch13/ros2_topics.png) @@ -102,5 +102,7 @@ rqt是ROS的一个软件框架,以插件的形式实现了各种 GUI 工具。 :label:`ros2\_actions` +:bibliography:`../mlsys.bib` + [^1]: https://docs.ros.org/en/foxy/Tutorials/Understanding-ROS2-Nodes.html \ No newline at end of file diff --git a/info/editors.md b/info/editors.md index e07d5b5..03f086d 100644 --- a/info/editors.md +++ b/info/editors.md @@ -36,9 +36,9 @@ 第13章 - 可解释性AI系统:[@HaoyangLee](https://github.com/HaoyangLee) -第14章 - 机器人学习系统:[@HaoyangLee](https://github.com/HaoyangLee) +第14章 - 机器人学习系统:[@Jack](https://github.com/Jiankai-Sun) -附录:机器学习介绍:[@Jack](https://github.com/Jiankai-Sun) +附录:机器学习介绍:[@Hao](https://github.com/zsdonghao) ## 加入我们 diff --git a/mlsys.bib b/mlsys.bib index d07b951..021ac01 100644 --- a/mlsys.bib +++ b/mlsys.bib @@ -1017,15 +1017,6 @@ howpublished = {\url{https://github.com/PRX-Kinodynamic/ML4KP}}, year = {2021--2021} } -@article{kadubandimotion, - title={Motion Planner Guided Visuomotor Policy Learning}, - author={Kadubandi, Venkata Pradeep and Salhotra, Gautam and Sukhatme, Gaurav S and Englert, Peter} -} - -@article{jangdeep, - title={Deep Neural Network-based Fast Motion Planning Framework for Quadrupedal Robot}, - author={Jang, Jinhyeok and Shin, Heechan and Yoon, Minsung and Hong, Seungwoo and Park, Hae-Won and Yoon, Sung-Eui} -} @article{aradi2020survey, @@ -1043,13 +1034,6 @@ year = {2021--2021} year={2021} } -@article{tartanvo2020corl, - title = {TartanVO: A Generalizable Learning-based VO}, - author = {Wang, Wenshan and Hu, Yaoyu and Scherer, Sebastian}, - booktitle = {Conference on Robot Learning (CoRL)}, - year = {2020} -} - @article{qiu2021egocentric, title={Egocentric Human Trajectory Forecasting with a Wearable Camera and Multi-Modal Fusion}, author={Qiu, Jianing and Chen, Lipeng and Gu, Xiao and Lo, Frank P-W and Tsai, Ya-Yen and Sun, Jiankai and Liu, Jiaqi and Lo, Benny}, @@ -1497,8 +1481,9 @@ series = {EuroSys '22} year={2022} } -@inproceedings{Sun2022SelfSupervisedTA, +@article{Sun2022SelfSupervisedTA, title={Self-Supervised Traffic Advisors: Distributed, Multi-view Traffic Prediction for Smart Cities}, author={Jiankai Sun and Shreyas Kousik and David Fridovich-Keil and Mac Schwager}, + journal={arXiv preprint}, year={2022} }