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와 방향 각속도 pi/4rad/s로 설정합니다. derivative 함수에 ode45 솔버를 사용하여 로봇의 모션을 시뮬레이션합니다.

tspan = 0:0.05:1;
inputs = [10 pi/4]; %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에 개발됨