Main Content

dubinsConnection

Dubins 경로 연결 유형

R2019b 이후

설명

dubinsConnection 객체에는 자세 사이를 연결하는 dubinsPathSegment 경로 세그먼트를 계산하기 위한 정보가 있습니다. Dubins 경로 세그먼트는 두 자세를 3개 모션 시퀀스로 연결합니다. 모션 옵션은 다음과 같습니다.

  • 직진

  • 최대 조향에서 좌회전

  • 최대 조향에서 우회전

Dubins 경로 세그먼트는 정방향으로만 이동할 수 있습니다.

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

생성

설명

예제

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

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

속성

모두 확장

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

데이터형: double

허용하지 않을 Dubins 경로 유형으로, 요소를 3개 가진 문자형 벡터로 구성된 셀형 배열 또는 요소를 3개 가진 string형 스칼라로 구성된 셀형 배열로 지정됩니다. 이 셀형 배열은 이동체 모션 모델에서 허용하지 않을 3개 모션 시퀀스를 정의합니다.

모션 유형설명
"S"직진
"L"

이동체의 최대 조향각에서 좌회전

"R"

이동체의 최대 조향각에서 우회전

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

Dubins 연결의 경우 사용 가능한 경로 유형은 {"LSL"} {"LSR"} {"RSL"} {"RSR"} {"RLR"} {"LRL"}입니다.

예: ["LSL","LSR"]

데이터형: string | cell

읽기 전용 속성입니다.

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

Dubins 연결에서 사용 가능한 경로 유형은 {'LSL'} {'LSR'} {'RSL'} {'RSR'} {'RLR'} {'LRL'}입니다.

데이터형: cell

객체 함수

connectConnect poses for given connection type

예제

모두 축소

dubinsConnection 객체를 만듭니다.

dubConnObj = dubinsConnection;

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

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

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

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

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

show(pathSegObj{1})

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

dubinsConnection 객체를 만듭니다.

dubConnObj = dubinsConnection;

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

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

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

pathSegObj = connect(dubConnObj,startPose,goalPose);

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

show(pathSegObj{1})

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

pathSegObj{1}.MotionTypes
ans = 1x3 cell
    {'R'}    {'L'}    {'R'}

새 연결 객체에서 특정 모션 시퀀스를 허용하지 않도록 지정합니다. 로봇의 기동성이 더 높다면 MinTurningRadius를 줄입니다. 자세를 다시 연결하여 다른 경로를 구합니다.

dubConnObj = dubinsConnection('DisabledPathTypes',{'RLR'});
dubConnObj.MinTurningRadius = 0.5;

[pathSegObj, pathCosts] = connect(dubConnObj,startPose,goalPose);
pathSegObj{1}.MotionTypes
ans = 1x3 cell
    {'L'}    {'S'}    {'L'}

show(pathSegObj{1})

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

참고 문헌

[1] Shkel, Andrei M., and Vladimir Lumelsky. "Classification of the Dubins set." Robotics and Autonomous Systems. Vol. 34, No. 4, 2001, pp. 179–202.

확장 기능

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

버전 내역

R2019b에 개발됨