感知算法-超声波三角定位测量方法

感知算法-超声波三角定位测量方法

文章目录

测量目标坐标点的计算1、表述定义2、传感器工作状态描述3、测量距离计算4、目标位置计算5、计算过程中的常数6、软件代码

测量目标坐标点的计算

1、表述定义

定义目标位置的坐标为

(

x

2

T

,

y

2

T

)

(x^T_2,y^T_2)

(x2T​,y2T​),2号传感器的坐标为

(

x

2

2

,

y

2

2

)

(x^2_2,y^2_2)

(x22​,y22​)、3号传感器的坐标点为

(

x

2

3

,

y

2

3

)

(x^3_2,y^3_2)

(x23​,y23​)、4号传感器的坐标点为

(

x

2

4

,

y

2

4

)

(x^4_2,y^4_2)

(x24​,y24​)。2、3、4号传感器测得的实际距离定义为

D

2

D_2

D2​、

D

3

D_3

D3​、

D

4

D_4

D4​。点

(

x

2

3

,

y

2

3

)

(x^3_2,y^3_2)

(x23​,y23​)和点

(

x

2

4

,

y

2

4

)

(x^4_2,y^4_2)

(x24​,y24​)之间的距离为

L

1

L_1

L1​,点

(

x

2

2

,

y

2

2

)

(x^2_2,y^2_2)

(x22​,y22​)和点

(

x

2

3

,

y

2

3

)

(x^3_2,y^3_2)

(x23​,y23​)之间的距离为

L

2

L_2

L2​。定义

L

1

L_1

L1​相对

X

X

X轴旋转的角度为

α

1

\alpha_1

α1​,

L

2

L_2

L2​相对

X

X

X轴旋转的角度为

α

2

\alpha_2

α2​。

D

3

D_3

D3​与

L

1

L_1

L1​的夹角为

β

1

\beta_1

β1​,

D

2

D_2

D2​与

L

2

L_2

L2​的夹角为

β

2

\beta_2

β2​。

2、传感器工作状态描述

3号传感器处于收发一体模式,2、4号传感器处于接收模式。3号传感器发射完超声波后,和2、4号传感器一样都处于接收状态,等待超声波的回波信号,分别产生3个飞行时间,分别为

T

O

F

2

TOF_2

TOF2​、

T

O

F

3

TOF_3

TOF3​、

T

O

F

4

TOF_4

TOF4​。

对上述状态的图像化描述,如下图所示:

3、测量距离计算

假设T℃温度时的声速为

V

T

V_T

VT​,建立距离关系式

D

2

+

D

3

=

V

T

T

O

F

2

D

3

+

D

3

=

V

T

T

O

F

3

D

4

+

D

3

=

V

T

T

O

F

4

\begin{matrix} D_2 + D_3 = V_T*TOF_2 \\ D_3 + D_3 = V_T*TOF_3 \\ D_4 + D_3 = V_T*TOF_4 \end{matrix}

D2​+D3​=VT​∗TOF2​D3​+D3​=VT​∗TOF3​D4​+D3​=VT​∗TOF4​​ 第一步计算距离

D

3

D_3

D3​

D

3

=

V

T

T

O

F

3

2

D_3 = \frac{V_T*TOF_3}{2}

D3​=2VT​∗TOF3​​ 接下来计算距离

D

2

D_2

D2​和

D

4

D_4

D4​:

D

2

=

V

T

T

O

F

2

D

3

D

4

=

V

T

T

O

F

4

D

3

D_2 = V_T*TOF_2 - D_3\\ D_4 = V_T*TOF_4 - D_3

D2​=VT​∗TOF2​−D3​D4​=VT​∗TOF4​−D3​ 当然,在实际工程应用中,可以不考虑这个误差,直接算出这三个距离值。

D

2

=

V

T

T

O

F

2

2

D

3

=

V

T

T

O

F

3

2

D

4

=

V

T

T

O

F

4

2

D_2 = \frac{V_T*TOF_2}{2} \\ D_3 = \frac{V_T*TOF_3}{2} \\ D_4 = \frac{V_T*TOF_4}{2}

D2​=2VT​∗TOF2​​D3​=2VT​∗TOF3​​D4​=2VT​∗TOF4​​

4、目标位置计算

根据坐标点

(

x

2

3

,

y

2

3

)

(x^3_2,y^3_2)

(x23​,y23​)和

(

x

2

4

,

y

2

4

)

(x^4_2,y^4_2)

(x24​,y24​)的位置,计算坐标点

(

x

2

T

,

y

2

T

)

(x^T_2,y^T_2)

(x2T​,y2T​)。

计算角度

α

\alpha

α

α

1

=

arctan

y

2

4

y

2

3

x

2

4

x

2

3

\alpha_1 = \arctan \frac{y^4_2 - y^3_2}{x^4_2 - x^3_2}

α1​=arctanx24​−x23​y24​−y23​​

α

2

=

arctan

y

2

3

y

2

2

x

2

3

x

2

2

\alpha_2 = \arctan \frac{y^3_2 - y^2_2}{x^3_2 - x^2_2}

α2​=arctanx23​−x22​y23​−y22​​计算角度

β

\beta

β

根据余弦定理计算得

β

1

=

arccos

D

3

2

+

L

1

2

D

4

2

2

D

3

L

1

\beta_1 = \arccos \frac{D_3^2 + L_1^2 - D_4^2}{2*D_3*L_1}

β1​=arccos2∗D3​∗L1​D32​+L12​−D42​​

β

2

=

arccos

D

2

2

+

L

2

2

D

3

2

2

D

2

L

2

\beta_2 = \arccos \frac{D_2^2 + L_2^2 - D_3^2}{2*D_2*L_2}

β2​=arccos2∗D2​∗L2​D22​+L22​−D32​​

计算目标位置坐标

3、4号传感器组合测量结果为

[

x

2

T

y

2

T

]

=

[

x

2

3

y

2

3

]

+

[

D

3

cos

(

α

1

+

β

1

)

D

3

sin

(

α

1

+

β

1

)

]

\left[ \begin{matrix} x^T_2\\y^T_2 \end{matrix} \right]= \left[ \begin{matrix} x^3_2\\y^3_2 \end{matrix} \right]+ \left[ \begin{matrix} D_3*\cos (\alpha_1+\beta_1) \\ D_3*\sin (\alpha_1+\beta_1) \end{matrix} \right]

[x2T​y2T​​]=[x23​y23​​]+[D3​∗cos(α1​+β1​)D3​∗sin(α1​+β1​)​]

2、3号传感器组合测量结果为

[

x

2

T

y

2

T

]

=

[

x

2

2

y

2

2

]

+

[

D

2

cos

(

α

2

+

β

2

)

D

2

sin

(

α

2

+

β

2

)

]

\left[ \begin{matrix} x^T_2\\y^T_2 \end{matrix} \right]= \left[ \begin{matrix} x^2_2\\y^2_2 \end{matrix} \right]+ \left[ \begin{matrix} D_2*\cos (\alpha_2+\beta_2) \\ D_2*\sin (\alpha_2+\beta_2) \end{matrix} \right]

[x2T​y2T​​]=[x22​y22​​]+[D2​∗cos(α2​+β2​)D2​∗sin(α2​+β2​)​]

5、计算过程中的常数

由于传感器的安装位置是固定的,所以上述计算过程中,很多参数是确定的常量。

已知传感器安装位置点

传感器号坐标位置实际坐标点2号

(

x

2

2

,

y

2

2

)

(x^2_2,y^2_2)

(x22​,y22​)

(

360

,

30

)

(360,30)

(360,30)3号

(

x

2

3

,

y

2

3

)

(x^3_2,y^3_2)

(x23​,y23​)

(

360

,

30

)

(360,-30)

(360,−30)4号

(

x

2

4

,

y

2

4

)

(x^4_2,y^4_2)

(x24​,y24​)

(

346

,

70

)

(346,-70)

(346,−70)

通过上述信息,可以计算出传感器的距离

L

1

L_1

L1​和

L

2

L_2

L2​,以及对应的旋转角度

α

1

\alpha_1

α1​和

α

2

\alpha_2

α2​。

参数计算值

L

1

L_1

L1​42.3792(cm)

L

2

L_2

L2​60(cm)

α

1

\alpha_1

α1​250.71(°)

α

2

\alpha_2

α2​270(°)

6、软件代码

///

/// 计算超声波的距离

///

/// 输入原始超声波的原始数据

/// 计算实际距离

private void DistanceCalculate(LIN_STP318_ReadData[] m_318Data,ref double [] Distance)

{

Distance[1] = m_318Data[1].TOF * 0.0157;//cm

Distance[0] = m_318Data[0].TOF * 0.0314 - Distance[1];//cm

Distance[2] = m_318Data[2].TOF * 0.0314 - Distance[1];//cm

}

//目标位置计算

///

/// 目标位置坐标点计算

///

/// 基准点坐标点

/// 基准角度(弧度)

/// 基准长度(cm)

/// 临边长度(cm)

/// 对角长度(cm)

/// 输出最终的目标位置坐标

private void TargetPositionCalculate(Axis base_position,double base_angle,double base_L,double distance1, double distance2,ref Axis TargetPosition)

{

double beta = Math.Acos((Math.Pow(base_L, 2) + Math.Pow(distance1, 2) - Math.Pow(distance2, 2)) / (2 * base_L * distance1));

TargetPosition.x = base_position.x + distance1 * Math.Cos(base_angle + beta);

TargetPosition.y = base_position.y + distance1 * Math.Sin(base_angle + beta);

}

相关推荐

滦字笔画写法
365用英语怎么翻译

滦字笔画写法

⏳ 07-02 👁️ 5546
豆角炖多久才熟?掌握时间技巧,做出美味豆角菜
世界杯365平台

豆角炖多久才熟?掌握时间技巧,做出美味豆角菜

⏳ 07-08 👁️ 8525
轻度SM玩法与技巧
365用英语怎么翻译

轻度SM玩法与技巧

⏳ 06-28 👁️ 1393