Probabilistic Movement Primitives (ProMP) 总结

2023-05-16

概述

文章通过在DMP的基础上增加随机项,并通过EM算法求解得到符合示教数据的参数.

一. 模型介绍

1. 系统方程

假设示教数据为 τ = { q t , q ˙ t } t = 0 , . . . , T \tau = \{q_t, \dot{q}_t\}_{t=0,...,T} τ={qt,q˙t}t=0,...,T,记 y t = { q t , q t ˙ } y_t=\{q_t, \dot{q_t} \} yt={qt,qt˙},则系统方程可表示为:
y t = Φ t T ω + ϵ y , y_t = \Phi_t^T\omega + \epsilon _y, yt=ΦtTω+ϵy,其中 Φ t = [ ϕ t , ϕ ˙ t ] ∈ R n × 2 \Phi_t=[\phi_t, \dot{\phi}_t]\in \mathbb{R}^{n\times 2} Φt=[ϕt,ϕ˙t]Rn×2为基函数, ω \omega ω为待学习的参数, ϵ ∼ N ( 0 , Σ y ) \epsilon \sim \mathcal{N}(0,\Sigma_y) ϵN(0,Σy) Σ y \Sigma_y Σy可以从示教数据中辨识。则给定一条轨迹 τ \tau τ,其关于 ω \omega ω的条件概率为 p ( τ ∣ ω ) = Π t N ( y t ∣ Φ t ω , Σ y ) p(\tau|\omega) = \Pi_t \mathcal{N}(y_t|\Phi_t \omega, \Sigma_y) p(τω)=ΠtN(ytΦtω,Σy)文章中假设 ω \omega ω是参数为 θ \theta θ的正态分布: p ( ω ; θ ) = N ( ω ∣ μ ω , Σ ω ) p(\omega;\theta) = \mathcal{N}(\omega|\mu_\omega, \Sigma_\omega) p(ω;θ)=N(ωμω,Σω),则可得
p ( y t ; θ ) = ∫ N ( y t ∣ Φ t T ω , Σ y ) N ( ω ∣ μ ω , Σ ω ) = N ( y t ∣ Φ t μ ω , Φ t T Σ ω Φ t + Σ y ) , p(y_t;\theta) = \int{\mathcal{N}(y_t|\Phi_t^T\omega,\Sigma_y)\mathcal{N}(\omega|\mu_\omega, \Sigma_\omega)} = \mathcal{N}(y_t| \Phi_t \mu_{\omega}, \Phi_t^T\Sigma_\omega\Phi_t+\Sigma_y), p(yt;θ)=N(ytΦtTω,Σy)N(ωμω,Σω)=N(ytΦtμω,ΦtTΣωΦt+Σy),可知 y t = { q t , q t ˙ } y_t=\{q_t, \dot{q_t} \} yt={qt,qt˙}服从正态分布。

2. 相位系统

与DMP相同,ProMP也通过一个相位系统来隐式地表征时间: z ˙ = f ( z ) \dot{z} = f(z) z˙=f(z)通过改变 f f f,可以调整轨迹的快慢(Temporal Modulation)。则此时基函数可以表示为关于 z z z的函数: ϕ t = ϕ ( z t ) , ϕ ˙ t = ϕ ′ ( z ) z ˙ t \phi_t = \phi(z_t), \dot{\phi}_t = \phi'(z)\dot{z}_t ϕt=ϕ(zt),ϕ˙t=ϕ(z)z˙t,之后根据示教数据终点是吸引子还是极限环,选择相应的基函数(见DMP)。

3. 高维系统

上述系统可以轻易地拓展到高维系统中,只需将 N ( y t ∣ Φ t T ω , Σ y ) \mathcal{N}(y_t|\Phi_t^T\omega,\Sigma_y) N(ytΦtTω,Σy)中的 Φ t T \Phi_t^T ΦtT改为 D i a g ( Φ 1 t T , . . . , Φ k t T ) Diag(\Phi_{1t}^T,...,\Phi_{kt}^T) Diag(Φ1tT,...,ΦktT) ω = [ ω 1 , . . . , ω k ] \omega = [\omega_1, ..., \omega_k] ω=[ω1,...,ωk]即可。

4. 参数学习

系统中的需要学习的参数为 θ = { μ ω , Σ ω } , \theta = \{\mu_\omega, \Sigma_\omega\}, θ={μω,Σω},可通过计算极大似然估计,通过EM算法得到符合示教数据的 μ ω , Σ ω 。 \mu_\omega, \Sigma_\omega。 μω,Σω

二. ProMP与DMP的不同

可以看出,ProMP与DMP的区别在于:
① 假设参数 ω \omega ω服从正态分布, p ( ω ; θ ) = N ( ω ∣ μ ω , Σ ω ) p(\omega;\theta) = \mathcal{N}(\omega|\mu_\omega, \Sigma_\omega) p(ω;θ)=N(ωμω,Σω),而在DMP中 ω \omega ω为确定的常数。
② 在系统方程中增加了随机项 ϵ ∼ N ( 0 , Σ y ) \epsilon \sim \mathcal{N}(0,\Sigma_y) ϵN(0,Σy),用来表征观测噪声。
③ DMP中通过动态系统构建方程,通过ODE生成一条轨迹;而ProMP通过联合正态分布来构建系统方程,随着相位变量 z z z的变换,每一时刻 y t , y ˙ t y_t, \dot{y}_t yt,y˙t都服从一个正态分布,通过采样生成一条轨迹。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Probabilistic Movement Primitives (ProMP) 总结 的相关文章

  • lambda表达式【C++】

    lambda表达式 lambda表达式是C 43 43 11最重要也是最常用的一个特性 lambda来源于函数式编程的概念 优点 xff1a 声明式编程风格 xff1a 就地匿名定义目标函数或函数对象 xff0c 不需要额外写一个命名函数或
  • Qt学习笔记 day_03

    目录 十三 自定义代理类的实现1 基于QSpinBox的自定义代理类的实现2 自定义代理类的使用3 xff09 setItemDelegateForColumn 函数的使用注意 十三 自定义代理类的实现 1 基于QSpinBox的自定义代理
  • 版本控制软件SVN

    SVN学习 1 版本控制软件定义及用途 版本控制软件是为适应软件配置管理的需要 xff0c 控制软件的修改 xff0c 减少混乱 xff0c 提高软件生产效率 xff0c 其是软件质量保证的重要环节软件配置管理是对软件修改进行标识 组织和控
  • 螺旋桨的制作图文教程

    一 螺旋桨的一些基础概念 当我们把螺旋桨看成是一个一面旋转一面前进的机翼时 xff0c 就能借助已知的空气动力学常识 xff0c 直观地理解螺旋桨的基本工作原理 1 xff0e 桨距 动力桨距和几何桨距 桨距 xff1a 从广义而言 xff
  • 自制2.4G ELRS接收机,不需要打板,容易制作

    制作难度 xff1a 中等 xff0c 主要是器件太小 xff0c 焊接需要耐心 一 硬件材料 1 LoRa射频模块 xff0c sx1280 xff1a E28 2G4M12S 2 MCU Wifi模块 xff1a ESP 01F 3 各
  • Qt学习笔记 【C++】(4)

    目录 一 Qt中的C 43 43 11标准二 Explicit Linking 和 Implicit Linking三 自动生成的ui xxx ui文件四 常用快捷键 一 Qt中的C 43 43 11标准 Qt 5 中开启C 43 43 1
  • 串口发送接收字符串的C语言代码参考

    通过串口把字符串数据从单片机U1发送到单片机U2 xff0c 通过U2的LCD602显示出来 LCD602显示代码是用的一个比较不错的现成的显示代码 单片机串口传字符串 xff0c 主要是利用字符串的格式的特点 xff0c 在传输中结束串口
  • HTTP协议解析

    HTTP概述 HTTP 全称为 34 超文本传输协议 34 是一种应用非常广泛的应用层协议 我们平时打开一个网站 就是通过 HTTP 协议来传输数据的 HTTP工作过程 xff1a 当我们在浏览器中输入一个 34 网址 34 xff0c 此
  • 《算法导论》学习心得

    第四章 分治策略 xff08 1 xff09 Master Method中case 3中 正则条件 的含义 xff1a 保证f n 在每次递归后都比上一层小 xff08 非递增 xff09 否则显然T n gt f n xff08 2 xf
  • 《算法导论》 第11章部分答案

    注 xff1a 以下答案均为自己思考 xff0c 难免有误 xff0c 欢迎指正 11 3 1 xff1a 将长度为n的链表进行排序 xff0c 将关键值的散列值相同的元素排为相邻 而散列表有点类似于链接法解决冲突的散列表 11 3 2 x
  • 算法刷题心得:动态规划 scramble-string

    牛客网 gt 在线编程 gt letcode gt scramble string Given a string s1 we may represent it as a binary tree by partitioning it to t
  • POJ 1635 Subway tree systems

    题目 xff1a Some major cities have subway systems in the form of a tree i e between any pair of stations there is one and o
  • Openwrt添加定制一个软件包

    我深知前路风雨 xff0c 但我依然微笑前行 Openwrt的Makefile流程异于一般常用的Makefile xff0c 阅读起来难度太大 但是我么可以先通过如何使用 修改Makefile开始 xff0c 从Makefile的某个局部开
  • 无人机通信(WiFI/3G/4GLTE)

    无人机通信 xff08 WiFI 3G 4GLTE xff09 DJI 大疆创新的无人机可实时操控执行各项任务 Phantom3 还内置了全新的 Lightbridge 高清图传系统 xff0c 使飞机所拍摄的实时图像可远距离传输到移动设备
  • realsense D430 python采集深度图像,并保存为txt及pcd点云,用于open3D后处理

    D430点云是x y z 将realsense D430保存的点云文件 pcd 需要对数据进行处理 废话不多说 直接上代码 span class token comment coding utf 8 span span class toke
  • 隐藏符号 __dso_handle 问题

    这几天要给项目做移植 xff0c 重写了下Makfile 项目原是使用autoconf配置的 xff0c 但在新环境下对autoconf的支持不好 Makefile编写基本按autoconf生成的Makefile来的 xff0c 编译选项等
  • 类模板成员函数

    模板类的头文件 span class token macro property span class token directive hash span span class token directive keyword ifndef s

随机推荐

  • C++ 在.h文件中包含头文件和在.cpp文件中包含头文件的原则

    1 第一个原则 xff1a 如果可以不包含头文件 xff0c 那就不要包含了 xff0c 这时候前置声明可以解决问题 如果使用的仅仅是一个类的指针 xff0c 没有使用这个类的具体对象 xff08 非指针 xff09 xff0c 也没有访问
  • NRF24L01数据通信C程序

    NRF24l01 产品性能 xff1a 1 xff09 2 4GHZ全球开放ISM频段免许可使用 2 xff09 最高工作速率2Mbps GFSK高效调制 3 xff09 125个频道满足多点通讯和跳频通讯需求 4 xff09 1 9 3
  • gazebo仿真之xacro文件

    span class token operator lt span span class token operator span xml version span class token operator 61 span span clas
  • c++ 释放内存 野指针

    在释放内存之时 xff0c 不仅仅是将该块内存进行释放 xff0c 还要将指向该块内存的指针置为NULL 如果不置为NULL xff0c 下次继续使用该指针时会出现问题 具体看示例 在下面的示例中 xff0c 如果没有处理野指针的那句话 x
  • 二维码识别 -- 基于ros平台下的仿真

    生活中的二维码 二维码是用某种特定的几何图形按一定规律在平面 xff08 二维方向上 xff09 分布的黑白相间的图形记录数据符号信息的 xff1b 在代码编制上巧妙地利用构成计算机内部逻辑基础的 0 1 比特流的概念 xff0c 使用若干
  • ROS中控制机械臂抓取目标例程

    在上一个博文中介绍了一个简单的目标识别的例子 xff0c 在这篇博客中 xff0c 例如是别的结果 xff0c 完成机械臂的抓取控制 xff0c 主要进行程序的分析和学习 包含的头文件 xff1a include lt ros ros h
  • STM32_Debug 使用ST-Link进行调试出现Error:Flash Download Failed-"Cortex-M3" 解决方案

    在Debug窗口依次注意以下几个点 xff1a 1 选择与主控芯片相配套的芯片 2 选择ST Link Debugger 此处注意该页面最下面一行可不更改 xff08 亲测有效 xff09 3 接上图点击进入Setting xff0c 依次
  • 标准外设库(STD库)、HAL库、LL库三者区别

    转自 xff1a https blog csdn net zcshoucsdn article details 54613202 2018 1 19 HAL库详解见STM32之HAL库详解 及 手动移植 STM32 Embedded Sof
  • FOC矢量控制

    FOC xff08 Filed Oriented Control xff09 是采用数学方法实现三相马达的力矩与励磁的解耦控制 主要是对电机的控制电流进行矢量分解 xff0c 变成励磁电流 I d Id 之后我将详细介绍一下这个算法的数学原
  • Linux网络编程8——对TCP与UDP的简易封装

    引言 每次使用socket通信 xff0c 都会有很对相似的操作 本文 xff0c 会对TCP与UDP通信做一简单封装 xff0c 并生成动态库 代码 my socket h ifndef MY SOCKET H define MY SOC
  • 分分钟带你入门无刷电机控制_P-NUCLEO-IHM001套件评测使用

    终于有时间将前段时间把有关ST公司的分分钟带你入门无刷电机控制 P NUCLEO IHM001套件评测的资料系统的整理一下 刚一开始接触接触这个套件的时候感觉这是什么鬼 xff0c 可以实现正弦波矢量控制 xff1f 这么强 xff0c 慢
  • SiamFC代码配置复现

    写在前面 最近在研究SiamRPN xff0c 究其根本 xff0c CNN依托于AlexNet骨架 xff0c 所以花些功夫研究以下SiamFC代码 xff0c 将其阶段性复现 Tracking only 关于GPU显卡配置 cudn和c
  • PySOT

    写在前面 期待已久的PySOT终于放上了code xff0c 高兴ing xff0c 赶忙进行相应的配置加以复现 xff0c 不得不说 xff0c 作者真的很贴心 xff0c 把配置环境的指令封装成脚本 xff0c 直接按需配置即可 但是在
  • 【Linux】SocketCan c语言编程

    前言 为了能够对Socket CAN的深入理解 xff0c 我们需要了解Socket的机制 Socket的中文翻译为 插座 xff0c 在计算机世界里称为套接字 Socket最初是作为网络上不同主机之间进程的通信接口 xff0c 后来应用越
  • VMWare虚拟机网络配置及虚拟机远程rviz显示雷达数据

    虚拟机网络配置 1 工具 环境 本机 xff1a Windows 10 64位虚拟机 xff1a VMware Workstation xff0c Ubuntu 18 04 2 Windows配置 WLAN部分 网络和Internet配置
  • 2022数学建模国赛B题思路分析

    分享一下 xff0c 仅供参考借鉴 xff0c 切勿直接使用 xff01 致谢一下全糖奶茶屋 xff01 一 问题重述 1 1 问题背景 由于无人机集群在遂行编队飞行时 应尽可能的避免外界干扰 因此需要尽可能的保持电磁静默减少电磁波信号的发
  • 利用Visual Studio创建C语言dll

    利用VS2019创建dll方法 动态链接库的定义及意义如何在VS创建dll入口函数DLLMain如何创建导出函数动态调用导出函数 动态链接库的定义及意义 动态链接库 xff08 Dynamic Link Library 或者 Dynamic
  • Human-in-the-Loop Optimization of Exoskeleton Assistance Via Online Simulation of Metabolic Cost

    Human in the Loop Optimization of Exoskeleton Assistance Via Online Simulation of Metabolic Cost 文章来源https ieeexplore ie
  • Dynamical Movement Primitives (DMP) 总结

    Dynamical Movement Primitives DMP 总结 概述 DMP通过将动态系统建立为 弹簧阻尼系统 43 非线性控制项的方式 f f f xff0c 实现了对示教数据的建模 具体贡献如下 xff1a 提供了一种简单的非
  • Probabilistic Movement Primitives (ProMP) 总结

    概述 文章通过在DMP的基础上增加随机项 xff0c 并通过EM算法求解得到符合示教数据的参数 一 模型介绍 1 系统方程 假设示教数据为 61 q t