- 博客(151)
- 收藏
- 关注
原创 一、灵巧手捉取几何原理——空间五指平衡捉取
本文介绍了机器人抓取中的空间五指平衡抓取模型,重点分析了力平衡和力矩平衡条件。通过数学模型推导了合力与合力矩为零的稳定性要求,并给出了抓取矩阵的表达式。文章还提供了一个Python代码示例,模拟五个接触点的抓取过程,包含力矩计算、力平衡与力矩平衡检查等功能。代码通过计算各接触点的力和力矩,最终判断抓取是否稳定。该模型为机器人多指抓取的稳定性分析提供了理论基础和实现方法。
2025-08-02 17:09:57
143
原创 四、捉取机构——运动学和力学
本文研究了抓取机构的运动学和力学原理。在运动学方面,通过关节坐标系和末端执行器坐标系建立了正运动学和逆运动学模型,推导了二维平面手指模型的运动学公式,并给出了Python实现示例。在力学方面,分析了抓取矩阵的作用,阐述了接触点力平衡和力矩平衡的计算方法,通过Python代码验证了抓取稳定性。研究结果表明,运动学和力学的综合应用可以有效描述和分析抓取机构的性能,为机器人抓取任务提供理论支持。
2025-08-02 16:51:30
97
原创 三、摩擦刚体——捉取质量函数
摘要:摩擦刚体抓取质量函数(GQF)用于评估机器人抓取稳定性,主要考虑接触力分布、力矩平衡及摩擦力的影响。该函数基于库伦摩擦模型,通过比较各接触点的切向力与法向力比值(受摩擦系数限制)来量化抓取质量。Python实现示例展示了如何计算GQF值,其中法向力和切向力共同决定抓取稳定性。质量函数值越大,抓取越稳定,能有效防止物体滑动或旋转。
2025-08-02 16:38:11
105
原创 二、无摩擦刚体捉取——抗力旋量捉取
摘要:抗力旋量抓取是指机器人手能抵抗任何外部扰动(力和力矩)的稳定抓取方式。其数学条件要求接触点的力和力矩组合能形成完整的六维空间闭包。通过计算接触力和力矩的线性独立性(矩阵秩为6)可判断是否满足抗力旋量抓取条件。文中提供了Python代码示例,通过计算抓取点和力的力矩,并构建力-力矩矩阵来验证抓取稳定性。相比固定抓取,抗力旋量抓取更适用于实际场景中的不确定性扰动。
2025-08-02 12:39:20
67
原创 二、无摩擦刚体捉取——固定捉取
本文介绍了机器人抓取中的两种稳定性分析模型:固定抓取与抗力旋量抓取。固定抓取是一种理想模型,要求接触点的合力和合力矩均为零,确保物体不发生相对运动。文中给出了力平衡和力矩平衡的数学表达式,并提供了Python代码实现,通过计算接触点的力和力矩来验证抓取的稳定性。该模型适用于理想条件下的抓取分析,为机器人抓取的稳定性评估提供了理论基础和实现方法。
2025-08-02 12:30:07
65
原创 一、灵巧手捉取几何原理——刚体构型空间
本文研究了刚体抓取中的构型空间问题,提出利用凸包算法构建三维构型空间的方法。首先分析了刚体抓取的力学原理,包括接触力、力平衡和力矩平衡条件。在此基础上,通过计算抓取接触点的三维凸包来表征稳定的抓取区域,并提供了Python实现代码。该代码使用scipy.spatial.ConvexHull计算三维凸包,并可视化抓取点及其构型空间。实验表明,当抓取点数量≥4时能形成稳定抓取区域。该方法为机器人抓取稳定性分析提供了有效工具。
2025-08-02 11:47:13
94
原创 对角两对双差速轮AGV的平移、直行、转弯和原地旋转之PID控制
本示例将展示如何使用PID控制算法,控制具有对角线布置的两对双差速轮(左前和右后)的AGV,实现平移、直行、转弯和原地旋转等运动。通过对车辆的运动学和PID控制器的设计,我们可以精确地控制AGV的运动
2024-10-27 16:44:28
1229
原创 对角双差速轮AGV平移、直行、转弯、原地旋转案例
在对角两对双差速轮 AGV(自动导引车)中,车辆配置了两对差速轮,分别安装在左前(Front Left,FL)和右后(Rear Right,RR)。这种配置使得 AGV 具有较高的机动性,可以实现平移、直行、转弯和原地旋转等复杂运动
2024-10-27 16:34:32
855
原创 对角两对双差速轮AGV的运动学正解和逆解
对角双差速轮AGV是一种特殊的移动机器人结构,其中两个驱动轮位于车辆的对角线上,通常是前左(FL)和后右(RR)轮,另外两个轮子则是从动轮(万向轮或滑轮),如前右(FR)和后左(RL)轮。这种配置可以在某些特殊应用场景下使用,如需要特定的运动性能或结构设计限制。理解这种AGV的运动学正解(由轮速求车辆运动)和逆解(由期望运动求轮速)对于其设计和控制非常重要
2024-10-26 23:26:04
968
1
原创 对角两对双差速轮AGV的动力学解算
对角双差速轮AGV是一种特殊的移动机器人,其驱动轮位于对角线位置(通常为前左轮和后右轮),另外两个轮子为从动轮(通常为万向轮)。在前面的讨论中,我们介绍了该类型AGV的运动学模型。现在,我们将深入研究其动力学模型,以便更准确地描述车辆的运动行为,并为控制设计提供基础
2024-10-26 23:05:04
868
原创 前后前后两对双差速轮之LQR控制
通过在四轮AGV的代码中引入LQR控制,实现了对AGV的精确路径跟踪控制。LQR控制器能够根据当前状态和目标状态的误差,计算最优的控制输入,使AGV平稳地到达目标位置。
2024-10-26 20:37:23
373
原创 前后两对双差速轮之PID控制
将PID控制器引入到前后两对双差速轮AGV的运动控制中,可以提高AGV对目标速度和位置的响应能力,实现对期望轨迹的跟踪。
2024-10-26 19:15:30
222
原创 前后两对双差速轮AGV的运动学正解和逆解
具有前后两对双差速轮的AGV是一种常见的移动机器人结构,四个驱动轮分为前后两组,每组由左右两个独立驱动的车轮组成。相比于单组双差速轮,增加了一组驱动轮,可以提高AGV的承载能力和稳定性。理解其运动学正解(由轮速求车辆运动)和逆解(由期望运动求轮速)对于控制和导航具有重要意义。L:前后轮组之间的轴距(单位:米)W:左右轮之间的轮距(单位:米)运动学正解:根据四个车轮的角速度,计算车辆的线速度和角速度。关键在于计算左右轮组的平均线速度,进而得到车辆的角速度。
2024-10-26 18:10:49
739
原创 双差速轮之LQR控制
线性二次型调节器(LQR,Linear Quadratic Regulator)是一种最优控制方法,旨在通过最小化性能指标(通常是状态和控制输入的加权二次型)来确定系统的最佳控制输入。对于双差速轮AGV,使用LQR控制可以实现对其轨迹的精确跟踪和姿态控制。通过在代码中引入LQR控制器,实现了对双差速轮AGV的路径跟踪控制。LQR控制器通过最小化状态误差和控制输入,计算出最优的控制输入,使得AGV能够平稳、高效地到达目标位置。
2024-10-26 17:33:20
1048
原创 PID控制原理
PID控制器是一种经典且广泛应用于工业控制领域的反馈控制器,它由比例(P)、积分(I)和微分(D)三个部分组成。通过对这三个部分的综合调节,PID控制器能够实现对被控对象的精确控制,使系统输出尽可能快速、准确地跟随设定值(目标值)。问题: 长时间的误差累积可能导致积分项过大,造成“积分饱和”,影响系统稳定性。调整PID控制器的三个增益参数 Kp、Ki、Kd对系统性能影响重大。在数字控制系统中,PID控制器需要以离散形式实现。问题: 微分项对高频噪声敏感,可能放大测量噪声。
2024-10-26 17:05:09
835
原创 双差速轮之PID控制
为了更加精确控制AGV运动,加入PID控制器,以控制左右轮的角速度,使AGV能够更加精确地跟踪期望的运动。代码中将包括PID控制器的实现,以及在主循环中如何使用PID控制器来调整轮子的角速度。
2024-10-26 16:38:50
448
原创 双差速轮AGV的运动学正解和逆解
双差速轮AGV(Automated Guided Vehicle)是一种常见的移动机器人结构,采用两侧独立驱动的车轮,通过控制左右轮的转速差实现运动和转向。理解其运动学正解(由轮速求车辆运动)和逆解(由期望运动求轮速)对于AGV的设计和控制至关重要。𝑣:AGV的线速度(质心速度),单位:米/秒(m/s)𝜔:AGV的角速度(绕质心的旋转速度),单位:弧度/秒(rad/s)𝑣L、𝑣R :左、右轮的线速度,单位:米/秒(m/s)𝜔L、𝜔R:左、右轮的角速度,单位:弧度/秒(rad/s)
2024-10-26 12:35:36
2381
原创 C++ 进程间通信举例
上述示例展示了 C++ 中几种常见的进程间通信方法。管道(Pipe):适用于父子进程间的简单通信。消息队列(Message Queue):适用于需要消息优先级和复杂通信的场景。共享内存(Shared Memory):适用于需要快速数据交换的场景,但需要注意同步问题。信号(Signals):适用于异步事件通知。这些方法各有优缺点,可以根据具体需求进行选择和组合使用。
2024-07-07 22:57:28
342
原创 强化学习与控制模型结合例子
通过结合控制模型(如LQR)和强化学习算法(如DQN),我们可以利用控制模型提供的动态信息和稳定性保障,同时利用RL的学习能力优化控制策略。这种结合方法不仅提高了系统的鲁棒性,还加快了学习速度,适用于各种复杂的机器人控制任务。
2024-07-07 22:42:36
1175
原创 dreamerV3 控制人形机器人行走举例
DreamerV3 是一种先进的强化学习算法,它结合了模型预测控制(MPC)和深度学习,能够在复杂环境中实现高效的学习和控制。DreamerV3 通过构建环境的动态模型并使用该模型进行多步预测和优化,来学习复杂任务如人形机器人行走
2024-07-06 15:41:24
991
原创 TD-MPC(Temporal Difference Model Predictive Control)人形机器人行走举例
基于TD-MPC的人形机器人行走任务通过结合时序差分学习和模型预测控制,可以实现对复杂物理系统的有效控制。通过构建动力学模型,进行多步预测和优化,并结合TD方法更新策略,可以大大提高学习效率和模型的准确性。这种方法在处理如人形机器人行走等复杂任务时,展示了其独特的优势和潜力。
2024-07-06 15:29:45
674
原创 贝尔曼方程人形机器人举例
贝尔曼方程(Bellman Equation)是强化学习中的核心方程,用于表示状态值函数和动作值函数之间的关系。通过贝尔曼方程,可以递归地计算状态或状态-动作对的价值。为了更好地理解贝尔曼方程在强化学习中的应用,下面我们以人形机器人行走任务为例进行讲解。
2024-07-06 11:58:08
403
原创 贝尔曼方程(Bellman Equation)
贝尔曼方程(Bellman Equation)是动态规划和强化学习中的核心概念,用于描述最优决策问题中的价值函数的递归关系。它为状态值函数和动作值函数提供了一个重要的递推公式,帮助我们计算每个状态或状态-动作对的预期回报。
2024-07-06 11:50:29
986
原创 PPO控制人形机器人行走举例
PPO算法主要有两种变体:PPO-Clip 和 PPO-Penalty。这里主要介绍PPO-Clip,因为它更常用。继承HumanoidEnv并重写step方法。在step方法中,我们计算了原始的状态、奖励、终止标志和信息。forward_reward:机器人在x方向上的速度,鼓励机器人前进。control_cost:控制成本,惩罚动作幅度过大的行为。contact_cost:接触成本,惩罚机器人身体接触地面。
2024-07-06 11:24:55
937
1
原创 人形机器人强化学习控制分类
人形机器人(Humanoid Robot)的控制是机器人学中的一个重要研究方向,其中强化学习(Reinforcement Learning, RL)技术近年来得到了广泛的应用。
2024-07-06 09:59:49
2269
原创 C++ 多线程举例
通过这些示例,我们展示了如何在C++中使用多线程,包括创建和启动线程、传递参数、线程间同步以及条件变量的使用。多线程编程在提高程序并发性能方面非常有用,但需要注意同步和数据竞争问题,以确保线程安全。
2024-06-20 10:38:24
306
原创 C++函数作为参数
我们展示了如何在C++中将函数作为参数传递给另一个函数,包括普通函数、std::function 和 std::bind、lambda表达式以及类成员函数
2024-06-20 10:13:48
773
原创 C++函数举例
C++函数是程序执行的基本单元,可以分为多种类型,包括普通函数、内联函数、递归函数、函数模板、成员函数等。下面我们详细介绍各种类型的函数及其用法。
2024-06-20 10:09:20
136
原创 C++ 宏定义(Macro Definition)用法举例
在C++中,宏定义(Macro Definition)是一种预处理器指令,主要用于定义常量、函数宏和条件编译。宏定义有多种形式,每种形式都用于不同的编程场景
2024-06-20 09:02:04
453
原创 MPC与DDP结合案例
通过这种方式,我们结合了DDP和MPC的方法,利用DDP生成全局轨迹,MPC在执行过程中进行实时调整,以应对环境变化和不确定性。这种方法可以在保持全局最优性的同时,提供实时控制的灵活性和鲁棒性
2024-06-19 18:54:28
816
原创 DDP算法之反向传播(Backward Pass)
在DDP(Differential Dynamic Programming)算法中,反向传播(Backward Pass)是关键步骤之一。这个步骤的主要目的是通过动态规划递归地计算每个时间步上的值函数和控制策略,以便在前向传播(Forward Pass)中使用。
2024-06-19 16:34:58
314
原创 DDP算法之线性化和二次近似(Linearization and Quadratic Approximation)
在DDP算法中,第三步是线性化系统动力学方程和二次近似代价函数。这一步是关键,它使得DDP能够递归地处理非线性最优控制问题。通过线性化和二次近似,我们将复杂的非线性问题转换为一系列简单的线性二次问题,逐步逼近最优解
2024-06-18 23:38:01
356
原创 DDP(Differential Dynamic Programming)算法举例
DDP(Differential Dynamic Programming)是一种用于求解非线性最优控制问题的递归算法。它基于动态规划的思想,通过线性化系统的动力学方程和二次近似代价函数,递归地优化控制策略。DDP的核心在于利用局部二次近似来简化全局非线性最优控制问题,从而高效地求解控制策略
2024-06-18 16:43:27
1308
原创 DDP、FDDP、BOXDDP算法概要
DDP是一种递归的最优控制算法,基于动态规划原理。它在给定初始条件和目标的情况下,通过迭代改进控制策略,使系统的轨迹逐步逼近最优轨迹。DDP通过线性化系统的动态方程和二次近似代价函数来求解。FDDP是DDP的一种改进版本,重点在于确保每次迭代产生的控制输入和状态轨迹是可行的。它在每次迭代中调整控制输入,使系统轨迹尽可能满足动力学和约束条件。BOXDDP是在DDP算法基础上,进一步考虑了控制输入的范围约束(即控制输入的上下限)。这对于实际应用中常见的物理限制非常重要。
2024-06-18 12:44:53
724
原创 线性二次型调节器(LQR)举例
线性二次型调节器(LQR)是一种用于最优控制的问题,其中目标是通过最小化某个代价函数来找到最优控制策略。LQR特别适用于线性系统。为了在人形机器人上应用LQR进行建模,主要步骤包括建立系统模型、定义代价函数以及求解最优控制律。以下是详细步骤:首先,建立人形机器人的线性状态空间模型。一般形式如下:其中,x(t) 是状态向量,u(t) 是控制向量,A 是系统矩阵,B 是输入矩阵,C 是输出矩阵,D 是直接传输矩阵。LQR的目标是最小化以下二次型代价函数:为了找到最优控制律,需要求解Riccati方程:
2024-06-18 10:17:38
752
原创 pinocchio计算MPC控制状态方程AB矩阵
Pinocchio是一个用于机器人动力学和运动学计算的库,广泛应用于机器人控制和仿真中。为了在MPC控制中使用Pinocchio计算状态方程的线性化矩阵 A 和 B
2024-06-16 11:27:34
627
原创 MPC质心跟随控制(CoM Tracking Control)
在人形机器人中,质心(CoM)的跟随控制是保持机器人稳定和协调运动的关键技术之一。模型预测控制(MPC)是一种先进的控制方法,通过解决在线优化问题来控制机器人质心的位置和速度。下面我们详细介绍如何使用MPC实现质心跟随控制。
2024-06-16 11:12:09
521
原创 SQP序列二次规划(Sequential Quadratic Programming, SQP)
SQP是一种用于解决非线性优化问题的迭代方法。它通过将原始非线性优化问题分解为一系列的二次规划(Quadratic Programming, QP)子问题来近似求解。每个QP子问题在当前迭代点上构造并求解,以更新迭代点
2024-06-14 11:34:26
3522
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅