Main Content

stateSpaceDubins

Dubins 이동체를 위한 상태공간

R2019b 이후

설명

stateSpaceDubins 객체는 [x, y, θ]로 표현되는 상태 벡터로 구성된 Dubins 상태공간의 파라미터와 상태를 저장합니다. x와 y는 카테시안 좌표이고 θ는 방향 각도입니다. Dubins 상태공간은 상태 간 이동 시 회전 반경에 대한 하한(이 객체의 MinTurningRadius 속성으로 지정됨)을 가지며, 상태들을 연결할 때 실현 가능한 최단 곡선을 사용합니다.

생성

설명

예제

space = stateSpaceDubins는 x, y, θ에 대한 디폴트 상태 범위를 사용하여 Dubins state space 객체를 생성합니다.

space = stateSpaceDubins(bounds)는 x, y, θ에 대한 bounds를 지정합니다. 범위를 벗어난 상태 값은 범위에 맞춰 잘립니다. 입력 인수 bounds를 사용하여 StateBounds 속성의 값을 설정할 수 있습니다.

속성

모두 확장

상태공간의 이름으로, string형으로 지정됩니다.

읽기 전용 속성입니다.

상태공간의 차원으로, 양의 정수로 지정됩니다.

상태 변수의 범위로, 3×2 실수 값 행렬로 지정됩니다.

  • 첫 번째 행은 x 상태의 하한과 상한을 미터 단위로 지정합니다.

  • 두 번째 행은 y 상태의 하한과 상한을 미터 단위로 지정합니다.

  • 세 번째 행은 θ 상태의 하한과 상한을 라디안 단위로 지정합니다.

데이터형: double

최소 회전 반경(단위: 미터)으로, 양의 스칼라로 지정됩니다. 최소 회전 반경은 이동체가 한 방향으로 최대한 조향할 수 있는 가장 작은 원을 나타냅니다.

객체 함수

copyCreate deep copy of state space object
distanceDistance between two states
enforceStateBoundsReduce state to state bounds
interpolate상태 사이의 보간
sampleGaussianSample state using Gaussian distribution
sampleUniformSample state using uniform distribution

예제

모두 축소

Dubins 상태공간을 생성하고 최소 회전 반경을 0.2로 설정합니다.

ss = stateSpaceDubins;
ss.MinTurningRadius = 0.2;

생성된 상태공간을 사용하여 occupancyMap 기반 상태 유효성 검사기를 생성합니다.

sv = validatorOccupancyMap(ss);

예제 맵에서 점유 맵을 만들고 맵 해상도를 10셀/미터로 설정합니다.

load exampleMaps
map = occupancyMap(simpleMap,10);
sv.Map = map;

유효성 검사기의 유효성 검사 거리를 설정합니다.

sv.ValidationDistance = 0.01;

상태공간 경계가 맵 제한과 동일하도록 업데이트합니다.

ss.StateBounds = [map.XWorldLimits;map.YWorldLimits; [-pi pi]];

경로 플래너를 생성하고 최대 연결 거리를 늘립니다.

planner = plannerRRT(ss,sv);
planner.MaxConnectionDistance = 0.3;

출발 상태와 목표 상태를 설정합니다.

start = [0.5,0.5,0];
goal = [2.5,0.2,0];

디폴트 설정으로 경로를 계획합니다.

rng(100,'twister'); % repeatable result
[pthObj,solnInfo] = planner.plan(start,goal);

결과를 시각화합니다.

show(map);
hold on;
plot(solnInfo.TreeData(:,1),solnInfo.TreeData(:,2),'.-'); % tree expansion
plot(pthObj.States(:,1), pthObj.States(:,2),'r-','LineWidth',2) % draw path

Figure contains an axes object. The axes object with title Occupancy Grid, xlabel X [meters], ylabel Y [meters] contains 3 objects of type image, line.

확장 기능

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

버전 내역

R2019b에 개발됨