GPS 센서#

소개#

gps 클래스는 V5 GPS(Game Positioning System™) 센서를 제어하고 데이터에 접근하는 데 사용됩니다. 이 센서는 VEX 필드에서 로봇의 정확한 위치 및 방향 추적을 제공합니다. 필드 주변의 GPS 필드 코드를 사용하여 로봇의 X, Y 좌표와 방향을 실시간으로 계산합니다.

GPS 센서는 장치 창에서 GPS 센서를 구성할 때 입력한 오프셋을 기반으로 자동으로 계산된 기준점을 사용하여 로봇의 위치를 ​​반환합니다.

GPS 센서에 대한 자세한 내용은 VEX 라이브러리의 VEX V5에서 GPS 센서 사용을 참조하십시오.

기준점은 GPS 센서 자체의 (0, 0) 위치로 작용하며 GPS 메서드에서 반환되는 모든 좌표, 방향 및 이동은 이 구성된 지점을 기준으로 합니다.

VEX V5 GPS 센서.

클래스 생성자#

1 — 기본 원점(0, 0)을 사용하여 지정된 스마트 포트에 gps 객체를 생성합니다.

gps(
  int32_t  index,
  double   heading_offset = 0,
  turnType dir = right );

2 — 지정된 스마트 포트에 gps 객체를 생성하고 사용자 지정 출발 위치를 정의합니다.

gps(
  int32_t       index,
  double        ox,
  double        oy,
  distanceUnits units = mm,
  double        heading_offset = 0,
  turnType      dir = right );

클래스 소멸자#

gps 객체를 파괴하고 관련 리소스를 해제합니다.

~gps();

매개변수#

매개변수

유형

설명

index

int32_t

GPS 센서가 연결된 스마트 포트는 PORTx형식으로 표기되며, 여기서 x 포트 번호입니다(예: PORT1).

ox

double

원점 위치의 X 좌표.

oy

double

원점 위치의 Y 좌표.

units

distanceUnits

The unit of measurement used for ox and oy:

  • mm (default) — millimeters
  • distanceUnits::in / inches — inches
  • distanceUnits::cm — centimeters

heading_offset

double

GPS 센서의 회전 오프셋(도 단위)은 0.00에서 359.99까지입니다. 기본값은 0입니다.

dir

turnType

양의 방향 값을 반환하는 방향:

  • right (기본값)
  • left

예시#

// Create the gps instance
gps GPS1 = gps(
    PORT1,      // Smart Port 1
    180);       // heading_offset


// Create the gps instance
gps GPS1 = gps(
    PORT1,   // Smart Port 1
    50.00,   // ox
    100.00,  // oy
    mm,      // units
    180 );   // heading_offset

회원 기능#

gps 클래스는 다음과 같은 멤버 함수를 포함합니다.

  • calibrate — GPS 센서를 보정합니다.

  • setOrigin — GPS 좌표계의 원점 위치를 설정합니다.

  • setLocation — GPS 센서의 현재 위치와 방향을 설정합니다.

  • xPosition — 현재 X 위치를 반환합니다.

  • yPosition — 현재 Y 위치를 반환합니다.

  • heading — 현재 제목을 반환합니다.

  • acceleration — 지정된 축을 따라 선형 가속도를 반환합니다.

  • gyroRate — 지정된 축에 대한 각속도를 반환합니다.

  • orientation — 지정된 축에 대한 방향을 반환합니다.

  • quality — 현재 GPS 신호 품질을 반환합니다.

  • changed — GPS 데이터가 변경될 때 실행되는 콜백 함수를 등록합니다.

gps 멤버 함수를 호출하기 전에 아래와 같이 gps 인스턴스를 생성해야 합니다.

/* This constructor is required when using VS Code.
GPS Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create the gps instance in Smart Port 1
gps GPS1 = gps(PORT1);

클래스 메서드#

calibrate#

GPS 센서를 보정합니다. 이렇게 하면 GPS에 설정된 방향(각도 오프셋에 따라)이 구동계의 현재 방향으로 설정됩니다.

GPS 센서는 보정 과정 동안 움직이지 않고 고정되어 있어야 합니다.

Available Functions
void calibrate();

Parameters

이 함수는 매개변수를 받지 않습니다.

Return Values

이 함수는 값을 반환하지 않습니다.

Examples
// Turn to face the lower Field wall using data from the GPS Sensor.
GPS1.calibrate();
Drivetrain.turnToHeading(180, degrees)

setOrigin#

GPS 좌표계의 원점을 설정합니다.

Available Functions

1 — 원점을 지정된 X 및 Y 위치로 설정합니다.

void setOrigin( 
  double        x, 
  double        y, 
  distanceUnits units = mm );

2 — 센서의 현재 위치를 원점으로 설정합니다.

void setOrigin();

Parameters

매개변수

유형

설명

x

double

새로운 원점 위치의 X 좌표입니다.

y

double

새로운 원점 위치의 Y 좌표입니다.

units

distanceUnits

x , y에 사용되는 측정 단위:

  • mm (기본값) — 밀리미터
  • distanceUnits::cm — 센티미터
  • distanceUnits::in — 인치

Return Values

이 함수는 값을 반환하지 않습니다.

Notes
  • 원점을 변경하면 xPosition 및 yPosition에서 반환되는 값에 영향을 미칩니다.

setLocation#

현재 GPS 위치와 방향을 설정합니다.

Available Functions

1 — 지정된 거리 및 회전 단위를 사용하여 현재 위치를 설정합니다.

void setLocation(
  double        x,
  double        y,
  distanceUnits units = mm,
  double        angle = 0,
  rotationUnits units_r = degrees );

2 — 현재 위치를 밀리미터와 도 단위로 설정합니다.

void setLocation( double x, double y, double angle );

Parameters

매개변수

유형

설명

x

double

현재 위치의 X 좌표입니다.

y

double

현재 위치의 Y 좌표입니다.

units

distanceUnits

x 및 y에 사용되는 측정 단위:

  • mm (기본값) — 밀리미터
  • distanceUnits::in / inches — 인치
  • distanceUnits::cm — 센티미터

angle

double

현재 위치의 헤더 값입니다.

units_r

rotationUnits

angle:

  • deg (기본값) — 도
  • rev — 회전수

Return Values

이 함수는 값을 반환하지 않습니다.

Notes
  • 이 함수를 호출하면 xPosition, yPosition, heading에서 보고된 내부 위치 및 방향 값이 업데이트됩니다.

xPosition#

GPS 센서의 현재 X 위치를 반환합니다.

Available Functions
double xPosition( distanceUnits units = distanceUnits::mm );

Parameters

매개변수

유형

설명

units

distanceUnits

반환되는 X 위치의 측정 단위:

  • mm (기본값) — 밀리미터
  • distanceUnits::cm — 센티미터
  • distanceUnits::in — 인치

Return Values

지정된 단위로 원점으로부터의 x 위치 오프셋을 나타내는 double 값을 반환합니다.

Notes
  • X 위치는 현재 원점을 기준으로 측정됩니다.

  • 원점은 setOrigin를 사용하여 변경할 수 있습니다.

Examples
// Drive slowly towards the center of the Field
Drivetrain.setDriveVelocity(20.0, percent);
Drivetrain.drive(forward);
// Stop driving when the GPS returns an x position
// near the center of the Field
waitUntil((GPS1.xPosition(mm) < 0.0));
Drivetrain.stop();

yPosition#

GPS 센서의 현재 Y 위치를 반환합니다.

Available Functions
double yPosition( distanceUnits units = distanceUnits::mm );

Parameters

매개변수

유형

설명

units

distanceUnits

반환되는 Y 위치의 측정 단위:

  • mm (기본값) — 밀리미터
  • distanceUnits::cm — 센티미터
  • distanceUnits::in — 인치

Return Values

지정된 단위로 원점으로부터의 Y 위치 오프셋을 나타내는 double 이루어진 double 값을 반환합니다.

Notes
  • Y축 위치는 현재 원점을 기준으로 측정됩니다.

  • 원점은 setOrigin() 사용하여 변경할 수 있습니다.

Examples
// Drive slowly towards the center of the Field
Drivetrain.setDriveVelocity(20.0, percent);
Drivetrain.drive(forward);
// Stop driving when the GPS reports an y position
// near the center of the Field
waitUntil((GPS1.yPosition(mm) < 0.0));
Drivetrain.stop();

heading#

GPS 센서의 현재 방향(요각)을 반환합니다.

Available Functions
double heading( rotationUnits units = rotationUnits::deg );

Parameters

매개변수

유형

설명

units

rotationUnits

반환되는 헤딩 값의 측정 단위:

  • deg (기본값) — 도
  • rev — 회전수

Return Values

지정된 단위로 현재 제목을 나타내는 double 로 이루어진 double 값을 반환합니다.

Notes
  • 방향 값은 0도에서 360도 사이로 순환됩니다.

  • 양의 회전 방향은 구성 중에 지정된 dir 매개변수에 의해 결정됩니다.

Examples
// Turn slowly to face the right wall
Drivetrain.setTurnVelocity(20.0, percent);
Drivetrain.turn(right);
// Stop turning when the GPS reports a heading 
// greater than 90 degrees
waitUntil((GPS1.heading() > 90.0));
Drivetrain.stop();

acceleration#

지정된 축을 따라 GPS 센서가 측정한 선형 가속도를 반환합니다.

Available Functions
double acceleration( 
  axisType axis );

Parameters

매개변수

유형

설명

axis

axisType

가속도가 반환될 축:

  • xaxis
  • yaxis
  • zaxis

Return Values

지정된 축을 따라 발생하는 가속도를 G(중력 단위)로 나타내는 double 의 double 값을 반환합니다.

Notes
  • 가속도 값은 G 단위로 표시되며, 1 G는 지구 표면에서의 중력 가속도와 같습니다.

gyroRate#

지정된 축을 따라 GPS 센서가 측정한 각속도를 반환합니다.

Available Functions
double gyroRate( 
  axisType      axis, 
  velocityUnits units );

Parameters

매개변수

유형

설명

axis

axisType

각속도가 반환될 축:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

반환된 각속도의 측정 단위:

  • dps — 초당 도
  • rpm — 분당 회전수

Return Values

지정된 축을 따라 선택된 단위로 측정한 각속도를 나타내는 double 의 double 값을 반환합니다.

orientation#

지정된 축에 대한 GPS 센서의 방향 각도를 반환합니다.

Available Functions
double orientation( 
  orientationType axis, 
  rotationUnits   units );

Parameters

매개변수

유형

설명

axis

orientationType

검색할 방향 축:

  • roll
  • pitch
  • yaw

units

rotationUnits

반환되는 방향 값의 측정 단위:

  • deg — 도
  • rev — 회전수

Return Values

선택한 단위로 지정된 축의 방향을 나타내는 double 의 double 값을 반환합니다.

quality#

GPS 신호 품질을 반환합니다.

Available Functions
int32_t quality();

Parameters

이 함수는 매개변수를 받지 않습니다.

Return Values

GPS 신호 품질을 백분율로 나타내는 int32_t 반환합니다.

가능한 값

설명

100

GPS 센서에서 보고된 모든 위치 및 방향 데이터는 유효합니다.

~90

위치 데이터는 더 이상 GPS 필드 코드에서 직접 계산되지 않고, 대신 다른 방법을 통해 추정됩니다.

0 – 80

방향 값만 유효합니다. GPS 필드 코드를 충분히 스캔하지 않고 시간이 지남에 따라 신호 품질이 계속 저하되어 0이 되면 GPS 데이터가 사실상 고정되어 더 이상 유효하지 않게 됩니다.

changed#

GPS 방향 값이 변경될 때 실행되는 콜백 함수를 등록합니다.

Available Functions
void changed( 
  void (* callback)(void) );

Parameters

매개변수

유형

설명

callback

void (*)(void)

GPS 방향 값이 변경될 때 호출될 함수에 대한 포인터입니다. 이 함수는 매개변수를 받지 않고 void 해야 합니다.

Return Values

이 함수는 값을 반환하지 않습니다.