Cảm biến GPS#

Giới thiệu#

Lớp gps được sử dụng để điều khiển và truy cập dữ liệu từ cảm biến GPS V5 (Hệ thống Định vị Trò chơi™). Cảm biến này cung cấp khả năng theo dõi vị trí và hướng chính xác cho robot trên sân VEX. Nó sử dụng mã vùng GPS xung quanh chu vi sân để tính toán tọa độ X và Y cũng như hướng di chuyển của robot trong thời gian thực.

Cảm biến GPS trả về vị trí của robot bằng cách sử dụng điểm tham chiếu được tính toán tự động từ các giá trị bù đã nhập khi cấu hình cảm biến GPS trong cửa sổ Thiết bị.

Để biết thêm thông tin về Cảm biến GPS, hãy đọc Sử dụng Cảm biến GPS với VEX V5 trong Thư viện VEX.

Điểm tham chiếu đóng vai trò là vị trí (0, 0) của chính cảm biến GPS, nơi tất cả các tọa độ, hướng và chuyển động được trả về bởi các phương pháp GPS đều được tính tương đối so với điểm đã được cấu hình này.

Cảm biến GPS VEX V5.

Hàm tạo lớp#

1 — Tạo một đối tượng gps trên Cổng thông minh được chỉ định bằng cách sử dụng gốc mặc định (0, 0).

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

2 — Tạo một đối tượng gps trên Cổng thông minh được chỉ định và xác định vị trí gốc tùy chỉnh.

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

Lớp Destructor#

Hủy đối tượng gps và giải phóng các tài nguyên liên quan.

~gps();

Thông số#

Tham số

Kiểu

Sự miêu tả

index

int32_t

Cổng thông minh mà cảm biến GPS được kết nối, được viết dưới dạng PORTx, trong đó x là số cổng (ví dụ: PORT1).

ox

double

Tọa độ X của vị trí gốc.

oy

double

Tọa độ Y của vị trí gốc.

units

distanceUnits

Đơn vị đo được sử dụng cho ox và oy:

  • mm (mặc định) — milimét
  • distanceUnits::in / inches — inch
  • distanceUnits::cm — centimet

heading_offset

double

Độ lệch xoay của cảm biến GPS tính bằng độ, từ 0,00 đến 359,99. Giá trị mặc định là 0.

dir

turnType

Hướng sẽ trả về giá trị hướng dương:

  • right (mặc định)
  • left

Ví dụ#

// 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

Chức năng thành viên#

Lớp gps bao gồm các hàm thành viên sau:

  • calibrate — Hiệu chỉnh cảm biến GPS.

  • setOrigin — Đặt vị trí gốc cho hệ tọa độ GPS.

  • setLocation — Đặt vị trí và hướng hiện tại của Cảm biến GPS.

  • xPosition — Trả về vị trí X hiện tại.

  • yPosition — Trả về vị trí Y hiện tại.

  • heading — Trả về tiêu đề hiện tại.

  • acceleration — Trả về gia tốc tuyến tính dọc theo trục được chỉ định.

  • gyroRate — Trả về vận tốc góc cho trục được chỉ định.

  • orientation — Trả về hướng cho trục được chỉ định.

  • quality — Trả về chất lượng tín hiệu GPS hiện tại.

  • changed — Đăng ký một hàm gọi lại chạy khi dữ liệu GPS thay đổi.

Trước khi gọi bất kỳ hàm thành viên nào gps , cần phải tạo một thể hiện gps , như được hiển thị bên dưới:

/* 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);

Phương thức lớp#

calibrate#

Hiệu chỉnh cảm biến GPS. Thao tác này sẽ thiết lập hướng đã cấu hình của GPS (theo độ lệch góc của nó) làm hướng hiện tại của hệ thống truyền động.

Cảm biến GPS phải được giữ nguyên vị trí trong suốt quá trình hiệu chuẩn.

Available Functions
void calibrate();

Parameters

Hàm này không nhận tham số nào.

Return Values

Hàm này không trả về giá trị nào.

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

setOrigin#

Thiết lập điểm gốc của hệ tọa độ GPS.

Available Functions

1 — Đặt gốc tọa độ về vị trí X và Y được chỉ định.

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

2 — Đặt gốc tọa độ về vị trí hiện tại của cảm biến.

void setOrigin();

Parameters

Tham số

Kiểu

Sự miêu tả

x

double

Tọa độ X của vị trí gốc mới.

y

double

Tọa độ Y của vị trí gốc mới.

units

distanceUnits

Đơn vị đo được sử dụng cho x và y:

  • mm (mặc định) — milimét
  • distanceUnits::cm — centimet
  • distanceUnits::in — inch

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Việc thay đổi gốc tọa độ ảnh hưởng đến các giá trị được trả về bởi xPosition và yPosition.

setLocation#

Thiết lập vị trí và hướng hiện tại của GPS.

Available Functions

1 — Đặt vị trí hiện tại bằng cách sử dụng khoảng cách và đơn vị xoay được chỉ định.

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

2 — Đặt vị trí hiện tại bằng milimét và độ.

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

Parameters

Tham số

Kiểu

Sự miêu tả

x

double

Tọa độ X của vị trí hiện tại.

y

double

Tọa độ Y của vị trí hiện tại.

units

distanceUnits

Đơn vị đo được sử dụng cho x và y:

  • mm (mặc định) — milimét
  • distanceUnits::in / inches — inch
  • distanceUnits::cm — centimet

angle

double

Giá trị hướng của vị trí hiện tại.

units_r

rotationUnits

Đơn vị đo được sử dụng cho góc angle:

  • deg (mặc định) — độ
  • rev — vòng quay

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Việc gọi hàm này cập nhật các giá trị vị trí và hướng bên trong được báo cáo bởi xPosition, yPosition và heading.

xPosition#

Trả về vị trí X hiện tại của cảm biến GPS.

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

Parameters

Tham số

Kiểu

Sự miêu tả

units

distanceUnits

Đơn vị đo cho vị trí X trả về:

  • mm (mặc định) — milimét
  • distanceUnits::cm — centimet
  • distanceUnits::in — inch

Return Values

Returns a double representing the x positional offset from the origin in the specified units.

Notes
  • Vị trí X được đo tương đối so với gốc tọa độ hiện tại.

  • Nguồn gốc có thể được thay đổi bằng cách sử dụng 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#

Trả về vị trí Y hiện tại của cảm biến GPS.

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

Parameters

Tham số

Kiểu

Sự miêu tả

units

distanceUnits

Đơn vị đo cho vị trí Y trả về:

  • mm (mặc định) — milimét
  • distanceUnits::cm — centimet
  • distanceUnits::in — inch

Return Values

Trả về một double biểu thị độ lệch vị trí theo trục Y so với gốc tọa độ, được chỉ định bằng đơn vị đã cho.

Notes
  • Vị trí theo trục Y được đo tương đối so với gốc tọa độ hiện tại.

  • Nguồn gốc có thể được thay đổi bằng cách sử dụng 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#

Trả về hướng hiện tại (góc lệch hướng) của cảm biến GPS.

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

Parameters

Tham số

Kiểu

Sự miêu tả

units

rotationUnits

Đơn vị đo cho giá trị hướng trả về:

  • deg (mặc định) — độ
  • rev — vòng quay

Return Values

Trả về một double biểu thị hướng hiện tại theo đơn vị đã chỉ định.

Notes 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#

Trả về gia tốc tuyến tính được đo bởi cảm biến GPS dọc theo trục đã chỉ định.

Available Functions
double acceleration( 
  axisType axis );

Parameters

Tham số

Kiểu

Sự miêu tả

axis

axisType

Trục mà gia tốc sẽ được trả về:

  • xaxis
  • yaxis
  • zaxis

Return Values

Trả về giá trị double biểu thị gia tốc dọc theo trục được chỉ định tính bằng G (đơn vị trọng lực).

Notes
  • Các giá trị gia tốc được báo cáo theo đơn vị G, trong đó 1 G bằng gia tốc trọng trường tại bề mặt Trái đất.

gyroRate#

Trả về vận tốc góc đo được bởi cảm biến GPS dọc theo trục đã chỉ định.

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

Parameters

Tham số

Kiểu

Sự miêu tả

axis

axisType

Trục mà vận tốc góc sẽ được trả về:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

Đơn vị đo vận tốc góc trả về:

  • dps — độ trên giây
  • rpm — vòng/phút

Return Values

Trả về giá trị double biểu thị vận tốc góc dọc theo trục được chỉ định theo đơn vị đã chọn.

orientation#

Trả về góc định hướng của cảm biến GPS cho trục được chỉ định.

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

Parameters

Tham số

Kiểu

Sự miêu tả

axis

orientationType

Trục định hướng cần lấy:

  • roll
  • pitch
  • yaw

units

rotationUnits

Đơn vị đo cho giá trị hướng trả về:

  • deg — độ
  • rev — vòng quay

Return Values

Trả về giá trị double , biểu thị hướng của trục được chỉ định trong đơn vị đã chọn.

quality#

Trả về chất lượng tín hiệu GPS cảm nhận được.

Available Functions
int32_t quality();

Parameters

Hàm này không nhận tham số nào.

Return Values

Trả về một giá trị int32_t biểu thị chất lượng tín hiệu GPS dưới dạng phần trăm:

Các giá trị có thể có

Sự miêu tả

100

Tất cả dữ liệu vị trí và hướng được báo cáo từ cảm biến GPS đều hợp lệ.

~90

Dữ liệu vị trí không còn được tính toán trực tiếp từ Mã trường GPS mà thay vào đó được ước tính thông qua các phương pháp thay thế.

0 – 80

Chỉ có giá trị hướng là hợp lệ. Theo thời gian, nếu không quét đủ mã trường GPS, chất lượng tín hiệu sẽ tiếp tục giảm cho đến khi 0, tại thời điểm đó dữ liệu GPS sẽ bị đóng băng và không còn hợp lệ.

changed#

Đăng ký một hàm gọi lại sẽ chạy khi giá trị hướng GPS thay đổi.

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

Parameters

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void)

Một con trỏ đến một hàm sẽ được gọi khi giá trị hướng GPS thay đổi. Hàm này không được nhận tham số nào và trả về void

Return Values

Hàm này không trả về giá trị nào.