GPS 센서#
소개#
gps 클래스는 V5 GPS(Game Positioning System™) 센서를 제어하고 데이터에 접근하는 데 사용됩니다. 이 센서는 VEX 필드에서 로봇의 정확한 위치 및 방향 추적을 제공합니다. 필드 주변의 GPS 필드 코드를 사용하여 로봇의 X, Y 좌표와 방향을 실시간으로 계산합니다.
GPS 센서는 장치 창에서 GPS 센서를 구성할 때 입력한 오프셋을 기반으로 자동으로 계산된 기준점을 사용하여 로봇의 위치를 반환합니다.
GPS 센서에 대한 자세한 내용은 VEX 라이브러리의 VEX V5에서 GPS 센서 사용을 참조하십시오.
기준점은 GPS 센서 자체의 (0, 0) 위치로 작용하며 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();
매개변수#
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
GPS 센서가 연결된 스마트 포트는 |
|
|
원점 위치의 X 좌표. |
|
|
원점 위치의 Y 좌표. |
|
|
The unit of measurement used for
|
|
|
GPS 센서의 회전 오프셋(도 단위)은 0.00에서 359.99까지입니다. 기본값은 0입니다. |
|
|
양의 방향 값을 반환하는 방향:
|
예시#
// 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 Functionsvoid calibrate();
이 함수는 매개변수를 받지 않습니다.
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 Functions1 — 원점을 지정된 X 및 Y 위치로 설정합니다.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — 센서의 현재 위치를 원점으로 설정합니다.
void setOrigin();
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
새로운 원점 위치의 X 좌표입니다. |
|
|
새로운 원점 위치의 Y 좌표입니다. |
|
|
|
이 함수는 값을 반환하지 않습니다.
NotessetLocation#
현재 GPS 위치와 방향을 설정합니다.
Available Functions1 — 지정된 거리 및 회전 단위를 사용하여 현재 위치를 설정합니다.
void setLocation( double x, double y, distanceUnits units = mm, double angle = 0, rotationUnits units_r = degrees );
Parameters2 — 현재 위치를 밀리미터와 도 단위로 설정합니다.
void setLocation( double x, double y, double angle );
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
현재 위치의 X 좌표입니다. |
|
|
현재 위치의 Y 좌표입니다. |
|
|
|
|
|
현재 위치의 헤더 값입니다. |
|
|
|
이 함수는 값을 반환하지 않습니다.
NotesxPosition#
GPS 센서의 현재 X 위치를 반환합니다.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
반환되는 X 위치의 측정 단위:
|
지정된 단위로 원점으로부터의 x 위치 오프셋을 나타내는 double 값을 반환합니다.
X 위치는 현재 원점을 기준으로 측정됩니다.
원점은
setOrigin를 사용하여 변경할 수 있습니다.
// 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 Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
반환되는 Y 위치의 측정 단위:
|
지정된 단위로 원점으로부터의 Y 위치 오프셋을 나타내는 double 이루어진 double 값을 반환합니다.
Y축 위치는 현재 원점을 기준으로 측정됩니다.
원점은
setOrigin()사용하여 변경할 수 있습니다.
// 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 Functionsdouble heading( rotationUnits units = rotationUnits::deg );
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
반환되는 헤딩 값의 측정 단위:
|
지정된 단위로 현재 제목을 나타내는 double 로 이루어진 double 값을 반환합니다.
방향 값은 0도에서 360도 사이로 순환됩니다.
양의 회전 방향은 구성 중에 지정된
dir매개변수에 의해 결정됩니다.
// 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 Functionsdouble acceleration(
axisType axis );
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
가속도가 반환될 축:
|
지정된 축을 따라 발생하는 가속도를 G(중력 단위)로 나타내는 double 의 double 값을 반환합니다.
가속도 값은 G 단위로 표시되며, 1 G는 지구 표면에서의 중력 가속도와 같습니다.
gyroRate#
지정된 축을 따라 GPS 센서가 측정한 각속도를 반환합니다.
Available Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
각속도가 반환될 축:
|
|
|
반환된 각속도의 측정 단위:
|
지정된 축을 따라 선택된 단위로 측정한 각속도를 나타내는 double 의 double 값을 반환합니다.
orientation#
지정된 축에 대한 GPS 센서의 방향 각도를 반환합니다.
Available Functionsdouble orientation(
orientationType axis,
rotationUnits units );
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
검색할 방향 축:
|
|
|
반환되는 방향 값의 측정 단위:
|
선택한 단위로 지정된 축의 방향을 나타내는 double 의 double 값을 반환합니다.
quality#
GPS 신호 품질을 반환합니다.
Available Functionsint32_t quality();
이 함수는 매개변수를 받지 않습니다.
Return ValuesGPS 신호 품질을 백분율로 나타내는 int32_t 반환합니다.
가능한 값 |
설명 |
|---|---|
|
GPS 센서에서 보고된 모든 위치 및 방향 데이터는 유효합니다. |
|
위치 데이터는 더 이상 GPS 필드 코드에서 직접 계산되지 않고, 대신 다른 방법을 통해 추정됩니다. |
|
방향 값만 유효합니다. GPS 필드 코드를 충분히 스캔하지 않고 시간이 지남에 따라 신호 품질이 계속 저하되어 |
changed#
GPS 방향 값이 변경될 때 실행되는 콜백 함수를 등록합니다.
Available Functionsvoid changed(
void (* callback)(void) );
매개변수 |
유형 |
설명 |
|---|---|---|
|
|
GPS 방향 값이 변경될 때 호출될 함수에 대한 포인터입니다. 이 함수는 매개변수를 받지 않고 |
이 함수는 값을 반환하지 않습니다.