1. 서론
최근 4차산업 혁명시대를 맞이하여 스마트 팩토리의 실현을 위래 중요한 통신기술의 발전은 서로 멀리 떨어져있는 인간과의 대화를 가능케 하는 유선 전화기의 발명으로부터 시작해 현재는 언제, 어느 곳에서나 누구와도 서로 대화할 수 있는 이동통신 전화기가 보편화되어 있다. 이러한 통신기술은 기본적으로 인간과 인간 사이의 통신의 자유도를 향상시키는 방향으로 발전되어 왔는데, 최근에는 이를 뛰어 넘어 인간과 기계 사이에 음성을 이용한 대화를 가능케 하는 기술에 대한 연구 및 개발에 큰 관심이 집중되고 있다. 한편, 소리는 인간의 가장 자연스러운 통신방법으로, 사람과 기계사이의 자연스러운 통신을 위해 소리인식에 관한 연구가 꾸준히 진행되어 왔으며 수십단어 정도의 어휘를 대상으로 불특정 화자의 음성을 인식하거나, 화자 적응을 통해 수만 단어를 인식할 수 있는 시스템들이 상용화되기 시작했다.[1]
본 연구에서는 모바일 로봇을 이용하여 공장 내의 좁은 공간에서 물건의 이동 및 전달 작업의 실현을 위한 장애물 회피를 고려한 주행제어 방법을 제안한다. 그리고 스마트 공장의 실현 목적으로 사람의 작업명령에 의해 로봇의 작업 모션제어 실현에 관한 연구도 수행하고 실험을 통하여 그 신뢰성을 증명한다.
2. 로봇의 운동학적 해석
이동 로봇의 위치 및 속도 오차는 기준궤적과 실제궤적 사이의 차로 정의 되며, 실궤적은 엔코더에서 검출된 구륜속도를 본체속도로 변환함으로써 계산될 수 있다.
Fig. 1은 2자유도 이동로봇의 좌표계를 나타내고 있다. 좌우 구륜은 독립된 구동기에 의해 구동되는 구동 구륜이며 후 구륜은 이동 로봇의 안정을 위해 부착된 보조구륜이다. F는 고정 기준 좌표계이며, L은 부하의 질량 중심에 선정된 부하 좌표계이다. B는 본체의 질량중심에 선정된 본체 좌표계로서 이동 로봇의 주 좌표계 역할을 한다.[2]
Fig. 1 The coordinates system of robot (X-Y-Z axis)
Hk는 조향관절의 z-축과 동일한 z-축 방향을 가지며 본체에 선정된 좌표계이고, Sk는 Hk와 동일한 원점과 z-축 방향을 가지며 조향축에 선정된 조향 좌표계이다. 좌표계 Hk와 Sk는 동일한 원점과 z-축 방향을 가지지만, 좌표계 Sk의 x-축 및 y-축 방향은 조향축의 동작 방향에 따라 회전되므로 조향각을 검출하기 위해 선정된다. Wi는 구륜의 중심에 선정된 구륜 좌표계이다. Aj(j = 1, 2)는 구륜과 본체의 접촉점에 선정된 구륜축 좌표계이다.[3,4]
Fig. 1은 2휠 구동 모바일 로봇의 좌표계를 나타낸다.(X-Y-Z축) 좌표계 Aj의 방향은 본체에 대해 고정되어 있지만 좌표계 Wi는 구동구륜의 x-축을 중심으로 회전하므로 구륜의 회전각과 각속도를 검출하기 위해 선정된다. 따라서 N개의 구륜을 갖는 시스템은 총 3N+1개의 좌표계를 가진다. Fig. 1의 구조를 갖는 이동 로봇은 y-축방향의 병진운동과 z-축을 중심으로 회전운동을 하는 2 자유도를 갖는다. 따라서 2 자유도 이동 로봇의 회전 동작은 양 구륜의 속도 차에 의해 이루어진다.[5]
구륜속도 성분 중 구동축을 중심으로 한 구륜 각속도 AwWix는 엔코드로부터 검출될 수 있다. 따라서 검출된 구륜 각속도로부터 본체의 속도를 계산하기 위해 구륜의 속도를 감지 성분과 비감지 성분으로 구분하여, 감지 성분을 s로 비감지 성분을 n으로 표시하여 식 (1)과 같이 나타낼 수 있다.
\(\begin{align}{ }^{\bar{B}} \dot{P}=J c_{i s} \dot{q_{i s}}+J c_{\in} \dot{q_{E}} \quad \; for \; i=1,2\end{align}\) (1)
정기구학 해를 구하기 위하여 위 식을 식 (1)과 같이 표현한다.
\(\begin{align}\left[\begin{array}{ccc}I_{1} & -J c_{1 n} & 0 \\ I_{2} & 0 & -J c_{2 n}\end{array}\right]\left[\begin{array}{c}{ }^{B} \dot{p}_{B} \\ \dot{q}_{1 n} \\ \dot{q}_{2 n}\end{array}\right]=\left[\begin{array}{cc}J c_{1 s} & 0 \\ 0 & J c_{2 s}\end{array}\right]\left[\begin{array}{c}\dot{q_{1 s}} \\ q_{2 s}\end{array}\right]\end{align}\) (2)
Ii(i = 1, 2)는 각각 3×3 항등 행렬이다.
\(\begin{align}A_{n}\left[\begin{array}{c}{ }^{\bar{B}} \dot{p}_{B} \\ \dot{q}_{n}\end{array}\right]=J c_{s} \dot{q}_{s}\end{align}\) (3)
감지된 바퀴의 속도 \(\begin{align}\dot {q}_n\end{align}\)로부터 감지되지 않은 바퀴의 속도 \(\begin{align}\dot {q}_n\end{align}\)과 이동로봇의 본체속도를 구하기 위하여 최소 자승해(Least-squares solution)를 이용한다.
이동 로봇이 기준 궤적을 추적하기 위한 양 구륜 속도를 구하기 위해서는 독립적인 구동성분만 계산할 필요가 있다.[6]
\(\begin{align}\begin{array}{c}\Delta\left(J c_{1 n}\right)=J c_{1 n}\left(J c_{1 n}^{T} J c_{1 n}\right)^{-1} J c_{1 n}^{T}-I \\ =\frac{1}{d_{a}^{2}+d_{b}^{2}+1}\left[\begin{array}{ccc}-\left(d_{a}^{2}+1\right) & -d_{a} d_{b} & d_{b} \\ -d_{a} d_{b} & -\left(d_{b}^{2}+1\right) & -d_{a} \\ d_{b} & -d_{a} & -\left(d_{a}^{2}+d_{b}^{2}\right)\end{array}\right]\end{array}\end{align}\) (4)
\(\begin{align}\begin{array}{c}\Delta\left(J c_{2 n}\right)=J c_{2 n}\left(J c_{2 n}^{T} J c_{2 n}\right)^{-1} J c_{2 n}^{T}-I \\ =\frac{1}{\left(d_{a}^{2}+d_{b}^{2}+1\right)}\left[\begin{array}{ccc}-\left(d_{a}^{2}+1\right) & d_{a} d_{b} & d_{b} \\ d_{a} d_{b} & -\left(d_{b}^{2}+1\right) & -d_{a} \\ d_{b} & d_{a} & -\left(d_{a}^{2}+d_{b}^{2}\right)\end{array}\right]\end{array}\end{align}\) (5)
\(\begin{align} \begin{array}{l} \Delta\left(J_{2 n}\right) J_{2 s} \\ =\frac{1}{d_{a}^{2}+d_{b}^{2}+1}\left[\begin{array}{ccc} -\left(d_{a}^{2}+1\right) & d_{a} d_{b} & d_{b} \\ d_{a} d_{b} & -\left(d_{b}^{2}+1\right) & d_{a} \\ d_{b} & d_{a} & -\left(d_{a}^{2}+d_{b}^{2}\right) \end{array}\right]\left[\begin{array}{c} 0 \\ -R \\ 0 \end{array}\right] \\ =\frac{R}{d_{a}^{2}+d_{b}^{2}+1}\left[\begin{array}{c} -d_{a} d_{b} \\ d_{b}^{2}+1 \\ -d_{a} \end{array}\right] \end{array}\end{align}\) (6)
위의 식으로부터 다음의 식을 유도할 수 있다.
\(\begin{align}\begin{array}{l}\left(\Delta\left(J c_{1 n}\right)+\Delta\left(J c_{2 n}\right)\right)^{-1} \Delta\left(J c_{2 n}\right) J c_{2 s}= \\ -\frac{R}{2 d_{a}^{2}\left(d_{b}^{2}+1\right)\left(d_{a}^{2}+d_{b}^{2}+1\right)}\left[\begin{array}{c}\left(d_{b}^{2}+1\right)\left(d_{a}^{2}+d_{b}^{2}\right) d_{a} d_{b}+\left(d_{b}^{2}+1\right) d_{a} d_{b} \\ d_{a}^{2}\left(d_{a}^{2}+d_{b}^{2}+1\right)\left(d_{b}^{2}+1\right) \\ d_{b}^{2}\left(d_{b}^{2}+1\right) d_{a} d_{b}+\left(d_{a}^{2}+1\right)\left(d_{b}^{2}+1\right) d_{a}\end{array}\right] \\ =\frac{R}{2 d_{a}}\left[\begin{array}{lll}d_{b} & d_{a} & 1\end{array}\right]^{T}\end{array}\end{align}\) (7)
위의 식으로부터 이동로봇의 정기구학 해를 구할 수 있으며. 본체 속도는 다음 식 과 같이 표현할 수 있다.
\(\begin{align}\left[\begin{array}{c}{ }^{\bar{B}} v_{B_{x}} \\ \bar{B}^{B} v_{B y} \\ \bar{B}^{v_{B z}}\end{array}\right]=\frac{R}{2 d_{a}}\left[\begin{array}{cc}-d_{b} & d_{b} \\ -d_{a} & -d_{a} \\ -1 & 1\end{array}\right]\left[\begin{array}{l}{ }^{A_{1}} w_{W_{1 x}} \\ { }^{A_{2}} w_{W_{2 x}}\end{array}\right]\end{align}\) (8)
식 (8)의 기준 좌표계로 변환한 본체 속도는 식 (9)와 같이 표현된다.
\(\begin{align}\left[\begin{array}{l}{ }^{F} v_{B} \\ F_{v_{x}} \\ F_{v_{B}}\end{array}\right]=\frac{R}{2 d_{a}}\left[\begin{array}{ccc}\cos ^{F} \theta_{B} & -\sin ^{F} \theta_{B} & 0 \\ \sin ^{F} \theta_{B} & \cos ^{F} \theta_{B} & 0 \\ 0 & 0 & 1\end{array}\right]\left[\begin{array}{cc}-d_{b} & d_{b} \\ -d_{a} & -d_{a} \\ -1 & 1\end{array}\right]\left[\begin{array}{c}{ }^{A_{1}} w_{W_{12}} \\ A_{2} w_{W_{2}}\end{array}\right]\end{align}\) (9)
3. 로봇의 작업경로 제어
로봇의 미끄러짐이 가로 방향력(Lateral force)과 미끄러지는 각에 의해서 발생한다고 가정하면, 퍼텐셜 필드 이동경로계획 방식에 따라 장애물을 회피하는 경우 미끄러지는 각이 상대적으로 커질 수 있다. 따라서 이러한 문제를 해결하기 위해 퍼텐셜 필드 이동경로계획에서 척력에 대한 인위적인 힘은 평탄화 될 필요가 있으며, 척력에 대한 인위적인 힘을 평탄화시키는 방식을 제안한다. 척력 퍼텐셜에 관한 식은 식 (10)과 같고 이 경우 Fig. 2과 같은 형태이다.[7]
\(\begin{align}U_{r}^{p}(q)=\left\{\begin{array}{lll}\frac{1}{2} \eta e^{\left(\frac{1}{\rho(q)}-\frac{1}{\rho_{0}}\right)^{2}} & \text { if } & \rho(q) \leq \rho_{0} \\ 0 & \text { if } & \rho(q)>\rho_{0}\end{array}\right.\end{align}\), (10)
Fig. 2 The exponential form of repulsive force potential
여기서, Upr는 제안된 척력 퍼텐셜을 의미한다.
대부분의 경우 로봇이 움직이는 경로는 척력의 퍼텐셜에 대하여 퍼텐셜 장벽이 시작되는 부분 즉, Fig. 2에서 수평축의 좌표 값 1인 점 주위에서 움직이게 될 것이다. 이 좌표 값의 주위에서 퍼텐셜 장벽의 기울기를 비교해 보면 제안한 방식이 좀 더 평탄함을 알 수 있다. 로봇이 움직이는 경로가 완만해지므로 미끄러짐을 좀 더 방지할 수 있다. 식 (10)로부터 척력에 대한 인위적인 힘을 구하면 식 (11)과 같다. 여기서, Fpr(q)는 제안된 척력에 대한 인위적인 힘을 의미한다. 식 (10)으로부터 보다 평탄화 된 퍼텐셜 장벽을 얻을 수 있으며, 인력에 대한 인위적인 힘은 미끄러지는 각에 영향을 주지 못하는 것으로 가정하면 이때 로봇을 이끄는 힘은 식 (11)와 같다.
F(q) = Fa(q) + Fpr(q) (11)
여기서, Fa(q)는 인력에 대한 인위적인 힘을 의미하며 일반적인 퍼텐셜 필드 방식과 동일한 값이다.
이동로봇의 미끄러짐을 고려하여 미끄러짐 발생시 이동로봇의 위치를 퍼지 논리 시스템을 이용하여 보정하는 방식을 제안한다. 퍼지 논리 시스템의 뛰어난 추론 능력으로 미끄러짐을 추론할 수 있다. 규칙기반은 일반적으로 전문가로 획득한 경험적인 언어적 규칙이나 실험 데이터로부터 획득한 규칙들을 IF-Then 퍼지 규칙인 언어적인 규칙형태로 저장한다. 이동 로봇 미끄러짐은 로봇이 회전할 때 발생하는 측력과 미끄러지는 각에 영향을 많이 받는 다고 가정하면 제안한 퍼지 논리 시스템의 블록선도는 Fig. 3과 같다.[8]
Fig. 3 Fuzzy logic system
Fig. 3에서 Fy는 로봇이 회전할 때 발생한 Lateral force, θ는 로봇의 미끄러지는 각을 의미하며, Fuzzy logic system의 입력이 된다. α는 퍼지 논리 시스템의 출력으로 미끄러짐으로 발생한 로봇의 센싱 오차를 보정하기 위한 값으로 오차 보정 거리이다. 비퍼지화기(Defuzzifier)는 추론엔진에서 추론된 퍼지집합들을 공학적으로 이용 가능한 보통집합으로 변환시킨다. 비퍼지화기에는 최대값 방법, 최대 평균값, 무게중심법 등이 있으며, 제안한 방식에서는 가장 성공적으로 적용되고 있는 무게중심법을 이용한다.
결론적으로 보정된 주행 기록센서의 출력 값을 식으로 표현하면 식 (12)와 같다.[9]
yck = yrk + fk (12)
여기서, yck는 k번째 보정된 측정값, yrk는 k번째 측정값, fk는 k번째 퍼지 논리 시스템의 출력값이다.
이동 로봇이 기준 궤적을 추적하기 위한 양 구륜 속도를 구하기 위해서는 독립적인 구동성분만 계산할 필요가 있다.[10]
\(\begin{align}\begin{array}{c}\dot{q_{i a}}=\left[\begin{array}{l}\dot{q_{1 a}} \\ \dot{q_{2 a}}\end{array}\right] \\ =\left[\begin{array}{l}\left(J c_{1 a}^{T} \Delta\left(J c_{1 u}\right) J c_{1 a}\right)^{-1} J c_{1 a}^{T} \Delta\left(J c_{1 u}\right) \\ \left(J c_{2 a}^{T} \Delta\left(J c_{2 u}\right) J c_{2 a}\right)^{-1} J c_{2 a}^{T} \Delta\left(J c_{2 u}\right)\end{array}\right] \cdot{ }^{\bar{B}} \dot{P}_{B}\end{array}\end{align}\) (13)
여기서,
∆(Jciu) = Jciu(JcTiu Jciu)-1 JcTiu - I for i = 1, 2 (14)
위 식으로부터 이동 로봇의 역기구학 해석을 통하여. 구륜속도는 다음과 같이 유도된다.
\(\begin{align}\left[\begin{array}{c}{ }^{A_{1}} w_{W_{1 x}} \\ { }^{A_{2}} w_{W_{2 x}}\end{array}\right]=\frac{1}{R\left(d_{b}^{2}+1\right)}\left[\begin{array}{ccc}-d_{a} d_{b} & -d_{b}^{2}-1 & -d_{a} \\ d_{a} d_{b} & -d_{b}^{2}-1 & d_{a}\end{array}\right]\left[\begin{array}{l}\bar{B} v_{B x} \\ \bar{B} v_{B y} \\ \bar{B}_{B z}\end{array}\right]\end{align}\) (15)
3.1 주행 경로제어
3.1.1 경로제어 기본구조
Fig. 4는 자율이동 로봇의 경로 추적, 장애물회피, 힘 제어를 위해 본 연구에서 적용한 제어기의 개요도를 나타낸다. 그림에서 보이는 바와 같이 이 제어기는 두 개의 피드백 루프로 구성되어 있는데, 하나는 바퀴의 속도가 퍼지 제어기에 의해 생성된 목표 속도를 추종하도록 하는 내부 루프로서 이는 PI 제어기로서 구현하였다. 반면에 외부루프는 목표 지점의 위치, 장애물의 위치 및 힘 센서의 입력에 따라 로봇의 속도 및 조향각을 산출하는 제어기로서 이는 규칙 기반의 퍼지 제어를 이용하여 구현하였다. 퍼지 제어에 의해 얻어진 자율이동 로봇의 속도 및 조향각은 기술한 기구학적 관계에 의해서 양 바퀴의 속도로 변환되고 이 값은 PI 제어기의 목표값으로 사용된다.[11]
Fig. 4 Schematic of robot controller
3.1.2 작업 경로 인식
로봇의 경로 인식은 주행하고자 하는 내부의 벽면에 대한 정보를 이용하여 이동로봇의 위치와 자세를 결정한다. 다음 Fig. 5는 벽면과 이동로봇의 관계를 나타내고 있다.[12]
Fig. 5 The relation between of robot frame and wall
위와 같은 모델링으로부터 이동로봇이 벽으로부터의 자세 및 거리를 인식하는 좌표로 변환하는 관계식은 다음과 같다.(13)
\(\begin{align}\theta_{W}=\frac{\pi}{2}-\cos ^{-1}\left(\frac{d_{a}^{2}-d^{*}-d_{l}^{2}}{2 d^{*} d_{l}}\right)-\theta(K)\end{align}\) (16)
h = h' - cosθWl (17)
\(\begin{align}d_{l}=\sqrt{d(k)^{2}+d(k+1)-2 d(k) d(k+1) \cos \theta^{*}}\end{align}\) (18)
θ* = θ(k + 1) - θ(k) (19)
\(\begin{align}\theta_{1}=\cos ^{-1}\left(\frac{d_{a}^{2}-d^{*}-d_{l}^{2}}{2 d^{*} d_{l}}\right)\end{align}\) (20)
d* = d(k + 1) - d(k) (21)
da = d(k + 1)θ* (22)
여기서, θW는 이동로봇의 자세가 되고, h는 벽으로부터 x방향의 거리가 된다. 이동로봇은 벽의 자세와 거리를 최소화하는 경로로 주행하는 경로 추종 알고리즘에 의해 주행한다. 결국 이동 로봇은 벽으로부터 자신의 주행경로가 결정되어 Wall-following algorithm이 된다.[14]
3.2 장애물 회피기술
임시 목표가 정해지면 로봇간의 거리를 계산해야하는데 이를 위해 구해진 영상의 정보와 적외선 센서를 이용하였다. 두 개의 카메라에서 각각 얻어진 두 영상을 비교해 보다 정확한 거리를 산출할 수 있는 스테레오 비전 방법도 있지만 본 연구에서는 하나의 카메라로 거리를 측정하였다. 바닥에서 카메라까지의 높이인 hy, 카메라 앞부분에 존재하는 사각의 거리인 by, 카메라로 포착 가능한 최장거리인 ly + by, 카메라의 좌우 폭인 lx는 실제 측정하고, 이 4개의 측정값을 이용하여 세 가지 각도를 구할 수 있다.[15]
\(\begin{align}\alpha=\tan ^{-1}\left(\frac{h_{y}}{b_{y}}\right)\end{align}\) (23)
\(\begin{align}\theta=\tan ^{-1}\left(\frac{h_{y}}{b_{y}+l}\right)\end{align}\) (24)
\(\begin{align}\beta=90^{\circ}-\tan ^{-1}\left(\frac{b_{y}+l_{y}}{l_{x}}\right)\end{align}\) (25)
그리고 위에서 구해진 식을 이용해서 임시 목표점의 실제 공간 좌표를 구해낼 수 있다. px, py는 화면상의 x, y좌표를 나타낸다.[16]
\(\begin{align}y=\frac{h_{y}}{\tan \left(\theta+\frac{p_{y}(\alpha-\theta)}{s_{x}}\right)}+b_{y}\end{align}\) (26)
\(\begin{align}x=\tan \left(\frac{\beta\left(1-2 p_{x}\right)}{s_{x}}\right) \times y\end{align}\) (27)
사용된 제어기의 입력으로는 임시목표와 로봇과의 거리, 목표와 로봇의 진행방향과의 차이를 사용하였고, 출력은 회전각과 이동해야 할 거리로 설정하였다. 사용된 제어기의 퍼지화기에 사용된 입력 소속 함수로는 계산이 간단한 삼각파 형태를 사용하였으며, 출력 소수 함수는 singleton을 사용하여 연산량을 최소화 하였다. 퍼지 추론부에는 Mamdani의 min-max 연산을 사용하였고, 비퍼지화기에서는 무게 중심법을 사용하였다.[17,18]
Table. 1 경로계획에서 방향각에 대한 퍼지규칙을 나타내며, Fig. 6은 경로계획에서 방향각에 대한 멤버쉽 함수를 나타낸다.
Table 1. Fuzzy rules 1 for path planning(Angle)
Fig. 6 Membership function for angle in path planning
Table.2 와 Fig. 7은 각각 임시목표까지 빠른 주행을 위한 이동거리 출력에 대한 소속 함수와 제어 규칙을 나타내고 있으며, 임시목표와 로봇의 진행방향과의 차이는 절대값으로 하였다.
Table 2. Fuzzy rules 2 for path planning(Distance)
Fig. 7 Membership function for distance in path planning
3.3 음성명령 로봇 작업모션 제어
Fig. 9는 인식시스템의 개념적인 모델이다. Endpoint detection에서 음성의 시작점을 검출하면, 검출된 음성에 대해서 front end feature extraction에서 MFCC로 변환하고, MFCC를 이용하여 acoustic matcher에서 speech model과 acoustic score를 구한다.
그리고 그 score를 이용하여 인식 network을 parsing해서 인식된 결과가 나오면 rejection에서 음성의 신뢰도를 평가하게 된다.[19,20]
Fig. 8 Voice recognition scheme
① 음성검출(End point detection)
음성의 시작점과 끝점을 검출하는 routine 이다. 음성 시작점과 끝점을 검출하면 인식기로 음성구간의 voice data를 전달한다.
② 전처리 특징 추출(Front end extraction)
인식률과 효용성을 높이기 위해 HMM은 음성 데이터를 바로 모델링하지 않고, 음성데이터를 사람이 주관적으로 인지하는 주파수 특성을 반영하여 주파수를 mel-scale로 warping 해서 필터뱅크를 비선형적으로 분포시켜 구해지는 MFCC를 음성특징벡터로 변환시켜서 모델링한다. 이 변환과정을 ‘정면 끝’부분에서 수행되어지는 ‘특징 추출’ 기법을 적용하여 실행한다.
③ Parser
인식기가 실제로 인식하기 위해서는 부차적인 낱말의 모델들로 구성된 인식 네트워크와 어조가 가장 match가 잘되는 경로를 찾아야 하는데, 인식기에서 경로를 찾는 기능인 ‘parser’라고 하는 기능(컴퓨터에 입력된 정보를 번역처리 하는 기술) 이다.
④ 거절기능(Rejection)
음성인식시스템이 오인인식을 일으키게 하는 많은 이유들이 있기 때문에 방언을 사용한다던지, 인식기의 훈련시 사용되지 않은 억양으로 발성을 한다든지, 배경잡음이 높거나, 인식기의 인식대상단어로 등록되어 있지 않은 단어나 문장을 발성하는 경우 등으로 인해 오인식이 발생한다.
⑤ 기본 HMM 디코딩의 원리
HMM 모델은 연속 HMM과 이산 HMM으로 나뉘는데, 연속 HMM이 음성인식, 화자 인증 또는 인식 등에서 우수한 성능을 보인다. 연속 HMM은 연속 관측 확률밀도함수를 사용하는데 아래의 식으로 표현된다.
\(\begin{align}\begin{array}{c}b_{i}\left(x_{t}\right)=\sum_{m=1}^{N_{m}} g_{m} \Phi_{i m}\left(x_{t} ; \mu_{i m}, \sum_{i m}\right), \\ 1 \leq i \leq N_{s}\end{array}\end{align}\) (28)
\(\begin{align}\begin{array}{c}\sum_{m=1}^{N_{m}} c_{i m}=1,1 \leq i \leq N_{s} \\ c_{i m} \leq 0,1 \leq i \leq N_{s}, 1 \leq m \leq N_{s}\end{array}\end{align}\) (29)
위 식에서 xt는 관측벡터이며 Φim는 커널함수로 i번째 상태의 가중치가 cim, 평균벡터 μim, 공분산 Σim과 Nm은 총 개수이다.
4. 성능실험 및 결과고찰
4.1 시뮬레이션 성능실험
로봇의 위치 및 속도제어 성능시험을 퍼지 제어기법에 의해 실험을 수행하고 성능을 검증하였다. 수치실험은 미지의 외란 및 파라미터의 불확실성을 고려한 상태에서 이동용 로봇의 속도 및 방향제어에 대한 성능 시험을 수행하였고 그 결과를 토크 계산법과 비교하였다. 위의 이동 로봇 모델의 시뮬레이션 조건에서 샘플링 기간은 5[ms], 기준속도 Vd는 300[mm/s]로써 주어졌고, 상태변수의 초기값은 x = [0 0 0]T로써 주어졌다. 시뮬레이션 실험에 있어서 시뮬레이션 시 고려된 파라메타의 불확실성의 고려는 주어진 이동형 로봇의 모든 제원에서 휠의 관성모멘트 및 점성마찰력에 대한 파라미터 값을 증감시키는 방법으로 실험하였다.
Table. 3은 기준궤적에 대한 학습결과를 나타내며, Table. 4는 7라벨에 대한 49개의 제어 규칙값을 나타낸다.
Table 3. The learning results of Ωs for reference trajectory
Table 4. The 49 control rules for 7 labels
Fig. 9은 8%의 파라미터의 불확실성을 고려한 상태에서의 제안된 지능제어기의 속도궤적추적 성능 실험 결과를 나타내고 있다. 성능실험결과 8% 파라미터 불확실성시 최대 오버슈트량은 약 0.25(m/s)를 나타내고, 정착시간(settling time)은 약 0.008초를 나타내고 있다. 두가지 속도기준궤적에 대한 추적성능이 매우 양호함을 보여주고 있다. Fig. 10는 12%의 파라미터 불확실성을 고려한 상태에서 제안된 지능제어기의 속도궤적추적 성능 실험 결과를 나타내고 있다. 파라미터 불확실성을 12% 고려한 상태에서의 제안된 지능제어시의 최대 오버슈트량은 약 0.6(m/s)를 나타내고, 정착시간(settling time)은 약 0.08초를 나타내고 있다. Fig. 11은 8%의 파라미터 불확실성을 고려한 경우에서의 지능제어기의 방향각궤적추적 성능실험 결과를 나타내고 있다. 성능실험결과 8% 파라미터 불확실성시 최대 오버슈트량은 약 0.001(rad)를 나타내고, 정착시간(settling time)은 약 0.6초를 나타내고 있다. 두가지 방향각기준궤적에 대한 추적성능이 매우 양호함을 보여주고 있다. Fig. 12는 12%의 파라미터 불확실성을 고려한 경우에서 제안된 지능제어기의 방향각궤적추적 성능실험 결과를 나타내고 있다. 파라미터 불확실성을 12% 고려한 상태에서의 제안된 지능제어시의 최대 오버슈트량은 약 0.009(rad)를 나타내고, 정착시간(settling time)은 약 0.3초를 나타내고 있다.
Fig. 9 Control performance of the intelligent controller for the variation of the velocity trajectory with parameter uncertainties(8%)
Fig. 10 Control performance of the intelligent controller for variation of the velocity trajectory with parameter uncertainties(12%)
Fig. 11 Control performance of the intelligent controller for the variation of the azimuth trajectory with parameter uncertainties (8%)
Fig.12 Control performance of the intelligent controller for the variation of the azimuth trajectory with parameter uncertainties (12%)
4.2 성능 실험
ⅰ) 무선통신 리모컨 제어방식 동시적용
ⅱ) 송신마이크로폰에 의한 음성명령에 의한 주행제어 성능실험
Fig. 13은 음성명령프로그램의 메뉴를 나타낸다. 그리고 Fig. 14는 음성명령에 의한 로봇의 주행제어 실험을 나타낸다.
Fig. 13 Voice recognition word registration program
Fig. 14 The scnen of experiment
Fig.15는 각각 서로 다른 다섯명에 의한 음성 명령에 의한 로봇성능 실험결과 그래프를 나타낸다.
Fig. 15 experiment result of transfer automation a forging parts
5. 결론
본 연구에서는 제조공장내의 좁은 공간에서 단조부품의 이송 및 전달 작업 자동화를 위한 로봇의 실시간 경로 제어 실현을 위하여 장애물회피를 고려한 이송자동화에 대한 새로운 기법을 제안하고, 시뮬레이션 및 실험을 통하여, 그 신뢰성을 확인하였다. 그리고 스마트 팩토리 실현을 위해 음성인식을 통하여 사람과의 간단한 대화형식에 의한 로봇작업 명령제어 성능실험을 통하여 스마트 팩토리의 실현 가능성을 제시하였다.
사사
본 연구는 로봇비즈니스벨트조성사업(R0004565)에 의해 수행되었습니다.
References
- L. R. Rabinar and B. H. Juang, "An Introduction to Hidden MarkovModels," IEEE ASSP Magazine, Vol. 3, No. 1, pp 4-16, January1986 https://doi.org/10.1109/MASSP.1986.1165381
- 심병균, 음성명령 기반 자율주행 이동로봇의 지능 제어, 경남대학교 공학석사 학위논문, 2010.
- 이건상, 양성일, 권영헌 "음성인식(Speech Recognition)", 한양대학교 출판부, 2001
- J. J. Lee, H. J. Kim, "자율주행기술," Journal of the KSME, pp39-44, Nov, 2007
- D.Psalitis, A. sideris, and A. Yamamura, "AMultilayered Netral Network Controller", IEEE Control Systems Magazine, pp17-21 1988
- 이현엽, 문경일, "Matlab를 이용한 퍼지-뉴로", 도서출판 아진, 1999
- 남윤석, 고낙용, 이범희 "인공전위계를 이용한 로봇의 시변 장애물 회피 동작 계획" 한국자동제어학술회의, 1994
- 박종진, 최규석, "퍼지제어시스템 ", 교우사, 2001
- Y. F. Li, "Development of Fuzzy Algorithms for Servo System", IEEE control Systems Magazine, April 1898
- M.T Jhonson, "Capacity and Complexity of HMM Duration Modeling Techniques," IEEE Signal ProceSSing Letters, Vol. 12. 2, pp. 407-410, 2005 https://doi.org/10.1109/LSP.2005.845598
- 김현근, 심현석, 황원준, "무인FA를 위한 주율주행 로봇의 경로계획 및 궤적제어에 관한 연구",한국산업융합학회 논문집 제19권 2호 pp.75-80, 2016 https://doi.org/10.21289/KSIC.2016.19.2.075
- 신행봉, 차보남, "공정 자동화를 위한 싱글 휠드라이빙 모바일 로봇의 견실 제어에 관한 연구", 한국산업융합학회 논문집 제19권 2호pp. 81-87, 2016 https://doi.org/10.21289/KSIC.2016.19.2.081
- 이우송, 하언태, 정양근, 박인만, "스마트펙토리를 위한 듀얼암을 갖는 모바일 로봇의 유연제어에 관한 연구", 한국산업융합 학회 논문집 제19권 2호, pp69-74, 2016
- 진태석, "퍼지추론기반 센서융합 이동로봇의 장애물 회피 주행기법", 한국산업 융합학회 논문집 제21권 2호,pp95-101,2018
- 권순홍, 전병연, 박강박, "호퍼의 수준 제어를 위한 퍼지 PID 제어기의 설계", 한국산업융합학회 논문집 제19권 4호 pp193-197, 2016 https://doi.org/10.21289/KSIC.2016.19.4.193
- 하언태, 심현석, 박인만, 이상혁, 차보남, 박성준, "보행로봇의 워킹 및 작업동작 안정화에 관한 연구",한국산업융합학회 논문집 제19권 1호 pp.39-41, 2016 https://doi.org/10.21289/KSIC.2016.19.1.039
- 김한성, "4자유도 고속병렬 로봇의 해석 및 설계",한국산업융합학회 논문집 제19권 4호, pp. 206-215, 2016 https://doi.org/10.21289/KSIC.2016.19.4.206
- 장성철, 권민수, "제어보드와 파워보드에 관한 발열성능 평가", 한국산업융합학회 논문집 제20권 2호,pp187-194,2017 https://doi.org/10.21289/KSIC.2017.20.2.187
- 김진광, "생산자동화 시스템을 위한 산업용 로봇의 운전특성 시뮬레이션에 관한 연구",한국산업융합학회 논문집제20권 5호, pp405-410, 2017 https://doi.org/10.21289/KSIC.2017.20.5.405
- 진태석, "천장 전등패널 기반로봇의 주행오차보정과 제어",한국산업융합학회 논문집 제20권 2호 pp.89-95, 2017 https://doi.org/10.21289/KSIC.2017.20.2.089