□ 문제 정의
○ 목 적
위의 그림과 같이 그림 2의 로봇다리 형태를 그림 1의 계단경로를 따라서 아래의 조건을 만족하며 왼쪽부터 오른쪽 끝까지 자연스럽게 걷도록 하는 것이다.
○ 조 건
그림2에서 볼 수 있듯이 주어진 다리의 링크 길이는..
- 허리부터 무릎까지의 길이=허벅지=5
- 무릎부터 발까지의 길이=종아리=5
- 발의 길이=2
또한 당연히 걷는 도중에 위 조건의 링크 길이가 늘어나거나 줄어들면서 걸어서는 안된다. → 다리길이 불변
□ 본 문
우선 계단을 걸어 나갈 때 변하는 것을 생각해보자면 처음 떠오르는 것은, 다리의 끝점이다.(발의 끝점을 말하는 것이 아님. 종아리 끝점이라고 생각하기 바람. 또한 다리 2개가 붙어서 붙은점은 허리점이고, 발을 제외하자면 한쪽다리는 링크2개짜리 기구이다.)
계단을 걷자면 우선 한쪽발이 떠서 포물선을 형태를 그리며 다리끝점이 지면에 닫게 된다.
<중 략>
plot([px02, plx1], [py02, ply1], `r`, plx1, ply1, `g*`); hold on
plot([plx1, plx2], [ply1, ply2], `r`, plx2, ply2, `r*`);
plot([plx2, plx3],[ply2, ply3],`r`, plx3, ply3, `b*`);
plot([px02, prx1], [py02, pry1], `b`, prx1, pry1, `g*`);
plot([prx1, prx2], [pry1, pry2], `b`, prx2, pry2, `r*`);
plot([prx2, prx3],[pry2, pry3],`b`, prx3, pry3, `b*`);
hold off
axis(4*[-2, 25, -5,22]);grid
%axis([-2, 50, -12,40]);grid
pause(0.02)
grid on
end
% Walking 19
%right
for prx2 = 80 : 0.2 : 90
figure(1);
X=[0, 12, 12+12*sqrt(3)/2, 28+12*sqrt(3)/2, 28+12*sqrt(3)/2, 44+12*sqrt(3)/2, 44+12*sqrt(3)/2+20*sqrt(2)/2, 56+12*sqrt(3)/2+20*sqrt(2)/2, 56+12*sqrt(3)/2+20*sqrt(2)/2, 72+12*sqrt(3)/2+20*sqrt(2)/2];
Y=[-10,-10,-4,-4, 0, 0, -20*sqrt(2)/2, -20*sqrt(2)/2, -4-20*sqrt(2)/2, -4-20*sqrt(2)/2];
plot(X,Y,`LineWidth`,2)
axis(4*[-2, 25, -5,22]);grid
% axis([-2, 50, -12,40]);grid
hold on
pry2 = -1/8*prx2^2 +20.85*prx2 -882.1424206 ; %오른쪽 다리의 끝점