目前在公司这边做一个智能轮椅的项目。希望通过手柄实现轮椅的加减速和转向控制。在网上找了一篇文献,文献上提供了一种控制思路,供大家参考(修改了原文献上一些错误的地方)。
手柄信号说明
目前轮椅上使用的速度转向二维摇杆输出与位置成线性比例的二维电压信号,将这两个信号作为车速和转角的指令集合。用户前/后推动可以连续调节轮椅的车速,左/右推动可以连续控制轮椅的转角。通过操作手柄信号处理算法把一个二维信号转换为速度和转向控制指令。速度转向二维摇杆输出的信号可由下图来表示:
如图所示:X轴代表转角,以左转为正;Y轴代表车速,以前进为正。速度转向二维摇杆是两路相互垂直的电位计,对X轴和Y轴方向电压与转角、转速对应关系的规定如图所示。二维电压信号落入其中正方形区域,设某输入指令对应A(X,Y)点,通过手柄信号处理算法,可以得到左右电机的转速转向控制指令。
算法过程
二维电压坐标(X,Y)与二维速度转角坐标(V,θ)。转换结果可以由以下公式给出:
V
=
5
∗
2.5
−
Y
2.5
V = 5 * \frac{2.5 - Y}{2.5}
V=5∗2.52.5−Y
θ
=
90
°
∗
2.5
−
X
2.5
\theta= 90° * \frac{2.5-X}{2.5}
θ=90°∗2.52.5−X
由以上公式可知,当前的目标速度仅仅由Y方向的信号确定,目标角度仅仅由X方向的信号确定。现在分析轮椅的转弯是如何实现的,图中是轮椅以O点为中心向左转弯时的情景,V代表轮椅的质心速度,w代表质心的角速度,Vl、Vr,分别表示左右轮的线速度,wl,wr分别表示轮椅左右轮转速,L为驱动轮间距,r表示驱动轮半径,设R为转弯半径,θ 是轮椅的车体转弯角度(以左转弯为正)。
假定驱动轮椅相对地面只作纯滚动,由电动轮椅运动学分析可知:
V
=
(
w
r
+
w
l
)
∗
r
2
V=(w_{r} + w_{l}) * \frac{r}{2}
V=(wr+wl)∗2r
R
=
L
2
∗
w
r
+
w
l
w
r
−
w
l
R= \frac{L}{2} * \frac{w_{r} + w_{l}}{w_{r} - w_{l}}
R=2L∗wr−wlwr+wl
即给定V与R,可确定
w
r
、
w
l
w_{r}、w_{l}
wr、wl :
w
r
=
(
2
R
+
L
)
∗
V
2
R
r
w_{r} = \frac{(2R+L)*V}{2Rr}
wr=2Rr(2R+L)∗V
w
l
=
(
2
R
−
L
)
∗
V
2
R
r
w_{l} = \frac{(2R-L)*V}{2Rr}
wl=2Rr(2R−L)∗V
且
w
=
(
w
r
−
w
l
)
r
L
w = \frac{(w_{r}-w_{l})r}{L}
w=L(wr−wl)r
轮椅的三种运动状态
- 当θ = 0, V≠0时,即要求电动轮椅作速度为V的直线运动,此时轮椅车体的质心线速度 V = V r = V l V= V_{r} = V_{l} V=Vr=Vl,转弯半径R = ∞。这时,左右电机应该实现转速跟随。两轮速度如下: w r = w l = V r w_{r} = w_{l} = \frac{V}{r} wr=wl=rV
- 当θ ≠ 0, V≠0时,即要求电动轮椅转弯运行,转弯半径R在0与 ∞之间。这时,左右电机应该实现转速跟随。两轮速度如下:
w
r
=
(
2
R
+
L
)
∗
V
2
R
r
w_{r} = \frac{(2R+L)*V}{2Rr}
wr=2Rr(2R+L)∗V
w l = ( 2 R − L ) ∗ V 2 R r w_{l} = \frac{(2R-L)*V}{2Rr} wl=2Rr(2R−L)∗V - 当θ ≠ 0, V=0时,即要求电动轮椅作回转半径为零的原地回转,运动控制器需要保证左右轮的线速度
V
l
=
−
V
w
=
V
m
(
V
m
由
系
统
的
机
械
特
性
选
定
)
V_{l} = -V_{w} = V_{m}(V_{m}由系统的机械特性选定)
Vl=−Vw=Vm(Vm由系统的机械特性选定) ,两轮转速如下:
w
r
=
w
l
=
V
m
r
w_{r} = w_{l} = \frac{V_{m}}{r}
wr=wl=rVm
由以上分析可知,通过操作手柄信号处理算,可以得到左右电机转速和转向的控制信号,进而实现轮椅的各个动作。
参考文献:《基于操作手柄新模型的电动轮椅运动控制系统.pdf》