주요 콘텐츠

unicycleKinematics

R2026b

유니사이클 이동체 모델

설명

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

생성

설명

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

예제

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

속성

모두 확장

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

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

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

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

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

객체 함수

copyCreate deep copy of kinematic model object
derivative이동체 상태의 시간 도함수

예제

모두 축소

로봇 만들기

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

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

로봇 모션 시뮬레이션하기

시뮬레이션의 시간 범위를 0.05 시간 스텝과 함께 1초로 설정하고, 좌회전을 위해 입력 명령을 바퀴 속도 10rad/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에 개발됨

모두 확장