สังเกต
พื้นที่เก็บข้อมูลนี้มี FTC SDK สาธารณะสำหรับฤดูกาลการแข่งขัน INTO THE DEEP (2024-2025)
ยินดีต้อนรับ!
พื้นที่เก็บข้อมูล GitHub นี้มีซอร์สโค้ดที่ใช้ในการสร้างแอป Android เพื่อควบคุมหุ่นยนต์แข่งขัน FIRST Tech Challenge หากต้องการใช้ SDK นี้ ให้ดาวน์โหลด/โคลนโครงการทั้งหมดลงในเครื่องคอมพิวเตอร์ของคุณ
ความต้องการ
หากต้องการใช้โปรเจ็กต์ Android Studio นี้ คุณจะต้องใช้ Android Studio 2021.2 (ชื่อรหัส Chipmunk) หรือใหม่กว่า
หากต้องการตั้งโปรแกรมหุ่นยนต์ของคุณใน Blocks หรือ OnBot Java คุณไม่จำเป็นต้องใช้ Android Studio
เริ่มต้นใช้งาน
หากคุณยังใหม่กับวิทยาการหุ่นยนต์หรือใหม่กับ FIRST Tech Challenge คุณควรพิจารณาทบทวนบทช่วยสอน FTC Blocks เพื่อทำความคุ้นเคยกับวิธีใช้ระบบควบคุม:
FTC บล็อกการสอนออนไลน์
แม้ว่าคุณจะเป็นโปรแกรมเมอร์ Java ขั้นสูง แต่การเริ่มต้นด้วยบทช่วยสอน FTC Blocks ก็มีประโยชน์ จากนั้นจึงย้ายไปยัง OnBot Java Tool หรือ Android Studio ในภายหลัง
กำลังดาวน์โหลดโครงการ
หากคุณเป็นโปรแกรมเมอร์ Android Studio คุณสามารถดาวน์โหลด repo นี้ได้หลายวิธี โปรดทราบว่าหากคุณใช้ Blocks หรือ OnBot Java Tool เพื่อตั้งโปรแกรมหุ่นยนต์ของคุณ คุณไม่จำเป็นต้องดาวน์โหลดพื้นที่เก็บข้อมูลนี้
- หากคุณเป็นผู้ใช้ git คุณสามารถโคลนที่เก็บเวอร์ชันล่าสุดได้:
โคลนคอมไพล์ https://github.com/FIRST-Tech-Challenge/FtcRobotController.git
หรือหากต้องการ คุณสามารถใช้ปุ่ม "ดาวน์โหลด Zip" ได้จากหน้าพื้นที่เก็บข้อมูลหลัก การดาวน์โหลดโปรเจ็กต์เป็นไฟล์ .ZIP จะทำให้ขนาดของการดาวน์โหลดสามารถจัดการได้
คุณยังสามารถดาวน์โหลดโฟลเดอร์โปรเจ็กต์ (เป็นไฟล์เก็บถาวร .zip หรือ .tar.gz) ได้จากส่วนย่อยดาวน์โหลดของหน้าการเผยแพร่สำหรับพื้นที่เก็บข้อมูลนี้
หน้าการเผยแพร่ยังมี APK ที่สร้างไว้ล่วงหน้าด้วย
เมื่อคุณดาวน์โหลดและคลายการบีบอัดโฟลเดอร์ของคุณ (หากจำเป็น) คุณสามารถใช้ Android Studio เพื่อนำเข้าโฟลเดอร์ได้ ("นำเข้าโครงการ (Eclipse ADT, Gradle ฯลฯ)")
การขอความช่วยเหลือ
เอกสารและบทแนะนำผู้ใช้
FIRST เก็บรักษาเอกสารออนไลน์พร้อมข้อมูลและบทช่วยสอนเกี่ยวกับวิธีการใช้ซอฟต์แวร์ FIRST Tech Challenge และระบบควบคุมหุ่นยนต์ คุณสามารถเข้าถึงเอกสารนี้โดยใช้ลิงก์ต่อไปนี้:
เอกสาร FIRST Tech Challenge
โปรดทราบว่าเอกสารออนไลน์เป็นเอกสาร "สม่ำเสมอ" ที่ได้รับการอัปเดตและแก้ไขอยู่ตลอดเวลา ประกอบด้วยข้อมูลล่าสุดเกี่ยวกับซอฟต์แวร์และระบบควบคุม FIRST Tech Challenge
วัสดุอ้างอิง Javadoc
เอกสารอ้างอิง Javadoc สำหรับ FTC SDK พร้อมใช้งานออนไลน์แล้ว คลิกลิงก์ต่อไปนี้เพื่อดูเอกสาร FTC SDK Javadoc ในรูปแบบเว็บไซต์ที่ใช้งานจริง:
เอกสาร FTC Javadoc
ฟอรั่มผู้ใช้ออนไลน์
สำหรับคำถามทางเทคนิคเกี่ยวกับระบบควบคุมหรือ FTC SDK โปรดไปที่ไซต์ชุมชน FIRST Tech Challenge:
ชุมชนท้าทายเทคโนโลยีครั้งแรก
ตัวอย่าง OpMode
โปรเจ็กต์นี้มีตัวเลือก OpModes ตัวอย่างจำนวนมาก (ตัวอย่างโค้ดโรบอต) ซึ่งสามารถตัดและวางลงในโฟลเดอร์ /teamcode ของคุณเพื่อใช้ตามสภาพที่เป็นอยู่ หรือแก้ไขให้เหมาะกับความต้องการของทีมของคุณ
โฟลเดอร์ตัวอย่าง: /FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples
ไฟล์ readme.md ที่อยู่ในโฟลเดอร์ /TeamCode/src/main/java/org/firstinspires/ftc/teamcode มีคำอธิบายหลักการตั้งชื่อตัวอย่าง และคำแนะนำเกี่ยวกับวิธีการคัดลอกไฟล์เหล่านี้ไปยังพื้นที่โปรเจ็กต์ของคุณเอง
ข้อมูลการเผยแพร่
เวอร์ชัน 10.1 (20240919-122750)
การปรับปรุง
- เพิ่ม
VisionProcessor
ที่ใช้ OpenCV ใหม่ (ซึ่งอาจแนบกับ VisionPortal ใน Java หรือ Blocks) เพื่อช่วยให้ทีมนำการประมวลผลสีไปใช้ผ่านคอมพิวเตอร์วิทัศน์ในเกม INTO THE DEEP-
ColorBlobLocatorProcessor
ใช้การตรวจจับ "blob" สี OpenCV โปรแกรมตัวอย่างใหม่ ConceptVisionColorLocator
สาธิตการใช้งาน- มีตัวเลือกให้เลือกระหว่างช่วงสีที่กำหนดไว้ล่วงหน้า หรือสร้างสีแบบกำหนดเองในพื้นที่สี RGB, HSV หรือ YCrCb
- ความสามารถในการจำกัดการตรวจจับไปยังภูมิภาคที่สนใจที่ระบุบนหน้าจอ
- มีฟังก์ชันสำหรับการใช้การปรับเปลี่ยนการกัดเซาะ / การขยายตัวกับมาสก์ขีดจำกัด
- มีฟังก์ชันสำหรับการเรียงลำดับและการกรองข้อมูลที่ส่งคืน
-
PredominantColorProcessor
อนุญาตให้ใช้บริเวณของกล้องเป็น "เซ็นเซอร์สีระยะไกล" เพื่อกำหนดสีเด่นของบริเวณนั้น โปรแกรมตัวอย่างใหม่ ConceptVisionColorSensor
สาธิตการใช้งาน- สีเด่นที่กำหนดจะถูกเลือกจากชุด "ตัวอย่าง" สีที่แยกจากกัน ซึ่งคล้ายกับเซ็นเซอร์สี MINDSTORMS NXT
- คุณสามารถดูเอกสารเกี่ยวกับคุณสมบัติการประมวลผลสีได้ที่นี่: https://ftc-docs.firstinspires.org/color-processing
- เพิ่มโปรแกรมตัวอย่าง Blocks สำหรับเซ็นเซอร์สี: RobotAutoDriveToLine และ SensorColor
- อัปเดตการตรวจสอบตัวเองเพื่อระบุเวอร์ชันซอฟต์แวร์ RC/DS ที่ไม่ตรงกันว่าเป็น "ข้อควรระวัง" แทนที่จะเป็น "ความล้มเหลว"
แก้ไขข้อบกพร่อง
- แก้ไขการถดถอยการแปลง AngularVelocity
เวอร์ชัน 10.0 (20240828-111152)
ทำลายการเปลี่ยนแปลง
- คลาส Java และ Blocks สำหรับ TensorFlow Object Detection ถูกลบออกแล้ว
-
AngularVelocity.unit
ซึ่งเป็นประเภท AngleUnit
ได้รับการเปลี่ยนชื่อเป็น AngularVelocity.angleUnit
ประเภท UnnormalizedAngleUnit
การปรับปรุง
- เพิ่มตัวอย่างสำหรับตัวบ่งชี้ดิจิทัล REV แล้ว - ConceptRevLED
- เพิ่มการรองรับ Sparkfun QWIIC LED Stick
- หากต้องการเชื่อมต่อโดยตรง คุณต้องใช้สายเคเบิลนี้
- เพิ่ม ConceptLEDStick OpMode
- เพิ่มบล็อกสำหรับสีดำ น้ำเงิน ฟ้า dkgray เทา เขียว ltgray ม่วงแดง แดง ขาว และเหลือง
- เพิ่มบล็อก "ประเมินแต่ละเว้นผลลัพธ์" ที่ดำเนินการบล็อกที่เชื่อมต่อและละเว้นผลลัพธ์ ช่วยให้คุณสามารถเรียกใช้ฟังก์ชันและละเว้นค่าที่ส่งคืน
- เพิ่มไดรเวอร์ I2C สำหรับเครื่องวัดระยะโซนาร์ Maxbotix Maxsonar I2CXL
- เพิ่มบล็อกสำหรับ setPwmEnable, setPwmDisable และ isPwmEnabled สำหรับเซอร์โวและเซอร์โว CR
- ในตัวแก้ไข Blocks: n ในช่องความคิดเห็นของคำอธิบายประกอบ ExportToBlocks จะแสดงเป็นตัวแบ่งบรรทัด
- Telemetry มีเมธอดใหม่ setNumDecimalPlaces
- Telemetry ตอนนี้จัดรูปแบบเป็นสองเท่าและลอย (ไม่ใช่ภายในวัตถุเพียงตัวมันเอง)
- เพิ่มการรองรับ Limelight 3A
- เพิ่มการสนับสนุนเริ่มต้นสำหรับ REV Servo Hub
- ทั้ง Robot Controller และ Driver Station จำเป็นต้องได้รับการอัปเดตเป็นเวอร์ชัน 10.0 เพื่อให้สามารถกำหนดค่าเซอร์โวฮับเป็นเซอร์โวฮับได้ หากแอปบนอุปกรณ์ใดอุปกรณ์หนึ่งล้าสมัย Servo Hub จะแสดงเป็น Expansion Hub และฟังก์ชันบางอย่างจะไม่ทำงานตามที่คาดไว้ คุณควรรอเพื่อสร้างการกำหนดค่าที่มี Servo Hub จนกว่าทั้งแอป Driver Station และ Robot Controller จะได้รับการอัปเดตเป็นเวอร์ชัน 10.0
- การอัปเดตเฟิร์มแวร์ของ Servo Hub และการเปลี่ยนที่อยู่สามารถทำได้โดยใช้ REV Hardware Client เท่านั้นในขณะนี้
- เพิ่มการรองรับ REV 9-Axis IMU (REV-31-3332)
- REV 9-Axis IMU รองรับเฉพาะอินเทอร์เฟซ Universal IMU เท่านั้น
- เพิ่มคลาส Java
Rev9AxisImuOrientationOnRobot
- หากคุณเปลี่ยนพอร์ต I2C ของ IMU นี้ให้เป็นพอร์ต USB ของ Control Hub ทางจิตใจ
RevHubOrientationOnRobot
ก็เข้ากันได้กับเซ็นเซอร์นี้เช่นกัน - เพิ่มบล็อกสำหรับ Rev9AxisImuOrientationOnRobot รวมถึง RevHubImuOrientationOnRobot.xyzOrientation และ RevHubImuOrientationOnRobot.zyxOrientation
- เพิ่มตัวอย่างบล็อก SensorRev9AxisIMUOorthogonal และ SensorRev9AxisIMUNonOrthogonal
- ปรับปรุงการรองรับ Blocks สำหรับ RevHubImuOrientationOnRobot
- เพิ่มบล็อกสำหรับ RevHubImuOrientationOnRobot.xyzOrientation และ RevHubImuOrientationOnRobot.zyxOrientation
- เพิ่มตัวอย่างบล็อก SensorHubIMUOOrthogonal (แทนที่ SensorIMU) และ SensorHubIMUNonOrthogonal
- อัปเดตเวอร์ชัน EasyOpenCV, AprilTag, OpenCV และ
libjpeg-turbo
- เพิ่มบล็อกสำหรับค่าสูงสุดและต่ำสุดที่รับตัวเลขสองตัว
- เพิ่มบล็อก OpModes ConceptRevSPARKMini, RobotAutoDriveByEncoder, RobotAutoDriveByGyro, RobotAutoDriveByTime, RobotAutoDriveToAprilTagOmni และ RobotAutoDriveToAprilTagTank
- ตอนนี้ OpModes สองตัวที่มีชื่อเดียวกันจะถูกเปลี่ยนชื่อโดยอัตโนมัติด้วยชื่อที่ตามด้วย "-" และชื่อคลาสที่อนุญาตให้ทั้งคู่อยู่ในอุปกรณ์
- แสดงชื่อของการกำหนดค่าที่ใช้งานอยู่บนหน้าจัดการของ Robot Controller Console
- อัปเดตไลบรารี AprilTag สำหรับ INTO THE DEEP โดยเฉพาะอย่างยิ่งตอนนี้
getCurrentGameTagLibrary()
ส่งคืนแท็ก INTO THE DEEP - เพิ่มบล็อกสำหรับ Telemetry.setMsTransmissionInterval และ Telemetry.getMsTransmissionInterval
- เพิ่มบล็อกตัวอย่าง SensorOctoQuad
แก้ไขข้อบกพร่อง
- แก้ไขข้อผิดพลาดที่ RevBlinkinLedDriver Blocks อยู่ภายใต้ Actuators ในกล่องเครื่องมือแก้ไข Blocks ตอนนี้พวกเขาเป็นอุปกรณ์อื่น ๆ
- แก้ไขข้อผิดพลาดที่
Exception
ถูกโยนลงในรหัสผู้ใช้หลังจากที่สถานีคนขับร้องขอให้หยุดจะถูกกินอย่างเงียบ ๆ - แก้ไขข้อผิดพลาดที่หากคุณขอ
AngularVelocity
ในหน่วยที่แตกต่างจากอุปกรณ์ที่รายงานมา มันจะปรับให้เป็นมาตรฐานระหว่าง -PI และ PI สำหรับเรเดียน และ -180 และ 180 สำหรับองศา
เวอร์ชัน 9.2 (20240701-085519)
หมายเหตุสำคัญ
- คลาส Java และ Blocks สำหรับ TensorFlow Object Detection เลิกใช้แล้วและจะถูกลบออกในเวอร์ชัน 10.0
- ตัวอย่างที่ใช้ TensorFlow Object Detection ได้ถูกลบออกแล้ว
การปรับปรุง
- เพิ่มข้อความอธิบายให้กับรายการที่ล้มเหลวในกิจกรรมการตรวจสอบ หากต้องการดูข้อความอธิบาย ให้แตะไอคอนคำเตือนสีแดงสำหรับรายการที่ล้มเหลว
- ในตัวแก้ไข Blocks: เพิ่มบล็อกชุดตัวแปรชนิดใหม่ที่ตั้งค่าตัวแปรและส่งคืนค่าใหม่ด้วย
- เปลี่ยนวิธีการทำงานของตัวควบคุมกล้องสำหรับ SwitchableCamera ในตอนนี้ แต่ละวิธี (เช่น getExposure, getMinExposure, getMaxExposure, setExposure สำหรับ ExposureControl) จะทำหน้าที่ในกล้องที่ใช้งานอยู่ในปัจจุบัน
- เพิ่มการรองรับเกมแพดที่เข้ากันได้กับ REV USB PS4 (REV-31-2983)
- เพิ่ม ConceptAprilTagMultiPortal OpMode
- เพิ่มการรองรับ OctoQuad Quadrature Encoder และโมดูลอินเทอร์เฟซความกว้างพัลส์
- เพิ่มคำอธิบายประกอบ ExportAprilTagLibraryToBlocks ที่ระบุว่าวิธีการคงที่ที่ส่งคืน AprilTagLibrary จะถูกส่งออกไปยังสภาพแวดล้อมการเขียนโปรแกรม Blocks บล็อกที่เกี่ยวข้องจะปรากฏในกล่องเครื่องมือ Blocks พร้อมกับไลบรารีแท็กในตัว
- เพิ่มบล็อก OpMode ConceptAprilTagOptimizeExposure
- เพิ่มการรองรับเซ็นเซอร์ SparkFun Optical Tracking Odometry
แก้ไขข้อบกพร่อง
- แก้ไข #942 โดยที่ VisionPortal.close() อาจทำให้เกิด IndexOutOfBoundsError
- แก้ไขข้อบกพร่องในตัวแก้ไขบล็อกที่บล็อกฟังก์ชันที่ยุบแสดงคำเตือน "บล็อกที่ยุบมีคำเตือน" เมื่อ Blocks OpMode ถูกเปิดอีกครั้ง
- แก้ไขข้อบกพร่องที่ตัวแก้ไขบล็อกไม่เตือนคุณว่าคุณมีการเปลี่ยนแปลงที่ยังไม่ได้บันทึกเมื่อคุณพยายามออก ข้อบกพร่องนี้เกิดขึ้นเนื่องจากการเปลี่ยนแปลงพฤติกรรมใน Chrome 119
- ปัญหา #764 - รับการควบคุมการรับส่งกลับตัวชี้ null สำหรับกล้องที่สลับได้
- แก้ไขข้อผิดพลาดที่ไม่สามารถใช้เดดโซนที่ถูกต้องสำหรับเกมแพดบางตัวเมื่อเปิดใช้งานคุณสมบัติเกมแพดขั้นสูง
เวอร์ชัน 9.1 (20240215-115542)
การปรับปรุง
- แก้ไขปัญหาเกี่ยวกับบล็อก: หากผู้ใช้ปิดบอลลูนคำเตือนของบล็อก จะยังคงปิดในครั้งต่อไปที่เปิดโปรเจ็กต์ในตัวแก้ไขบล็อก
- ในตัวแก้ไข Blocks การแจ้งเตือนเกี่ยวกับอุปกรณ์ฮาร์ดแวร์ที่หายไปจะไม่แสดงหากบล็อกทั้งหมดที่ใช้อุปกรณ์ฮาร์ดแวร์ที่หายไปถูกปิดใช้งาน
- เพิ่มบล็อกเพื่อรองรับการเปรียบเทียบค่าคุณสมบัติ CRServo.Direction, DCMotor.Direction, DCMotor.Mode, DCMotor.ZeroPowerBehavior, DigitalChannel.Mode, GyroSensor.HeadingMode, IrSeekerSensor.Mode และ Servo.Direction กับบล็อก enum ที่สอดคล้องกัน
- ปรับปรุงการนำเข้าอัตโนมัติของ OnBotJava เพื่อนำเข้าคลาสอย่างถูกต้องเมื่อใช้ในบางสถานการณ์
- ปรับปรุงการเติมข้อความอัตโนมัติของ OnBotJava เพื่อให้ตัวเลือกการเติมข้อความสมบูรณ์ที่ดีขึ้นในกรณีส่วนใหญ่
- วิธีนี้แก้ไขปัญหาที่การเติมข้อความอัตโนมัติจะล้มเหลวหากมีการกำหนดวิธีการที่มีพารามิเตอร์ที่เป็นทางการตั้งแต่สองตัวขึ้นไป
- ใน OnBotJava มีการเพิ่มการรองรับการพับโค้ดเพื่อขยายและยุบส่วนของโค้ด
- ใน OnBotJava ส่วนหัวลิขสิทธิ์จะถูกยุบโดยอัตโนมัติเพื่อโหลดไฟล์ใหม่
- สำหรับตัวอย่าง Blocks OpMode ทั้งหมด ความคิดเห็นเกริ่นนำจะถูกย้ายไปยังบอลลูนความคิดเห็น RunOpMode
- คำสั่ง Clean up Blocks ในตัวแก้ไข Blocks จะวางตำแหน่งฟังก์ชัน Blocks เพื่อให้บอลลูนความคิดเห็นไม่ทับซ้อนกับฟังก์ชัน Blocks อื่นๆ
- เพิ่ม SensorTouch ตัวอย่าง OpMode ของบล็อก
- เพิ่มตัวอย่าง Java OpMode SensorDigitalTouch
- การปรับปรุง VisionPortal หลายประการ
- เพิ่มตัวเลือกเพื่อควบคุมว่าสตรีมจะเริ่มโดยอัตโนมัติหลังจากการเรียก
.build()
บน VisionPortal Builder หรือไม่ - เพิ่มตัวเลือกเพื่อควบคุมว่าจะแสดงผลการซ้อนทับสถิติการประมวลผลการมองเห็นหรือไม่
- ขณะนี้ VisionPortals ใช้อินเทอร์เฟซ
CameraStreamSource
ซึ่งช่วยให้ผู้ใช้หลายพอร์ทัลสามารถเลือกพอร์ทัลที่จะกำหนดเส้นทางไปยัง DS ใน INIT โดยการเรียก CameraStreamServer.getInstance().setSource(visionPortal) สามารถเลือกได้ผ่านแป้นเกมระหว่างเซสชัน Camera Stream - เพิ่มตัวเลือกให้กับ
AprilTagProcessor
เพื่อระงับคำเตือนการปรับเทียบ - ปรับปรุงคำเตือนการปรับเทียบกล้อง
- หากมีการปรับขนาดการสอบเทียบ ความละเอียดที่ใช้ปรับขนาดจะแสดงรายการไว้
- หากมีการปรับเทียบอัตราส่วนภาพที่ไม่ถูกต้อง ความละเอียดที่ปรับเทียบแล้วจะแสดงในรายการ
- แก้ไขสภาวะการแข่งขันซึ่งทำให้แอปหยุดทำงานเมื่อเรียก
stopStreaming()
ตามด้วย close()
บน VisionPortal ทันที - แก้ไข IllegalStateException เมื่อเรียก
stopStreaming()
ทันทีหลังจากสร้าง VisionPortal - เพิ่มคู่ FTC Blocks ให้กับวิธีการ Java ใหม่:
- VisionPortal.Builder.setAutoStartStreamOnBuild
- VisionPortal.Builder.setShowStatsOverlay
- AprilTagProcessor.Builder.setSuppressCalibrationWarnings
- CameraStreamServer.setSource
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ OnBotJava ไม่ใช้การตั้งค่าขนาดแบบอักษรกับตัวแก้ไข
- อัปเดตการพึ่งพา EasyOpenCV เป็น v1.7.1
- แก้ไขการไม่สามารถใช้ EasyOpenCV CameraFactory ใน OnBotJava
- แก้ไขข้อขัดข้องของแอป RC ทั้งหมดเมื่อไปป์ไลน์ผู้ใช้ส่งข้อยกเว้น
- แก้ไขข้อขัดข้องของแอป RC ทั้งหมดเมื่อคำอธิบายประกอบ Canvas ของผู้ใช้ส่งข้อยกเว้น
- ใช้จอแสดงผล Stacktrace ที่ทันสมัยเมื่อจัดการกับข้อยกเว้นของผู้ใช้แทนข้อความการวัดและส่งข้อมูลทางไกล ESTOP แบบเดิม
เวอร์ชัน 9.0.1 (20230929-083754)
การปรับปรุง
- อัปเดตตัวอย่าง AprilTag เพื่อรวม Decimation และความคิดเห็นเพิ่มเติม แก้ไขคำเตือนรหัสแท็กที่ทำให้เข้าใจผิดด้วย
- เพิ่มขนาดสูงสุดของความคิดเห็นแบบอินไลน์ของ Blocks เป็น 140 อักขระ
- เพิ่มตัวอย่างบล็อก BasicOmniOpMode
- อัปเดตไลบรารี CENTERSTAGE การวางแนว AprilTag quaternions
- อัปเดต Java Sample ConceptTensorFlowObjectDetection.java เพื่อรวมองค์ประกอบที่ขาดหายไปที่จำเป็นสำหรับการสนับสนุนโมเดลแบบกำหนดเอง
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่หลังจากวันที่ 1 ตุลาคม Driver Station จะรายงานว่าล้าสมัยในเวอร์ชัน 9.0 และแจ้งให้ผู้ใช้อัปเดต
เวอร์ชัน 9.0 (20230830-154348)
ทำลายการเปลี่ยนแปลง
- กำจัดวูโฟเรีย
- ช่องในออบเจ็กต์
AprilTagDetection
และ AprilTagPose(ftc/raw)
ถือเป็นที่ final
แล้ว - เมธอดตัวสร้าง VisionPortal
setCameraMonitorViewId()
ได้รับการเปลี่ยนชื่อเป็น setLiveViewContainerId()
และ enableCameraMonitoring()
ได้รับการเปลี่ยนชื่อเป็น enableLiveView()
การปรับปรุง
- เพิ่มการรองรับสำหรับ DFRobot HuskyLens Vision Sensor
- ขณะนี้ทีมบล็อกสามารถทำการปรับเทียบเว็บแคมได้แล้ว
- เพิ่มบล็อกสำหรับ System.currentTimeMillis (ภายใต้ยูทิลิตี้/เวลา)
- เพิ่มบล็อกสำหรับ VisionPortal.saveNextFrameRaw (ภายใต้ Vision/VisionPortal)
- เพิ่มตัวอย่าง Blocks OpMode ใหม่ที่เรียกว่า UtilityCameraFrameCapture
- ตัวอย่าง RobotDriveByGyro ได้รับการอัปเดตเพื่อใช้อินเทอร์เฟซ IMU สากลใหม่ ตอนนี้รองรับ IMU ทั้งสองประเภทแล้ว
- ลบ ElapsedTime Blocks ที่อาจเกิดข้อผิดพลาดบางส่วนออกจากกล่องเครื่องมือของตัวแก้ไข Blocks นี่ไม่ใช่การเปลี่ยนแปลงครั้งใหญ่: Blocks OpModes เก่าที่ใช้ Blocks เหล่านี้จะยังคงทำงานอยู่ ทั้งในโปรแกรมแก้ไข Blocks และขณะรันไทม์
- สร้างมาตรฐานในรูปแบบ "OpMode" สำหรับคำว่า OpMode
- วิธีที่ต้องการในการอ้างถึง OpModes ที่ขยาย
LinearOpMode
โดยเฉพาะ (รวมถึง Blocks OpModes) คือ "linear OpMode" - วิธีที่แนะนำในการอ้างถึง OpModes ที่ขยาย
OpMode
โดยเฉพาะโดยตรงคือ "opMode ซ้ำ"
- ยกเครื่องความคิดเห็น
OpMode
และ LinearOpMode
Javadoc เพื่อให้อ่านง่ายขึ้นและมีรายละเอียดมากขึ้น - ทำการปรับปรุงเล็กน้อยกับตัวอย่าง Java
- ความคิดเห็น Javadoc ในตัวอย่างที่แสดงผลได้ไม่ดีใน Android Studio ได้ถูกแปลงเป็นความคิดเห็นหลายบรรทัดมาตรฐาน
- ความสอดคล้องระหว่างตัวอย่างได้รับการปรับปรุงแล้ว
- ตัวอย่าง SensorDigitalTouch ถูกแทนที่ด้วยตัวอย่าง SensorTouch ใหม่ที่ใช้อินเทอร์เฟซ
TouchSensor
แทน DigitalChannel
- ตัวอย่าง ConceptCompassCalibration, SensorMRCompass และ SensorMRIRSeeker ได้ถูกลบแล้ว เนื่องจากไม่มีประโยชน์สำหรับการแข่งขัน FTC สมัยใหม่
แก้ไขข้อบกพร่อง
- แก้ไขข้อผิดพลาดที่ทำให้ PlayStation gamepads ไม่สามารถใช้งานได้ในโหมด Bluetooth บลูทูธไม่ถูกกฎหมายสำหรับการแข่งขัน แต่อาจมีประโยชน์ในการอนุญาตให้ใช้อุปกรณ์ DS ขณะชาร์จหรือในงานเผยแพร่ประชาสัมพันธ์
- แก้ไขข้อบกพร่องที่ค่าวันที่แก้ไขของ Blocks OpMode สามารถเปลี่ยนเป็น 31 ธันวาคม 1969 ได้ หากศูนย์กลางการควบคุมถูกรีบูตในขณะที่ Blocks OpMode กำลังแก้ไข
- แก้ไขคุณสมบัติการเลือกล่วงหน้า TeleOp อัตโนมัติ (ใช้งานไม่ได้ใน 8.2)
- แก้ไขข้อผิดพลาดที่ส่งผ่านตัวเลขจำนวนเต็ม เช่น 123 ไปยังบล็อก Telemetry.addData ที่รับตัวเลขแสดงเป็น 123.0 ในการวัดทางไกล
- แก้ไขปัญหาการเติมข้อความอัตโนมัติของ OnBotJava:
- การเติมข้อความอัตโนมัติจะระบุค่าสำหรับคลาสปัจจุบันอย่างไม่ถูกต้องเมื่อเติมตัวแปรท้องถิ่นโดยอัตโนมัติ
- การเติมข้อความอัตโนมัติ
hardwareMap
จะรวมรายการคลาสแลมบ์ดาอย่างไม่ถูกต้อง
- แก้ไข OnBotJava ไม่นำเข้าคลาสโดยอัตโนมัติ
- แก้ไขแท็บ OnBotJava ที่ไม่สามารถปิดเมื่อไฟล์ถูกลบ
- แก้ไขการรีเฟรชมุมมองโครงการที่ไม่เกิดขึ้นเมื่อเปลี่ยนชื่อไฟล์ใน OnBotJava
- แก้ไขรายการเมนูบริบท "ดาวน์โหลด" สำหรับไลบรารีภายนอกในอินเทอร์เฟซ OnBotJava
- แก้ไขปัญหาที่การตรวจวัดระยะไกลของ Driver Station หยุดทำงานเป็นระยะๆ เมื่อตั้งค่าเป็นโหมด Monospace
- แก้ไขการถดถอยประสิทธิภาพสำหรับการดำเนินงาน REV Hub บางอย่างที่นำมาใช้ในเวอร์ชัน 8.2
- แก้ไขตรรกะการเปรียบเทียบ TagID ในตัวอย่าง DriveToTag
เวอร์ชัน 8.2 (20230707-131020)
ทำลายการเปลี่ยนแปลง
- OpModes ที่ไม่ใช่เชิงเส้น (วนซ้ำ) จะไม่ได้รับอนุญาตให้จัดการแอคชูเอเตอร์ในเมธอด
stop()
อีกต่อไป ความพยายามในการดำเนินการดังกล่าวจะถูกละเว้นและบันทึกไว้- เมื่อ OpMode พยายามควบคุมแอคทูเอเตอร์อย่างผิดกฎหมาย ตัวควบคุมหุ่นยนต์จะพิมพ์ข้อความบันทึกรวมทั้งข้อความ
CANCELLED_FOR_SAFETY
- นอกจากนี้ LinearOpModes จะไม่สามารถฟื้นความสามารถในการจัดการตัวกระตุ้นโดยการลบการขัดจังหวะของเธรดออกหรือใช้เธรดอื่นอีกต่อไป
- ยกเลิกการรองรับ Android เวอร์ชัน 6.0 (Marshmallow) minSdkVersion ตอนนี้เป็น 24
- เพิ่มเวอร์ชัน Robocol
- ซึ่งหมายความว่า Robot Controller หรือ Driver Station เวอร์ชัน 8.2 หรือใหม่กว่า จะไม่สามารถสื่อสารกับ Driver Station หรือ Robot Controller เวอร์ชัน 8.1 หรือก่อนหน้าได้
- หากคุณลืมอัปเดตทั้งสองแอปพร้อมกัน ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นเพื่ออธิบายว่าแอปใดเก่ากว่าและควรอัปเดต
- FTC_FieldCoordinateSystemDefinition.pdf ถูกย้ายแล้ว ยังอยู่ในประวัติคอมไพล์ แต่ถูกลบออกจากสแน็ปช็อตคอมไพล์ที่สอดคล้องกับแท็ก 8.2 เวอร์ชันอย่างเป็นทางการใช้งานได้ที่ Field Coordinate System
-
LynxUsbDevice.addConfiguredModule()
และ LynxUsbDevice.getConfiguredModule()
ถูกแทนที่ด้วย LynxUsbDevice.getOrAddModule()
- บล็อกเก่าสำหรับ Vuforia และ TensorFlow Object Detection ล้าสมัยและถูกลบออกจากกล่องเครื่องมือของตัวแก้ไข Blocks OpModes บล็อกที่มีอยู่ซึ่งมี Blocks เก่าสำหรับ Vuforia หรือ TensorFlow Object Detection สามารถเปิดได้ในตัวแก้ไข Blocks แต่การเรียกใช้บล็อกเหล่านั้นจะไม่ทำงาน
คุณสมบัติใหม่
- เพิ่ม
VisionPortal
API ใหม่สำหรับคอมพิวเตอร์วิทัศน์- API นี้อาจมีการเปลี่ยนแปลงสำหรับการเปิดตัวครั้งสุดท้าย!
- มีการเพิ่มตัวอย่างใหม่หลายรายการ
- เพิ่มการรองรับการตรวจจับ AprilTags
-
VisionPortal
เป็นจุดเริ่มต้นใหม่สำหรับการประมวลผล AprilTag และ TFOD - Vuforia จะถูกลบออกในรุ่นต่อๆ ไป
- อัปเดตการพึ่งพา TensorFlow
- เพิ่มการรองรับการควบคุมกล้องเว็บแคมในการบล็อก
- กล่องเครื่องมือของตัวแก้ไข Blocks มีหมวดหมู่ Vision อยู่เหนือหมวดหมู่ Utilities พอดี
- เอกสารที่เกี่ยวข้องกับเทคโนโลยีที่เกี่ยวข้องสามารถดูได้ที่
- บทนำ AprilTag
- คู่มือ AprilTag SDK
- ค่าการตรวจจับ AprilTag
- รูปภาพการทดสอบแท็ก April
- การปรับเทียบกล้อง
- เพิ่มการรองรับ Driver Station สำหรับเกมแพด Logitech Dual Action และ Sony PS5 DualSense
- นี่ ไม่ รวมถึงการรองรับเกมแพด Sony PS5 DualSense Edge
- โปรดดูคู่มือเกม 1 เสมอเพื่อพิจารณาความถูกต้องตามกฎหมายของเกมแพดในการแข่งขัน
- เพิ่มการรองรับการสตรีมเพย์โหลด MJPEG ไปยังไดรเวอร์ UVC (รูทีนการบีบอัด JPEG ภายนอกที่จำเป็นสำหรับการใช้งาน)
- แสดงคำใบ้บน Driver Station UI เกี่ยวกับวิธีการผูกเกมแพดเมื่อกดปุ่มหรือย้ายแท่งบนเกมแพดที่ไม่ได้ผูกไว้
- เพิ่มตัวเลือกสำหรับ "Camera Stream" แบบเต็มหน้าจอบน Driver Station
- ซอร์สโค้ด OnBotJava จะถูกบันทึกเป็นไฟล์ ZIP โดยอัตโนมัติในทุกบิลด์โดยมีหน้าต่างกลิ้งของ 30 บิลด์ล่าสุดเก็บไว้ อนุญาตให้กู้คืนซอร์สโค้ดจากบิวด์ก่อนหน้าหากโค้ดถูกลบหรือเสียหายโดยไม่ตั้งใจ
- เพิ่มการรองรับสำหรับการเปลี่ยนที่อยู่ของ Expansion Hub ที่ไม่ได้เชื่อมต่อโดยตรงผ่าน USB
- ตอนนี้หน้าจอเปลี่ยนที่อยู่ของฮับส่วนขยายมีปุ่มใช้ซึ่งเปลี่ยนที่อยู่โดยไม่ต้องออกจากหน้าจอ
- ที่อยู่ที่กำหนดให้กับฮับอื่นที่เชื่อมต่อกับการเชื่อมต่อ USB หรือฮับควบคุมเดียวกันจะไม่สามารถเลือกได้อีกต่อไป
- เพิ่มขนาดสูงสุดของความคิดเห็นแบบอินไลน์ของ Blocks เป็น 100 อักขระ
- บันทึกตำแหน่งของบอลลูนแสดงความคิดเห็นของ Blocks ที่เปิดอยู่
- เพิ่มตัวอย่างการขับขี่ AprilTag ใหม่: RobotDriveToAprilTagTank & RobotDriveToAprilTagOmni
- เพิ่มตัวอย่างเพื่อแสดงการปรับการรับแสงของกล้องให้เหมาะสมสำหรับ AprilTags: ConceptAprilTagOptimizeExposure
แก้ไขข้อบกพร่อง
- แก้ไขหน้าจอการตรวจสอบเพื่อรายงานเวอร์ชันของแอปโดยใช้เวอร์ชัน SDK ที่กำหนดไว้ในไลบรารี แทนที่จะเป็นเวอร์ชันที่ระบุใน
AndroidManifest.xml
วิธีนี้จะช่วยแก้ไขกรณีที่แอปสามารถแสดงหมายเลขเวอร์ชันที่ตรงกันให้กับผู้ใช้แต่ยังคงระบุว่าเวอร์ชันไม่ตรงกัน- หากเวอร์ชันที่ระบุใน
AndroidManifest.xml
ไม่ตรงกับเวอร์ชัน SDK รายการเวอร์ชัน SDK จะแสดงบนหน้าเว็บจัดการ
- แก้ไขข้อผิดพลาดที่ไม่แสดงเมื่อบันทึกไฟล์การกำหนดค่าที่มีชื่อซ้ำกันจากสถานีไดร์เวอร์
- แก้ไขการหยุดชะงักในไดรเวอร์ UVC ซึ่งปรากฏใน OpenFTC/EasyOpenCV#57
- แก้ไขการหยุดชะงักในไดรเวอร์ UVC ที่อาจเกิดขึ้นเมื่อกล้องเสียบปลั๊กร้อน
- แก้ไขความเข้ากันได้ของไดรเวอร์ UVC กับกล้องชัตเตอร์ทั่วโลก Arducam OV9281
- แก้ไขเงื่อนไขการหยุดฉุกเฉินเมื่อ OnBotJava บิลด์ที่มีชื่อ OpMode ซ้ำกันเกิดขึ้น
- แก้ไขสาเหตุที่ทราบของบันทึกสแปม "พยายามใช้อินสแตนซ์ LynxModule ที่ปิด"
- แก้ไขรูปแบบ LED ระบุตัวตนด้วยภาพเมื่อกำหนดค่าฮับส่วนขยายที่เชื่อมต่อผ่าน RS-485
เวอร์ชัน 8.1.1 (20221201-150726)
นี่คือการแก้ไขข้อบกพร่องที่เผยแพร่เพื่อแก้ไขปัญหาสี่ประการต่อไปนี้เท่านั้น
- ปัญหา #492 - ไม่สามารถสร้าง opmode บล็อกใหม่ได้
- ปัญหา #495 - ลบตัวปรับแต่งสุดท้ายออกจากวัตถุ Telemetry ของ OpMode
- ปัญหา #500 - อุปกรณ์บางตัวไม่สามารถกำหนดค่าได้เมื่อแอป Driver Station ได้รับการอัพเดตเป็น 8.1
- การอัปเดตแอป Robot Controller หรือแอป Driver Station เป็น 8.1.1 หรือใหม่กว่า จะช่วยแก้ไขปัญหานี้ได้
- เซ็นเซอร์สัมผัส Modern Robotics สามารถกำหนดค่าให้เป็นอุปกรณ์ดิจิทัลได้ สามารถใช้เป็นอุปกรณ์อนาล็อกเท่านั้น
เวอร์ชัน 8.1 (20221121-115119)
ทำลายการเปลี่ยนแปลง
- เลิกใช้ฟิลด์
OpMode
msStuckDetectInit
, msStuckDetectInitLoop
, msStuckDetectStart
, msStuckDetectLoop
และ msStuckDetectStop
- OpModes ไม่มีการจำกัดเวลาอีกต่อไปสำหรับ
init()
, init_loop()
, start()
หรือ loop()
ดังนั้นจึงไม่มีการใช้ฟิลด์ที่สอดคล้องกับวิธีการเหล่านั้นอีกต่อไป -
stop()
ยังคงมีเวลาจำกัด แต่ตอนนี้ฮาร์ดโค้ดเป็น 1 วินาที และไม่สามารถเปลี่ยนแปลงได้โดยใช้ msStuckDetectStop
- เลิกใช้งานเมธอด
OpMode
internalPreInit()
, internalPostInitLoop()
และ internalPostLoop()
-
OpMode
แบบวนซ้ำจะยังคงเรียกใช้เมธอดเหล่านี้ต่อไป ในกรณีที่ถูกแทนที่ - วิธีการเหล่านี้จะไม่ถูกเรียกใช้เลยสำหรับ
LinearOpMode
- เลิกใช้ (และหยุดใช้)
DeviceProperties.xmlTagAliases
การปรับปรุง
- เพิ่มอินเทอร์เฟซ
IMU
ใหม่ให้กับ Blocks และ Java ที่สามารถใช้ได้กับทั้ง BNO055 IMU ดั้งเดิมที่รวมอยู่ใน Control Hub และ Expansion Hub รุ่นเก่าทั้งหมด และ BHI260AP IMU ทางเลือกใหม่- คุณสามารถระบุประเภท IMU ที่อยู่ในศูนย์ควบคุมของคุณได้โดยไปที่หน้าจัดการของอินเทอร์เฟซเว็บ
- หากต้องการเรียนรู้วิธีใช้อินเทอร์เฟซ
IMU
ใหม่ โปรดดู https://ftc-docs.firstinspires.org/programming_resources/imu/imu.html ตัวอย่าง SensorIMU
Blocks ได้รับการอัปเดตเพื่อใช้อินเทอร์เฟซ IMU
ใหม่ และมีการเพิ่มตัวอย่าง Java ต่อไปนี้:-
SensorIMUOrthogonal
- ใช้ตัวอย่างนี้หากติดตั้ง REV Hub ของคุณเพื่อให้ขนานหรือตั้งฉากกับด้านล่างของหุ่นยนต์
-
SensorIMUNonOrthogonal
- ใช้ตัวอย่างนี้หากติดตั้ง REV Hub เข้ากับหุ่นยนต์ของคุณในทิศทางอื่น
-
ConceptExploringIMUOrientations
- OpMode นี้เป็นเครื่องมือที่จะช่วยให้คุณเข้าใจวิธีการทำงานของการวางแนวมุมฉาก และทิศทางใดที่ใช้กับหุ่นยนต์ของคุณ
- BHI260AP IMU สามารถเข้าถึงได้ผ่านอินเทอร์เฟซ
IMU
ใหม่เท่านั้น สามารถตั้งโปรแกรม BNO055 IMU ได้โดยใช้อินเทอร์เฟซ IMU
ใหม่ หรือคุณสามารถตั้งโปรแกรมต่อไปได้โดยใช้อินเทอร์เฟซ BNO055IMU
เก่า หากคุณต้องการสลับไปใช้ฮับควบคุมใหม่ที่อาจมี BHI260AP IMU ได้อย่างรวดเร็ว คุณควรย้ายโค้ดของคุณเพื่อใช้อินเทอร์เฟซ IMU
ใหม่ - ต่างจากอินเทอร์เฟซ
BNO055IMU
แบบเก่า ซึ่งทำงานได้อย่างถูกต้องเฉพาะเมื่อติดตั้ง REV Hub บนหุ่นยนต์ของคุณเท่านั้น อินเทอร์เฟซ IMU
ช่วยให้คุณสามารถระบุการวางแนวของ REV Hub บนหุ่นยนต์ของคุณ โดยจะคำนึงถึงสิ่งนี้ และให้ทิศทางของคุณในระบบพิกัดหุ่นยนต์ แทนที่จะเป็นระบบพิกัดพิเศษสำหรับ REV Hub ผลที่ได้คือ ระยะพิทช์และการหันของคุณจะเป็น 0 เมื่อ หุ่นยนต์ ของคุณอยู่ในแนวระดับ แทนที่จะเป็นเมื่อ REV Hub อยู่ในแนวระดับ ซึ่งจะส่งผลให้ค่ามุมการวางแนวที่เชื่อถือได้มากขึ้นสำหรับการวางแนวการติดตั้งส่วนใหญ่ - เนื่องจากระบบพิกัดหุ่นยนต์เป็นศูนย์กลางแบบใหม่ มุมพิทช์และมุมม้วนที่ส่งคืนโดยอินเทอร์เฟซ
IMU
จะแตกต่างจากมุมที่ส่งคืนโดยอินเทอร์เฟซ BNO055IMU
เมื่อคุณย้ายรหัสของคุณ โปรดใส่ใจกับเอกสารประกอบอย่างระมัดระวัง - หากคุณได้ปรับเทียบ BNO055 ของคุณแล้ว คุณสามารถให้ข้อมูลการปรับเทียบนั้นกับอินเทอร์เฟซ
IMU
ใหม่ได้โดยส่งอินสแตนซ์ BNO055IMUNew.Parameters
ไปที่ IMU.initialize()
- อินเทอร์เฟซ
IMU
ยังเหมาะสำหรับการนำไปใช้โดยผู้จำหน่ายบุคคลที่สามสำหรับ IMU ที่รองรับการวางแนวในรูปแบบของควอเทอร์เนียน
- Iterative
OpMode
s (ตรงข้ามกับ LinearOpMode
s) ตอนนี้ทำงานบนเธรดเฉพาะ- รอบเวลาไม่ควรได้รับผลกระทบจากทุกสิ่งทุกอย่างที่เกิดขึ้นในระบบ
-
OpMode
ที่ช้าไม่สามารถเพิ่มระยะเวลาที่ใช้ในการประมวลผลคำสั่งเครือข่ายได้อีกต่อไป และในทางกลับกัน - เมธอด
init()
, init_loop()
, start()
และ loop()
ไม่จำเป็นต้องส่งคืนภายในกรอบเวลาที่กำหนดอีกต่อไป
- ไดรเวอร์ดั้งเดิมของ BNO055 IMU: คืนค่าความสามารถในการเริ่มต้นใน OpMode เดียว จากนั้นให้ OpMode อื่นนำการกำหนดค่าเริ่มต้นนั้นกลับมาใช้ใหม่ วิธีนี้ช่วยให้คุณรักษาตำแหน่ง 0-yaw ระหว่าง OpModes ได้ หากต้องการ
- อนุญาตให้ไดรเวอร์อุปกรณ์เวอร์ชันที่กำหนดเองใน FTC SDK ใช้แท็ก XML เดียวกัน
- ก่อนหน้านี้ หากคุณต้องการปรับแต่งไดรเวอร์อุปกรณ์ คุณต้องคัดลอกไดรเวอร์นั้นไปยังคลาสใหม่ และ มอบแท็ก XML ใหม่ให้กับมัน การให้แท็ก XML ใหม่หมายความว่าหากต้องการสลับไดรเวอร์ที่ใช้อยู่ คุณต้องแก้ไขไฟล์การกำหนดค่าของคุณ
- ตอนนี้ หากต้องการใช้ไดรเวอร์แบบกำหนดเองของคุณ สิ่งที่คุณต้องทำคือระบุคลาสของไดรเวอร์แบบกำหนดเองของคุณเมื่อเรียกใช้
hardwareMap.get()
หากต้องการกลับไปใช้ไดร์เวอร์เดิม ให้ระบุคลาสไดร์เวอร์เดิม หากคุณระบุอินเทอร์เฟซที่ใช้งานโดยทั้งไดรเวอร์ดั้งเดิมและไดรเวอร์แบบกำหนดเอง ไม่มีการรับประกันว่าการใช้งานใดจะถูกส่งกลับ
แก้ไขข้อบกพร่อง
- แก้ไขการเข้าถึงลิงก์ "จัดการ TensorFlow Lite Models" และ "จัดการเสียง" และดำเนินการดาวน์โหลด Blocks และ OnBotJava OpMode จาก REV Hardware Client
- แก้ไขปัญหาที่ไดรเวอร์อุปกรณ์ I2C จะเริ่มต้นโดยอัตโนมัติโดยใช้พารามิเตอร์ที่กำหนดในการรัน OpMode ก่อนหน้า
- ปรับปรุงตำแหน่งเมนูป๊อปอัป Driver Station ในรูปแบบแนวนอน
- แก้ไข NullPointerException เมื่อพยายามรับ BNO055 IMU ที่ไม่ได้กำหนดค่าใน Blocks OpMode บนโทรศัพท์ RC
- แก้ไขปัญหาเกี่ยวกับบล็อกหากตัวแปรชื่อ
orientation
เวอร์ชัน 8.0 (20220907-131644)
ทำลายการเปลี่ยนแปลง
- เพิ่มเวอร์ชัน Robocol
- ซึ่งหมายความว่า Robot Controller หรือ Driver Station เวอร์ชัน 8.0 หรือใหม่กว่า จะไม่สามารถสื่อสารกับ Driver Station หรือ Robot Controller เวอร์ชัน 7.2 หรือก่อนหน้าได้
- หากคุณลืมอัปเดตทั้งสองแอปพร้อมกัน ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้นเพื่ออธิบายว่าแอปใดเก่ากว่าและควรอัปเดต
- การเริ่มต้นอุปกรณ์ I2C จะเกิดขึ้นเมื่อคุณดึงข้อมูลจาก
HardwareMap
เป็นครั้งแรก- ก่อนหน้านี้ อุปกรณ์ I2C ทั้งหมดจะเริ่มต้นได้ก่อนที่ OpMode จะเริ่มทำงาน ไม่ว่าคุณจะใช้งานจริงหรือไม่ก็ตาม ซึ่งอาจส่งผลให้ประสิทธิภาพลดลงและมีคำเตือนที่ไม่จำเป็น
- ด้วยการเปลี่ยนแปลงนี้ ผู้ใช้ Java จะต้องดึงข้อมูลอุปกรณ์ที่จำเป็นทั้งหมดจาก
HardwareMap
ในระหว่างระยะเริ่มต้นของ OpMode เป็นสิ่งสำคัญมาก กล่าวคือ ประกาศตัวแปรสำหรับอุปกรณ์ฮาร์ดแวร์แต่ละตัวที่ OpMode จะใช้ และกำหนดค่าให้กับแต่ละอุปกรณ์ อย่าทำเช่นนี้ในระหว่างระยะเรียกใช้ มิฉะนั้น OpMode ของคุณอาจหยุดทำงานชั่วคราวในขณะที่อุปกรณ์ที่คุณกำลังดึงข้อมูลเริ่มต้นใช้งาน - OpModes ที่ไม่ได้ใช้อุปกรณ์ I2C ทั้งหมดที่ระบุในไฟล์การกำหนดค่าควรใช้เวลาในการเริ่มต้นน้อยลง OpModes ที่ใช้อุปกรณ์ I2C ที่ระบุทั้งหมดควรใช้เวลาเท่าเดิม
- แก้ไขปัญหา #251 โดยการเปลี่ยนลำดับการอ่านอัตราการหมุนของแกนจากเวกเตอร์ความเร็วเชิงมุมในไดรเวอร์ BNO055 IMU
- เลิกใช้
pitchMode
ใน BNO055IMU.Parameters
- การตั้งค่า
pitchMode
เป็น PitchMode.WINDOWS
จะทำลายรูปแบบพิกัดที่คนขับใช้
- ย้าย
OpModeManagerImpl
ไปยังแพ็คเกจ com.qualcomm.robotcore.eventloop.opmode
- สิ่งนี้จะทำลายไลบรารีของบุคคลที่สาม EasyOpenCV (เวอร์ชัน 1.5.1 และก่อนหน้า) และ FTC Dashboard (เวอร์ชัน 0.4.4 และก่อนหน้า)
- ลบเมธอด
OpMode
ที่เลิกใช้งานแล้ว resetStartTime()
(ใช้ resetRuntime()
แทน) - ลบคลาส
LinearOpMode.LinearOpModeHelper
ที่ได้รับการป้องกัน (ซึ่งไม่ได้มีไว้สำหรับการใช้งานโดย OpModes) - ลบประเภทการกำหนดค่าอุปกรณ์ I2C (ซิงโครนัส) (เลิกใช้แล้วตั้งแต่ปี 2018)
การปรับปรุง
- ข้อยกเว้นที่ไม่ถูกตรวจจับใน OpModes ไม่จำเป็นต้องใช้ Restart Robot อีกต่อไป
- หน้าจอสีน้ำเงินที่ปรากฏขึ้นพร้อมกับ stacktrace ไม่ใช่ข้อผิดพลาดของ SDK ซึ่งจะแทนที่ข้อความสีแดงในพื้นที่การวัดและส่งข้อมูลทางไกล
- นับตั้งแต่การเปิดตัว SDK ครั้งแรก การขัดข้องของ OpMode ทำให้หุ่นยนต์เข้าสู่สถานะ "หยุดฉุกเฉิน" โดยแสดงเฉพาะบรรทัดแรกของข้อยกเว้น และกำหนดให้ผู้ใช้กด "รีสตาร์ทหุ่นยนต์" เพื่อดำเนินการต่อ
- ข้อยกเว้นในระหว่าง OpMode จะเปิดหน้าต่างป๊อปอัปที่มีโทนสีเดียวกับโปรแกรมดูบันทึก โดยมีสแต็กเทรซข้อยกเว้น 15 บรรทัดเพื่อให้สามารถติดตามบรรทัดที่ละเมิดได้อย่างง่ายดายโดยไม่จำเป็นต้องเชื่อมต่อเพื่อดูบันทึกผ่าน ADB หรือเลื่อนดูบันทึกจำนวนมาก ในโปรแกรมดูบันทึก
- ข้อความข้อยกเว้นในหน้าต่างป๊อปอัปมีทั้งแบบซูมและเลื่อนได้เหมือนกับหน้าเว็บ
- การกดปุ่ม "ตกลง" ในหน้าต่างป๊อปอัปจะกลับไปที่หน้าจอหลักของ Driver Station และอนุญาตให้ OpMode ทำงานอีกครั้งทันที โดยไม่จำเป็นต้องดำเนินการ "Restart Robot"
- เพิ่มตัวอย่าง Java ใหม่เพื่อสาธิตการใช้คลาสฮาร์ดแวร์กับแอคทูเอเตอร์หุ่นยนต์เชิงนามธรรม และแบ่งปันพวกมันผ่าน OpModes หลายตัว
- ตัวอย่าง OpMode คือ ConceptExternalHardwareClass.java
- คลาสฮาร์ดแวร์ที่เป็นนามธรรมคือ RobotHardware.java
- อัปเดตตัวอย่าง RobotAutoDriveByGyro_Linear Java เพื่อใช้ REV Control/Expansion hub IMU
- อัปเดตตัวอย่าง Vuforia เพื่ออ้างอิงเนื้อหา PowerPlay และมีชื่อและตำแหน่งฟิลด์ของเป้าหมายรูปภาพที่ถูกต้อง
- อัปเดตตัวอย่าง TensorFlow เพื่ออ้างอิงเนื้อหา PowerPlay
- เพิ่มการสนับสนุนการเลือกรับคุณสมบัติภาษา Java 8 ให้กับโปรแกรมแก้ไข OnBotJava
- หากต้องการเลือกใช้ ให้เปิดการตั้งค่า OnBotJava และทำเครื่องหมาย
Enable beta Java 8 support
- โปรดทราบว่าโค้ด Java 8 จะคอมไพล์เมื่อ Robot Controller รัน Android 7.0 Nougat หรือใหม่กว่าเท่านั้น
- กรุณารายงานปัญหาที่นี่
- ใน OnBotJava การคลิกที่ข้อผิดพลาดของบิลด์จะข้ามไปยังตำแหน่งที่ถูกต้องอย่างถูกต้อง
- ปรับปรุงพฤติกรรมการเติมข้อความอัตโนมัติของ OnBotJava เพื่อให้ตัวเลือกการเติมข้อความสมบูรณ์ดีขึ้นในกรณีส่วนใหญ่
- เพิ่มรหัส QR ลงในรายงานการตรวจสอบคอนโทรลเลอร์หุ่นยนต์เมื่อดูจากสถานีไดรเวอร์สำหรับการสแกนโดยผู้ตรวจการในการแข่งขัน
- ปรับปรุงประสิทธิภาพและความน่าเชื่อถือของ I2C ในบางสถานการณ์
เวอร์ชัน 7.2 (20220723-130006)
ทำลายการเปลี่ยนแปลง
- อัปเดตเครื่องมือสร้าง สำหรับผู้ใช้ Android Studio การเปลี่ยนแปลงนี้ต้องการ Android Studio Chipmunk 2021.2.1
- ลบการสนับสนุนสำหรับอุปกรณ์ที่ไม่ได้เป็นกฎหมายการแข่งขันรวมถึงโมดูลควบคุมหลักหุ่นยนต์สมัยใหม่ตัวควบคุมเมทริกซ์และคอนโทรลเลอร์และเซ็นเซอร์ Hitechnic/NXT การสนับสนุนยังคงอยู่สำหรับเซ็นเซอร์ I2C หุ่นยนต์สมัยใหม่
การปรับปรุง
- เพิ่มความสูงของพื้นที่สัมผัสเมนูภูมิทัศน์ 3 จุดบนสถานีขับรถทำให้ง่ายต่อการเลือกมาก
- เพิ่มเมธอด
terminateOpModeNow()
เพื่อให้ opmodes สามารถออกจากตัวเองได้อย่างหมดจดทันที - เพิ่มเมธอด
opModeInInit()
ไปยัง LinearOpMode
เพื่ออำนวยความสะดวกในการเริ่มต้น คล้ายกับ opModeIsActive()
แต่สำหรับเฟส init - เตือนผู้ใช้ว่าพวกเขามี logitech F310 gamepad เชื่อมต่อที่ตั้งค่าเป็นโหมด DirectInput
- ช่วยให้ตัวควบคุมมอเตอร์ Sparkmini ตอบสนองได้เร็วขึ้นเพื่อเพิ่มความเร็วในการเปลี่ยนแปลง
- ซ่อนหมายเลขเวอร์ชันของแอพน้องสาวที่ติดตั้งไม่ถูกต้อง (เช่น DS ติดตั้งบนอุปกรณ์ RC หรือในทางกลับกัน) บนหน้าจอการตรวจสอบ
- เพิ่มการสนับสนุนสำหรับการอนุญาตให้ผู้ใช้แก้ไขความคิดเห็นสำหรับบล็อก RunopMode
- เพิ่มฟิลด์ ParameterDefaultValues ไปยัง @ExportToblocks สิ่งนี้ให้ความสามารถสำหรับวิธี Java ที่มีคำอธิบายประกอบ @ExportToblocks เพื่อระบุค่าเริ่มต้นสำหรับพารามิเตอร์เมธอดเมื่อแสดงในตัวแก้ไขบล็อก
- ทำให้ LinearopMode บล็อกอ่านได้มากขึ้น ชื่อ OpMode จะแสดงบนบล็อก RunopMode แต่ไม่ได้อยู่ในบล็อก LinearOpMode อื่น ๆ
- เพิ่มการสนับสนุนไปยังการตรวจจับวัตถุ Tensorflow สำหรับการใช้เครื่องกำเนิดเฟรมที่แตกต่างกันแทนที่จะเป็น Vuforia การใช้ Vuforia เพื่อผ่านเฟรมกล้องไปยัง TFOD ยังคงรองรับ
- ลบการใช้งานของ Renderscript
- แก้ไข logspam บนแอปเริ่มต้นของ stacktraces ซ้ำที่เกี่ยวข้องกับ
"Failed resolution of: Landroid/net/wifi/p2p/WifiP2pManager$DeviceInfoListener"
- อนุญาตให้ปิดการใช้งานวิทยุบลูทู ธ จากหน้าจอตรวจสอบ
- ปรับปรุงข้อความเตือนเมื่ออุปกรณ์ I2C ไม่ตอบสนอง
- เพิ่มการสนับสนุนสำหรับการควบคุม LED RGB ที่มีอยู่ใน ps4/etpark gamepads จาก opmodes
- ลบการอ้างอิง pushbot แบบดั้งเดิมจากตัวอย่าง opmode เปลี่ยนชื่อ "pushbot" ตัวอย่างเป็น "หุ่นยนต์" ทิศทางมอเตอร์ย้อนกลับไปใช้งานร่วมกับรถไฟขับเคลื่อน "ไดรฟ์ไดรฟ์"
แก้ไขข้อบกพร่อง
- แก้ไขปัญหา #316 (matrixf.inverted () ส่งคืนเมทริกซ์ขนาดไม่ถูกต้องสำหรับเมทริกซ์ 1x1 และ 2x2)
- การตรวจสอบตนเองในขณะนี้ช่วยให้สถานีไดรเวอร์และความเข้ากันได้ของตัวควบคุมหุ่นยนต์ระหว่างการเปิดตัวจุด
- แก้ไขข้อผิดพลาดที่หากอินสแตนซ์ของวัตถุ
RumbleEffect
เดียวกันถูกจัดคิวสำหรับ gamepads หลายตัวมันอาจเกิดขึ้นได้ว่าคำสั่ง Rumble ทั้งสองจะถูกส่งไปยัง Gamepad เพียงหนึ่งเดียว - แก้ไขข้อผิดพลาดในสถานีไดรเวอร์ที่อยู่ในศูนย์กลางไดรเวอร์หากคุณสมบัติ GamePad ขั้นสูงถูกปิดใช้งานและเชื่อมต่อ gamepad อย่างเป็นทางการแล้วเปิดคุณสมบัติ GamePad ขั้นสูงหรือ GamePad Type Overrides หน้าจอ คุณสมบัติ GamePad ขั้นสูงถูกปิดใช้งาน
- ป้องกันข้อยกเว้นตัวชี้ว่าง (ไม่น่าจะเป็นไปได้) ใน Vuforia Localizer
- Harden onbotjava และบล็อกช่วยป้องกันการป้องกันปัญหาเมื่อตัดการเชื่อมต่อจากโปรแกรมและจัดการ
- แก้ไขปัญหาที่แอป RC จะแขวนไว้หากการเขียน Rev Hub I2C ล้มเหลวเนื่องจากการดำเนินการ I2C ก่อนหน้านี้ยังอยู่ในระหว่างดำเนินการ การแขวนนี้เกิดขึ้นบ่อยที่สุดในระหว่างการเริ่มต้นเซ็นเซอร์ระยะทางรอบ 2 ม.
- ลบโปรแกรมตัวอย่าง Conceptwebcam.java ตัวอย่างนี้เข้ากันไม่ได้กับ onbotjava
- แก้ไขข้อผิดพลาดโดยใช้แท็ก HTML ในฟิลด์ความคิดเห็น @ExportToblocks ป้องกันไม่ให้ตัวแก้ไขบล็อกไม่ให้โหลด
- แก้ไขตัวแก้ไขบล็อกดังนั้นจึงไม่ขอให้คุณบันทึกเมื่อคุณยังไม่ได้แก้ไขอะไรเลย
- แก้ไขการอัปโหลดโครงการบล็อกขนาดใหญ่มากไปยังตัวแก้ไขบล็อกออฟไลน์
- แก้ไขข้อผิดพลาดที่ทำให้บล็อกสำหรับ DCMotorex ถูกตัดออกจากกล่องเครื่องมือตัวแก้ไขบล็อก
- แก้ไขโปรแกรมบล็อกที่ถอดออกจากบล็อก (เนื่องจากการใช้บล็อกฉลาก Tensorflow)
เวอร์ชัน 7.1 (20211223-120805)
- แก้ไขข้อผิดพลาดเมื่อโทร
isPwmEnabled()
(ฉบับที่ 223) - แก้ไขข้อผิดพลาดผ้าสำลี (ปัญหา #4)
- แก้ไขความผิดพลาดของสถานีไดรเวอร์เมื่อพยายามใช้ DualShock4 V1 GamePad พร้อมคุณสมบัติ GamePad ขั้นสูงที่เปิดใช้งาน (ฉบับที่ 173)
- แก้ไขสถานีไดรเวอร์ที่เป็นไปได้ (แต่ไม่น่าเป็นไปได้) เมื่อเชื่อมต่อ gamepads ทุกประเภท
- แก้ไขข้อผิดพลาดที่สถานีไดรเวอร์จะใช้ Deadzone 20% สำหรับ Xbox360 และ Logitech F310 gamepads เมื่อคุณสมบัติ GamePad ขั้นสูงถูกปิดใช้งาน
- เพิ่ม simpleomnidrive ตัวอย่าง opmode
- เพิ่ม UVC สีขาวควบคุม API
- แก้ไขปัญหา #259 ตัวอย่างบล็อกส่วนใหญ่สำหรับ TensorFlow ไม่สามารถใช้สำหรับรุ่นอื่นได้
- บล็อกก่อนหน้านี้ที่มีป้ายกำกับ TensorFlowObjectDetectionFreightFrenzy (จากหมวดหมู่ย่อยที่ชื่อ "ปรับให้เหมาะสมสำหรับ Freight Frenzy") และ TensorFlowObjectDetectionCustectionel (จากหมวดหมู่ย่อยที่ชื่อ "โมเดลแบบกำหนดเอง") บล็อกใน OPModes ที่มีอยู่จะได้รับการอัปเดตโดยอัตโนมัติเป็นบล็อกใหม่เมื่อเปิดในตัวแก้ไขบล็อก
- แก้ไขปัญหา #260 บล็อกไม่สามารถโทรหาวิธี Java ที่มีพารามิเตอร์ vuforialocalizer
- บล็อกตอนนี้มีบล็อกที่มีป้ายกำกับ Vuforiafreightfrenzy.getVuforialocalizer สำหรับสิ่งนี้
- เพิ่มหน้าเพื่อจัดการรุ่น Tensorflow Lite ใน/sdcard/first/tflitemodels เพื่อไปยังหน้ารุ่น tflite:
- คุณสามารถคลิกที่ลิงค์ที่ด้านล่างของหน้าจัดการ
- คุณสามารถคลิกที่ลิงก์ที่หน้าโครงการบล็อกขวาบนขวา
- แก้ไข logspam เมื่อ
isBusy()
เรียกว่ามอเตอร์ไม่ได้อยู่ในโหมด RTP - ซ่อนรายการ "รหัสผ่าน RC" บนหน้าจอการตรวจสอบสำหรับคอนโทรลเลอร์หุ่นยนต์ที่ใช้โทรศัพท์ (ใช้ได้เฉพาะกับฮับควบคุมเท่านั้น)
- เพิ่ม Channel 165 ไปยังเมนูการเลือกช่องสัญญาณ Direct Direct ในหน้าจอการตั้งค่า (165 ก่อนหน้านี้มีให้บริการผ่าน Web UI แต่ไม่ได้อยู่ในแอพ)
เวอร์ชัน 7.0 (20210915-141025)
การปรับปรุงและคุณสมบัติใหม่
- เพิ่มการสนับสนุนสำหรับไลบรารีภายนอกไปยัง onbotjava และบล็อก
- อัปโหลดไฟล์. jar และ. aar ใน onbotjava
- ข้อ จำกัด ที่รู้จัก - อุปกรณ์ RobotController จะต้องเรียกใช้ Android 7.0 หรือมากกว่า
- ข้อ จำกัด ที่รู้จัก - ไฟล์. AAR ที่มีสินทรัพย์ไม่ได้รับการสนับสนุน
- ไลบรารีภายนอกสามารถให้การสนับสนุนอุปกรณ์ฮาร์ดแวร์โดยใช้คำอธิบายประกอบใน com.qualcomm.robotcore.hardware.configuration.annotations แพ็คเกจ
- ไลบรารีภายนอกสามารถรวมไฟล์. ดังนั้นไฟล์สำหรับรหัสเนทีฟ
- ห้องสมุดภายนอกสามารถใช้ได้จาก OnBotJava OpModes
- ไลบรารีภายนอกที่ใช้คำอธิบายประกอบต่อไปนี้สามารถใช้ได้จากบล็อก opmodes
- org.firstinspires.ftc.robotcore.external.exportclasstoblocks
- org.firstinspires.ftc.robotcore.external.exporttoblocks
- ไลบรารีภายนอกที่ใช้คำอธิบายประกอบต่อไปนี้สามารถเพิ่มอุปกรณ์ฮาร์ดแวร์ใหม่ได้:
- com.qualcomm.robotcore.hardware.configuration.annotations.analogsensortype
- com.qualcomm.robotcore.hardware.configuration.annotations.deviceProperties
- com.qualcomm.robotcore.hardware.configuration.annotations.digitaliodevicetype
- com.qualcomm.robotcore.hardware.configuration.annotations.i2cdevicetype
- com.qualcomm.robotcore.hardware.configuration.annotations.motortype
- com.qualcomm.robotcore.hardware.configuration.annotations.servotype
- ไลบรารีภายนอกที่ใช้คำอธิบายประกอบต่อไปนี้สามารถเพิ่มฟังก์ชั่นใหม่ให้กับคอนโทรลเลอร์หุ่นยนต์:
- org.firstinspires.ftc.ftcommon.external.oncreate
- org.firstinspires.ftc.ftcommon.external.oncreateVentloop
- org.firstinspires.ftc.ftcommon.external.oncreatemenu
- org.firstinspires.ftc.ftcommon.external.ondestroy
- org.firstinspires.ftc.ftcommon.external.webhandlerregistrar
- เพิ่มการสนับสนุนศูนย์กลางไดรเวอร์ REV Robotics
- เพิ่มไดรเวอร์ USB Gamepad Userspace ที่กำหนดเองอย่างสมบูรณ์ไปยังสถานีไดรเวอร์ (ดู "เมนู" คุณสมบัติ GamePad ขั้นสูง "ในการตั้งค่า DS)
- อนุญาตให้ gamepads ทำงานบนอุปกรณ์ที่ไม่มีการสนับสนุนเคอร์เนล Linux ดั้งเดิม (เช่นอุปกรณ์โมโตโรล่าโรมาเนียบางตัว)
- อนุญาตให้ DS อ่านหมายเลขซีเรียลที่ไม่ซ้ำกันของแต่ละ gamepad ทำให้สามารถกู้คืนอัตโนมัติของ gamepads ที่ลดลงได้แม้ว่าจะมี gamepads สองรุ่นที่ลดลง (หมายเหตุ: น่าเสียดายที่สิ่งนี้ไม่ได้ใช้กับ gamepads etpark เพราะพวกเขาไม่มีอนุกรมที่ไม่ซ้ำกัน)
- การอ่านหมายเลขซีเรียลที่ไม่ซ้ำกันยังให้ความสามารถในการกำหนดค่า DS เพื่อกำหนด gamepads ให้กับตำแหน่งที่แน่นอนโดยค่าเริ่มต้น (ดังนั้นไม่จำเป็นต้องเริ่ม+A/B เลย)
- วงแหวน LED บน Xbox360 gamepad และแถบ LED RGB บน PS4 gamepad ใช้เพื่อระบุตำแหน่งไดรเวอร์ที่ gamepad ถูกผูกไว้
- มอเตอร์ Rumble บน Xbox360, PS4 และ Etpark Gamepads สามารถควบคุมได้จาก OpModes
- ทัชแพด 2 จุดบน PS4 gamepad สามารถอ่านได้จาก opmodes
- ปุ่ม "ย้อนกลับ" และ "คู่มือ" บน Gamepad สามารถผูกพันกับการควบคุมหุ่นยนต์ได้อย่างปลอดภัย (ก่อนหน้านี้บนอุปกรณ์หลายเครื่อง Android จะสกัดกั้นปุ่มเหล่านี้เป็นปุ่มโฮมกดและปิดแอป)
- คุณสมบัติ GamePad ขั้นสูงถูกเปิดใช้งานโดยค่าเริ่มต้น แต่อาจถูกปิดใช้งานผ่านเมนูการตั้งค่าเพื่อเปลี่ยนกลับไปใช้การสนับสนุน gamepad ที่ให้โดย Android
- ปรับปรุงความแม่นยำของการวัด Ping
- แก้ไขปัญหาที่เวลา ping แสดงให้เห็นว่าสูงกว่าความเป็นจริงเมื่อเริ่มเชื่อมต่อหรือเริ่มต้นหุ่นยนต์ใหม่
- หากต้องการดูการปรับปรุงเต็มรูปแบบคุณต้องอัปเดตทั้งแอพคอนโทรลเลอร์หุ่นยนต์และแอพสถานีไดรเวอร์
- อัปเดตตัวอย่างที่อยู่ที่/ftcrobotcontroller/src/main/java/org/firstInspires/ftc/robotcontroller/ภายนอก/ตัวอย่าง
- เพิ่มตัวอย่าง ConceptGamePadrumble และ ConceptGamePadTouchPad เพื่อแสดงให้เห็นถึงการใช้ความสามารถของ Gampad ใหม่เหล่านี้
- ตัวอย่าง Vuforia ที่มีอยู่ในตัวอย่างเพียง 2 ตัวอย่าง (ConceptVuforifieldNavigation & ConceptVuforifieldNavigationWebcam) แสดงวิธีกำหนดตำแหน่งของหุ่นยนต์บนสนามโดยใช้ Vuforia สิ่งเหล่านี้ใช้ภาพเป้าหมายของฤดูกาลปัจจุบัน
- เพิ่ม ConceptVuforiadriveTotargetWebCam เพื่อแสดงวิธีง่ายๆในการขับรถไปยังเป้าหมาย Vuforia ที่มองเห็นได้โดยตรง
- ทำให้การปรับปรุงหลายอย่างกับระบบเตือนและคำเตือนของแต่ละบุคคล
- ตอนนี้คำเตือนมีระยะห่างมากขึ้นเพื่อให้อ่านง่ายขึ้น
- มีการเพิ่มคำเตือนใหม่สำหรับเงื่อนไขที่ควรแก้ไขก่อนการแข่งขัน
- คำเตือนแอพที่ไม่ตรงกันในขณะนี้ใช้แอพพลิเคชั่นหลักและรุ่นรองไม่ใช่รหัสเวอร์ชัน
- คำเตือนจะถูกเปิดใช้งานอีกครั้งโดยอัตโนมัติเมื่อมีการติดตั้งแอปหุ่นยนต์คอนโทรลเลอร์จากฤดูกาล FTC ใหม่
- เพิ่มการสนับสนุนสำหรับการทำธุรกรรม I2C ในศูนย์กลางการขยาย / ศูนย์ควบคุมโดยไม่ต้องระบุที่อยู่ลงทะเบียน
- ดูส่วนที่ 3 ของข้อมูลจำเพาะ Ti I2C
- การเรียกใช้วิธีการใหม่เหล่านี้เมื่อใช้ฮาร์ดแวร์หุ่นยนต์สมัยใหม่จะส่งผลให้เกิดการไม่ใช้งาน
- การเปลี่ยนแปลงวิธี Vuforialocalizer
close()
ที่จะเปิดเผยต่อสาธารณะ - เพิ่มการรองรับแบบจำลองการตรวจจับวัตถุ Tensorflow V2
- ลดความคลุมเครือของภาษาตรวจสอบตนเองและกราฟิก
- ตอนนี้ Onbotjava เตือนเกี่ยวกับไฟล์ที่ไม่ได้ตั้งใจเขียนทับ
- ปรับปรุงพฤติกรรมของวง Wi-Fi และตัวเลือกช่องทางบนหน้าเว็บจัดการ
แก้ไขข้อบกพร่อง
- แก้ไขแอพคอนโทรลเลอร์หุ่นยนต์บน Android 9+ เมื่อสถานีไดรเวอร์เชื่อมต่อ
- แก้ไขปัญหาที่ opmode รับผิดชอบการโทรปิดบน TensorFlow TfObjectDetector ตอนนี้จะทำโดยอัตโนมัติ
- แก้ไขบล็อกการเริ่มต้น Vuforia เพื่อให้ผู้ใช้สามารถเลือกแกน อัปเดตบล็อกตัวอย่าง opmodes ที่เกี่ยวข้อง
- แก้ไขปัญหา FTCrobotController #114 บล็อก LED และคลาส Java ไม่ทำงาน
- แก้ไขการบันทึกการจับคู่สำหรับ opmodes ที่มีอักขระพิเศษในชื่อของพวกเขา
- แก้ไขการควบคุม OpMode ของสถานีไดรเวอร์จะไม่ตอบสนองหากสถานีไดรเวอร์ถูกตั้งค่าเป็นเค้าโครงแนวนอนและการสร้าง onbotjava ถูกกระตุ้นในขณะที่ opmode กำลังทำงานอยู่
- แก้ไขแอปสถานีไดรเวอร์ปิดตัวเองเมื่อมันถูกสลับออกไปหรือปิดหน้าจอ
- แก้ไข "Black Swirl of Doom" (Infinite "การกำหนดค่าข้อความ Wi-Fi Direct") บนอุปกรณ์เก่า
- อัปเดตความคิดเห็นของวิกิในหน้าอินโทร OnBotJava
เวอร์ชัน 6.2 (20210218-074821)
การปรับปรุง
- ความพยายามในการแก้ไขเงื่อนไขโดยอัตโนมัติเมื่อศูนย์กลางการขยายตัวของฮับควบคุมไม่ทำงานโดยการส่งเฟิร์มแวร์อีกครั้ง
- ทำให้การปรับปรุงที่หลากหลายของหน้าจอการจับคู่โดยตรงของ Wi-Fi โดยเฉพาะในโหมด Landscape
- ทำให้บริการคอนโทรลเลอร์หุ่นยนต์ไม่ได้เริ่มต้นใหม่อีกต่อไปเมื่อกิจกรรมหลักถูกนำไปเบื้องหน้า
- (เช่นบริการจะไม่เริ่มต้นใหม่อีกต่อไปโดยการดูหน้าจอตรวจสอบตัวเองและกดปุ่มย้อนกลับ)
- มันยังคงรีสตาร์ทหากเมนูการตั้งค่าหรือกำหนดค่าเมนูหุ่นยนต์เปิด
แก้ไขข้อบกพร่อง
- แก้ไขปัญหา ftcrobotcontroller #71 ไม่สามารถเปิด opmodes ใน v6.1 บล็อกตัวแก้ไขออฟไลน์
- แก้ไขปัญหา ftcrobotcontroller #79 6.1 ทำให้การรีบูตอ่อนนุ่มในการเล่น Motorola E5
- แก้ไขปัญหาที่ Watchdog ของศูนย์ควบคุมระบบควบคุมจะรีสตาร์ทแอพ Robot Controller หากศูนย์ควบคุมไม่สามารถสื่อสารกับศูนย์กลางการขยายตัวภายในได้
- แก้ไขอุปกรณ์ I2C บางอย่างที่ไม่ปรากฏในฟิลด์
HardwareMap
ที่เหมาะสม (เช่น hardwareMap.colorSensor
) - แก้ไขปัญหาที่การดำเนินการรีเซ็ตโรงงาน Wi-Fi บนฮับควบคุมจะไม่ตั้งค่าวง Wi-Fi เป็น 2.4 GHz
- แก้ไขปัญหาที่ onbotjava อาจล้มเหลวในการสร้างไฟล์ใหม่หากเลือกตัวเลือกในการ "เลือกรหัสการตั้งค่าสำหรับฮาร์ดแวร์ที่กำหนดค่า"
- แก้ไขปัญหาที่การดำเนินการบางอย่างหลังจากการล่มของ opmode จะทำลายการควบคุมการควบคุม/ขยายการสื่อสารชั่วคราว
- แก้ไขปัญหาที่ศูนย์ควบคุมที่มีฮับขยายที่เชื่อมต่อกับ USB ที่กำหนดค่า
- แก้ไขปัญหาที่อาจเกิดขึ้นจากการมีเวอร์ชันเฟิร์มแวร์ฮับควบคุม/ขยายที่ไม่ตรงกัน
- แก้ไขปัญหา ftc_app 673 matchlog ล่าสุดกำลังถูกลบแทนที่จะเป็นของเก่าโดย robotlog
- แก้ไขแนวคิด OpMode ตัวอย่าง OpMode โดยการปรับทิศทางอย่างถูกต้องบนหุ่นยนต์
- แก้ไขปัญหาที่ LogCat จะถูกสแปมด้วยการขัดจังหวะการรับรู้เมื่อมีการร้องขอ Stop จากสถานีขับรถ (พฤติกรรมนี้ถูกนำมาใช้โดยไม่ได้ตั้งใจใน V5.3) การเปลี่ยนแปลงนี้ไม่มีผลกระทบต่อการทำงาน
- แก้ไขปัญหาที่ตัวแก้ไขบล็อกไม่สามารถโหลดได้หากชื่อของ teleop opmode ใด ๆ มีเครื่องหมายอะโพสโทรฟี
เวอร์ชัน 6.1 (20201209-113742)
- ทำให้ปุ่มสแกนบนหน้าจอการกำหนดค่าอัปเดตรายการฮับส่วนขยายที่เชื่อมต่อผ่าน RS-485
- ปรับปรุงความเข้ากันได้ของเว็บอินเตอร์เฟสกับเบราว์เซอร์รุ่นเก่าและเวอร์ชัน WebView ระบบ Android
- แก้ไขปัญหาในไดรเวอร์ UVC ที่กล้องบางตัว (เช่น MS Lifecams บางตัว) ซึ่งรายงานช่วงเวลาของเฟรมเป็นแบบโค้งมนมากกว่าค่าที่ถูกตัดทอน (เช่น
666667*100ns
แทนที่จะเป็น 666666*100ns
สำหรับ 15FPS) จะไม่เริ่มสตรีมมิ่ง - เพิ่มการสนับสนุนในไดรเวอร์ UVC สำหรับการควบคุม PTZ เสมือนจริง
- เพิ่มการสนับสนุนในไดรเวอร์ UVC เพื่อการควบคุม Gain (ISO)
- เพิ่มการสนับสนุนในไดรเวอร์ UVC สำหรับการเปิดใช้งาน/ปิดการใช้งานลำดับความสำคัญ AE การตั้งค่านี้ให้วิธีการบอกเฟิร์มแวร์กล้องเช่นกัน
- A) สามารถรองรับอัตราเฟรมที่ร้องขอเพื่อให้ภาพที่ดีขึ้นในทางทฤษฎี (เช่นการเปิดรับแสงนานกว่าระยะเวลาระหว่างเฟรมของอัตราเฟรมที่เลือกอนุญาต)
- b) มัน จะต้อง เป็นไปตามกำหนดเวลาระหว่างเฟรมสำหรับอัตราเฟรมที่เลือกแม้ว่าภาพอาจไม่ได้รับแสง
- เพิ่มการสนับสนุนสำหรับศูนย์ควบคุม OS 1.1.2 หุ่นยนต์คอนโทรลเลอร์ Watchdog
- แอพคอนโทรลเลอร์หุ่นยนต์จะเริ่มต้นใหม่หากหยุดตอบสนองนานกว่า 10 วินาที
- เพิ่มการสนับสนุนสำหรับการใช้แอพไดรเวอร์สถานีบน Android 10+
- แนะนำคุณสมบัติการเลือกล่วงหน้าทางโทรศัพท์อัตโนมัติ
- สำหรับรายละเอียดและคู่มือการใช้งานโปรดดูรายการวิกินี้
- แสดงไอคอนถัดจากชื่อ OpMode ใน Dropdown รายการ OpMode บนสถานีไดรเวอร์เพื่อระบุแหล่งที่มาของ OpMode (เช่นเครื่องมือการเขียนโปรแกรมที่ใช้ในการสร้าง)
- แก้ไขปัญหาที่แอปสถานีไดรเวอร์จะออกหลังจากแสดงการกำหนดค่าหน้าจอ Direct Wi-Fi
- แก้ไขบล็อกและ onbotjava แจ้งเมื่อเข้าถึงผ่านไคลเอนต์ฮาร์ดแวร์ Rev
เวอร์ชัน 6.0 (20200921-085816)
หมายเหตุสำคัญ
- เวอร์ชัน 6.0 เป็นเวอร์ชันสำหรับฤดูกาลเป้าหมายสูงสุด
- ต้องใช้ Android Studio 4.0
- ผู้ใช้ Android Studio จำเป็นต้องเชื่อมต่อกับอินเทอร์เน็ตในครั้งแรกที่พวกเขาสร้างแอพ (เพื่อดาวน์โหลดแพ็คเกจที่จำเป็นสำหรับการสร้าง)
- เวอร์ชัน 5.5 เป็นนอกฤดูที่มีขนาดใหญ่พอสมควรในเดือนสิงหาคม 2563 ลดลง มันคุ้มค่าที่จะตรวจสอบบันทึกการเปิดตัวเหล่านั้นด้านล่างด้วย
- เวอร์ชัน 5.5 และ Greater จะไม่ทำงานบนโทรศัพท์ Android 4.x และ 5.x รุ่นเก่า ผู้ใช้จะต้องอัพเกรดเป็นอุปกรณ์ Android 6.X ที่ได้รับอนุมัติหรือใหม่กว่า
- ค่า PIDF เริ่มต้นสำหรับมอเตอร์ Rev ได้รับการเปลี่ยนกลับเป็นค่า PID เริ่มต้นที่ใช้ในฤดูกาล 2018-2019
- การเปลี่ยนแปลงนี้เกิดขึ้นเนื่องจากค่า 2018-2019 กลายเป็นกลไกที่ดีขึ้นสำหรับกลไกหลายอย่าง
- สิ่งนี้นำพฤติกรรมของมอเตอร์ Rev ให้สอดคล้องกับพฤติกรรมของมอเตอร์อื่น ๆ ทั้งหมด
- หากคุณต้องการพฤติกรรมของฤดูกาล 2019-2020 สำหรับมอเตอร์ Rev นี่คือค่า PIDF ที่มีอยู่ในสถานที่เพื่อให้คุณสามารถตั้งค่าด้วยตนเองใน OpModes ของคุณ:
HD Hex Motors (กระปุกเกียร์ทั้งหมด): ค่า PIDF ความเร็ว: P = 1.17
, I = 0.117
, F = 11.7
ตำแหน่งตำแหน่ง PIDF: P = 5.0
Core Hex Motor: Velocity PIDF ค่า: P = 4.96
, I = 0.496
, F = 49.6
ตำแหน่งตำแหน่ง ค่า PIDF: P = 5.0
คุณสมบัติใหม่
- รวมถึงโมเดลการอนุมาน Tensorflow และตัวอย่าง opmodes เพื่อตรวจจับสแต็คเริ่มต้นเป้าหมายสูงสุด (สี่แหวนกับสแต็คแหวนเดี่ยว)
- รวมถึงเป้าหมายการมองเห็นเป้าหมายสูงสุดของ Vuforia และตัวอย่าง opmodes
- แนะนำคุณสมบัติการซูมดิจิตอลสำหรับการตรวจจับวัตถุ TensorFlow (เพื่อตรวจจับวัตถุที่แม่นยำยิ่งขึ้นในระยะทางไกล)
- เพิ่มรายการการกำหนดค่าสำหรับมอเตอร์ rev ultraplanetary hd hex
การปรับปรุง
- เพิ่มวิธีการ setgain () และ getgain () ไปยังอินเตอร์เฟส NormalizedColorSensor
- โดยการตั้งค่าการขยายของเซ็นเซอร์สีคุณสามารถปรับสำหรับสภาพแสงที่แตกต่างกัน ตัวอย่างเช่นหากคุณตรวจพบค่าสีที่ต่ำกว่าที่คาดไว้คุณสามารถเพิ่มอัตราขยายได้
- ค่ากำไรจะถูกนำไปใช้กับวิธี argb () และ getNormalizedColors () เท่านั้นไม่ใช่วิธีการสีดิบ แนะนำวิธีการ getNormalizedColors () เพื่อความสะดวกในการใช้งานและความชัดเจนเนื่องจากต้องเปลี่ยน argb ()
- อัปเดตตัวอย่าง SensorColor Java เพื่อแสดงให้เห็นถึงการใช้งานที่ได้รับ
- รวม SensorrevColordistance Java ตัวอย่างเข้ากับตัวอย่าง SensorColor Java ซึ่งแสดงแนวทางปฏิบัติที่ดีที่สุดสำหรับเซ็นเซอร์สีทั้งหมด
- ปรับปรุงการดึงค่าจากเซ็นเซอร์สี Rev V3
- อัปเดตการคำนวณการทำให้เป็นมาตรฐานของช่อง RGB
- ปรับปรุงการคำนวณของช่องอัลฟา (สามารถใช้เป็นตัวบ่งชี้ความสว่างโดยรวม)
- แก้ไขความละเอียดเซ็นเซอร์เริ่มต้นซึ่งทำให้เกิดปัญหาเกี่ยวกับสภาพแวดล้อมที่สดใส
- เพิ่มการสนับสนุนสำหรับการเปลี่ยนความละเอียดและอัตราการวัดของชิปเซ็นเซอร์ Broadcom
- ลบการอ่านและการคำนวณ IR ไม่ได้มีไว้สำหรับชิปเซ็นเซอร์ Broadcom
แก้ไขข้อบกพร่อง
- ปรับปรุงความน่าเชื่อถือของการเริ่มต้น BNO055IMU IMU เพื่อป้องกันความล้มเหลวในการเริ่มต้นแบบสุ่ม (ซึ่งปรากฏเป็น
Problem with 'imu'
)
เวอร์ชัน 5.5 (20200824-090813)
เวอร์ชัน 5.5 ต้องการ Android Studio 4.0 หรือใหม่กว่า
คุณสมบัติใหม่
- เพิ่มการสนับสนุนสำหรับการเรียกคลาส Java ที่กำหนดเองจาก blocks opmodes (แก้ไขปัญหา Skystone #161)
- คลาสจะต้องอยู่ในแพ็คเกจ org.firstinspires.ftc.teamcode
- เพื่อให้สามารถเข้าถึง OpMode, HardWaremap, Telemetry, GamePad1 และ GamePad2 ได้อย่างง่ายดายชั้นเรียนสามารถขยาย org.firstinspires.ftc.robotcore.external.blocksopmodecompanion
- วิธีการจะต้องเป็นแบบคงที่สาธารณะและมีพารามิเตอร์ไม่เกิน 21 พารามิเตอร์
- วิธีการจะต้องใส่คำอธิบายประกอบด้วย org.firstinspires.ftc.robotcore.external.exporttoblocks
- พารามิเตอร์ที่ประกาศว่าเป็น opmode, linearopmode, telemetry และ hardwareMap ได้รับการสนับสนุนและอาร์กิวเมนต์จะถูกจัดเตรียมโดยอัตโนมัติโดยไม่คำนึงถึงลำดับของพารามิเตอร์ ในบล็อกซ็อกเก็ตสำหรับพารามิเตอร์เหล่านั้นจะถูกกรอกข้อมูลโดยอัตโนมัติ
- พารามิเตอร์ที่ประกาศว่าเป็นถ่านหรือ java.lang.Character จะยอมรับบล็อกใด ๆ ที่ส่งคืนข้อความและจะใช้อักขระตัวแรกในข้อความเท่านั้น
- พารามิเตอร์ที่ประกาศว่าเป็นบูลีนหรือ java.lang.boolean จะยอมรับบล็อกใด ๆ ที่ส่งคืนบูลีน
- พารามิเตอร์ประกาศเป็นไบต์, java.lang.byte, สั้น, java.lang.short, int, java.lang.integer, ยาวหรือ java.lang.long จะยอมรับบล็อกใด ๆ ที่ส่งคืนตัวเลข จำนวนทั้งหมดที่ใกล้ที่สุด
- พารามิเตอร์ที่ประกาศเป็นลอย, java.lang.float, double, java.lang.double จะยอมรับบล็อกใด ๆ ที่ส่งคืนตัวเลข
- เพิ่มวิธีการ telemetry API สำหรับการตั้งค่ารูปแบบการแสดงผล
- คลาสสิค
- monospace
- HTML (แท็กบางอย่างเท่านั้น)
- เพิ่มการรองรับบล็อกสำหรับการสลับกล้อง
- เพิ่มการรองรับบล็อกสำหรับการตรวจจับวัตถุ TensorFlow ด้วยโมเดลที่กำหนดเอง
- เพิ่มการสนับสนุนสำหรับการอัปโหลดรูปแบบการตรวจจับวัตถุ TensorFlow ที่กำหนดเองในหน้าจัดการซึ่งมีประโยชน์อย่างยิ่งสำหรับผู้ใช้บล็อกและผู้ใช้ OnBotJava
- แสดงรหัส Blink ฮับควบคุมใหม่เมื่อสวิตช์ Wi-Fi Band โดยใช้ปุ่มควบคุมฮับ (เป็นไปได้เฉพาะในศูนย์ควบคุม OS 1.1.2)
- เพิ่มคำเตือนใหม่ที่สามารถปิดใช้งานได้ในการตั้งค่า RC ขั้นสูง
- คำเตือนเวอร์ชันแอพที่ไม่ตรงกัน
- ไม่จำเป็น 2.4 GHz Wi-Fi คำเตือนการใช้งาน
- Rev Hub กำลังใช้เฟิร์มแวร์ที่ล้าสมัย (เก่ากว่าเวอร์ชัน 1.8.2)
- เพิ่มการสนับสนุนสำหรับ Sony PS4 GamePad และกลับมาทำงานอย่างไร GamePads ทำงานบนสถานีไดรเวอร์
- ลบการตั้งค่าซึ่งตั้งค่าประเภท gamepad ตามตำแหน่งไดรเวอร์ แทนที่ด้วยเมนูที่อนุญาตให้ระบุประเภทสำหรับ gamepads ด้วย VID และ PID ที่ไม่รู้จัก
- ความพยายามในการตรวจจับประเภท gamepad โดยอัตโนมัติตาม USB VID และ PID
- หากไม่ทราบ gamepad vid และ PID ให้ใช้ประเภท SPE