Underactuated Robotics - 欠驱动机器人学

系列文章目录

DRAKE - 基于模型的机器人设计与验证 由丰田研究所支持的 C++ / Python 工具箱。


前言

© Russ Tedrake, 2023

注:这是麻省理工学院一门课程的工作笔记。它们将在 2023 年春季学期中不断更新。讲座视频可在 YouTube 上观看。

您也可以从这里下载 PDF 版本的说明(更新频率要低得多)。

这些说明的 PDF 版本是从 HTML 版本自动生成的。有一些转换/格式化的人工痕迹很容易修复(请随时指出)。但是,HTML 版本中的一些互动元素也不容易放到 PDF 中。在可能的情况下,我会尽量提供链接。但我认为在线 HTML 版本是主要版本。


前言

Chapter 1: Fully-actuated vs Underactuated Systems

第 1 章:全驱动与欠驱动系统

一、Model Systems - 系统模型

Chapter 2: The Simple Pendulum

第 2 章:简摆

Chapter 3: Acrobots, Cart-Poles, and Quadrotors

第 3 章:体操机器人、小车摆杆和四旋翼机器人

Chapter 4: Simple Models of Walking and Running

第 4 章:行走和跑步的简单模型

Chapter 5: Highly-articulated Legged Robots

第 5 章:高度关节化的足式机器人

Chapter 6: Model Systems with Stochasticity

第 6 章:带有随机性的模型系统

二、Nonlinear Planning and Control - 非线性规划与控制

Chapter 7: Dynamic Programming

第 7 章:动态规划

Chapter 8: Linear Quadratic Regulators

第 8 章:线性二次调节器

Chapter 9: Lyapunov Analysis

第 9 章:李亚普诺夫分析

Chapter 10: Trajectory Optimization

第 10 章:轨迹优化

Chapter 11: Policy Search

第 11 章:策略搜索

Chapter 12: Motion Planning as Search

第 12 章:运动规划即搜索

Chapter 13: Feedback Motion Planning

第 13 章:反馈式运动规划

Chapter 14: Robust and Stochastic Control

第 14 章:鲁棒控制与随机控制

Chapter 15: Output Feedback (aka Pixels-to-Torques)

第 15 章:输出反馈(又称 "像素到转矩")

Chapter 16: Algorithms for Limit Cycles

第 16 章:极限循环算法

Chapter 17: Planning and Control through Contact

第 17 章:通过接触进行规划和控制

三、Estimation and Learning - 估计与学习

Chapter 18: System Identification

第 18 章:系统识别

Chapter 19: State Estimation

第 19 章:状态估计

Chapter 20: Model-Free Policy Search

第 20 章:无模型策略搜索

前言

        本书介绍非线性动力学和控制,重点是机械系统。在我的职业生涯中,我一直在思考如何让机器人既能稳健地移动,又能快速、高效、优雅地移动。我认为,实现这一目标的最佳途径是将机械设计、被动动力学和非线性控制合成紧密结合起来。这些笔记包含了动力系统理论以及线性和非线性控制的部分材料。但是,机器人的动力学很快就会变得非常复杂,我们无法用纸上铅笔的方法来处理。因此,这些笔记的主要重点是控制设计的计算方法,特别是使用优化和机器学习。

        当我开始教授这门课并撰写这些笔记时,控制的计算方法还远不是机器人学的主流。当时我刚刚完成以强化学习(应用于双足机器人)为重点的博士学业,正在研究基于优化的运动规划。我还记得,作为一名年轻的教师,我坐在一次机器人会议的晚宴上,周围都是我敬佩的人,大家都在谈论优化问题。一位资深教师说:"拉斯:像你这样说话的人并不是让真正的机器人工作的人。哇,情况变了。现在,几乎所有先进的机器人都在规划/控制系统中使用优化或学习技术。

        如今,关于强化学习(RL)的对话声势浩大,热情洋溢,几乎淹没了房间里的其他对话。具有讽刺意味的是,现在我是年长的教授,我发现自己仍然相信强化学习,但不再像年轻时那样坚信不疑。我们可以从支配我们机械系统的方程结构中了解到很多东西;不利用这种结构的算法显然会错失提高数据效率和鲁棒性的机会。我们的梦想是让学习算法自己发现这种结构;但即便如此,你(设计者)也必须了解学习系统运行的优化环境。这就是为什么我这门课程的目标是帮助您发现这种结构,并学习如何利用这种结构来开发更强大的算法,并指导您在基于学习的控制方面的科学努力。

        我还要说得更远。我敢打赌,10-20 年后,我们对智能的看法将不再像具有训练模式和测试模式的前馈网络,而更像一个具有动态的系统,它随着输入数据流和不断变化的环境动态而起伏,跳着优美的舞蹈。这些系统将更灵活地在感知、前瞻预测/连续决策、存储和检索长期记忆以及采取行动之间转换。动力系统理论为我们提供了一种理解和利用我们正在构建的这些系统的复杂性的方法。

        虽然书中的资料来源广泛,但其介绍都是针对少数几个机器人问题。只有当概念有助于提高我们正在努力开发的能力时,才会引入这些概念。我所借鉴的许多学科传统上都非常严谨,以至于对于初入该领域的人来说,基本概念可能难以渗透。在这些笔记中,我有意识地在介绍这些严谨的主题时,保持一种非常非正式的、对话式的语气,并引用最有力的定理,但只在证明这些定理会增加特别的洞察力,而又不会分散主流介绍的注意力时才加以证明。我希望这是一份内容广泛但合理自足、可读性强的手稿,对任何热衷于机器人研究的人都有用。

        这些说明中的材料分为几个主要部分。"模型系统 "介绍了一系列日益复杂的动力系统,并概述了每个系统的一些相关文献成果。"非线性规划与控制 "介绍了推理这些动态系统的通用计算算法,其中优化理论发挥了核心作用。其中许多算法将动态系统视为已知和确定的,直到这一部分的最后几章才引入随机性和鲁棒性。在 "估计与学习 "一章中,我们利用统计学和机器学习技术,从这一观点出发,引入了更多算法,这些算法在运行时可以减少对模型或完美传感器的假设。本书最后附有一个 "附录",为课程中使用的主要课题提供了更多的介绍(和参考资料)。

        选择章节顺序是为了使本书具有参考价值。不过,在讲授这门课程时,我会采用螺旋式的教学方法,逐一介绍机器人动力学和控制问题,并只介绍解决特定问题所需的技术。

        本书中的所有示例和算法,以及更多示例和算法,现在都作为我们开源软件项目的一部分提供: Drake。Drake 是一个 C++ 项目,但在本文中我们将使用 Drake 的 Python 绑定。我鼓励超级用户或想深入研究的读者也来探索 C++ 代码(并做出贡献)。

        请参阅附录,了解使用 Drake 的具体说明以及这些注释。

@book{underactuated,title        = "Underactuated Robotics",subtitle     = "Algorithms for Walking, Running, Swimming, Flying, and Manipulation",howpublished = "Course Notes for MIT 6.832",author       = "Tedrake, Russ",year         = 2023
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应用在游戏机触摸屏中的触摸感应芯片

触屏游戏机的屏幕是由液晶屏和触控层组成的。触控层分为电容式触屏和电阻式触屏两种。电容式触屏是将悬空电极和屏幕玻璃上的电极组成静电场,当人体接近屏幕时,就会改变静电场分布,从而实现触摸的位置探测。而电阻式触屏则是利用玻璃上的两层电极之间通电形成一个电阻值,当手指…

【python入门】day19:学生管理系统需求分析、系统设计、主函数设计

需求分析 应具备功能—— 添加学生及成绩信息; 将学生信息保存到文件中; 修改和删除学生信息; 查询学生信息; 根据学生成绩进行排序; 统计学生的总分 系统设计 1.录入学生信息模块 2.查找 3.删除 4.修改 5.成绩排名…

数据分析求职-简历准备

简历在整个求职过程中的重要性不言而喻,今天咱们来聊求职过程中简历准备的那些事儿~ 1. 简历究竟有啥用 求职的流程简单说就是:网申->笔试->面试->offer 其中网申环节,简历100%决定了你的通过与否,这个点大家都知道。…

react 6种方式编写样式

在React中,编写样式主要有以下几种方式: 内联样式:直接在React组件中使用style属性来定义样式。这种方式比较适合定义动态的样式,因为它允许你将JavaScript表达式作为样式的值。 外部样式表:通过创建外部的CSS文件&am…

计算机Java项目|Springboot+vue 学生心理咨询评估系统

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简…

数据结构入门到入土——ArrayList与顺序表

目录 一,线性表 二,顺序表 1.接口实现 三,ArrayList简介 四,ArrayList使用 1.ArrayList的构造 2.ArrayList常见操作 3.ArrayList的遍历 4.ArrayList的扩容机制 五,ArrayLisit的具体使用 杨辉三角 一&#x…

linux 使用log4cpp记录项目日志

为什么要用log4cpp记录项目日志 在通常情况下,Linux/UNIX 每个程序在开始运行的时刻,都会打开 3 个已经打开的 stream. 分别用来输入,输出,打印错误信息。通常他们会被连接到用户终端。这 3 个句柄的类型为指向 FILE 的指针。可以…

【保研记录】2023年(24届)SE上岸经历

先开个坑,慢慢填~ 个人信息 学校:某双非 专业:软件工程 第四轮学科评估:无(对就是没有等级) 排名:1/400 竞赛/荣誉:国奖x2,省三好,大英国二,…

视频剪辑方法:一键批量转码,视频转GIF教程详解

在数字媒体时代,视频剪辑已经成为一项必备技能。无论是专业人士还是普通用户,都要对视频进行剪辑、转码和制作。但是视频剪辑并不简单,要掌握一定的技巧和知识。下面一起来看云炫AI智剪简单易学的视频剪辑方法:一键批量转码和视频…

案例093:基于微信小程序的南宁周边乡村游设计与实现

文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…

【MATLAB】【数字信号处理】线性卷积和抽样定理

已知有限长序列:xk1,2,1,1,0,-3, hk[1,-1,1] , 计算离散卷积和ykxk*h(k) 。 程序如下: function [t,x] My_conv(x1,x2,t1,t2,dt) %文件名与函数名对应 %自写的卷积函数 x conv(x1,x2)*dt; t0 t1(1) t2(1); L length(x1) length(x2)-2; t t0:dt…

thinkphp6入门(14)-- 多关联模型查询

背景: 有3个数据表,一个User表,一个Cloth表,一个Shoe表。 Cloth表和Shoe表分别和User表通过user_id关联。 thinkphp 6中如何通过模型查询所有用户,其中包括每个用户的cloth和shoe。 多关联模型查询: 1.…

Flask笔记六之中间件操作

本文首发于公众号:Hunter后端 原文链接:Flask笔记六之中间件操作 与 Django 一样,Flask 也提供了中间件的使用,用于在处理请求之前和之后执行一些公共逻辑 本篇笔记的代码都已经提交到 github 上,可使用下面的操作获取…

Qt6学习笔记:对象树

使用QObject及其子类创建的对象是以对象树的形式来组织的。创建一个QObject对象时若设置一个父对象,它就会被添加到父对象的子对象列表里,一个父对象被删除时,其全部的子对象都会自动删除。QObject类的构造函数里有一个参数用于设置对象的父对…

CommonJS 和 ES6 Module:一场模块规范的对决(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【自学笔记】01Java基础-02java基础语法-02变量、对象与类

1 变量、对象、类 变量: 变量是在编程中用来存储数据的占位符,它具有名称和值。在程序执行过程中,变量的值可以改变。根据作用域和生命周期的不同,变量可分为全局变量、局部变量、类变量(静态变量)、实例变…

五、书写规则

目录 一、规则举例 三、在规则中使用通配符 四、文件搜寻 五、伪目标 六、多目标 七、静态模式 八、自动生成依赖性 规则包含两个部分,一个是依赖关系,一个是生成目标的方法。 在 Makefile 中,规则的顺序是很重要的,因为&a…

python 数据容器

数据容器概念 一个可以存储多个元素的python数据类型 python有的数据容器 list(列表) tuple(元组) str(字符串) set(集合) dct(字典) 列表 python的列表的数据类型可以是不同的 my_list ["1",123,True,[123,"3333",d,False]]for item in my_list:p…

【uniapp】多规格选择

效果图 VUE <template> <view><view class"wp-80 pd-tb-40 mg-auto"><button type"warn" click"showDrawer(showRight)">筛选</button></view><!-- 筛选-uni-drawer --><uni-drawer ref"s…

Android debug带系统签名

期望是运行直接带系统签名。 gradle 的 android 目录下&#xff1a; signingConfigs {debug {storeFile file("../signAPK/**.jks")storePassword ******keyAlias ******keyPassword ******}release {storeFile file("../signAPK/**.jks")storePassword **…