주요 콘텐츠

derivative

자전거 이동체 모델의 시간 도함수

R2021b 이후

설명

stateDot = derivative(kinematicModel,state,cmds)는 자전거 기구학 이동체 모션 모델 kinematicModel에 대해 현재 상태 도함수 stateDot을 요소를 3개 가진 벡터 [xDot yDot thetaDot]으로 반환합니다. xDotyDot은 이동체 속도를 나타내는 것으로, 초당 미터 단위로 지정됩니다. thetaDot은 이동체 방향의 각속도로, 초당 라디안 단위로 지정됩니다.

예제

예제

모두 축소

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

kinematicModel = bicycleKinematics;
initialState = [0 0 0];

시뮬레이션의 시간 범위를 0.05초 시간 스텝과 함께 1초로 설정하고, 좌회전을 위해 입력 명령을 이동체 속도 2m/s와 조향각 pi/4로 설정합니다. derivative 함수에 ode45 솔버를 사용하여 로봇의 모션을 시뮬레이션합니다.

tspan = 0:0.05:1;
inputs = [2 pi/4]; %Turn 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.

입력 인수

모두 축소

자전거 기구학 모션 모델로, bicycleKinematics 객체로 지정됩니다.

이동체의 현재 상태로, [x y theta] 형식의, 요소를 3개 가진 벡터로 반환됩니다.

xy는 이동체 위치를 나타내는 것으로, 초당 미터 단위로 지정됩니다. theta는 이동체 방향으로, 초당 라디안 단위로 지정됩니다.

모션 모델에 대한 입력 명령으로, 요소를 2개 가진 벡터로 지정됩니다. motionModelVehicleInputs 속성값에 따라 이 명령 벡터의 형식이 결정됩니다. bicycleKinematics 객체에 대해 유효한 VehicleInputs 값은 다음과 같습니다.

  • "VehicleSpeedSteeringAngle" –– [v psiDot]

  • "VehicleSpeedHeadingRate" –– [v omegaDot]

v는 모션 방향의 이동체 속도(단위: 초당 미터)입니다. psiDot은 조향각 속도(단위: 초당 라디안)입니다. omegaDot은 뒤 차축의 각속도입니다.

출력 인수

모두 축소

현재 상태의 도함수로, [xDot yDot thetaDot] 형식의, 요소를 3개 가진 벡터로 반환됩니다. xDotyDot은 이동체 속도를 나타내는 것으로, 초당 미터 단위로 반환됩니다. thetaDot은 이동체의 방향 각속도로, 초당 라디안 단위로 반환됩니다.

참고 문헌

[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++ 코드를 생성할 수 있습니다.

버전 내역

R2021b에 개발됨

참고 항목