Main Content

stateSpaceReedsShepp

Reeds-Shepp 이동체를 위한 상태공간

R2019b 이후

설명

stateSpaceReedsShepp 객체는 [x, y, θ]로 표현되는 상태 벡터로 구성된 Reeds-Shepp 상태공간의 파라미터와 상태를 저장합니다. x와 y는 카테시안 좌표이고 θ는 방향 각도입니다. Reeds-Shepp 상태공간은 여러 상태 사이를 탐색할 때 회전 반경에 대한 하한(객체의 MinTurningRadius 속성으로 지정됨)과 정방향 및 역방향 비용(객체의 ForwardCostReverseCost 속성으로 지정됨)을 가집니다.

생성

설명

예제

space = stateSpaceReedsShepp은 x, y, θ에 대한 디폴트 상태 범위를 사용하여 Reeds-Shepp state space 객체를 생성합니다.

sapce = stateSpaceReedsShepp(bounds)는 x, y, θ에 대한 bounds를 지정합니다. 범위를 벗어난 상태 값은 범위에 맞춰 잘립니다. 입력값 boundsStateBounds 속성의 값을 설정합니다.

속성

모두 확장

상태공간의 이름으로, 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

예제

모두 축소

ReedsShepp 상태공간을 생성합니다.

ss = stateSpaceReedsShepp;

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

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에 개발됨