[足式机器人]Part4 南科大高等机器人控制课 Ch05 Instantaneous Velocity of Moving Frames

本文主要是介绍[足式机器人]Part4 南科大高等机器人控制课 Ch05 Instantaneous Velocity of Moving Frames,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文仅供学习使用
本文参考:
B站:CLEAR_LAB
笔者带更新-运动学
课程主讲教师:
Prof. Wei Zhang

南科大高等机器人控制课 Ch05 Instantaneous Velocity of Moving Frames

  • 1.Instantanenous Velocity of Rotating Frames
  • 2.Instantanenous Velocity of Moving Frames
  • 3.Review/Summary of Rigid Body Velocity & Operation


Given Frame trajectory [ T ] ( t ) = ( [ Q ] ( t ) , R ⃗ p ( t ) ) \left[ T \right] \left( t \right) =\left( \left[ Q \right] \left( t \right) ,\vec{R}_p\left( t \right) \right) [T](t)=([Q](t),R p(t)) wrt { O } \left\{ O \right\} {O}
在这里插入图片描述
Question : What is the velocity (twist/spatial velocity) of frame at time t t t
[ T ] ( t ) ∈ R 4 × 4 \left[ T \right] \left( t \right) \in \mathbb{R} ^{4\times 4} [T](t)R4×4 : 4 × 4 4\times 4 4×4 matrix S E ( 3 ) SE\left( 3 \right) SE(3)
log ⁡ ( [ T ] ( t ) ) → S θ \log \left( \left[ T \right] \left( t \right) \right) \rightarrow \mathcal{S} \theta log([T](t))Sθ : is S \mathcal{S} S (unit) the velocity of [ T ] ( t ) \left[ T \right] \left( t \right) [T](t)? —— no

R ⃗ p ( t ) \vec{R}_p\left( t \right) R p(t) : position vector ; R ⃗ ˙ p ( t ) \dot{\vec{R}}_p\left( t \right) R ˙p(t) velocity vector;
S θ ↔ [ T ] ( t ) \mathcal{S} \theta \leftrightarrow \left[ T \right] \left( t \right) Sθ[T](t) : position coordination (what velocity?—— [ T ˙ ] ( t ) \left[ \dot{T} \right] \left( t \right) [T˙](t)?)
[ T ˙ ] ( t ) ∈ R 4 × 4 ∉ S E ( 3 ) \left[ \dot{T} \right] \left( t \right) \in \mathbb{R} ^{4\times 4}\notin SE\left( 3 \right) [T˙](t)R4×4/SE(3)

1.Instantanenous Velocity of Rotating Frames

{ A } \left\{ A \right\} {A} frame is rotating with orientation [ Q A ] ( t ) \left[ Q_A \right] \left( t \right) [QA](t) and velocity ω ⃗ A ( t ) \vec{\omega}_A\left( t \right) ω A(t) at time t t t (Note: everything is wrt { O } \left\{ O \right\} {O} frame)

Let ω ^ θ = log ⁡ ( [ Q A ] ( t ) ) \hat{\omega}\theta =\log \left( \left[ Q_A \right] \left( t \right) \right) ω^θ=log([QA](t)) can be obtained from the reference frame (say { O } \left\{ O \right\} {O} frame) by rotating about ω ^ \hat{\omega} ω^ by θ \theta θ degree

  • ω ^ θ \hat{\omega}\theta ω^θ only describes the current orientation of { A } \left\{ A \right\} {A} relative to { O } \left\{ O \right\} {O} , it does not contain info about how the frame is rotating at time t t t

What is the relation between ω ⃗ A ( t ) \vec{\omega}_A\left( t \right) ω A(t) and [ Q A ] ( t ) \left[ Q_A \right] \left( t \right) [QA](t)
d d t [ Q A ] ( t ) = ω ⃗ ~ A ( t ) [ Q A ] ( t ) ⇒ ω ⃗ ~ A ( t ) = [ Q ˙ A ] ( t ) [ Q A ] − 1 ( t ) 1 \frac{\mathrm{d}}{\mathrm{d}t}\left[ Q_A \right] \left( t \right) =\tilde{\vec{\omega}}_A\left( t \right) \left[ Q_A \right] \left( t \right) \Rightarrow \tilde{\vec{\omega}}_A\left( t \right) =\left[ \dot{Q}_A \right] \left( t \right) \left[ Q_A \right] ^{-1}\left( t \right) 1 dtd[QA](t)=ω ~A(t)[QA](t)ω ~A(t)=[Q˙A](t)[QA]1(t)1

What is ω ⃗ A A \vec{\omega}_{\mathrm{A}}^{A} ω AA?
ω ⃗ A A = [ Q O A ] ω ⃗ A O \vec{\omega}_{\mathrm{A}}^{A}=\left[ Q_{\mathrm{O}}^{A} \right] \vec{\omega}_{\mathrm{A}}^{O} ω AA=[QOA]ω AO
velocity of A A A relative to { O } \left\{ O \right\} {O} , expressed in { A } \left\{ A \right\} {A}
ω ⃗ ~ A A = [ Q O A ] ω ⃗ A O ~ = [ Q O A ] ω ⃗ ~ A O [ Q O A ] T = [ Q O A ] [ Q ˙ A O ] [ Q A O ] − 1 [ Q O A ] T = [ Q O A ] [ Q ˙ A O ] = [ Q A O ] − 1 [ Q ˙ A O ] \tilde{\vec{\omega}}_{\mathrm{A}}^{A}=\widetilde{\left[ Q_{\mathrm{O}}^{A} \right] \vec{\omega}_{\mathrm{A}}^{O}}=\left[ Q_{\mathrm{O}}^{A} \right] \tilde{\vec{\omega}}_{\mathrm{A}}^{O}\left[ Q_{\mathrm{O}}^{A} \right] ^{\mathrm{T}}=\left[ Q_{\mathrm{O}}^{A} \right] \left[ \dot{Q}_{\mathrm{A}}^{O} \right] \left[ Q_{\mathrm{A}}^{O} \right] ^{-1}\left[ Q_{\mathrm{O}}^{A} \right] ^{\mathrm{T}}=\left[ Q_{\mathrm{O}}^{A} \right] \left[ \dot{Q}_{\mathrm{A}}^{O} \right] =\left[ Q_{\mathrm{A}}^{O} \right] ^{-1}\left[ \dot{Q}_{\mathrm{A}}^{O} \right] ω ~AA=[QOA]ω AO =[QOA]ω ~AO[QOA]T=[QOA][Q˙AO][QAO]1[QOA]T=[QOA][Q˙AO]=[QAO]1[Q˙AO]

2.Instantanenous Velocity of Moving Frames

{ A } \left\{ A \right\} {A} moving frame with configuration [ T A ] ( t ) \left[ T_A \right] \left( t \right) [TA](t) at t ime t t t undergoes a rigid body motion with velocity V A ( t ) = ( ω ⃗ , v ⃗ ) \mathcal{V} _A\left( t \right) =\left( \vec{\omega},\vec{v} \right) VA(t)=(ω ,v ) (Note: everything is wrt { O } \left\{ O \right\} {O} frame)

The exponential coordinate S ^ ( t ) θ ( t ) = log ⁡ ( [ T A ] ( t ) ) \hat{\mathcal{S}}\left( t \right) \theta \left( t \right) =\log \left( \left[ T_A \right] \left( t \right) \right) S^(t)θ(t)=log([TA](t)) only indicates the current configuration of { A } \left\{ A \right\} {A} , and does not tell us about how the frame is moving at time t t t

What is the relation between V A ( t ) \mathcal{V} _A\left( t \right) VA(t) and [ T A ] ( t ) \left[ T_A \right] \left( t \right) [TA](t) ?
d d t [ T A ] ( t ) = [ V A ] ( t ) [ T A ] ( t ) ⇒ [ V A ] ( t ) = [ T ˙ A ] ( t ) [ T A ] − 1 ( t ) \frac{\mathrm{d}}{\mathrm{d}t}\left[ T_A \right] \left( t \right) =\left[ \mathcal{V} _A \right] \left( t \right) \left[ T_A \right] \left( t \right) \Rightarrow \left[ \mathcal{V} _A \right] \left( t \right) =\left[ \dot{T}_A \right] \left( t \right) \left[ T_A \right] ^{-1}\left( t \right) dtd[TA](t)=[VA](t)[TA](t)[VA](t)=[T˙A](t)[TA]1(t)

3.Review/Summary of Rigid Body Velocity & Operation

  • spatial velocity / twist V = [ ω ⃗ v ⃗ O ] \mathcal{V} =\left[ \begin{array}{c} \vec{\omega}\\ \vec{v}_{\mathrm{O}}\\ \end{array} \right] V=[ω v O] , v ⃗ O \vec{v}_{\mathrm{O}} v O reference point O O O may/may not move with the body
    ω ⃗ \vec{\omega} ω : angular velocity
    v ⃗ O \vec{v}_{\mathrm{O}} v O : velocity of the body-fixed partical currently coincides with O O O
    Given V = [ ω ⃗ v ⃗ O ] \mathcal{V} =\left[ \begin{array}{c} \vec{\omega}\\ \vec{v}_{\mathrm{O}}\\ \end{array} \right] V=[ω v O] , any body fixed point P P P , its velocity is v ⃗ P = v ⃗ O + ω ⃗ × R ⃗ O P \vec{v}_{\mathrm{P}}=\vec{v}_{\mathrm{O}}+\vec{\omega}\times \vec{R}_{\mathrm{OP}} v P=v O+ω ×R OP

  • Twist in frames : Given frame { B } \left\{ B \right\} {B} , { O } \left\{ O \right\} {O} with relation
    V O = [ ω ⃗ O v ⃗ O O ] , V B = [ ω ⃗ B v ⃗ O B ] \mathcal{V} ^O=\left[ \begin{array}{c} \vec{\omega}^O\\ \vec{v}_{\mathrm{O}}^{O}\\ \end{array} \right] ,\mathcal{V} ^B=\left[ \begin{array}{c} \vec{\omega}^B\\ \vec{v}_{\mathrm{O}}^{B}\\ \end{array} \right] VO=[ω Ov OO],VB=[ω Bv OB] —— V \mathcal{V} V is a twist of some rigid body
    V O = [ X B O ] V B \mathcal{V} ^O=\left[ X_{\mathrm{B}}^{O} \right] \mathcal{V} ^B VO=[XBO]VB —— change of coordinate for twist [ X B O ] ∈ R 6 × 6 \left[ X_{\mathrm{B}}^{O} \right] \in \mathbb{R} ^{6\times 6} [XBO]R6×6
    [ X B O ] ∈ R 6 × 6 [ X B O ] = [ [ Q B O ] 0 R ⃗ ~ B O [ Q B O ] [ Q B O ] ] \left[ X_{\mathrm{B}}^{O} \right] \in \mathbb{R} ^{6\times 6}\left[ X_{\mathrm{B}}^{O} \right] =\left[ \begin{matrix} \left[ Q_{\mathrm{B}}^{O} \right]& 0\\ \tilde{\vec{R}}_{\mathrm{B}}^{O}\left[ Q_{\mathrm{B}}^{O} \right]& \left[ Q_{\mathrm{B}}^{O} \right]\\ \end{matrix} \right] [XBO]R6×6[XBO]=[[QBO]R ~BO[QBO]0[QBO]]
    For given [ T ] = ( [ Q ] , R ⃗ ) ⇒ [ X ] = [ A d T ] = [ [ Q ] 0 R ⃗ ~ [ Q ] [ Q ] ] \left[ T \right] =\left( \left[ Q \right] ,\vec{R} \right) \Rightarrow \left[ X \right] =\left[ Ad_T \right] =\left[ \begin{matrix} \left[ Q \right]& 0\\ \tilde{\vec{R}}\left[ Q \right]& \left[ Q \right]\\ \end{matrix} \right] [T]=([Q],R )[X]=[AdT]=[[Q]R ~[Q]0[Q]]

  • screw axis : S = ( s ^ , R ⃗ q , h ) ↔ [ ω ⃗ v ⃗ ] = [ s ^ h s ^ − s ^ × R ⃗ q ] \mathcal{S} =\left( \hat{s},\vec{R}_{\mathrm{q}},h \right) \leftrightarrow \left[ \begin{array}{c} \vec{\omega}\\ \vec{v}\\ \end{array} \right] =\left[ \begin{array}{c} \hat{s}\\ h\hat{s}-\hat{s}\times \vec{R}_{\mathrm{q}}\\ \end{array} \right] S=(s^,R q,h)[ω v ]=[s^hs^s^×R q]
    Al rigid body motion can be "thought of " screw motion rotation & linear motion along the axis
    we typically write V = S θ ˙ \mathcal{V} =\mathcal{S} \dot{\theta} V=Sθ˙ ( S \mathcal{S} S - ‘unit’ normalized twist)

  • rotation operation / Exp coordinate (wrt { O } \left\{ O \right\} {O})
    OED for rotation : R ⃗ ˙ p = ω ⃗ × R ⃗ p = ω ⃗ ~ R ⃗ p ⇒ R ⃗ p ( t ) = e ω ⃗ ~ t R ⃗ p ( 0 ) , s o ( 3 ) = { ω ⃗ ~ : ω ⃗ ∈ R 3 } \dot{\vec{R}}_{\mathrm{p}}=\vec{\omega}\times \vec{R}_{\mathrm{p}}=\tilde{\vec{\omega}}\vec{R}_{\mathrm{p}}\Rightarrow \vec{R}_{\mathrm{p}}\left( t \right) =e^{\tilde{\vec{\omega}}t}\vec{R}_{\mathrm{p}}\left( 0 \right) ,so\left( 3 \right) =\left\{ \tilde{\vec{\omega}}:\vec{\omega}\in \mathbb{R} ^3 \right\} R ˙p=ω ×R p=ω ~R pR p(t)=eω ~tR p(0),so(3)={ω ~:ω R3}
    if ω ⃗ = ω ^ \vec{\omega}=\hat{\omega} ω =ω^ , unit vector , t = θ t=\theta t=θ, ω ^ θ ↔ [ Q ] = e ω ⃗ ~ θ ∈ S O ( 3 ) \hat{\omega}\theta \leftrightarrow \left[ Q \right] =e^{\tilde{\vec{\omega}}\theta}\in SO\left( 3 \right) ω^θ[Q]=eω ~θSO(3), ω ^ θ \hat{\omega}\theta ω^θ os calld exponention cooedinate of [ Q ] \left[ Q \right] [Q] denoted log ⁡ ( [ Q ] ) \log \left( \left[ Q \right] \right) log([Q])
    R ⃗ p ′ = e ω ⃗ ~ θ R ⃗ p \vec{R}_{\mathrm{p}^{\prime}}=e^{\tilde{\vec{\omega}}\theta}\vec{R}_{\mathrm{p}} R p=eω ~θR p
    Given a frame { A } \left\{ A \right\} {A}, [ Q A ] = [ x ^ A , y ^ A , z ^ A ] \left[ Q_A \right] =\left[ \hat{x}_A,\hat{y}_A,\hat{z}_A \right] [QA]=[x^A,y^A,z^A] then
    [ Q ] [ Q A ] = e ω ⃗ ~ θ [ Q A ] \left[ Q \right] \left[ Q_A \right] =e^{\tilde{\vec{\omega}}\theta}\left[ Q_A \right] [Q][QA]=eω ~θ[QA] : [ Q ] \left[ Q \right] [Q] action operation , means rotate [ Q A ] \left[ Q_A \right] [QA] about ω ^ \hat{\omega} ω^ by θ \theta θ degree
    Experssion of rotation operator [ Q ] \left[ Q \right] [Q] in { O } \left\{ O \right\} {O} and { B } \left\{ B \right\} {B} : [ Q ] \left[ Q \right] [Q] in { O } \left\{ O \right\} {O} ; [ Q B O ] − 1 [ Q ] [ Q B O ] \left[ Q_{\mathrm{B}}^{O} \right] ^{-1}\left[ Q \right] \left[ Q_{\mathrm{B}}^{O} \right] [QBO]1[Q][QBO] same rotation operator in { B } \left\{ B \right\} {B}

  • Rigid body transformation and exp coordinate(wrt { O } \left\{ O \right\} {O})
    ODE : R ⃗ ˙ p = v ⃗ + ω ⃗ × R ⃗ p ⇒ [ R ⃗ ˙ p 0 ] = [ ω ⃗ ~ v ⃗ 0 0 ] ∣ 4 × 4 [ R ⃗ p 1 ] ⇒ [ R ⃗ ˙ p 0 ] = e [ V ] t [ R ⃗ p 1 ] \dot{\vec{R}}_{\mathrm{p}}=\vec{v}+\vec{\omega}\times \vec{R}_{\mathrm{p}}\Rightarrow \left[ \begin{array}{c} \dot{\vec{R}}_{\mathrm{p}}\\ 0\\ \end{array} \right] =\left. \left[ \begin{matrix} \tilde{\vec{\omega}}& \vec{v}\\ 0& 0\\ \end{matrix} \right] \right|_{4\times 4}\left[ \begin{array}{c} \vec{R}_{\mathrm{p}}\\ 1\\ \end{array} \right] \Rightarrow \left[ \begin{array}{c} \dot{\vec{R}}_{\mathrm{p}}\\ 0\\ \end{array} \right] =e^{\left[ \mathcal{V} \right] t}\left[ \begin{array}{c} \vec{R}_{\mathrm{p}}\\ 1\\ \end{array} \right] R ˙p=v +ω ×R p[R ˙p0]=[ω ~0v 0] 4×4[R p1][R ˙p0]=e[V]t[R p1] e [ V ] t e^{\left[ \mathcal{V} \right] t} e[V]t - matrix representation of V \mathcal{V} V, s e ( 3 ) = { [ V ] , V ∈ R 6 } se\left( 3 \right) =\left\{ \left[ \mathcal{V} \right] ,\mathcal{V} \in \mathbb{R} ^6 \right\} se(3)={[V],VR6}
    在这里插入图片描述
    S ^ θ \hat{\mathcal{S}}\theta S^θ is the exp coordinate of [ T ] \left[ T \right] [T]
    [ R ⃗ p ′ 1 ] = [ T ] [ R ⃗ p 1 ] \left[ \begin{array}{c} \vec{R}_{\mathrm{p}^{\prime}}\\ 1\\ \end{array} \right] =\left[ T \right] \left[ \begin{array}{c} \vec{R}_{\mathrm{p}}\\ 1\\ \end{array} \right] [R p1]=[T][R p1]
    [ T ] [ T A ] \left[ T \right] \left[ T_A \right] [T][TA] : rotate frame { A } \left\{ A \right\} {A} about screw axis S ^ \hat{\mathcal{S}} S^ by θ \theta θ degree

  • rigid operation of screw axis

  • S ′ = [ A d T ] S \mathcal{S} ^{\prime}=\left[ Ad_T \right] \mathcal{S} S=[AdT]S means rotate about axis S \mathcal{S} S along S ^ \hat{\mathcal{S}} S^ by θ \theta θ degree

  • expression of [ T ] \left[ T \right] [T] in { B } \left\{ B \right\} {B}: [ T B ] − 1 [ T ] [ T B ] \left[ T_{\mathrm{B}} \right] ^{-1}\left[ T \right] \left[ T_{\mathrm{B}} \right] [TB]1[T][TB]

  • velocity of moving frame [ T ] ( t ) \left[ T \right] \left( t \right) [T](t) : [ V ] = [ T ˙ ] [ T ] − 1 \left[ \mathcal{V} \right] =\left[ \dot{T} \right] \left[ T \right] ^{-1} [V]=[T˙][T]1

这篇关于[足式机器人]Part4 南科大高等机器人控制课 Ch05 Instantaneous Velocity of Moving Frames的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/477783

相关文章

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是:

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、

【高等代数笔记】线性空间(一到四)

3. 线性空间 令 K n : = { ( a 1 , a 2 , . . . , a n ) ∣ a i ∈ K , i = 1 , 2 , . . . , n } \textbf{K}^{n}:=\{(a_{1},a_{2},...,a_{n})|a_{i}\in\textbf{K},i=1,2,...,n\} Kn:={(a1​,a2​,...,an​)∣ai​∈K,i=1,2,...,n

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b