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.

Hàm tạo lớp#
1 — Tạo một đối tượng
gpstrê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
gpstrê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ả |
|---|---|---|
|
|
Cổng thông minh mà cảm biến GPS được kết nối, được viết dưới dạng |
|
|
Tọa độ X của vị trí gốc. |
|
|
Tọa độ Y của vị trí gốc. |
|
|
Đơn vị đo được sử dụng cho
|
|
|
Độ 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. |
|
|
Hướng sẽ trả về giá trị hướng dương:
|
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 Functionsvoid calibrate();
Hàm này không nhận tham số nào.
Return ValuesHà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 Functions1 — Đặt gốc tọa độ về vị trí X và Y được chỉ định.
void setOrigin( double x, double y, distanceUnits units = mm );
Parameters2 — Đặt gốc tọa độ về vị trí hiện tại của cảm biến.
void setOrigin();
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Tọa độ X của vị trí gốc mới. |
|
|
Tọa độ Y của vị trí gốc mới. |
|
|
Đơn vị đo được sử dụng cho
|
Hàm này không trả về giá trị nào.
NotessetLocation#
Thiết lập vị trí và hướng hiện tại của GPS.
Available Functions1 — Đặ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 );
Parameters2 — Đặt vị trí hiện tại bằng milimét và độ.
void setLocation( double x, double y, double angle );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Tọa độ X của vị trí hiện tại. |
|
|
Tọa độ Y của vị trí hiện tại. |
|
|
Đơn vị đo được sử dụng cho
|
|
|
Giá trị hướng của vị trí hiện tại. |
|
|
Đơn vị đo được sử dụng cho góc
|
Hàm này không trả về giá trị nào.
NotesxPosition#
Trả về vị trí X hiện tại của cảm biến GPS.
Available Functionsdouble xPosition( distanceUnits units = distanceUnits::mm );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Đơn vị đo cho vị trí X trả về:
|
Returns a double representing the x positional offset from the origin in the specified units.
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.
// 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 Functionsdouble yPosition( distanceUnits units = distanceUnits::mm );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Đơn vị đo cho vị trí Y trả về:
|
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.
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().
// 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 Functionsdouble heading( rotationUnits units = rotationUnits::deg );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Đơn vị đo cho giá trị hướng trả về:
|
Trả về một double biểu thị hướng hiện tại theo đơn vị đã chỉ định.
Giá trị hướng được giới hạn trong khoảng từ 0 đến 360 độ.
Hướng quay dương được xác định bởi tham số
dirđược chỉ định trong quá trình xây dựng.
// 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 Functionsdouble acceleration(
axisType axis );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Trục mà gia tốc sẽ được trả về:
|
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).
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 Functionsdouble gyroRate(
axisType axis,
velocityUnits units );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Trục mà vận tốc góc sẽ được trả về:
|
|
|
Đơn vị đo vận tốc góc trả về:
|
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 Functionsdouble orientation(
orientationType axis,
rotationUnits units );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Trục định hướng cần lấy:
|
|
|
Đơn vị đo cho giá trị hướng trả về:
|
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 Functionsint32_t quality();
Hàm này không nhận tham số nào.
Return ValuesTrả 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ả |
|---|---|
|
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ệ. |
|
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ế. |
|
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 |
changed#
Đăng ký một hàm gọi lại sẽ chạy khi giá trị hướng GPS thay đổi.
Available Functionsvoid changed(
void (* callback)(void) );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
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ề |
Hàm này không trả về giá trị nào.