读书笔记: Cartesian Impedance Control of Redundant and Flexible-Joint Robots , Section 3

Section 3 刚性机器人的阻抗控制

本章先介绍的是刚性机器人的阻抗控制,之前建模中的 K ( θ − q ) K(\theta-q) K(θq)直接替换成 τ \tau τ即可得到动力学方程。

3.1 经典阻抗控制

因为没有了柔性部分,模型里的第二行也就没了,模型变成了
M ( q ) q ¨ + C ( q , q ˙ ) q ˙ + g ( q ) = τ + τ e x t M\left( q \right) \ddot{q}+C\left( q,\dot{q} \right) \dot{q}+g\left( q \right) =\tau +\tau _{ext} M(q)q¨+C(q,q˙)q˙+g(q)=τ+τext

3.1.1 任务描述

阻抗控制的目标是在机器人和外界环境之间构建特定的动态关系。先假设已经选择好了表达末端位姿的方法,比如笛卡尔坐标 x = ( x , y , z , α , β , γ ) \boldsymbol{x}=(x,y,z,\alpha,\beta,\gamma) x=(x,y,z,α,β,γ),先不关心具体怎么选。根据运动学就可以得到 x = f ( q ) x=f(q) x=f(q)。本章先不讨论冗余自由度的情况,因此有 m = n m=n m=n,先计算 x x x的导数
x ˙ = J ( q ) q ˙ x ¨ = J ( q ) q ¨ + J ˙ ( q ) q ˙ \dot{x}=\boldsymbol{J}\left( \boldsymbol{q} \right) \dot{q} \\ \ddot{x}=\boldsymbol{J}\left( \boldsymbol{q} \right) \ddot{q}+\dot{J}\left( \boldsymbol{q} \right) \dot{q} x˙=J(q)q˙x¨=J(q)q¨+J˙(q)q˙
考虑 x = f ( q ) x=f(q) x=f(q)这个函数,对旋转关节来说 x x x q q q的三角函数,对平移关节 x x x q q q的仿射函数,因此整体上 x x x q q q的三角函数级联仿射函数。因此其雅克比矩阵的奇异值是有界的
σ M , J = s u p q ∈ Q p σ max ⁡ ( J ( q ) ) < ∞ \sigma _{M,J}=\mathop {\mathrm{sup}} \limits_{q\in Q^p}\sigma _{\max}\left( J\left( q \right) \right) <\infty σM,J=qQpsupσmax(J(q))<
而在选择的工作工作空间内也要求没有奇异点因此,雅克比矩阵也有最小值
0 < σ m , J = i n f q ∈ Q p σ min ⁡ ( J ( q ) ) 0<\sigma _{m,J}=\mathop {\mathrm{inf}} \limits_{q\in Q^p}\sigma _{\min}\left( J\left( q \right) \right) 0<σm,J=qQpinfσmin(J(q))
函数 x = f ( q ) x=f(q) x=f(q)将关节空间 Q p Q^p Qp映射到笛卡尔空间,假设在 Q ˉ p \bar{Q}^p Qˉp上是一个一一映射,其相应的象为 Q ˉ c p \bar{Q}^p_c Qˉcp。在 Q ˉ c p \bar{Q}^p_c Qˉcp x x x可视作机器人的广义坐标。
同样,负载转矩 τ e x t \tau_{ext} τext也需要被表达在笛卡尔空间
τ e x t = J ( q ) T F e x t \tau_{ext}=J(q)^TF_{ext} τext=J(q)TFext
阻抗控制的目标是让 x x x与给定点 x d x_d xd时间的误差 x ~ = x − x d \tilde{x}=x-x_d x~=xxd体现出阻抗特性
Λ d x ~ ¨ + D d x ~ ˙ + K d x ~ = F e x t \varLambda _d\ddot{\tilde{x}}+D_d\dot{\tilde{x}}+K_d\tilde{x}=F_{ext} Λdx~¨+Ddx~˙+Kdx~=Fext
这是一个6维表达式,其中有三个是姿态相关,三个是位置相关。

3.1.2 任务空间的机器人模型

为了把模型映射到任务空空间中,只需带入 q ¨ = J ( q ) − 1 ( x ¨ − J ˙ ( q ) ) q ˙ \ddot{q}=J\left( q \right) ^{-1}\left( \ddot{x}-\dot{J}\left( q \right) \right) \dot{q} q¨=J(q)1(x¨J˙(q))q˙ τ e x t = J ( q ) T F e x t \tau _{ext}=J\left( q \right) ^TF_{ext} τext=J(q)TFext,于是有
J ( q ) − T M ( q ) J ( q ) − 1 x ¨ + J ( q ) − T C ( q , q ˙ ) J ( q ) − 1 x ˙ − J ( q ) − T M ( q ) J ( q ) − 1 J ˙ ( q ) J ( q ) − 1 x ˙ + J ( q ) − T g ( q ) = J ( q ) − T τ + F e x t J\left( q \right) ^{-T}M\left( q \right) J\left( q \right) ^{-1}\ddot{x}+J\left( q \right) ^{-T}C\left( q,\dot{q} \right) J\left( q \right) ^{-1}\dot{x}-J\left( q \right) ^{-T}M\left( q \right) J\left( q \right) ^{-1}\dot{J}\left( q \right) J\left( q \right) ^{-1}\dot{x}\\+J\left( q \right) ^{-T}g\left( q \right) =J\left( q \right) ^{-T}\tau +F_{ext} J(q)TM(q)J(q)1x¨+J(q)TC(q,q˙)J(q)1x˙J(q)TM(q)J(q)1J˙(q)J(q)1x˙+J(q)Tg(q)=J(q)Tτ+Fext
这个重写为
Λ ( x ) x ¨ + μ ( x , x ˙ ) x ˙ + F g ( x ) = F τ + F e x t \varLambda \left( x \right) \ddot{x}+\mu \left( x,\dot{x} \right) \dot{x}+F_g\left( x \right) =F_{\tau}+F_{ext} Λ(x)x¨+μ(x,x˙)x˙+Fg(x)=Fτ+Fext
其中
Λ ( x ) = J ( q ) − T M ( q ) J ( q ) − 1 μ ( x , x ˙ ) = J ( q ) − T ( C ( q , q ˙ ) − J ( q ) − T M ( q ) J ( q ) − 1 J ˙ ( q ) ) J ( q ) − 1 F g ( x ) = J ( q ) − T g ( q ) F τ = J ( q ) − T τ \varLambda \left( x \right) =J\left( q \right) ^{-T}M\left( q \right) J\left( q \right) ^{-1}\\ \mu \left( x,\dot{x} \right) =J\left( q \right) ^{-T}\left( C\left( q,\dot{q} \right) -J\left( q \right) ^{-T}M\left( q \right) J\left( q \right) ^{-1}\dot{J}\left( q \right) \right) J\left( q \right) ^{-1}\\ F_g\left( x \right) =J\left( q \right) ^{-T}g\left( q \right) \\ F_{\tau}=J\left( q \right) ^{-T}\tau Λ(x)=J(q)TM(q)J(q)1μ(x,x˙)=J(q)T(C(q,q˙)J(q)TM(q)J(q)1J˙(q))J(q)1Fg(x)=J(q)Tg(q)Fτ=J(q)Tτ

对这个方程有以下性质:

  • Λ ( x ) \varLambda \left( x \right) Λ(x)对称正定
  • Λ ˙ ( x ) − 2 μ ( x , x ˙ ) \dot{\varLambda}\left( x \right) -2\mu \left( x,\dot{x} \right) Λ˙(x)2μ(x,x˙)是反对称矩阵
    这两个性质保持与关节空间中相同,一个基本认识是在人物空间中,只是换了个坐标系,动力学系统本身的特性其实没有变
    ,也就是说可以直接用克氏符(Christoffel symbol)来计算 μ ( x , x ˙ ) \mu(x,\dot{x}) μ(x,x˙)
  • 类似的, λ ( Λ ( x ) ) \lambda(\varLambda \left( x \right)) λ(Λ(x))是有界的

3.1.3 经典阻抗控制

经典的阻抗控制的表达式为
F τ = F g ( x ) + Λ ( x ) x ¨ d + μ ( x , x ˙ ) x ˙ − Λ ( x ) Λ d − 1 ( K d x ~ + D d x ~ ˙ ) + ( Λ ( x ) Λ d − 1 − I ) F e x t F_{\tau}=F_g\left( x \right) +\varLambda \left( x \right) \ddot{x}_d+\mu \left( x,\dot{x} \right) \dot{x}-\varLambda \left( x \right) \varLambda _{d}^{-1}\left( K_d\tilde{x}+D_d\dot{\tilde{x}} \right) +\left( \varLambda \left( x \right) \varLambda _{d}^{-1}-I \right) F_{ext} Fτ=Fg(x)+Λ(x)x¨d+μ(x,x˙)x˙Λ(x)Λd1(Kdx~+Ddx~˙)+(Λ(x)Λd1I)Fext
产生此空间力的关节转矩是
τ = J ( q ) T F τ = g ( q ) + J ( q ) T ( Λ ( x ) x ¨ d + μ ( x , x ˙ ) x ˙ ) − J ( q ) T Λ ( x ) Λ d − 1 ( K d x ~ + D d x ~ ˙ ) + J ( q ) T ( Λ ( x ) Λ d − 1 − I ) F e x t \begin{aligned} \tau &=J\left( q \right) ^TF_{\tau}\\ &=g\left( q \right) +J\left( q \right) ^T\left( \varLambda \left( x \right) \ddot{x}_d+\mu \left( x,\dot{x} \right) \dot{x} \right) -J\left( q \right) ^T\varLambda \left( x \right) \varLambda _{d}^{-1}\left( K_d\tilde{x}+D_d\dot{\tilde{x}} \right) +J\left( q \right) ^T\left( \varLambda \left( x \right) \varLambda _{d}^{-1}-I \right) F_{ext}\\ \end{aligned} τ=J(q)TFτ=g(q)+J(q)T(Λ(x)x¨d+μ(x,x˙)x˙)J(q)TΛ(x)Λd1(Kdx~+Ddx~˙)+J(q)T(Λ(x)Λd1I)Fext

3.2 消除外力项

只需调配 Λ d \varLambda _{d}^{} Λd使得
Λ d =    Λ ( x ) \varLambda _{d}=\,\,\varLambda \left( x \right) Λd=Λ(x)
既可消除控制中的 F e x t F_{ext} Fext项,但是相应的闭环动力学也会变成
Λ ( x ) x ~ ¨ + ( μ ( x . x ˙ ) + D d ) x ~ ˙ + K d x ~ = F e x t \varLambda \left( x \right) \ddot{\tilde{x}}+\left( \mu \left( x.\dot{x} \right) +D_d \right) \dot{\tilde{x}}+K_d\tilde{x}=F_{ext} Λ(x)x~¨+(μ(x.x˙)+Dd)x~˙+Kdx~=Fext
此时,控制率简化为
τ = g ( q ) + J ( q ) T ( Λ ( x ) x ¨ d + μ ( x , x ˙ ) x ˙ − K d x ~ − D d x ~ ˙ ) \tau =g\left( q \right) +J\left( q \right) ^T\left( \varLambda \left( x \right) \ddot{x}_d+\mu \left( x,\dot{x} \right) \dot{x}-K_d\tilde{x}-D_d\dot{\tilde{x}} \right) τ=g(q)+J(q)T(Λ(x)x¨d+μ(x,x˙)x˙Kdx~Ddx~˙)
称为"柔顺控制"或“PD+控制”。

3.3 阻尼矩阵

在配置 Λ d =    Λ ( x ) \varLambda _{d}=\,\,\varLambda \left( x \right) Λd=Λ(x)之后, D d D_d Dd的设计变得不直观了,根据术中证明,只要 D d ( x ) D_d(x) Dd(x)是一个关于 x x x的正定矩阵,控制器就是渐进稳定的。本书给出了其中一种方法。

  • 引理3.6(广义特征值分解):给定一个对称正定矩阵 A A A和一个对称矩阵 B B B,能找到一个非奇异矩阵 Q Q Q和一个对角矩阵 B 0 B_0 B0,使得 Q T Q = A Q^TQ=A QTQ=A Q T B 0 Q = B Q^TB_0Q=B QTB0Q=B

对系统做quasi-static分析,并且忽略 μ \mu μ这一项,既对以下系统
Λ ( x 0 ) x ~ ¨ + D d ( x 0 ) x ~ ˙ + K d x ~ = F e x t \varLambda \left( x_0 \right) \ddot{\tilde{x}}+D_d\left( x_0 \right) \dot{\tilde{x}}+K_d\tilde{x}=F_{ext} Λ(x0)x~¨+Dd(x0)x~˙+Kdx~=Fext
Λ ( x 0 ) \varLambda \left( x_0 \right) Λ(x0)视作 A A A K d K_d Kd视作 B B B,于是有
Q ( x 0 ) T Q ( x 0 ) x ~ ¨ + D d ( x 0 ) x ~ ˙ + Q ( x 0 ) T B 0 ( x 0 ) Q ( x 0 ) x ~ = F e x t Q\left( x_0 \right) ^TQ\left( x_0 \right) \ddot{\tilde{x}}+D_d\left( x_0 \right) \dot{\tilde{x}}+Q\left( x_0 \right) ^TB_0\left( x_0 \right) Q\left( x_0 \right) \tilde{x}=F_{ext} Q(x0)TQ(x0)x~¨+Dd(x0)x~˙+Q(x0)TB0(x0)Q(x0)x~=Fext
λ i \lambda_i λi B 0 B_0 B0的第 i i i个对角元,也就是 K d K_d Kd相对于 Λ ( x 0 ) \varLambda(x_0) Λ(x0)的第 i i i个广义特征值。则 D d ( x 0 ) D_d(x_0) Dd(x0)矩阵可以选为
D d ( x 0 ) = 2 Q ( x 0 ) T d i a g ( ξ i λ i ) Q ( x 0 ) D_d\left( x_0 \right) =2Q\left( x_0 \right) ^T\mathrm{diag}\left( \xi _i\sqrt{\lambda _i} \right) Q\left( x_0 \right) Dd(x0)=2Q(x0)Tdiag(ξiλi )Q(x0)
其中 ξ i \xi _i ξi是一个阻尼系数在 [ 0 , 1 ] [0,1] [0,1]
在这个 D d D_d Dd的选择下,系统和以写成
z ¨ + 2 d i a g ( ξ i λ i ) z ˙ + d i a g ( λ i ) z = Q ( x 0 ) − T F e x t \ddot{z}+2\mathrm{diag}\left( \xi _i\sqrt{\lambda _i} \right) \dot{z}+\mathrm{diag}\left( \sqrt{\lambda _i} \right) z=Q\left( x_0 \right) ^{-T}F_{ext} z¨+2diag(ξiλi )z˙+diag(λi )z=Q(x0)TFext
这种设计方法得到的 D d D_d Dd不影响稳定性,既只保证了 D d ( x 0 ) D_d(x_0) Dd(x0)正定

3.4 处理奇异性

之前都假设 J ( q ) J(q) J(q)非奇异,在一般情况下,有两种奇异性:representation singularities 和 kinematic singularties,前者是因为坐标系选取问题导致的奇异,如欧拉角,可通过选取合理的坐标域或者使用冗余表达如四元数来避免; 后者是因为机器人构型导致的运动学奇异,这个是在机构设计确定之后就是无法避免的。
在这里插入图片描述
利用叠加原理,在原本阻抗控制的基础上叠加一个控制用来回避奇异点。
定义一个所谓的距离
m k i n ( q ) = det ⁡ ( J ( q ) J ( q ) T ) m_{kin}\left( q \right) =\sqrt{\det \left( J\left( q \right) J\left( q \right) ^T \right)} mkin(q)=det(J(q)J(q)T)
用来回避奇异点的势能可以被选择为
V m ( q ) = { k s ( m k i n ( q ) − m 0 ) 2 m k i n ( q ) ≤ m 0 0 m k i n ( q ) > m 0 V_m\left( q \right) =\left\{ \begin{matrix} k_s\left( m_{kin}\left( q \right) -m_0 \right) ^2& m_{kin}\left( q \right) \le m_0\\ 0& m_{kin}\left( q \right) >m_0\\ \end{matrix} \right. Vm(q)={ks(mkin(q)m0)20mkin(q)m0mkin(q)>m0
k 0 k_0 k0是一个正的增益, m 0 m_0 m0定义了一个奇异点附近的邻域,仅在这个邻域内才附加SingularityAvoidance的控制。
τ c \tau_c τc表示前文的阻抗控制,则带奇异点回避之后的新控制为
τ = τ c − ∂ V m ( q ) ∂ q \tau =\tau _c-\frac{\partial V_m\left( q \right)}{\partial q} τ=τcqVm(q)

3.5 姿态表示方法与刚度矩阵

将坐标 x ∈ R 6 x\in \mathbb{R} ^6 xR6分成两组, x t ∈ R 3 x_t\in \mathbb{R}^3 xtR3表示位置,一般采用笛卡尔坐标系; x r ∈ R 3 x_r\in \mathbb{R}^3 xrR3表示姿态,采用不同的表示方法将会有不一样的效果。将坐标分成两组之后,刚度矩阵也有对应的分割
K d = [ K t K c K c T K r ] K_d=\left[ \begin{matrix} K_t& K_c\\ K_{c}^{T}& K_r\\ \end{matrix} \right] Kd=[KtKcTKcKr]
末端的当前位姿矩阵是 h s t ( q ) h_{st}(q) hst(q),以及一个期望的时变位姿 h s d ( t ) h_{sd}(t) hsd(t),有 h d t ( q , t ) = h s d − 1 ( t ) h s t ( q ) = [ R d t ( q , t ) d p d t ( q , t ) 0 1 ] h_{dt}\left( q,t \right) =h_{sd}^{-1}\left( t \right) h_{st}\left( q \right) =\left[ \begin{matrix} R_{dt}\left( q,t \right)& _dp_{dt}\left( q,t \right)\\ 0& 1\\ \end{matrix} \right] hdt(q,t)=hsd1(t)hst(q)=[Rdt(q,t)0dpdt(q,t)1]

3.5.1 平移刚度

向量 d p d t ( q , t ) _dp_{dt}\left( q,t \right) dpdt(q,t)由期望的位置 p d p_d pd指向当前位置 p t p_t pt,表达在 d d d系中,将其表达在s系中有
p d t ( q , t ) = R s d ( t ) s p d t ( q , t ) = p s t ( q ) − p s d ( t ) p_{dt}\left( q,t \right) =R_{sd}\left( t \right) _sp_{dt}\left( q,t \right) =p_{st}\left( q \right) -p_{sd}\left( t \right) pdt(q,t)=Rsd(t)spdt(q,t)=pst(q)psd(t)
刚度矩阵 K t K_t Kt的三个特征向量,对应着三个刚度方向(表达在s系中)。
一些应用希望将刚度定义在 d d d系或 t t t系中,就需要使用相应系中的坐标。例如 d p d t _dp_{dt} dpdt被用作平移误差 x ~ t \tilde{x}_t x~t,相应的刚度就表达在 d d d系中。

3.5.2 旋转刚度

相比于平移刚度的直观性,旋转刚度比较复杂,我们都知道SO3与R3不同胚,所以不存在一个最小的全局坐标表达。更多的关于姿态表示方法的讨论参见书中参考资料。这里只讨论欧拉角

考虑欧拉角 ϕ s t ( q ) = ϕ ( R s t ( q ) ) \phi _{st}\left( q \right) =\phi \left( R_{st}\left( q \right) \right) ϕst(q)=ϕ(Rst(q)),一个方法是直接将欧拉角的差作为姿态误差 ϕ d t ∗ ( q , t ) = ϕ s t ( q ) − ϕ s d ( t ) \phi _{dt}^{*}\left( q,t \right) =\phi _{st}\left( q \right) -\phi _{sd}\left( t \right) ϕdt(q,t)=ϕst(q)ϕsd(t),但这种方法存在一个问题,这两组欧拉角任何一个出现奇异的时候,这个误差计算都是奇异的。一个更好的方法是用位姿误差 h t d h_{td} htd来算欧拉角误差 t ϕ t d ( q , t ) = ϕ ( R t d ( q , t ) ) _t\phi _{td}\left( q,t \right) =\phi \left( R_{td}\left( q,t \right) \right) tϕtd(q,t)=ϕ(Rtd(q,t)),此方法就奇异性而言鲁棒性更佳。当然,也可表达在s系中。

3.5.3 对闭环系统的影响

前两节说明了不能直接用两个坐标之间的差做笛卡尔误差,这里讨论如何更改之前的公式使其适合于前两节的情况。计算误差向量的导数
x ~ ˙ = ∂ x ~ ( q , t ) ∂ q q ˙ + ∂ x ~ ( q , t ) ∂ t x ~ ¨ = ∂ x ~ ( q , t ) ∂ q q ¨ + d d t ( ∂ x ~ ( q , t ) ∂ q ) q ˙ + d d t ∂ x ~ ( q , t ) ∂ t \dot{\tilde{x}}=\frac{\partial \tilde{x}\left( q,t \right)}{\partial q}\dot{q}+\frac{\partial \tilde{x}\left( q,t \right)}{\partial t} \\ \ddot{\tilde{x}}=\frac{\partial \tilde{x}\left( q,t \right)}{\partial q}\ddot{q}+\frac{d}{dt}\left( \frac{\partial \tilde{x}\left( q,t \right)}{\partial q} \right) \dot{q}+\frac{d}{dt}\frac{\partial \tilde{x}\left( q,t \right)}{\partial t} x~˙=qx~(q,t)q˙+tx~(q,t)x~¨=qx~(q,t)q¨+dtd(qx~(q,t))q˙+dtdtx~(q,t)

∂ x ~ ( q , t ) ∂ q = J x ( q , t ) ∂ x ~ ( q , t ) ∂ t = − v t ( q , t ) \frac{\partial \tilde{x}\left( q,t \right)}{\partial q}=J_x\left( q,t \right) \\ \frac{\partial \tilde{x}\left( q,t \right)}{\partial t}=-v_t\left( q,t \right) qx~(q,t)=Jx(q,t)tx~(q,t)=vt(q,t)
做与3.1.2相同的推导可以得到
Λ ( q , t ) ( x ~ ¨ + v t ( q , t ) ) + μ ( q , q ˙ , t ) ( x ~ ˙ + v t ( q , t ) ) + J x ( q , t ) − T g ( q ) = J x ( q , t ) − T ( τ + τ e x t ) Λ ( q , t ) = J x ( q , t ) − T M ( q ) J x ( q , t ) − 1 μ ( q , q ˙ , t ) = J x ( q , t ) − T ( C ( q , q ˙ ) − M ( q ) J x ( q , t ) − 1 J ˙ x ( q , t ) ) J x ( q , t ) − 1 \varLambda \left( q,t \right) \left( \ddot{\tilde{x}}+v_t\left( q,t \right) \right) +\mu \left( q,\dot{q},t \right) \left( \dot{\tilde{x}}+v_t\left( q,t \right) \right) +J_x\left( q,t \right) ^{-T}g\left( q \right) =J_x\left( q,t \right) ^{-T}\left( \tau +\tau _{ext} \right) \\ \varLambda \left( q,t \right) =J_x\left( q,t \right) ^{-T}M\left( q \right) J_x\left( q,t \right) ^{-1} \\ \mu \left( q,\dot{q},t \right) =J_x\left( q,t \right) ^{-T}\left( C\left( q,\dot{q} \right) -M\left( q \right) J_x\left( q,t \right) ^{-1}\dot{J}_x\left( q,t \right) \right) J_x\left( q,t \right) ^{-1} Λ(q,t)(x~¨+vt(q,t))+μ(q,q˙,t)(x~˙+vt(q,t))+Jx(q,t)Tg(q)=Jx(q,t)T(τ+τext)Λ(q,t)=Jx(q,t)TM(q)Jx(q,t)1μ(q,q˙,t)=Jx(q,t)T(C(q,q˙)M(q)Jx(q,t)1J˙x(q,t))Jx(q,t)1
相对于之间的公式,只是做了如下代换
J ( q ) → J x ( q , t ) x ˙ d → − v t ( q , t ) x ¨ d → − v ˙ t ( q , t ) J\left( q \right) \rightarrow J_x\left( q,t \right) \\ \dot{x}_d\rightarrow -v_t\left( q,t \right) \\ \ddot{x}_d\rightarrow -\dot{v}_t\left( q,t \right) J(q)Jx(q,t)x˙dvt(q,t)x¨dv˙t(q,t)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值