我的毕设题目初定为《基于机械臂触觉伺服的物体操控研究》,这个系列主要用于记录做毕设的过程。因为目前我还在华工本校,这个题目是哈工深导师给我定的,所以我没办法做实验,应该只能在仿真环境中进行算法验证,又或许时间足够的话,我也会考虑搭建一个简易版的实验环境。无论如何,希望能够做出一个满意的毕设作品!
part2:BACKGROUND AND RELATED WORK
现有的robotic pushing方法主要有两种
- 基于推动机构和被操纵对象的物理模型分析,采用既定的架构进行控制
- 通过数据驱动,构建正逆交互模型,或者构建推动的潜在模型(比如采用神经网络)
physics-based, analytical models of robot pushing
《Mechanics and Planning of Manipulator Pushing Operations》:依靠COM,推导被推动物体的选择方向。
《Limit Surface and Moment Function Descriptions of Planar Sliding》:提出了
l
i
m
i
t
s
u
r
f
a
c
e
limit surface
limitsurface的概念,并给出了有摩擦力的滑动刚体运动的几何描述。
《Fixture Planning With Friction》:提出了
l
i
m
i
t
s
u
r
f
a
c
e
limit \ \ surface
limit surface的
e
l
l
i
p
s
o
i
d
a
p
p
r
o
x
i
m
a
t
i
o
n
ellipsoid \ \ approximation
ellipsoid approximation,优化了计算时间。
《Manipulation and active sensing by pushing using tactile feedback》:通过椭圆近似,得到了固定以及推滑运动下的闭合解析解。
《Practical force-motion models for sliding manipulation》:探索了更多
l
i
m
i
t
s
u
r
f
a
c
e
limit surface
limitsurface的几何形式,并提供了不同条件下如何选择的guideline。
《Stable Pushing: Mechanics, Controllability, and Planning》:通过分析机械结构,可控性以及路径规划,获取有障碍条件下的物体推动最优路径。
data-driven methods
《Learning to predict how rigid objects behave under simple manipulation》:结合了多个回归模型以及密度估计模型,预测被推动刚体的运动状态。
《A Data-Efficient Approach to Precise and Controlled Pushing》:采用了高斯过程来建立被某个特定的接触位置和角度推动下,物体位姿变换的运动模型,并将其作为MPC控制器的运动模型,进行控制。
《A convex polynomial model for planar sliding mechanics: theory, application, and experimental validation》:通过参数化的模型来拟合
l
i
m
i
t
s
u
r
f
a
c
e
limit surface
limitsurface(凸多项式的水平集)。
《Learning to Poke by Poking: Experiential Learning of Intuitive Physics》
《SE3-Nets: Learning Rigid Body Motion using Deep Neural Networks》
《Push-Net: Deep Planar Pushing for Objects with Unknown Physical Properties》
均采用深度学习的方式构建动力学模型。
《Policy Transfer via Modularity and Reward Guiding》:采用end-to-end的控制策略
A:use of Tactile Feedback in Robotic Pushing
《Pose and Motion from Contact》:进行了触觉反馈数据的理论分析,仅从触觉数据就可以确定已知几何形状的平面物体的姿态和运动。
《Fast adaptation for effect-aware pushing》:利用基于椭球极限面的平面滑动运动解析模型来预测推动的结果,但是实验的条件比较理想化,泛化性可能不强。
《Distinguishing Sliding from Slipping during Object Pushing》:提出了一种基于触觉的物体推动方法,并采用CNN区分机器人操作任务中的平移、旋转和滑移状态。
B. Other Model-Free Feedback Control Approaches for Robotic Pushing
《Decoupling behavior, perception, and control for autonomous learning of affordances》:在功能目标(object affordances)自主学习的工作中,提出了两种推动的控制策略。
spin-correction: 类似于PD控制器
centroid alignment: 克服了仅利用物体质心的相对位置和末端执行器上接触点的位置来估计旋转均匀物体方向的困难。
本论文提出的方案与上述方案最大的不同在于:该方案利用了局部特性,当推子/传感器绕着物体的两侧移动时,在探索性触觉伺服过程中感知到物体重心和方向等信息,而上述方案采用视觉系统进行获取。
《Pushing corridors for delivering unknown objects with a mobile robot》:采用了自适应前馈和反馈控制器进行机器人推动的控制,可以逐渐从响应较慢的初始反馈控制,通过推动过程的交互学习,变为响应较快的前馈控制。自适应的参数通过贝叶斯估计进行计算。
part3:METHODS
A. Assumptions
两个假设:
- 整个过程为准静态交互,即忽略惯性力,认为全程都为移动摩擦力。
- 假设可以测量或计算得到触觉传感器相对于接触面的角度(在平面推动的情况不需要,因为通过设置相应的增益项为零,可以将推器的运动限制在与物体所在平面平行的固定平面上)
B. Robotic System and Tactile Sensor
机械臂:UR5 6-DOF机械臂
触觉传感器:TacTip
C. Tactile Servoing and Target Alignment
上图包含了两个子系统
tactile servoing controller:保证推动过程中传感器/推子与物体保持恒定的方向和距离。其中CNN用于估计传感器/推子与物体的相对位姿。
target alignment controller:通过在推动移动期间,传感器/推子围绕物体运动,使传感器/推子的中心轴穿过摩擦中心朝向目标。
坐标系定义
Tactile Servoing
目标是使传感器的观测位姿与参考位姿相重合
欧拉参数表达式:
(
x
,
y
,
z
,
α
,
β
,
γ
)
(x, y, z, \alpha, \beta, \gamma)
(x,y,z,α,β,γ)
SE(3):刚体变换,即旋转 + 位移
误差定义
S
E
S
′
=
S
P
F
⋅
F
P
S
′
=
F
P
S
−
1
⋅
F
P
S
′
^SE_{S'} = \ ^{S}P_F \cdot \ ^{F}P_{S'} = \ ^{F}P_S^{-1} \cdot \ ^{F}P_{S'}
SES′= SPF⋅ FPS′= FPS−1⋅ FPS′
其中参考位姿为
(
0
,
0
,
2
,
0
,
0
,
0
)
(0, 0, 2, 0, 0, 0)
(0,0,2,0,0,0),单位为mm。z = 2mm代表接触深度,
α
,
β
=
0
\alpha,\beta = 0
α,β=0表示传感器与物体接触面垂直。其余参数没有用到,这里设置为0不影响。
运算过程
- 将
S
E
S
′
^SE_{S'}
SES′ 转为欧拉参数
s
e
s
′
^se_{s'}
ses′,然后即可通过PID控制器得到控制量。
s u s ′ ′ ( t ) = K p s e s ′ ( t ) + K i ∫ 0 t s e s ′ ( t ′ ) d t ′ + K d s e ˙ s ′ ( t ) { }^s u_{s^{\prime \prime}}(t)=K_p{ }^s e_{s^{\prime}}(t)+K_i \int_0^t \ ^se_{s^{\prime}}\left(t^{\prime}\right) d t^{\prime}+K_d \ ^s\dot{e}_{s^{\prime}}(t) sus′′(t)=Kpses′(t)+Ki∫0t ses′(t′)dt′+Kd se˙s′(t) - 将
s
u
s
′
′
{ }^s u_{s^{\prime \prime}}
sus′′转为SE(3)表达
S
U
S
′
′
{ }^S U_{S^{\prime \prime}}
SUS′′,结合传感器位姿,即可计算得到
θ
\theta
θ和
r
r
r
S ′ ′ P T = S U S ′ ′ − 1 ⋅ B P S − 1 ⋅ B P T θ = atan2 ( S ′ ′ P T ( y ) , S ′ ′ P T ( z ) ) r = y 2 + z 2 { }^{S^{\prime \prime}} P_T={ }^S U_{S^{\prime \prime}}^{-1} \cdot{ }^B P_S^{-1} \cdot{ }^B P_T \\ \theta=\operatorname{atan2} \left({}^{S^{\prime \prime}}P_T^{(y)}, {}^{S^{\prime \prime}}P_T^{(z)}\right) \\ r = \sqrt{y^2 + z^2} S′′PT=SUS′′−1⋅BPS−1⋅BPTθ=atan2(S′′PT(y),S′′PT(z))r=y2+z2
Target Alignment Control
目标是使传感器的中心轴穿过摩擦力中心,即保证在移动过程中,推子与物体始终保持最优的接触效果。
误差定义
ε
=
θ
′
−
θ
\varepsilon = \theta' - \theta
ε=θ′−θ
其中
θ
\theta
θ由上述过程得到,为观测值,
θ
′
\theta'
θ′为参考值,设置为0。
控制量
s
′
′
u
s
′
′
′
=
(
0
,
v
,
0
,
0
,
0
,
0
)
v
(
t
)
=
k
p
ϵ
(
t
)
+
k
i
∫
0
t
ϵ
(
t
′
)
d
t
′
+
k
d
ϵ
˙
(
t
)
s^{\prime \prime} u_{s^{\prime \prime \prime}}=(0, v, 0,0,0,0) \\ v(t)=k_p \epsilon(t)+k_i \int_0^t \epsilon\left(t^{\prime}\right) d t^{\prime}+k_d \dot{\epsilon}(t)
s′′us′′′=(0,v,0,0,0,0)v(t)=kpϵ(t)+ki∫0tϵ(t′)dt′+kdϵ˙(t)
D. Tactile Pose Estimation
采用CNN进行传感器相对于物体的位姿预测,输入的图像是触觉传感器获得的图像。
数据采集
- 在数据收集过程中,我们没有从上方移动传感器,而是通过从随机采样偏移处转动传感器,将其移动到合适的位置,这样子能够提高泛化性能。
- 训练所得模型可以泛化至所有形状的物体,不需要为不同形状单独训练模型。
E. Objects and Surfaces
该论文采用了不同种类的物体进行算法验证,以保证算法的鲁棒性。
物体接触面采用中密度,闭孔,聚乙烯泡沫板
F. Object Pose Tracking
采用Intel RealSense D435深度相机跟踪ArUco标记(固定在物体上)。