- 博客(89)
- 收藏
- 关注
原创 人形机器人建模与控制(六) - 行走控制
腿式机器人在复杂地形中行走的能力使其成为探索、救援和军事等领域的重要研究对象。在本篇博文中,我们将探讨腿式机器人行走周期、行走运动公式、零力矩点(ZMP)和模型预测控制(MPC)等相关理论与实践方法。
2024-05-27 07:24:26
468
原创 人形机器人建模与控制(五) - 稳定性与平衡控制
线性倒摆模型(LIPM)是步行的最基本模型,假设身体的臀部高度是恒定的,其自然频率仅取决于高度。θ¨gzcsinθx¨gzcxy¨gzcyθ¨x¨zcgsinθzcgxy¨zcgy在LIPM模型中,假设人体在步行时可以简化为一个线性倒摆(Linear Inverted Pendulum)。这个模型假设身体可以近似看作一个竖直摆动的摆杆,其重心在固定的臀部高度上。
2024-05-27 07:17:56
242
原创 人形机器人建模与控制(四) - 全身控制
虽然将机器人控制问题写成优化问题的形式没有明显的优势,但它允许我们将更多信息纳入控制器的制定中。例如,可以通过优化问题引入各种约束条件,如执行器限制、关节限制、速度限制和自碰撞约束。此外,还可以扩展为模型预测控制(MPC),以考虑未来时域内的优化目标和约束。加权方法的优点是没有增加复杂性(仍然是最小二乘问题),但缺点是任务之间相互妥协,并且需要用户定义权重。在这里,没有显式的运动约束,如果接触是软的,数值上是可行的,轻微的违反并不会成为问题。同样,这也具有最小二乘问题的形式,并且可以表示为二次规划问题。
2024-05-27 07:11:25
161
原创 人形机器人建模与控制(三) - 机器人控制
L3 Robot ControlRobot ControlL3 Robot Control1. RepeatForward KinematicsDifferential KinematicsExternal Wrench (Force & Torque) MappingDynamicsGoal for Today2. Feedback Cancellation3. Joint Space ControlSimpler Control LawsPD + G 控制PID 控制4. Cartesian
2024-05-27 07:04:10
125
原创 人形机器人建模与控制(二) - 高级运动学和动态建模
在浮动基准机器人中,浮动基准的位姿和速度是重要的,因为它们涉及机器人的整体运动和控制。广义坐标和广义速度则描述了机器人的内部自由度和关节运动。在第一篇博客中,我们介绍了人形机器人建模的基础概念,包括空间运动的平移和旋转。本篇博客将深入探讨机器人学的运动学和动力学建模方法,特别是针对人形机器人的具体应用。这些方程描述了浮动基准机器人在约束条件下的动力学行为,明确了约束力对作用力矩的依赖性。这个方程是浮动基准机器人的动力学方程,考虑了惯性、科里奥利斯力、重力、外部力和力矩的影响。
2024-05-27 06:59:11
197
原创 人形机器人建模与控制(一) - 基础概念
人形机器人,或称腿式机器人,相对于轮式机器人在崎岖地形上展现出了巨大优势。尽管我们已经掌握了它们如何动态行走和跑步的知识,但要达到更高的能源效率、速度和多功能性仍然面临挑战。这些机器人在与地面接触时的稳定性和时间性是关键问题,尤其是考虑到现代控制策略的焦点是模型预测控制(MPC)。在这系列文章中,我们将深入探讨人形机器人的建模、稳定性分析和控制方法。
2023-08-26 02:16:13
1476
原创 在Raspberry Pi 4上安装Ubuntu 20.04 + ROS noetic(不带显示器)
介绍了如何设置计算机以接受来自packages.ros.org的ROS软件,并安装ROS桌面版及其依赖工具。通过添加ROS软件包源,导入公共密钥,并执行更新操作,可以开始在Ubuntu系统上使用ROS。接下来,安装ROS-Base和一些常用的工具,如rqt和rviz。最后,初始化rosdep以便安装和编译源代码时轻松安装系统依赖项。这些步骤将使能够成功连接到ROS,并开始使用强大的机器人操作系统。
2023-08-06 18:25:35
2170
原创 Drone-Mercury 从零开始的四轴无人机制作(二)- 硬件与PCB
首先来看一下硬件的部分。硬件的部分是非常重要的一环。但是很多时候问题是,没有足够的资料来对整个知识网络进行一个整理和汇总,因此我们就没法获得一个整体上对产品设计上的观念和感觉。所以这也是为什么我想从底层开始构建一个完成的项目。只有这样我们才可以对其它的方向进行一个概念性的理解,来增强对整体的一个把握。
2022-10-30 23:31:19
3050
4
原创 Drone-Mercury 从零开始的四轴无人机制作(一)- 项目介绍
这是一个做了很久的项目了,前前后后到现在已经一年多了。这个项目的主要目标是学习一下嵌入式方向的知识,补全和加深硬件方面的技术栈。其它方面例如获得完整地做完一个项目经验等等。项目主要是基于STM32C8T6和ESP32,因为身在国外,由于价格和获取渠道的限制,很多的模块和解决方法无法轻易实现,所以有很多地方进行了修改。这个项目也是单纯的一个DIY的项目,肯定有很多疏漏的地方,也欢迎大家的交流与指正。整个项目的结构如下所示,目前一下框架的硬件部分已经搭建完成,接下来就是对软件进行一个优化和整合了。
2022-10-26 07:05:23
2628
3
原创 ESP32与Xbox手柄的UART通信测试,基于Arduino框架和pyserial+pygame
最近正在进行无人机项目,但是由于没有适合的遥控器来控制四轴,画板子也有些占用时间,所以比较有效的方法就是基于手头有的Xbox手柄来进行一个DIY,在手柄与ESP32之间建立串口通信。首先我们需要对原始数据进行一个处理,因为原始的手柄数据都是浮点值,为了方便esp的处理,我们在PC端就需要对原始数据进行一个处理,将其全部转换为整型。
2022-10-18 04:10:03
4028
原创 NRF24L01 + ESP32 通信测试,基于PlatformIO+Arduino框架
最近做四轴的时候使用到了NRF24L01,但是并没有合适的设备来进行测试。所以为了快速测试通信协议,这里使用了基于Arduino框架的ESP32来进行测试。测试的目标是实现两个ESP之间基于NRF24L01的通信,并使用UART输出接收到的信息。为了方便后期的开发,这里我使用了PlatformIO平台来进行环境的配置。
2022-10-15 21:08:35
3488
2
原创 机器学习与高维信息检索 - Note 8 - 支持向量机(Support Vector Machines)
支持向量机背后的想法是非常简单的。在最简单的情况下,我们假设两个类的样本可以线性分离,也就是说,我们假设存在一个可以分离两个类的二维仿射超平面。SVM是有监督的学习算法,在给定两类的训练样本时,它可以找到 "最佳 "分离超平面。一旦找到它,就很容易对新的数据点进行分类。根据传入的新数据点位于超平面的哪一侧,它被分配到相应的类别。
2022-02-16 05:53:57
304
1
原创 机器学习与高维信息检索 - Note 7 - 核主成分分析(Kernel Principal Component Analysis,K-PCA)
标准PCA通过将观察到的数据投射到一个线性子空间来降低其维度。选择投影的方式是使以平方的标准欧氏准则衡量的误差最小,这也可以解释为减少白高斯噪声的一种方式。一个非常重要的应用是将PCA作为分类的预处理,因为分类器在减少噪声的特征空间中表现更好。标准PCA的主要缺点是,它严重依赖数据的近似线性结构。在许多应用中,这是一个过于严格的假设。核PCA(K-PCA)是标准PCA的一个扩展,它没有这些缺点。K-PCA的关键思想是,它隐含地假设存在一个非线性映射...
2022-02-06 19:43:01
598
原创 ADPRL - 近似动态规划和强化学习 - Note 12 - 数值时序差分学习(Numerical TD Learning)
正如前两章所讨论的,TD学习是一种理论上很合理的基于抽样的算法机制,以解决模型的诅咒问题。在LFA设置下,DP的一个常见做法是采用策略迭代的框架来获得一个最优策略。也就是说,采用LFA的TD算法评估给定策略的总成本,然后采取策略改进步骤,完成基于抽样的PI框架的一次扫描。
2022-01-31 07:15:34
1310
原创 机器学习与高维信息检索 - Note 6 - 核, 核方法与核函数(Kernels and the Kernel Trick)
到目前为止,我们所讨论的机器学习算法的成功都依赖于对输入数据分布的假设。例如,PCA的效果越好,数据围绕线性子空间分布。或者在线性判别分析中,我们假设类的高斯分布,甚至有相同的协方差矩阵。为了更好地考虑输入数据的其他更复杂的分布,扩展方法的一种方式是采用所谓的核方法。它允许概括所有基本上只有标准内积作为输入数据的方法。在机器学习中,核是一类用于模式分析的算法,其最著名的成员是支持向量机(SVM)。模式分析的一般任务 是发现和研究数据集中的一般关系类型(例如集群、排名、主成分、相关性、分类)。
2022-01-27 01:48:51
1444
原创 ADPRL - 近似动态规划和强化学习 - Note 11 - 时序差分学习(Theory of TD learning)
在上个Note中,我们重温了强化学习的基础概念,即时序差分学习和它的扩展与资格迹。由于时序差分算法的简单性和突出的性能,用线性函数近似法(LFA)对TD机制的扩展肯定对解决维度诅咒有很大优点。
2022-01-26 19:54:17
992
原创 ADPRL - 近似动态规划和强化学习 - Note 10 - 蒙特卡洛法和时序差分学习及其实例 (Monte Carlo and Temporal Difference)
前面几章重点讨论了解决DP中的维度诅咒问题,并强假设系统动态,即MDP模型中的状态转换概率,对智能体来说是可以完全访问的。不幸的是,这样的假设在大多数工程应用中是不现实的。因此,这种情况是强化学习的主要焦点,有时被称为DP中的模型诅咒(curse of model)。本章研究了可以说是最基本的无模型RL算法,即时序差分学习。
2022-01-26 06:33:32
765
原创 机器学习与高维信息检索 - Note 5 - (深度)前馈神经网络((Deep) Feedforward Neural Networks)及基于CVXOPT的相关实例
粗略地说,前馈神经网络(FNN)是一种特殊的函数类,在最小化任何一种预期损失方面都非常强大,但代价是要训练大量的参数。更确切地说,考虑一个输入变量X∈Rp 和一个函数类F,我们想从中找出一个函数f,使某个损失函数L的期望值最小。例如,考虑简单的损失函数...
2022-01-09 07:46:49
316
原创 ADPRL - 近似动态规划和强化学习 - Note 8 - 近似策略迭代 (Approximate Policy Iteration)
在Note 7 中,我们介绍了参数化函数近似的概念,以及它在近似值迭代算法中的应用。尽管AVI的收敛特性已被证明是有希望的,但它与原始VI算法的内在限制仍然存在。在本节中,我们开发了一个近似策略迭代算法的框架。8.1 通用框架 (A Generic Framework)与近似的VI算法类似,我们可以构建一个体系来近似策略评估和策略改进步骤...
2022-01-09 06:59:39
958
原创 机器学习与高维信息检索 - Note 4 - 主成分分析及其现代解释(Principal Component Analysis, PCA)及相关实例
在所有无监督降维技术中,主成分分析(PCA)是最著名的一种。我们所说的无监督学习方法,是指在我们采用学习算法之前,数据不需要被标记(由监督者)。PCA的成功是由于它的简单性和在许多现实世界数据分析任务中的广泛适用性。这可能是它有许多别名的原因,即离散的Karhunen-Loéve变换,Hotelling变换或适当的正交分解。它的核心假设是原始数据的分布集中在某个低维平面上,或者说,数据中的大部分方差可以通过其在这个平面上的投影方差来描述。
2022-01-03 01:35:55
1211
原创 机器学习与高维信息检索 - Note 3 - 逻辑回归(Logistic Regression)及相关实例
在谈论逻辑回归时,一般的设定是,我们有数据点X和输出变量Y。这是一个所谓的二元分类问题。其任务是在预定的函数类别F中找到函数f,使f能够尽可能好地预测Y。一个常用的损失函数用来衡量预测函数的 "准确性",其动机是错误分类的数量,即如果f(x)的符号与真实输出Y的符号不一致。
2022-01-03 01:34:31
1188
原创 机器学习与高维信息检索 - Note 2 - 统计决策和机器学习
基本问题是,对于随机变量X中的某些观测,我们想获得随机变量Y的 "最可能 "值。为简单起见,我们假设Y在R中的实现。我们进一步假设得到的联合概率密度p已经给出....
2021-12-31 21:19:35
688
原创 机器学习与高维信息检索 - Note 1 - 信息检索、机器学习与随机变量
从高维数据中提取信息的问题与降维问题密不可分,也就是说,从典型的高维观察中提取一些合理的特征的问题。例如,考虑一下人类在图像上识别人脸的能力。该图像被视为一个高维向量,例如 800×600 的像素值,肯定不能作为原始像素数据存储在人类的大脑中。相反,我们必须提取一些特征,例如眼睛之间的相对距离,鼻子的长度,以及更抽象的不同脸部区域的相互作用,作为一个整体。储存和回忆这几个抽象特征的能力使我们有可能识别出一张脸,而不受不同的背景...
2021-12-21 17:13:22
702
原创 ADPRL - 近似动态规划和强化学习 - Note 7 - Approximate Dynamic Programming
在前面的章节中,我们研究了经典DP算法的理论基础和它们的高级变化。尽管这些算法具有良好的理论特性,但在许多实际应用中,这些算法仍然是低效的,甚至是不切实际的。这种现象主要是由于维数的诅咒,它在存储或计算方面都会造成潜在的高负担。SDM的一个具有挑战性的应用是边缘计算,其中计算和数据存储被推到数据源上。显然,对于任何经典的DP算法来说,边缘的计算能力和存储容量都是非常有限的。更具体地说,本节重点讨论维度诅咒的存储角度。
2021-12-20 23:14:38
1596
原创 ADPRL - 近似动态规划和强化学习 - Note 6 - Mitigating the Curse of Dimensionality
到目前为止,我们已经讨论了几种经典的DP算法,即VI、PI、OPI和优化的lambda-PI。所有这些方法中最关键的一个问题是维度诅咒,即在每一步,这些算法中的任何一种都需要更新所有状态的总成本函数。显然,当状态空间很大时,在VI算法中计算总成本,或在PI算法中推导GIP,代价都会非常大。在这一节中,我们研究了两种流行的技术来缓解维度诅咒。
2021-12-09 07:25:30
639
原创 ADPRL - 近似动态规划和强化学习 - Note 5 - Banach Fixed Point Theorem in Dynamic Programming
如上两节所示,VI算法和PI算法都拥有各自的优势和劣势。具体来说,VI算法是一种简单的迭代算法,但它在总成本函数空间的收敛性方面可能是低效的。虽然PI算法在探索策略空间的有限性和在策略空间中达到更好的收敛性方面有一个很好的特性,但它仍然会受到精确策略评估的瓶颈影响。尽管OPI算法自然地连接了这两种算法,但它的性能是由有限策略评估的数量选择决定的。在本节中,我们旨在通过探索*巴拿赫固定点定理的属性来缓解这种限制,并仍然保留简单和快速收敛的有希望的属性。
2021-11-29 07:26:33
465
2
原创 ADPRL - 近似动态规划和强化学习 - Note 4 - Policy Iteration Algorithms
4. Policy Iteration Algorithms在Note 3中,我们开发了解决无限范围MDP问题的VI算法。尽管该算法很简单,而且具有良好的理论收敛特性,但很明显,当状态空间很大时,该算法的效率会很低。VI算法实际上也变得不可行,因为它需要无限次地迭代以达到策略空间中的必要和充分的最优条件。此外,由于每个可接受的策略都有一个唯一的总成本函数,而唯一策略的总数是有限的,很明显,由VI算法产生的大多数总成本函数估计值并不对应于任何合法策略。换句话说,VI算法对于解决具有有限状态和行动空间的MDP
2021-11-25 05:44:06
973
原创 ADPRL - 近似动态规划和强化学习 - Note 3 - Stochastic Infinite Horizon Problem
尽管有限范围问题的构造基本上是现实的,但由于维数的诅咒(curse of dimensionality),在大规模的实际问题中,它可能仍然不切实际。具体来说,当范围巨大时,系统方程模型中的阶段性系统函数,以及每个阶段的成本函数要么过于复杂,无法建模,要么存储量太大。即使问题的范围确实是有限的,例如围棋游戏,终端状态也很难被确定。处理这些问题的一个简单的办法是简单地让终端不被指定和开放。有了这样一个假设,阶段信息就变得不重要了。
2021-11-23 22:00:37
1378
1
原创 ADP&RL - 近似动态规划和强化学习 - Note 2 - Stochastic Finite Horizon Problem
在这一节中主要介绍了随机DP算法来解决不确定性下的有限地范围问题,如Denition 1.4所述,它被表述为一个组合优化问题。众所周知,由于组合爆炸,它是一个极其困难的问题。为了从结构上缓解这种极端的复杂性,一种方法是对所有决策规则的空间进行建模,这样就可以在一些方便的搜索空间,即策略空间中有效地解决这个问题。
2021-11-09 04:47:57
1215
原创 ADP&RL - 近似动态规划和强化学习 - Note 1 - Introduction
1. IntorductionSDM: sequential decision makingDP: Dynamic Programming1.1 Desision makingJust a introduction to decision making, also gives some examples, one is AlphaGo, and the other is Autonomous Driving.1.2 Modelling Sequential Decision Making定义1
2021-10-27 19:46:01
1909
1
原创 线性连续时间状态空间模型的离散化及实例
线性连续时间状态空间模型的离散化(Discretization of Linear Continuous-Time State-Space Models)1 .状态空间模型非线性连续时间状态空间模型x˙(t)=f(x(t))+Bw(x(t))w(t)yn=g(xn)+rn\begin{aligned}\dot{\bm x}(t) &= f(x(t))+ \bm B_w(x(t))\bm w(t) \\ \bm y_n &= g(x_n)+r_n\end{aligned}x˙(t)yn
2021-05-11 06:54:46
8062
4
原创 强化学习(九)- 策略梯度方法 - 梯度上升,黑箱优化,REINFORCE算法及CartPole实例
在之前介绍的方法中,几乎所有方法都是动作价值方法(action-value Method),通过学习动作价值并基于动作价值来学做动作。如果没有行动价值评估,他们的策略甚至不会存在。但在这个部分我们将考虑学习**参数化策略**的方法,这些方法可以在不考虑价值函数的情况下选择动作。价值函数仍然可以用于学习策略参数,但对于动作选择是不必要的。我们使用$\theta \in\mathbb{R}^{d'}$来表示策略的参数向量。所以使用$\pi(a|s, \theta) = Pr\{A_t = a|S_t = s,
2020-12-07 21:28:59
3509
1
原创 强化学习(八) - 深度Q学习(Deep Q-learning, DQL,DQN)原理及相关实例
深度Q学习将深度学习和强化学习相结合,是第一个深度强化学习算法。深度Q学习的核心就是用一个人工神经网来代替动作价值函数。由于神经网络具有强大的表达能力,能够自动寻找特征,所以采用神经网络有潜力比传统人工特征强大得多。。最近基于深度Q网络的深度强化学习算法有了重大的进展,在目前学术界有非常大的影响力。当同时出现异策、自益和函数近似时,无法保证收敛性,会出现训练不稳定或训练困难等问题...
2020-11-13 21:07:36
14227
2
原创 强化学习(七) - 函数近似方法 - 随机梯度下降, 半梯度下降,及瓦片编码(Tile Coding)实例
本节介绍用函数近似(function approximation)方法来估计给定策略π的状态价值函数v_π或动作价值函数q_π。
2020-10-12 22:08:58
4352
原创 强化学习(六) - 连续空间中的强化学习(RL in Continuous Spaces)及相关实例
6.1 离散空间和连续空间在之前的实例中,状态和动作的数量受到限制。使用小的,有限的马尔可夫决策过程(MDP),可以用表,字典或其他有限结构来表示动作值函数。例如,考虑下面的非常小的gridworld。假设世界有四个可能的状态,并且代理有四个可能的操作可供使用(上,下,左,右)。您在前面的课程中了解到,我们可以在表中表示估计的最佳操作值函数,每个状态对应一个行,每个动作对应一个列。我们将此表称为Q表。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BnBR6zFE-16
2020-10-09 16:04:56
12053
1
原创 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法
如果非要找出一种思想作为强化学习的核心和新意,那无疑是时序差分学习(Temporal-Difference Learning) 或者称为 时序差分迭代法,以下简称为TD。TD学习是蒙特卡洛思想和动态编程(DP)思想的结合。与蒙特卡洛方法一样,TD方法可以直接从原始经验中学习,而不需要环境的动态模型。和DP一样,TD方法部分地根据其他学习到的估计值更新估计值,而不需要等待最终的结果(它们是引导式的)。TD、DP和蒙特卡洛方法之间的关系是强化学习理论中一个反复出现的主题。
2020-09-16 05:04:11
2919
5
原创 强化学习(四) - 蒙特卡洛方法(Monte Carlo Methods)及实例
蒙特卡罗方法是我们第一个用于估计价值函数和发现最优策略的学习方法。与之前动态规划不同的是,这里我们不假设对环境的完全了解。蒙特卡洛方法只需要状态、动作和与环境实际或模拟交互的奖励的经验样本序列。从实际经验中学习是引人注目的,因为它不需要事先了解环境的动态,但仍然可以达到最佳行为。从模拟经验中学习也很强大。虽然需要一个模型,但模型只需要生成样本转换,而不是动态规划(DP)所需要的所有可能转换的完整概率分布。在许多情况下,根据所需的概率分布抽样生成经验很容易,但以显式形式获得分布却不可行。
2020-09-11 04:14:09
13401
原创 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例
相关代码参考了《深度强化学习原理与python实现》与Udacity的课程《Reinforcement Learning》。按照上面的过程,会引入Gym强化环境库。Gym库是OpenAI推出的强化学习实验环境库,它用python语言实现了离散时间智能体/环境接口中的环境部分。除了依赖少量的商业库外,整个项目时开源免费的。Gym库内置上百种实验环境,包括以下几类。算法环境:包括一些字符串处理等传统计算机方法的实验环境。简单文本环境:包括几个用文本表示的简单游戏。经典控制环境:包括一些简单几何体
2020-08-16 08:16:29
16986
6
原创 强化学习(二)- 动态规划(Dynamic Programming)
3.动态规划3.1 介绍术语动态规划(DP:Dynamic Programming) 指的是一个算法集合,可以用来计算最优策略,给定一个完美的环境模型,作为马尔可夫决策过程(MDP)。经典的DP算法在强化学习中的应用有限,因为它们的假设是一个完美的模型,而且计算量大,但它们仍然具有重要的理论意义。DP为理解其余部分中介绍的方法提供了必要的基础。实际上,所有这些方法都可以被看作是实现与DP几乎相同的效果的尝试,只不过计算量更少,而且没有假设一个完美的环境模型。我们通常假设环境是一个有限的MDP。也就是说
2020-07-21 01:22:03
963
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人