비전#

소개#

VEX AIR 드론에는 AprilTag ID를 감지하고 추적하는 두 개의 비전 센서가 있습니다. 이를 통해 드론은 주변 환경을 분석하고, 물체를 추적하며, 감지된 시각 데이터를 기반으로 반응할 수 있습니다.

아래는 사용 가능한 모든 블록 목록입니다.

동작 — 비전 피드를 제어하고 객체 데이터를 캡처합니다.

설정 — 감지된 객체 중 접근 가능한 객체를 조정합니다.

값 — 객체의 존재 여부, 분류 및 속성을 검색합니다.

행위#

객체 데이터를 가져옵니다.#

객체 데이터 가져오기 스택 블록은 비전 센서 프레임에서 데이터를 필터링합니다. 비전 센서는 AprilTag ID를 감지할 수 있습니다.

데이터셋은 인덱스 0부터 시작하여 너비가 큰 순서부터 작은 순서로 정렬된 객체를 저장합니다. 각 객체의 속성은 Vision 객체 속성 블록을 사용하여 접근할 수 있습니다. 일치하는 객체가 감지되지 않으면 빈 데이터셋이 보고됩니다.

객체 데이터 가져오기 스택 블록입니다.#
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기

매개변수

설명

서명

지정된 서명에 해당하는 데이터만 포함하도록 데이터셋을 필터링합니다. 사용 가능한 서명은 모든 AprilTag입니다.

카메라

비전 센서는 앞쪽 또는 아래쪽에서 데이터를 가져옵니다.

예

시작 시
[Climb upward when an AprilTag ID is detected.]
[300] [mm v] 높이로 이륙 ▶
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
<Vision 객체가 있나요?>이면
[위로 v] 방향으로 [200] [mm v] 상승 ▶

설정#

비전 객체 항목 설정#

Vision 객체 항목 설정 스택 블록은 데이터 세트에서 사용할 항목을 설정합니다.

Set AI Vision 객체 항목 스택 블록.#
Vision 객체 항목을 [1]로 설정

매개변수

설명

목

사용할 데이터 세트 내 항목 번호입니다.

예

시작 시
[Display the smallest-appearing AprilTag ID.]
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
콘솔 지우기
<Vision 객체가 있나요?>이면
Vision 객체 항목을 (Vision 객체 수)로 설정
콘솔에 (Vision 객체 [id v]) 출력 ▶

값#

비전 객체가 존재합니다#

Vision 객체 존재 여부 부울 블록은 지정된 비전 센서가 현재 객체를 감지하는지 여부를 나타냅니다.

  • 참 — 지정된 비전 센서가 물체를 감지했습니다.

  • 거짓 — 지정된 비전 센서가 물체를 감지하지 못했습니다.

AI 비전 대시보드 스택 블록을 표시하거나 숨깁니다.#
<Vision 객체가 있나요?>

매개변수

설명

이 블록에는 매개변수가 없습니다.

예

시작 시
[Climb upward when an AprilTag ID is detected.]
[300] [mm v] 높이로 이륙 ▶
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
<Vision 객체가 있나요?>이면
[위로 v] 방향으로 [200] [mm v] 상승 ▶

비전 객체는 AprilTag ID입니다.#

Vision 객체는 AprilTag ID입니다. 부울 블록은 AprilTag ID가 특정 ID 번호인지 여부를 보고합니다.

  • 맞습니다 — AprilTag ID는 숫자입니다.

  • 틀렸습니다 — AprilTag ID는 숫자가 아닙니다.

AI 비전이 AprilTag ID를 불리언 블록으로 감지했습니다.#
<Vision object is AprilTag ID [1]>

매개변수

설명

AprilTag ID 번호

감지된 AprilTag ID 번호(0~37)와 비교할 숫자입니다.

예

시작 시
[Display when the target AprilTag ID is detected.]
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
콘솔 지우기
<Vision 객체가 있나요?>이면
<Vision object is AprilTag ID [21]>이면
콘솔에 [Target found!] 출력 ▶
끝

비전 객체 개수#

Vision 객체 개수 리포터 블록은 데이터 세트에서 감지된 객체의 개수를 정수로 보고합니다.

Set AI Vision 객체 항목 스택 블록.#
(Vision 객체 수)

매개변수

설명

이 블록에는 매개변수가 없습니다.

예

시작 시
[Display how many AprilTag IDs are detected.]
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
콘솔 지우기
콘솔에 (Vision 객체 수) 출력 ▶
[0.2]초 기다리기

비전 객체 속성#

객체 데이터 가져오기 블록을 사용한 후 저장되는 각 객체에는 여러 속성이 포함됩니다(아래 참조).

AI 비전 객체 속성 리포터 블록.#
(Vision 객체 [너비 v])

id를 제외한 모든 속성 값은 객체 데이터 가져오기 블록이 사용된 순간의 감지된 객체의 위치, 크기, 방향 또는 방위각을 나타냅니다. 이러한 값은 픽셀 또는 각도로 측정됩니다. 각 비전 센서는 해상도가 다릅니다.

  • 정면: 640 x 480 픽셀

  • 아래쪽을 향한 이미지: 640 x 400 픽셀

매개변수

설명

재산

Which property of the detected object to use:

너비#

width 속성은 감지된 객체의 너비를 픽셀 단위로 1부터 640까지의 정수로 보고합니다.

AI 비전 객체의 속성 스택 블록이며, 해당 매개변수는 width로 설정되어 있습니다.#
(Vision 객체 [너비 v])

예

시작 시
[Show if the AprilTag ID appears large or small.]
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
콘솔 지우기
<Vision 객체가 있나요?>이면
<(Vision 객체 [너비 v]) [math_greater_than v] [100]>이면
콘솔에 [Large] 출력 ▶
아니면
콘솔에 [Small] 출력 ▶
끝
끝
[0.2]초 기다리기

키#

height 속성은 감지된 객체의 높이를 픽셀 단위로 1부터 480까지의 정수로 보고합니다.

AI 비전 객체의 속성 스택 블록이며, 해당 매개변수는 높이로 설정되어 있습니다.#
(Vision 객체 [높이 v])

예

시작 시
[Show if the AprilTag ID appears large or small.]
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
콘솔 지우기
<Vision 객체가 있나요?>이면
<(Vision 객체 [높이 v]) [math_greater_than v] [100]>이면
콘솔에 [Large] 출력 ▶
아니면
콘솔에 [Small] 출력 ▶
끝
끝
[0.2]초 기다리기

센터엑스#

centerX 속성은 감지된 객체의 중심의 x 좌표를 픽셀 단위로 1부터 640까지의 정수로 나타냅니다.

매개변수가 centerX로 설정된 AI 비전 객체 속성 스택 블록입니다.#
(Vision 객체 [centerX v])

예

시작 시
[Show if an AprilTag ID is to the left or the right of the camera.]
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
콘솔 지우기
<Vision 객체가 있나요?>이면
<(Vision 객체 [centerX v]) [math_less_than v] [320]>이면
콘솔에 [To the left] 출력 ▶
아니면
콘솔에 [To the right] 출력 ▶
끝
끝
[0.2]초 기다리기

센터Y#

centerY 속성은 감지된 객체의 중심의 y 좌표를 픽셀 단위로 1부터 480까지의 정수로 나타냅니다.

AI 비전 객체 속성 스택 블록의 매개변수가 centerY로 설정되어 있습니다.#
(Vision 객체 [centerY v])

예

시작 시
[Take off and attempt to align the drone with an AprilTag ID on the wall.]
[Adjust the takeoff height to observe different results.]
[800] [mm v] 높이로 이륙 ▶
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
<Vision 객체가 있나요?>이면
<(Vision 객체 [centerY v]) [math_less_than v] [240]>이면
콘솔에 [Below the target!] 출력 ▶
아니면
콘솔에 [Above the target!] 출력 ▶
끝
아니면
콘솔에 [No target found!] 출력 ▶

베어링#

방향 속성은 드론을 기준으로 객체의 위치를 ​​나타내는 각도를 보고합니다. 동작은 사용되는 비전 센서에 따라 다릅니다.

0° 값은 물체와 센서의 중심이 정렬되었음을 나타냅니다. 양수 값은 물체가 오른쪽에 있음을, 음수 값은 물체가 왼쪽에 있음을 의미합니다.

감지기

보고

하향의

드론의 앞부분이 물체의 중심과 일치하도록 회전해야 하는 각도는 -180º에서 180º까지입니다.

앞으로

물체가 비전 센서 중심에서 왼쪽 또는 오른쪽으로 -180º에서 180º까지 벗어난 각도입니다.

AI 비전 객체 속성 스택 블록의 매개변수가 centerY로 설정되어 있습니다.#
(Vision 객체 [방위각 v])

예시

시작 시
[Align the front of the drone to an AprilTag ID.]
회전 속도를 (15)%로 설정
[500] [mm v] 높이로 이륙 ▶
무한 반복
Vision [아래쪽 방향 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
<Vision 객체가 있나요?>이면
<[-20] [math_less_than v] (Vision 객체 [방위각 v]) [math_less_than v] [20]>이면
[Hover once sensor is centered on the AprilTag ID.]
호버링
소리 [성공 v] 재생 ▶
아니면 <(Vision 객체 [방위각 v]) [math_less_than v] [-21]>이면
[왼쪽 v] 방향으로 회전
아니면
[오른쪽 v] 방향으로 회전

회전#

회전 속성은 감지된 AprilTag ID의 방향을 1에서 359 사이의 정수(도 단위)로 보고합니다.

AI 비전 객체의 속성 스택 블록이며, 해당 블록의 매개변수는 회전으로 설정되어 있습니다.#
(Vision 객체 [회전 v])

예

시작 시
[Turn left or right based on the rotation of an AprilTag ID.]
[1000] [mm v] 높이로 이륙 ▶
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
<Vision 객체가 있나요?>이면
<[240] [math_less_than v] (Vision 객체 [회전 v]) [math_less_than v] [300]>이면
[왼쪽 v] 방향으로 [90]도 회전 ▶
아니면 <[60] [math_less_than v] (Vision 객체 [회전 v]) [math_less_than v] [120]>이면
[오른쪽 v] 방향으로 [90]도 회전 ▶
아니면
호버링

오리진엑스#

originX 속성은 감지된 객체의 경계 상자의 왼쪽 상단 모서리의 x 좌표를 픽셀 단위로 1부터 640까지의 정수로 나타냅니다.

매개변수가 originX로 설정된 AI 비전 객체 속성 스택 블록입니다.#
(Vision 객체 [originX v])

예

시작 시
[Draw lines to the AprilTag ID origin from all corners.]
무한 반복
화면 지우기
get [all AprilTags v] data from vision [forward v] camera
<Vision 객체가 있나요?>이면
화면에 선 [0] [0] (Vision 객체 [originX v]) (Vision 객체 [originY v]) 그리기
화면에 선 [0] [480] (Vision 객체 [originX v]) (Vision 객체 [originY v]) 그리기
화면에 선 [640] [0] (Vision 객체 [originX v]) (Vision 객체 [originY v]) 그리기
화면에 선 [640] [480] (Vision 객체 [originX v]) (Vision 객체 [originY v]) 그리기
끝
[0.2]초 기다리기

기원#

originY 속성은 감지된 객체의 경계 상자의 왼쪽 상단 모서리의 y 좌표를 픽셀 단위로 1부터 480까지의 정수로 나타냅니다.

AI 비전 객체 속성 스택 블록의 매개변수가 originY로 설정되어 있습니다.#
(Vision 객체 [originY v])

예

시작 시
[Draw lines to the AprilTag ID origin from all corners.]
무한 반복
화면 지우기
get [all AprilTags v] data from vision [forward v] camera
<Vision 객체가 있나요?>이면
화면에 선 [0] [0] (Vision 객체 [originX v]) (Vision 객체 [originY v]) 그리기
화면에 선 [0] [480] (Vision 객체 [originX v]) (Vision 객체 [originY v]) 그리기
화면에 선 [640] [0] (Vision 객체 [originX v]) (Vision 객체 [originY v]) 그리기
화면에 선 [640] [480] (Vision 객체 [originX v]) (Vision 객체 [originY v]) 그리기
끝
[0.2]초 기다리기

ID#

id 속성은 감지된 AprilTag ID의 식별 번호를 정수로 보고합니다.

매개변수가 tagID로 설정된 AI 비전 객체 속성 스택 블록입니다.#
(Vision 객체 [id v])

예

시작 시
[Display the detected AprilTag ID.]
무한 반복
Vision [앞으로 v] 카메라에서 [모든 AprilTags v] 데이터 가져오기
콘솔 지우기
<Vision 객체가 있나요?>이면
콘솔에 (Vision 객체 [id v]) 출력 ▶
끝
[0.2]초 기다리기