주요 콘텐츠

reedsSheppConnection

Reeds-Shepp 경로 연결 유형

설명

reedSheppConnection 객체에는 자세 사이를 연결하는 reedsSheppPathSegment 객체를 계산하기 위한 정보가 들어 있습니다. Reeds-Shepp 경로 세그먼트는 두 자세를 5개 모션 시퀀스로 연결합니다. 모션 옵션은 다음과 같습니다.

  • 직진

  • 최대 조향에서 좌회전

  • 최대 조향에서 우회전

  • 이동 없음

Reeds-Shepp 경로 세그먼트는 정방향 모션과 역방향 모션을 모두 지원합니다.

이 연결 객체를 사용하여 최소 회전 반경과 경로 유형 옵션을 포함한 이동체 모션 모델의 파라미터를 정의합니다. 이 연결 유형을 사용하여 자세 간의 경로 세그먼트를 생성하려면 connect 함수를 호출하십시오.

생성

설명

reedsConnObj = reedsSheppConnection은 디폴트 속성값을 사용하여 객체를 생성합니다.

예제

reedsConnObj = reedsSheppConnection(Name,Value)는 이름-값 쌍을 사용하여 속성값을 지정합니다. 여러 속성을 설정하려면 이름-값 쌍을 여러 개 지정하십시오.

예제

속성

모두 확장

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

데이터형: double

허용하지 않을 경로 유형으로, string형 스칼라로 구성된 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다.

모션 유형설명
"Sp","Sn"직진(p= 정방향, n= 역방향)
"Lp","Ln"

이동체의 최대 조향각에서 좌회전(p= 정방향, n= 역방향)

"Rp","Rn"

이동체의 최대 조향각에서 우회전(p= 정방향, n= 역방향)

"N"모션 없음

경로 세그먼트에 5개 미만의 모션 유형이 있는 경우 나머지 요소는 "N"(모션 없음)입니다.

사용 가능한 모든 경로 유형을 보려면 AllPathTypes 속성을 확인하십시오.

예: ["LpSnLp","LnSnRpSn","LnSnRpSnLp"]

데이터형: cell

읽기 전용 속성입니다.

사용 가능한 모든 경로 유형으로, 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 이 속성은 모든 유형을 나열합니다. 특정 유형을 허용하지 않으려면 이 목록에 있는 유형을 DisabledPathTypes에 지정하십시오.

Reeds-Shep 연결은 44가지 모션 유형 조합이 가능합니다.

데이터형: cell

정방향으로 이동하기 위한 비용 승수로, 양의 숫자형 스칼라로 지정됩니다. 정방향 모션에 벌점을 적용하려면 이 속성을 늘리십시오.

데이터형: double

역방향으로 이동하기 위한 비용 승수로, 양의 숫자형 스칼라로 지정됩니다. 역방향 모션에 벌점을 적용하려면 이 속성을 늘리십시오.

데이터형: double

객체 함수

connectConnect poses for given connection type

예제

모두 축소

reedsSheppConnection 객체를 생성합니다.

reedsConnObj = reedsSheppConnection;

출발 자세와 목표 자세를 [x y theta] 벡터로 정의합니다.

startPose = [0 0 0];
goalPose = [1 1 pi];

자세를 연결하는 유효한 경로 세그먼트를 계산합니다.

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);

생성된 경로를 표시합니다.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 13 objects of type line, scatter. These objects represent Forward Path, Reverse Path, Heading, Start Position, Goal Position.

reedsSheppConnection 객체를 생성합니다.

reedsConnObj = reedsSheppConnection;

출발 자세와 목표 자세를 [x y theta] 벡터로 정의합니다.

startPose = [0 0 0];
goalPose = [1 1 pi];

자세를 연결하는 유효한 경로 세그먼트를 계산합니다.

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);

생성된 경로를 표시합니다. 회전 방향을 확인합니다.

show(pathSegObj{1})

Figure contains an axes object. The axes object contains 13 objects of type line, scatter. These objects represent Forward Path, Reverse Path, Heading, Start Position, Goal Position.

pathSegObj{1}.MotionTypes
ans = 1×5 cell
    {'L'}    {'R'}    {'L'}    {'N'}    {'N'}

pathSegObj{1}.MotionDirections
ans = 1×5

     1    -1     1     1     1

새 연결 객체에서 특정 모션 시퀀스를 허용하지 않도록 지정합니다. 로봇의 기동성이 더 높다면 MinTurningRadius를 줄입니다. 역방향이 사용될 가능성을 줄이려면 역방향 비용을 늘립니다. 자세를 다시 연결하여 다른 경로를 구합니다.

reedsConnObj = reedsSheppConnection('DisabledPathTypes',{'LpRnLp'});
reedsConnObj.MinTurningRadius = 0.5;
reedsConnObj.ReverseCost = 5;

[pathSegObj,pathCosts] = connect(reedsConnObj,startPose,goalPose);
pathSegObj{1}.MotionTypes
ans = 1×5 cell
    {'L'}    {'S'}    {'L'}    {'N'}    {'N'}

show(pathSegObj{1})
xlim([0 1.5])
ylim([0 1.5])

Figure contains an axes object. The axes object contains 10 objects of type line, scatter. These objects represent Forward Path, Heading, Start Position, Goal Position.

확장 기능

모두 확장

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

버전 내역

R2019b에 개발됨