เซ็นเซอร์ GPS#

การแนะนำ#

เซ็นเซอร์ V5 GPS (Game Positioning System™) ให้การติดตามตำแหน่งและทิศทางที่แม่นยำสำหรับหุ่นยนต์ในสนาม VEX โดยใช้รหัส GPS รอบขอบเขตของสนามเพื่อคำนวณพิกัด X และ Y รวมถึงทิศทางของหุ่นยนต์แบบเรียลไทม์

เซ็นเซอร์ GPS จะส่งคืนตำแหน่งของหุ่นยนต์โดยใช้จุดอ้างอิงที่คำนวณโดยอัตโนมัติจากค่าชดเชยที่ป้อนเมื่อกำหนดค่าเซ็นเซอร์ GPS ในหน้าต่างอุปกรณ์

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเซ็นเซอร์ GPS โปรดอ่าน การใช้เซ็นเซอร์ GPS กับ VEX V5 ในไลบรารี VEX

จุดอ้างอิงทำหน้าที่เป็นตำแหน่ง (0, 0) ของเซ็นเซอร์ GPS เอง โดยพิกัด ทิศทาง และการเคลื่อนที่ทั้งหมดที่ได้จากวิธีการ GPS จะสัมพันธ์กับจุดที่กำหนดค่าไว้จุดนี้

เซ็นเซอร์ GPS VEX V5

หน้านี้ใช้ gps_sensor เป็นตัวอย่างชื่อเซ็นเซอร์ GPS โปรดแทนที่ด้วยชื่อที่คุณกำหนดเองตามต้องการ

ด้านล่างนี้คือรายการวิธีการที่มีให้เลือกใช้:

  • calibrate – ปรับเทียบเซ็นเซอร์ GPS เพื่อตั้งค่าทิศทางเป็นทิศทางของระบบขับเคลื่อนปัจจุบัน

  • set_origin – กำหนดตำแหน่งของจุดอ้างอิงบนหุ่นยนต์

  • set_location – กำหนดทั้งตำแหน่งและทิศทางของจุดอ้างอิงบนฟิลด์

  • x_position – ส่งคืนพิกัด x ของจุดอ้างอิงบนฟิลด์

  • y_position – ส่งคืนพิกัด y ของจุดอ้างอิงบนฟิลด์

  • heading – ส่งคืนหัวจุดอ้างอิงตามการวางแนวของฟิลด์

  • acceleration – ส่งคืนค่าความเร่งของหุ่นยนต์บนแกนที่เลือก

  • gyro_rate – ส่งคืนความเร็วในการหมุนของหุ่นยนต์บนแกนที่เลือก

  • orientation – ส่งคืนทิศทางการหมุน การเอียง หรือการหันของหุ่นยนต์เป็นองศา

  • quality – ส่งคืนความแรงของสัญญาณของเซ็นเซอร์ GPS

  • changed – ลงทะเบียนฟังก์ชันที่จะถูกเรียกเมื่อใดก็ตามที่เซ็นเซอร์ GPS ตรวจพบการเปลี่ยนแปลงทิศทาง

ตัวสร้าง – กำหนดค่าเริ่มต้นให้กับเซ็นเซอร์ GPS ด้วยตนเอง

  • Gps – สร้างเซ็นเซอร์ GPS

ปรับเทียบ#

calibrate จะทำการปรับเทียบจุดอ้างอิง โดยตั้งค่าทิศทางที่กำหนดค่าไว้ให้เป็นทิศทางของระบบขับเคลื่อนในปัจจุบัน ในระหว่างนี้ หุ่นยนต์จะต้องอยู่นิ่งสนิท เนื่องจากหากมีการเคลื่อนไหวในระหว่างการปรับเทียบ จะทำให้ได้ผลลัพธ์ที่ไม่ถูกต้อง

Usage:
gps_sensor.calibrate()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

ตั้งค่าต้นกำเนิด#

set_origin กำหนดตำแหน่งของจุดอ้างอิงบนหุ่นยนต์ด้วยตนเอง สามารถทำได้เพื่อกำหนดตำแหน่งของเซ็นเซอร์ GPS บนหุ่นยนต์ด้วยตนเอง แทนที่จะทำผ่านการตั้งค่าในโปรแกรม

Usage:
gps_sensor.set_origin(x, y, distance_units)

พารามิเตอร์

คำอธิบาย

x

พิกัด x ของจุดอ้างอิงบนหุ่นยนต์

y

พิกัด y ของจุดอ้างอิงบนหุ่นยนต์

หน่วยระยะทาง

หน่วยวัดสำหรับพิกัด x และ y:

  • MM มิลลิเมตร
  • INCHES

# GPS Sensor is mounted 25mm forward
# from the reference point on a robot

gps.set_origin(0, 25, MM)

ตั้งค่าตำแหน่ง#

set_location กำหนดตำแหน่งและทิศทางของจุดอ้างอิงบนพื้นที่ด้วยตนเอง การทำเช่นนี้สามารถช่วยลดความคลาดเคลื่อนได้หากเซ็นเซอร์ GPS อยู่ใกล้กับผนังของพื้นที่มากเกินไปในระหว่างการเริ่มต้นใช้งาน ทำให้ไม่ได้รับข้อมูลรหัสพื้นที่ GPS เพียงพอ

ภาพมุมมองจากด้านบนของสนาม VEX V5 แสดงให้เห็นเซ็นเซอร์กำลังมองรหัสสนามที่ด้านข้างของสนาม

Usage:
gps_sensor.set_location(x, y, distance_units, heading, heading_units)

พารามิเตอร์

คำอธิบาย

x

พิกัด x ของจุดอ้างอิงบนสนาม

y

พิกัด y ของจุดอ้างอิงบนสนาม

หน่วยระยะทาง

หน่วยวัดสำหรับพิกัด x และ y:

  • MM มิลลิเมตร
  • INCHES

หัวข้อ

ทิศทางที่จุดอ้างอิงหันไปเมื่อเทียบกับทิศทางสัมบูรณ์ของสนาม มีค่าตั้งแต่ 0 ถึง 359.9 องศา

หน่วยหัวเรื่อง

หน่วยวัดสำหรับหัวข้อ:DEGREES

ตำแหน่ง x#

x_position จะส่งคืนค่าพิกัด x ของจุดอ้างอิงบนฟิลด์

Usage:
gps_sensor.x_position(units)

พารามิเตอร์

คำอธิบาย

หน่วย

หน่วยวัด:

  • MM – มิลลิเมตร
  • INCHES

ตำแหน่ง y#

y_position ส่งคืนพิกัด y ของจุดอ้างอิงบนฟิลด์

Usage:
gps_sensor.y_position(units)

พารามิเตอร์

คำอธิบาย

หน่วย

หน่วยวัด:

  • MM – มิลลิเมตร
  • INCHES

หัวข้อ#

heading จะส่งคืนทิศทางของจุดอ้างอิงโดยอิงตามการวางแนวของฟิลด์ตั้งแต่ 0 ถึง 359.9 องศา

ทิศทางนี้สอดคล้องกับทิศทางการบินสัมบูรณ์ ซึ่งอยู่ในช่วง 0º ถึง 359.9º ในทิศทางตามเข็มนาฬิกา โดย 0º อยู่ที่ตำแหน่ง 12 นาฬิกา

ภาพมุมมองจากด้านบนของสนาม VEX V5 แสดงองศาโดยรอบสนาม

Usage:
gps_sensor.heading()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

ความเร่ง#

acceleration จะส่งคืนค่าความเร่งของหุ่นยนต์บนแกนที่กำหนด ตั้งแต่ -4.0 ถึง 4.0 Gs

Usage:
gps_sensor.acceleration(axis)

พารามิเตอร์

คำอธิบาย

แกน

เลือกใช้แกนใด:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

อัตราไจโร#

gyro_rate จะส่งคืนค่าความเร็วในการหมุนของหุ่นยนต์บนแกนที่เลือก

Usage:
gps_sensor.gyro_rate(axis, units)

พารามิเตอร์

คำอธิบาย

แกน

เลือกใช้แกนใด:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

หน่วย

หน่วยวัด:

  • VelocityUnits.DPS – องศาต่อวินาที ตั้งแต่ -1000 ถึง 1000
  • VelocityUnits.RPM – รอบต่อนาที ตั้งแต่ -167 ถึง 167

ปฐมนิเทศ#

orientation จะส่งคืนค่าการวางแนวแกนหมุน (roll), แกนก้มเงย (pitch) หรือแกนหัน (yaw) ของหุ่นยนต์ในหน่วยองศา

Usage:
gps_sensor.orientation(axis, units)

พารามิเตอร์

คำอธิบาย

แกน

เลือกใช้ทิศทางใด:

  • OrientationType.ROLL
  • OrientationType.PITCH
  • OrientationType.YAW

หน่วย

หน่วยวัด:DEGREES

คุณภาพ#

ค่าคุณภาพ quality จะแสดงความแรงของสัญญาณเซ็นเซอร์ GPS เป็นเปอร์เซ็นต์

ค่าที่เป็นไปได้

คำอธิบาย

100

ข้อมูลตำแหน่งและทิศทางทั้งหมดที่ได้รับจากเซ็นเซอร์ GPS นั้นถูกต้อง

~90

ปัจจุบัน ข้อมูลตำแหน่งต่างๆ ไม่ได้คำนวณโดยการเก็บรวบรวมข้อมูลจากรหัสสนาม GPS อีกต่อไป แต่ใช้วิธีอื่นแทน

0 - 80

เฉพาะค่าทิศทางจากเซ็นเซอร์ GPS เท่านั้นที่ถูกต้อง แต่เมื่อเวลาผ่านไปนานขึ้น หากเซ็นเซอร์ GPS สแกนรหัสสนาม GPS ได้ไม่เพียงพอที่จะกำหนดตำแหน่งและข้อมูลทิศทางได้อย่างแม่นยำ คุณภาพสัญญาณที่รายงานจะลดลงเรื่อยๆ จนเหลือ 0 ซึ่งในจุดนั้นข้อมูลจากเซ็นเซอร์ GPS ทั้งหมดจะหยุดนิ่งและไม่ถูกต้องอีกต่อไป

Usage:
gps_sensor.quality()

พารามิเตอร์

คำอธิบาย

เมธอดนี้ไม่มีพารามิเตอร์

เปลี่ยน#

changed ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อใดก็ตามที่เซ็นเซอร์ GPS ตรวจพบการเปลี่ยนแปลงทิศทาง

Usage:
gps_sensor.changed(callback, arg)

พารามิเตอร์

คำอธิบาย

callback

A previously defined function that executes when the GPS Sensor’s heading changes.

arg

ตัวเลือกเสริม ทูเปิลที่มีอาร์กิวเมนต์ที่จะส่งไปยังฟังก์ชันเรียกกลับ ดู การใช้ฟังก์ชันที่มีพารามิเตอร์ สำหรับข้อมูลเพิ่มเติม

def my_function():
  brain.screen.print("GPS heading changed")

# Call my_function whenever gps_sensor's heading changes
gps_sensor.changed(my_function)

ผู้สร้าง#

ตัวสร้าง (Constructor) ใช้สำหรับสร้างอ็อบเจ็กต์ Gps ด้วยตนเอง ซึ่งจำเป็นสำหรับการกำหนดค่าเซ็นเซอร์ GPS นอก VEXcode

Gps#

Gps สร้างเซ็นเซอร์ GPS

Usage:
Gps(smartport)

พารามิเตอร์

คำอธิบาย

smartport

พอร์ตอัจฉริยะที่เชื่อมต่อกับเซ็นเซอร์ GPS จะเขียนในรูปแบบ Ports.PORTx โดยที่ x คือหมายเลขของพอร์ต

# Create a GPS Sensor in Port 10
gps_sensor = Gps(Ports.PORT10)