Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

unicycleKinematics

외륜 이동체 모델

R2019b 이후

설명

unicycleKinematics는 단순화된 차륜 이동체 동역학을 시뮬레이션하기 위한 외륜 이동체 모델을 만듭니다. 이동체 상태는 요소를 3개 가진 벡터 [x y theta]로 정의됩니다. 여기서 전역 xy 위치는 미터 단위로 지정되고 이동체 방향각 theta는 라디안 단위로 지정됩니다. 이 모델은 주어진 바퀴 반경 WheelRadius를 가진 외륜 이동체를 근사하며 방향각 theta에 따라 제자리에서 회전할 수 있습니다. 모델의 시간 도함수 상태를 계산하기 위해 입력 명령과 현재 로봇 상태를 지정하여 derivative 함수를 사용합니다.

생성

설명

예제

kinematicModel = unicycleKinematics는 디폴트 속성값을 갖는 외륜 기구학 모델 객체를 생성합니다.

kinematicModel = unicycleKinematics(Name,Value)는 지정된 값으로 추가 속성을 설정합니다. 여러 개의 속성을 임의의 순서로 지정할 수 있습니다.

속성

모두 확장

이동체의 바퀴 반경으로, 미터 단위로 지정됩니다.

이동체 속도 범위는 최소 차량 속도와 최대 차량 속도 [MinSpeed MaxSpeed]를 제공하는 2개 요소 벡터로, 초당 미터 단위로 지정됩니다.

VehicleInputs 속성은 derivative 함수를 사용할 때 모델 입력 명령의 형식을 지정합니다. 옵션을 다음 문자열 중 하나로 지정합니다.

  • "WheelSpeedHeadingRate" — 바퀴 속도와 방향 각속도로, 초당 라디안 단위로 지정됩니다.

  • "VehicleSpeedHeadingRate" — 이동체 속도와 방향 각속도로, 초당 라디안 단위로 지정됩니다.

객체 함수

derivativeTime derivative of vehicle state

예제

모두 축소

로봇 만들기

로봇을 정의하고 초기 시작 위치와 방향을 설정합니다.

kinematicModel = unicycleKinematics;
initialState = [0 0 0];

로봇 모션 시뮬레이션하기

시뮬레이션의 시간 범위를 0.05초 시간 스텝과 함께 1초로 설정하고, 입력 명령을 10m/s와 좌회전으로 설정합니다. derivative 함수에 ode45 솔버를 사용하여 로봇의 모션을 시뮬레이션합니다.

tspan = 0:0.05:1;
inputs = [10 1]; %Constant speed and turning left
[t,y] = ode45(@(t,y)derivative(kinematicModel,y,inputs),tspan,initialState);

경로 플로팅하기

figure
plot(y(:,1),y(:,2))

Figure contains an axes object. The axes object contains an object of type line.

참고 문헌

[1] Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control 1st ed. Cambridge, MA: Cambridge University Press, 2017.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2019b에 개발됨