يلاحظ
يحتوي هذا المستودع على حزمة تطوير البرامج (SDK) العامة من FTC لموسم مسابقة 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، فهناك عدة طرق لتنزيل هذا الريبو. لاحظ أنه إذا كنت تستخدم Blocks أو OnBot Java Tool لبرمجة الروبوت الخاص بك، فلن تحتاج إلى تنزيل هذا المستودع.
- إذا كنت من مستخدمي git، فيمكنك استنساخ الإصدار الأحدث من المستودع:
استنساخ بوابة https://github.com/FIRST-Tech-Challenge/FtcRobotController.git
أو، إذا كنت تفضل ذلك، يمكنك استخدام زر "Download Zip" المتوفر من خلال صفحة المستودع الرئيسية. سيؤدي تنزيل المشروع كملف ZIP إلى إبقاء حجم التنزيل قابلاً للإدارة.
يمكنك أيضًا تنزيل مجلد المشروع (كملف أرشيف بتنسيق .zip أو .tar.gz) من قسم التنزيلات الفرعي بصفحة الإصدارات لهذا المستودع.
تحتوي صفحة الإصدارات أيضًا على ملفات APK التي تم إنشاؤها مسبقًا.
بمجرد قيامك بتنزيل المجلد وفك ضغطه (إذا لزم الأمر)، يمكنك استخدام Android Studio لاستيراد المجلد ("استيراد مشروع (Eclipse ADT، وGradle، وما إلى ذلك)").
الحصول على المساعدة
وثائق المستخدم والبرامج التعليمية
تحتفظ FIRST بوثائق عبر الإنترنت تحتوي على معلومات وبرامج تعليمية حول كيفية استخدام برنامج FIRST Tech Challenge ونظام التحكم في الروبوت. يمكنك الوصول إلى هذه الوثائق باستخدام الرابط التالي:
توثيق التحدي التكنولوجي الأول
لاحظ أن الوثائق عبر الإنترنت عبارة عن مستند "دائم الخضرة" يتم تحديثه وتحريره باستمرار. يحتوي على أحدث المعلومات حول برنامج FIRST Tech Challenge ونظام التحكم.
جافادوك المواد المرجعية
وثائق Javadoc المرجعية لـ FTC SDK متاحة الآن عبر الإنترنت. انقر فوق الرابط التالي لعرض وثائق FTC SDK Javadoc كموقع ويب مباشر:
وثائق FTC Javadoc
منتدى المستخدمين عبر الإنترنت
للأسئلة الفنية المتعلقة بنظام التحكم أو FTC SDK، يرجى زيارة موقع مجتمع FIRST Tech Challenge:
مجتمع التحدي التكنولوجي الأول
عينة من أوضاع التشغيل
يحتوي هذا المشروع على مجموعة كبيرة من نماذج 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
- تمت إضافة نماذج من برامج الكتل لأجهزة استشعار الألوان: RobotAutoDriveToLine وSensorColor.
- تم تحديث الفحص الذاتي لتحديد إصدارات برامج RC/DS غير المتطابقة باعتبارها "تحذيرًا" وليس "فشلًا".
إصلاحات الأخطاء
- يعمل على إصلاح انحدار تحويل AngularVelocity
الإصدار 10.0 (20240828-111152)
كسر التغييرات
- تمت إزالة فئات Java وكتل TensorFlow Object Detection.
- تمت إعادة تسمية
AngularVelocity.unit
الذي كان من النوع AngleUnit
AngularVelocity.angleUnit
من النوع UnnormalizedAngleUnit
التحسينات
- تمت إضافة نموذج للمؤشر الرقمي REV - ConceptRevLED
- يضيف دعمًا لعصا Sparkfun QWIIC LED
- لتوصيله مباشرة، تحتاج إلى هذا الكابل
- يضيف وضع ConceptLEDStick OpMode
- يضيف كتلًا للألوان الأسود والأزرق والسماوي والرمادي الداكن والرمادي والأخضر والرمادي والأرجواني والأحمر والأبيض والأصفر.
- يضيف كتلة "تقييم ولكن تجاهل النتيجة" التي تنفذ الكتلة المتصلة وتتجاهل النتيجة. يسمح لك باستدعاء دالة وتجاهل القيمة المرجعة.
- يضيف برنامج تشغيل I2C لجهاز تحديد المدى السونار Maxbotix Maxsonar I2CXL
- إضافة كتل لـ setPwmEnable، وsetPwmDisable، وisPwmEnabled للماكينات وماكينات CR.
- في محرر الكتل: يتم عرض n في حقل التعليق التوضيحي الخاص بـ ExportToBlocks على شكل فاصل أسطر.
- يحتوي القياس عن بعد على طريقة جديدة setNumDecimalPlaces
- يقوم القياس عن بعد الآن بتنسيق العناصر المزدوجة والعائمة (ليس داخل الكائنات، بل بمفردها فقط)
- إضافة دعم لـ Limelight 3A.
- يضيف الدعم الأولي لـ REV Servo Hub
- يجب تحديث كل من وحدة التحكم الروبوتية ومحطة التشغيل إلى الإصدار 10.0 حتى تكون مراكز المؤازرة قابلة للتكوين كمراكز مؤازرة. إذا كان التطبيق الموجود على أي من الجهازين قديمًا، فسيظهر Servo Hub كمركز توسعة، ولن تعمل بعض الوظائف كما هو متوقع. يجب عليك الانتظار لإنشاء تكوين يتضمن Servo Hub حتى يتم تحديث كل من تطبيقي Driver Station وRobot Controller إلى الإصدار 10.0.
- لا يمكن تحديث البرنامج الثابت لـ Servo Hub وتغيير عنوانه إلا باستخدام REV Hardware Client في الوقت الحالي
- إضافة دعم لـ REV 9-Axis IMU (REV-31-3332)
- يتم دعم وحدة REV ذات 9 محاور IMU فقط من خلال واجهة Universal IMU
- يضيف فئة جافا
Rev9AxisImuOrientationOnRobot
. - إذا قمت باستبدال منفذ I2C الخاص بـ IMU عقليًا بمنافذ USB الخاصة بمركز التحكم، فإن
RevHubOrientationOnRobot
متوافق أيضًا مع هذا المستشعر - إضافة كتل لـ Rev9AxisImuOrientationOnRobot، بما في ذلك RevHubImuOrientationOnRobot.xyzOrientation وRevHubImuOrientationOnRobot.zyxOrientation.
- يضيف كتل العينات SensorRev9AxisIMUOrthogonal وSensorRev9AxisIMUNonOrthogonal.
- تحسين دعم الكتل لـ RevHubImuOrientationOnRobot.
- يضيف كتل لـ RevHubImuOrientationOnRobot.xyzOrientation وRevHubImuOrientationOnRobot.zyxOrientation.
- يضيف كتل العينات SensorHubIMUOrthogonal (يحل محل SensorIMU) وSensorHubIMUNonOrthogonal.
- تحديثات إصدارات EasyOpenCV وAprilTag وOpenCV و
libjpeg-turbo
- إضافة كتل للحد الأقصى والدقيقة التي تأخذ رقمين.
- يضيف كتل OpModes ConceptRevSPARKMini وRobotAutoDriveByEncoder وRobotAutoDriveByGyro وRobotAutoDriveByTime وRobotAutoDriveToAprilTagOmni وRobotAutoDriveToAprilTagTank.
- تتم الآن إعادة تسمية اثنين من OpModes بنفس الاسم تلقائيًا بالاسم متبوعًا بـ "-" واسم الفئة مما يسمح بتواجدهما على الجهاز.
- يُظهر اسم التكوين النشط في صفحة الإدارة الخاصة بوحدة تحكم Robot Controller
- تم تحديث مكتبة AprilTag لـ INTO THE DEEP. والجدير بالذكر
getCurrentGameTagLibrary()
يرجع الآن إلى العلامات العميقة. - إضافة كتل لـ Telemetry.setMsTransmissionInterval وTelemetry.getMsTransmissionInterval.
- يضيف كتل عينة SensorOctoQuad.
إصلاحات الأخطاء
- يعمل على إصلاح الخلل حيث كانت كتل RevBlinkinLedDriver موجودة ضمن المشغلات في مربع أدوات محرر الكتل. هم الآن أجهزة أخرى.
- يعمل على إصلاح الخلل حيث يتم طرح
Exception
في رمز المستخدم بعد طلب التوقف بواسطة Driver Station، ويتم تناولها بصمت - تم إصلاح الخلل حيث إذا طلبت
AngularVelocity
في وحدة مختلفة عن الجهاز الذي تم الإبلاغ عنه فيه، فسيتم تطبيعها بين -PI وPI للراديان، و-180 و180 للدرجات.
الإصدار 9.2 (20240701-085519)
ملاحظات هامة
- تم إهمال فئات Java وكتل TensorFlow Object Detection وستتم إزالتها في الإصدار 10.0.
- تمت إزالة العينات التي تستخدم TensorFlow Object Detection.
التحسينات
- إضافة نص توضيحي للعناصر الفاشلة في أنشطة التفتيش. لعرض النص التوضيحي، اضغط على أيقونة التحذير الحمراء الخاصة بالعنصر الفاشل.
- في محرر الكتل: تمت إضافة نوع جديد من كتلة مجموعة المتغيرات التي تقوم بتعيين المتغير وإرجاع القيمة الجديدة أيضًا.
- يغير الطريقة التي تتصرف بها عناصر التحكم في الكاميرا بالنسبة للكاميرا القابلة للتحويل. الآن، تعمل كل طريقة (مثل getExposure وgetMinExposure وgetMaxExposure وsetExposure for ExposureControl) على الكاميرا النشطة حاليًا.
- يضيف دعمًا للوحة الألعاب المتوافقة مع REV USB PS4 (REV-31-2983)
- يضيف وضع OpMode ConceptAprilTagMultiPortal
- يضيف دعمًا لوحدة التشفير التربيعي OctoQuad ووحدة واجهة عرض النبض
- يضيف التعليق التوضيحي ExportAprilTagLibraryToBlocks الذي يشير إلى أنه يتم تصدير الطريقة الثابتة التي تُرجع AprilTagLibrary إلى بيئة برمجة Blocks. ستظهر الكتلة المقابلة في مربع أدوات الكتل جنبًا إلى جنب مع مكتبات العلامات المضمنة.
- ويضيف كتل OpMode ConceptAprilTagOptimizeExposure.
- يضيف دعمًا لمستشعر قياس المسافة للتتبع البصري SparkFun.
إصلاحات الأخطاء
- إصلاحات رقم 942 حيث يمكن أن يتسبب VisionPortal.Close() في حدوث خطأ IndexOutOfBoundsError.
- يعمل على إصلاح خطأ في محرر الكتل حيث تظهر كتل الوظائف المطوية تحذيرًا "تحتوي الكتل المطوية على تحذيرات". عند إعادة فتح Blocks OpMode.
- يعمل على إصلاح الخلل حيث لا يحذرك محرر الكتل من أن لديك تغييرات غير محفوظة عند محاولتك المغادرة. تم تقديم هذا الخطأ بسبب تغيير السلوك في Chrome 119.
- المشكلة رقم 764 - يؤدي الحصول على التحكم في الربح إلى إرجاع مؤشر فارغ لكاميرا قابلة للتحويل
- يعمل على إصلاح الخلل حيث لم يتم تطبيق المنطقة الميتة الصحيحة لبعض لوحات الألعاب عند تمكين ميزات لوحة الألعاب المتقدمة
الإصدار 9.1 (20240215-115542)
التحسينات
- يعمل على إصلاح مشكلة في الكتل: إذا أغلق المستخدم بالون تحذير الكتلة، فسيظل مغلقًا في المرة التالية التي يتم فيها فتح المشروع في محرر الكتل.
- في محرر الكتل، لا يظهر تنبيه بخصوص الأجهزة المفقودة إذا تم تعطيل كافة الكتل التي تستخدم الأجهزة المفقودة.
- إضافة كتل لدعم مقارنة قيم الخصائص CRServo.Direction، وDCMotor.Direction، وDCMotor.Mode، وDCMotor.ZeroPowerBehavior، وDigitalChannel.Mode، وGyroSensor.HeadingMode، وIrSeekerSensor.Mode، وServo.Direction، إلى كتلة التعداد المقابلة.
- يعمل على تحسين الاستيراد التلقائي لـ OnBotJava لاستيراد الفئات بشكل صحيح عند استخدامها في مواقف معينة.
- يعمل على تحسين الإكمال التلقائي لـ OnBotJava لتوفير خيارات إكمال أفضل في معظم الحالات.
- يعمل هذا على إصلاح مشكلة فشل الإكمال التلقائي في حالة تحديد طريقة تحتوي على معلمتين رسميتين أو أكثر.
- في OnBotJava، تمت إضافة دعم طي التعليمات البرمجية لتوسيع أقسام التعليمات البرمجية وطيها
- في OnBotJava، يتم الآن طي رأس حقوق الطبع والنشر تلقائيًا عند تحميل الملفات الجديدة
- بالنسبة لجميع عينات Blocks OpMode، تم نقل تعليقات المقدمة إلى بالون تعليق RunOpMode.
- يقوم الآن أمر تنظيف الكتل في محرر الكتل بوضع الكتل الوظيفية بحيث لا تتداخل بالونات التعليق الخاصة بها مع الكتل الوظيفية الأخرى.
- تمت إضافة نموذج Block OpMode لـ SensorTouch.
- تمت إضافة نموذج 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 إلى أساليب Java الجديدة:
- VisionPortal.Builder.setAutoStartStreamOnBuild
- VisionPortal.Builder.setShowStatsOverlay
- AprilTagProcessor.Builder.setSuppressCalibrationWarnings
- CameraStreamServer.setSource
إصلاحات الأخطاء
- يعمل على إصلاح مشكلة عدم قيام OnBotJava بتطبيق إعدادات حجم الخط على المحرر.
- يقوم بتحديث تبعية EasyOpenCV إلى الإصدار 1.7.1
- يعمل على إصلاح عدم القدرة على استخدام EasyOpenCV CameraFactory في OnBotJava
- يعمل على إصلاح تعطل تطبيق RC بالكامل عندما يقوم خط أنابيب المستخدم بطرح استثناء
- يعمل على إصلاح تعطل تطبيق RC بالكامل عندما يقوم المعلق التوضيحي لقماش المستخدم بإلقاء استثناء
- استخدم شاشة Stacktrace الحديثة عند التعامل مع استثناءات المستخدم بدلاً من رسالة القياس عن بعد ESTOP القديمة
الإصدار 9.0.1 (20230929-083754)
التحسينات
- يقوم بتحديث عينات AprilTag لتشمل Decimation وتعليقات إضافية. يصحح أيضًا تحذيرات معرف العلامة المضللة
- زيادة الحد الأقصى لحجم تعليقات الحظر المضمنة إلى 140 حرفًا
- يضيف نموذج الكتل BasicOmniOpMode.
- تم تحديث مكتبة CENTERSTAGE لأربعة اتجاهات لعلامة AprilTag
- تم تحديث نموذج Java ConceptTensorFlowObjectDetection.java ليشمل العناصر المفقودة اللازمة لدعم النموذج المخصص.
إصلاحات الأخطاء
- يعمل على إصلاح مشكلة حيث سيتم الإبلاغ عن Driver Station بعد الأول من أكتوبر على أنها قديمة على الإصدار 9.0 ومطالبة المستخدم بالتحديث.
الإصدار 9.0 (20230830-154348)
كسر التغييرات
- يزيل الفوفوريا
- أصبحت الحقول الموجودة في كائنات
AprilTagDetection
و AprilTagPose(ftc/raw)
final
الآن - تمت إعادة تسمية أسلوب منشئ VisionPortal
setCameraMonitorViewId()
إلى setLiveViewContainerId()
وتمت إعادة تسمية enableCameraMonitoring()
إلى enableLiveView()
التحسينات
- إضافة دعم لمستشعر الرؤية DFRobot HuskyLens.
- يمكن لفرق الكتل الآن إجراء معايرة كاميرا الويب.
- تمت إضافة كتلة لـ System.currentTimeMillis (ضمن الأدوات المساعدة/الوقت)
- تمت إضافة كتلة لـ VisionPortal.saveNextFrameRaw (ضمن Vision/VisionPortal)
- تمت إضافة نموذج جديد لـ Block OpMode يسمى UtilityCameraFrameCapture.
- تم تحديث نموذج RobotDriveByGyro لاستخدام واجهة IMU العالمية الجديدة. وهو يدعم الآن كلا النوعين من IMU.
- تمت إزالة بعض كتل ElapsedTime المعرضة للخطأ من صندوق أدوات محرر الكتل. هذا ليس تغييرًا جذريًا: ستظل أوضاع Block OpModes القديمة التي تستخدم هذه الكتل تعمل، سواء في محرر الكتل أو في وقت التشغيل.
- يتم توحيده على النموذج "OpMode" للمصطلح OpMode.
- الطريقة المفضلة للإشارة إلى OpModes التي تعمل على توسيع
LinearOpMode
على وجه التحديد (بما في ذلك Block OpModes) هي "Linear OpMode". - الطريقة المفضلة للإشارة إلى OpModes التي تعمل على توسيع
OpMode
بشكل مباشر هي "OpMode التكراري".
- إصلاح تعليقات
OpMode
و LinearOpMode
Javadoc لتكون أسهل في القراءة وتتضمن المزيد من التفاصيل. - يُجري تحسينات طفيفة على عينات Java
- تم تحويل تعليقات Javadoc في العينات التي يمكن عرضها بشكل سيئ في Android Studio إلى تعليقات قياسية متعددة الأسطر
- تم تحسين الاتساق بين العينات
- تم استبدال نموذج SensorDigitalTouch بعينة SensorTouch جديدة تستخدم واجهة
TouchSensor
بدلاً من DigitalChannel
. - تم حذف عينات ConceptCompassCalibration وSensorMRCompass وSensorMRIRSeeker، لأنها ليست مفيدة لمسابقات FTC الحديثة.
إصلاحات الأخطاء
- يعمل على إصلاح الخلل الذي كان يمنع استخدام لوحات ألعاب PlayStation في وضع البلوتوث. لا تعد تقنية Bluetooth قانونية للمنافسة ولكنها قد تكون مفيدة للسماح باستخدام جهاز DS أثناء الشحن أو في حدث توعية.
- يعمل على إصلاح خطأ حيث يمكن أن تتغير قيمة تاريخ تعديل Block OpMode إلى 31 ديسمبر 1969، إذا تمت إعادة تشغيل Control Hub أثناء تحرير Block OpMode.
- إصلاح ميزة التحديد المسبق التلقائي لـ TeleOp (كانت معطلة في الإصدار 8.2)
- يعمل على إصلاح الخلل حيث يظهر تمرير رقم صحيح مثل 123 إلى كتلة Telemetry.addData التي تأخذ رقمًا على أنه 123.0 في القياس عن بعد.
- إصلاح مشكلات الإكمال التلقائي لـ OnBotJava:
- قد يوفر الإكمال التلقائي قيمًا للفئة الحالية بشكل غير صحيح عند الإكمال التلقائي لمتغير محلي
- قد يتضمن الإكمال التلقائي
hardwareMap
إدخالات فئة lambda بشكل غير صحيح
- يعمل على إصلاح عدم قيام 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). إصدار minSdk هو الآن 24.
- يزيد من نسخة Robocol.
- وهذا يعني أن وحدة التحكم الروبوتية 8.2 أو الأحدث أو محطة التشغيل لن تكون قادرة على الاتصال بمحطة التشغيل 8.1 أو الأحدث أو وحدة التحكم الروبوتية.
- إذا نسيت تحديث كلا التطبيقين في نفس الوقت، فستظهر رسالة خطأ توضح التطبيق الأقدم والذي يجب تحديثه.
- تم نقل FTC_FieldCoerateSystemDefinition.pdf. لا يزال موجودًا في سجل git، ولكن تمت إزالته من لقطة git المقابلة للعلامة 8.2. النسخة الرسمية موجودة الآن في نظام الإحداثيات الميدانية.
- تم استبدال
LynxUsbDevice.addConfiguredModule()
و LynxUsbDevice.getConfiguredModule()
بـ LynxUsbDevice.getOrAddModule()
. - أصبحت الكتل القديمة الخاصة بـ Vuforia وTensorFlow Object Detection قديمة وتمت إزالتها من صندوق أدوات محرر الكتل. يمكن فتح أوضاع OpModes الخاصة بالكتل التي تحتوي على الكتل القديمة لـ Vuforia أو TensorFlow Object Detection في محرر الكتل، لكن تشغيلها لن ينجح.
ميزات جديدة
- يضيف واجهة برمجة تطبيقات
VisionPortal
جديدة لرؤية الكمبيوتر- قد تخضع واجهة برمجة التطبيقات هذه للتغيير عند إصدار البداية النهائية!
- تمت إضافة عدة عينات جديدة.
- يضيف الدعم للكشف عن AprilTags.
- تعد
VisionPortal
نقطة الدخول الجديدة لمعالجة AprilTag وTFOD. - ستتم إزالة Vuforia في إصدار مستقبلي.
- تحديث تبعيات TensorFlow.
- تمت إضافة دعم لعناصر التحكم في كاميرا الويب للحظر.
- يحتوي صندوق أدوات محرر الكتل الآن على فئة الرؤية، أعلى فئة الأدوات المساعدة مباشرةً.
- يمكن العثور على الوثائق ذات الصلة بالتقنيات المرتبطة على
- مقدمة علامة أبريل
- دليل AprilTag SDK
- قيم الكشف عن AprilTag
- صور اختبار AprilTag
- معايرة الكاميرا
- يضيف دعم Driver Station إلى لوحات ألعاب Logitech Dual Action وSony PS5 DualSense.
- هذا لا يشمل دعم لوحة ألعاب Sony PS5 DualSense Edge.
- قم دائمًا بالرجوع إلى دليل اللعبة 1 لتحديد شرعية لوحة الألعاب في المنافسة.
- يضيف دعمًا لتدفق حمولة MJPEG إلى برنامج تشغيل UVC (يلزم استخدام روتين إلغاء ضغط JPEG الخارجي).
- يُظهر تلميحًا على واجهة مستخدم Driver Station حول كيفية ربط لوحة الألعاب عند الضغط على الأزرار أو تحريك العصي على لوحة ألعاب غير مقيدة.
- إضافة خيار لعرض "Camera Stream" على كامل الشاشة في Driver Station.
- يتم حفظ كود مصدر OnBotJava تلقائيًا كملف ZIP في كل إصدار مع الاحتفاظ بنافذة متجددة لآخر 30 إصدارًا؛ يسمح باستعادة التعليمات البرمجية المصدر من الإصدارات السابقة في حالة حذف التعليمات البرمجية أو إتلافها عن طريق الخطأ.
- إضافة دعم لتغيير عناوين Expansion Hub غير المتصلة مباشرة عبر USB.
- تحتوي شاشة تغيير عنوان Expansion Hub الآن على زر تطبيق الذي يغير العناوين دون مغادرة الشاشة.
- لم يعد من الممكن تحديد العناوين التي تم تعيينها للمحاور الأخرى المتصلة بنفس اتصال USB أو Control Hub.
- زيادة الحد الأقصى لحجم كتل التعليقات المضمنة إلى 100 حرف
- يحفظ موضع بالونات تعليق الكتل المفتوحة
- إضافة عينات جديدة لقيادة AprilTag: RobotDriveToAprilTagTank وRobotDriveToAprilTagOmni
- يضيف نموذجًا لتوضيح تحسين تعرض الكاميرا لشهر أبريل، العلامات: ConceptAprilTagOptimizeExposure
إصلاحات الأخطاء
- يصحح شاشة الفحص للإبلاغ عن إصدار التطبيق باستخدام إصدار SDK المحدد في المكتبات بدلاً من الإصدار المحدد في
AndroidManifest.xml
. يؤدي هذا إلى تصحيح الحالة حيث يمكن أن يعرض التطبيق أرقام الإصدارات المطابقة للمستخدم ولكنه لا يزال يشير إلى أن الإصدارات غير متطابقة.- إذا كان الإصدار المحدد في
AndroidManifest.xml
لا يتطابق مع إصدار SDK، فسيتم عرض إدخال إصدار SDK على صفحة إدارة الويب.
- يعمل على إصلاح عدم ظهور أي خطأ عند حفظ ملف تكوين بأسماء مكررة من Driver Station.
- يعمل على إصلاح حالة توقف تام في برنامج تشغيل UVC الذي ظهر في OpenFTC/EasyOpenCV#57.
- يعمل على إصلاح حالة توقف تام في برنامج تشغيل UVC الذي قد يحدث عند توصيل الكاميرات بسرعة.
- يعمل على إصلاح توافق برنامج تشغيل UVC مع كاميرا الغالق العالمية Arducam OV9281.
- يعمل على إصلاح حالة الإيقاف الطارئ عند إنشاء OnBotJava بأسماء OpMode مكررة.
- يعمل على إصلاح الأسباب المعروفة للبريد العشوائي "محاولة استخدام مثيل LynxModule المغلق".
- يعمل على إصلاح نمط LED الخاص بالتعريف المرئي عند تكوين مراكز التوسيع المتصلة عبر RS-485.
الإصدار 8.1.1 (20221201-150726)
هذا إصدار لإصلاح الأخطاء فقط لمعالجة المشكلات الأربع التالية.
- المشكلة رقم 492 - لا يمكن إنشاء أوضاع تشغيل كتل جديدة.
- المشكلة رقم 495 - قم بإزالة المعدل النهائي من كائن القياس عن بعد الخاص بـ 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()
حد زمني، ولكن تم ترميزه الآن ليكون ثانية واحدة، ولا يمكن تغييره باستخدام msStuckDetectStop
.
- إهمال أساليب
OpMode
internalPreInit()
و internalPostInitLoop()
و internalPostLoop()
.- سوف تستمر
OpMode
التكرارية في استدعاء هذه الأساليب في حالة تجاوزها. - لن يتم استدعاء هذه الأساليب على الإطلاق لـ
LinearOpMode
s.
- يتجاهل (ويتوقف عن احترام)
DeviceProperties.xmlTagAliases
.
التحسينات
- يضيف واجهة
IMU
جديدة إلى Blocks وJava التي يمكن استخدامها مع كل من BNO055 IMU الأصلي المضمن في جميع مراكز التحكم ومراكز التوسيع القديمة، والبديل الجديد BHI260AP IMU.- يمكنك تحديد نوع IMU الموجود في مركز التحكم الخاص بك عن طريق الانتقال إلى صفحة الإدارة بواجهة الويب.
- لمعرفة كيفية استخدام واجهة
IMU
الجديدة، راجع https://ftc-docs.firstinspires.org/programming_resources/imu/imu.html. تم أيضًا تحديث نموذج كتل SensorIMU
لاستخدام واجهة IMU
الجديدة، وتمت إضافة نماذج Java التالية:-
SensorIMUOrthogonal
- استخدم هذه العينة إذا تم تركيب REV Hub الخاص بك بحيث يكون موازيًا أو متعامدًا مع الجزء السفلي من الروبوت الخاص بك.
-
SensorIMUNonOrthogonal
- استخدم هذه العينة إذا تم تركيب REV Hub على الروبوت الخاص بك في أي اتجاه آخر
-
ConceptExploringIMUOrientations
- يعد OpMode أداة تساعدك على فهم كيفية عمل التوجهات المتعامدة، وأي منها ينطبق على الروبوت الخاص بك.
- لا يمكن الوصول إلى BHI260AP IMU إلا عبر واجهة
IMU
الجديدة. يمكن برمجة BNO055 IMU باستخدام واجهة IMU
الجديدة، أو يمكنك الاستمرار في برمجته باستخدام واجهة BNO055IMU
القديمة. إذا كنت تريد أن تكون قادرًا على التبديل بسرعة إلى مركز التحكم الجديد الذي قد يحتوي على BHI260AP IMU، فيجب عليك ترحيل التعليمات البرمجية الخاصة بك لاستخدام واجهة IMU
الجديدة. - على عكس واجهة
BNO055IMU
القديمة، والتي تعمل بشكل صحيح فقط عندما يتم تركيب محور REV بشكل مسطح على الروبوت الخاص بك، تسمح لك واجهة IMU
بتحديد اتجاه محور REV على الروبوت الخاص بك. وسوف يأخذ في الاعتبار ذلك، ويعطيك التوجيه الخاص بك في نظام إحداثيات الروبوت، بدلاً من نظام إحداثيات خاص لـ REV Hub. ونتيجة لذلك، ستكون درجة الانحراف والانعراج لديك 0 عندما يكون الروبوت الخاص بك مستويًا، بدلاً من أن يكون محور REV مستويًا، مما سيؤدي إلى قيم زاوية توجيه أكثر موثوقية لمعظم اتجاهات التثبيت. - بسبب نظام الإحداثيات المتمركز حول الروبوت الجديد، ستكون زوايا الميل والالتفاف التي ترجعها واجهة
IMU
مختلفة عن تلك التي ترجعها واجهة BNO055IMU
. عندما تقوم بترحيل التعليمات البرمجية الخاصة بك، انتبه جيدًا للوثائق. - إذا قمت بمعايرة BNO055، فيمكنك توفير بيانات المعايرة هذه إلى واجهة
IMU
الجديدة عن طريق تمرير مثيل BNO055IMUNew.Parameters
إلى IMU.initialize()
. - تعتبر واجهة
IMU
مناسبة أيضًا للتنفيذ من قبل موردي الطرف الثالث لوحدات IMU التي تدعم توفير التوجيه في شكل رباعي.
- يتم الآن تشغيل
OpMode
التكراري (على عكس LinearOpMode
s) على مؤشر ترابط مخصص.- لا ينبغي أن تتأثر أوقات الدورة بكل شيء آخر يحدث في النظام.
- لم يعد بإمكان Slow
OpMode
s زيادة مقدار الوقت المستغرق لمعالجة أوامر الشبكة، والعكس صحيح. - لم تعد الأساليب
init()
و init_loop()
و start()
و loop()
بحاجة إلى العودة خلال إطار زمني معين.
- برنامج التشغيل القديم BNO055 IMU: يستعيد القدرة على التهيئة في OpMode واحد، ثم يقوم OpMode آخر بإعادة استخدام تلك التهيئة. يسمح لك هذا بالحفاظ على موضع الانعراج 0 بين OpModes، إذا رغبت في ذلك.
- يسمح للإصدارات المخصصة من برامج تشغيل الأجهزة في FTC SDK باستخدام نفس علامة XML.
- من قبل، إذا كنت تريد تخصيص برنامج تشغيل الجهاز، كان عليك نسخه إلى فئة جديدة ومنحه علامة XML جديدة. إن منحه علامة XML جديدة يعني أنه لتبديل برنامج التشغيل الذي تم استخدامه، كان عليك تعديل ملف التكوين الخاص بك.
- الآن، لاستخدام برنامج التشغيل المخصص، كل ما عليك فعله هو تحديد فئة برنامج التشغيل المخصص عند استدعاء
hardwareMap.get()
. للعودة إلى برنامج التشغيل الأصلي، حدد فئة برنامج التشغيل الأصلي. إذا قمت بتحديد واجهة يتم تنفيذها بواسطة كل من برنامج التشغيل الأصلي وبرنامج التشغيل المخصص، فلا يوجد ضمان بشأن التطبيق الذي سيتم إرجاعه.
إصلاحات الأخطاء
- يعمل على إصلاح الوصول إلى روابط "إدارة نماذج TensorFlow Lite" و"إدارة الأصوات" وإجراء عمليات تنزيل الكتل وOnBotJava OpMode من عميل الأجهزة REV.
- يعمل على إصلاح المشكلة حيث تتم تهيئة برنامج تشغيل جهاز I2C تلقائيًا باستخدام المعلمات المعينة في تشغيل OpMode السابق.
- يعمل على تحسين وضع القائمة المنبثقة لـ Driver Station في التخطيط الأفقي.
- يعمل على إصلاح NullPointerException عند محاولة الحصول على BNO055 IMU غير المكوّن في Block OpMode على هاتف RC.
- يعمل على إصلاح مشكلة الكتل إذا تم تسمية المتغير
orientation
.
الإصدار 8.0 (20220907-131644)
كسر التغييرات
- يزيد من نسخة Robocol.
- وهذا يعني أن وحدة التحكم الروبوتية 8.0 أو الأحدث أو محطة التشغيل لن تكون قادرة على الاتصال بمحطة التشغيل 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 (الإصدار 0.4.4 والإصدارات الأقدم).
- يحذف أسلوب
OpMode
المهمل resetStartTime()
(استخدم resetRuntime()
بدلاً من ذلك). - حذف فئة
LinearOpMode.LinearOpModeHelper
المحمية (والتي لم تكن مخصصة للاستخدام بواسطة OpModes). - إزالة نوع تكوين جهاز I2C (المتزامن) (تم إهماله منذ 2018)
التحسينات
- لم تعد الاستثناءات التي لم يتم اكتشافها في OpModes تتطلب إعادة تشغيل الروبوت
- لا تعتبر الشاشة الزرقاء التي تظهر مع تتبع المكدس خطأً في SDK؛ يؤدي هذا إلى استبدال النص الأحمر في منطقة القياس عن بعد.
- منذ إصدار SDK الأول، أدت أعطال OpMode إلى وضع الروبوت في حالة "EMERGENCY STOP"، مع إظهار السطر الأول فقط من الاستثناء، ومطالبة المستخدم بالضغط على "Restart Robot" للمتابعة.
- تفتح الاستثناءات أثناء OpMode الآن نافذة منبثقة بنفس نظام الألوان مثل عارض السجل، وتحتوي على 15 سطرًا من تتبع مكدس الاستثناء للسماح بتتبع الخط المخالف بسهولة دون الحاجة إلى الاتصال لعرض السجلات عبر ADB أو التمرير عبر كميات كبيرة من السجلات في عارض السجل.
- نص الاستثناء في النافذة المنبثقة قابل للتكبير والتصغير والتمرير تمامًا مثل صفحة الويب.
- سيؤدي الضغط على زر "موافق" في النافذة المنبثقة إلى العودة إلى الشاشة الرئيسية لمحطة القيادة والسماح بتشغيل OpMode مرة أخرى على الفور، دون الحاجة إلى إجراء "إعادة تشغيل الروبوت"
- إضافة نموذج Java جديد لتوضيح استخدام فئة الأجهزة لتجريد مشغلات الروبوت ومشاركتها عبر OpModes متعددة.
- نموذج OpMode هو ConceptExternalHardwareClass.java
- فئة الأجهزة الملخصة هي RobotHardware.java
- يقوم بتحديث نموذج Java RobotAutoDriveByGyro_Linear لاستخدام محور التحكم/التوسيع REV IMU.
- يقوم بتحديث عينات Vuforia للإشارة إلى أصول PowerPlay والحصول على الأسماء والمواقع الميدانية الصحيحة لأهداف الصورة.
- يقوم بتحديث عينات TensorFlow للإشارة إلى أصول PowerPlay.
- يضيف دعم الاشتراك لميزات لغة Java 8 إلى محرر OnBotJava.
- للاشتراك، افتح إعدادات OnBotJava، وحدد
Enable beta Java 8 support
. - لاحظ أن كود Java 8 لن يتم تجميعه إلا عندما يقوم Robot Controller بتشغيل Android 7.0 Nougat أو إصدار أحدث.
- الرجاء الإبلاغ عن القضايا هنا.
- في OnBotJava، يؤدي النقر فوق أخطاء البناء الآن إلى الانتقال بشكل صحيح إلى الموقع الصحيح.
- يعمل على تحسين سلوك الإكمال التلقائي لـ OnBotJava، لتوفير خيارات إكمال أفضل في معظم الحالات.
- يضيف رمز الاستجابة السريعة إلى تقرير فحص وحدة تحكم الروبوت عند عرضه من محطة السائق للمسح من قبل المفتشين في المنافسة.
- يحسن أداء I2C والموثوقية في بعض السيناريوهات.
الإصدار 7.2 (20220723-130006)
كسر التغييرات
- تحديث أدوات البناء. بالنسبة لمستخدمي Android Studio ، يتطلب هذا التغيير Android Studio Chipmunk 2021.2.1.
- يزيل دعم الأجهزة غير القانونية للمنافسة ، بما في ذلك وحدات التحكم الأساسية الروبوتات الحديثة ووحدة التحكم في المصفوفة ووحدات التحكم في Hitechnic/NXT. يبقى الدعم لأجهزة استشعار الروبوتات الحديثة I2C.
التحسينات
- يزيد من ارتفاع مساحة اللمس ذات القائمة الطبيعية 3-DOTs على محطة السائق ، مما يجعل من الأسهل تحديدها.
- يضيف طريقة
terminateOpModeNow()
للسماح لـ Opmodes بالتنظيف الذاتي على الفور. - يضيف طريقة
opModeInInit()
إلى LinearOpMode
لتسهيل الحلقات init. على غرار opModeIsActive()
ولكن للمرحلة init. - يحذر المستخدم إذا كان لديهم لعبة Logitech F310 متصلة تم تعيينها على وضع 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
- يضيف دعمًا للتحكم في RGB LED الموجود على ألعاب PS4/ETPark من Opmodes
- يزيل المراجع القديم للضغط من عينات OPMode. إعادة تسمية "Pushbot" عينات إلى "Robot". تم عكس اتجاهات المحرك لتكون متوافقة مع قطار محرك "محرك الأقراص المباشر".
إصلاحات الشوائب
- إصلاحات الإصدار رقم 316 (matrixf.inverted () أعاد مصفوفة غير صحيحة الحجم لمصفوفات 1x1 و 2x2).
- يسمح التفتيش الذاتي الآن لمحطة السائق وتوافق وحدة تحكم الروبوت بين إصدارات النقاط.
- إصلاح الخلل حيث إذا تم وضع نفس مثيل كائن
RumbleEffect
في قائمة الألعاب المتعددة ، فقد يحدث ذلك أنه سيتم إرسال كلا الأوامر Rumble إلى لوحة واحدة فقط. - إصلاح الخلل في محطة السائق حيث على محور برنامج التشغيل ، إذا تم تعطيل ميزات GamePad المتقدمة وتم توصيل لوحة لعب مدعومة رسميًا ، ثم فتح ميزات GamePad المتقدمة أو شاشات GamePad التي تتجاوز أن تتسبب شاشات GamePad في انتعاش سائق USB المخصص رغم ذلك على الرغم من ذلك تم تعطيل ميزات GamePad المتقدمة.
- يحمي من (من غير المحتمل) استثناء مؤشر فارغ في فورفيريا مترجم.
- Harden Onbotjava و Knocks ينقذ للحماية من القضايا المتوقعة عند الانفصال عن البرنامج والإدارة
- إصلاحات الإصلاح حيث سيتم تعليق تطبيق RC إذا فشلت كتابة Hub I2C لأن عملية I2C السابقة كانت لا تزال قيد التقدم. حدث هذا الشنق بشكل شائع خلال تهيئة مستشعر المسافة 2M REV 2M
- يزيل برنامج ConceptWebCam.java عينة. هذه العينة غير متوافقة مع Onbotjava.
- إصلاح الأخطاء حيث استخدام علامات HTML في حقل التعليق exporttoBlocks منع محرر الكتل من التحميل.
- إصلاح محرر الكتل بحيث لا يطلب منك الحفظ عندما لم تقم بتعديل أي شيء.
- يعمل على تحميل مشروع كتل كبير جدًا إلى محرر الكتل غير المتصلة بالإنترنت.
- إصلاح الأخطاء التي تسببت في حذف كتل لـ DCMotorex من صندوق أدوات محرر الكتل.
- إصلاح برامج الكتل الجذابة من الكتل (بسبب استخدام كتلة ملصق TensorFlow)
الإصدار 7.1 (20211223-120805)
- إصلاحات تعطل عند استدعاء
isPwmEnabled()
(العدد رقم 223). - إصلاح خطأ الوبر (العدد رقم 4).
- إصلاح محطات محطة السائق عند محاولة استخدام GamePad DualShock4 V1 مع ميزات GamePad المتقدمة (العدد رقم 173).
- إصلاحات ممكنة (ولكن من غير المحتمل) تحطم محطة السائق عند توصيل ألعاب الألعاب من أي نوع.
- إصلاحات الإصلاحات حيث ستستخدم محطة السائق بنسبة 20 ٪ من Deadzone لـ Xbox360 و Logitech F310 Gamepads عندما تم تعطيل ميزات GamePad المتقدمة.
- تمت إضافة SimpleomNidrive عينة Opmode.
- يضيف UVC White Balance Control API.
- إصلاحات الإصدار رقم 259 لا يمكن استخدام معظم عينات الكتل لـ TensorFlow لنموذج مختلف.
- تم استبدال الكتل المسمى سابقًا TensorFlowObjectDeteCtionFreightFrenzy (من الفئة الفرعية المسمى "Optimized for Freight Frenzy") و TensorFlowObjectDetecteChoStodel (من الفئة الفرعية المسماة "النموذج المخصص") بكتل تحمل علامة TensorFlowObjectDection. سيتم تحديث الكتل في OpModes الحالية تلقائيًا إلى الكتل الجديدة عند فتحها في محرر Blocks.
- إصلاحات الإصدار رقم 260 لا يمكن استدعاء طريقة Java التي تحتوي على معلمة Vuforialocalizer.
- تحتوي الكتل الآن على كتلة تحمل علامة VuforiAfreightfrenzy.getVuforialocalizer لهذا الغرض.
- تمت إضافة صفحة لإدارة نماذج TensorFlow Lite في/sdcard/first/tflitemodels. للوصول إلى صفحة نماذج Tflite:
- يمكنك النقر فوق الرابط الموجود في أسفل صفحة إدارة.
- يمكنك النقر على الرابط في الجزء العلوي من صفحة مشروع الكتل.
- إصلاح logspam عندما يتم استدعاء
isBusy()
على محرك وليس في وضع RTP. - يخفي عنصر "RC Password" على شاشة التفتيش لوحدات التحكم الروبوت المستندة إلى الهاتف. (لا ينطبق إلا على مراكز التحكم).
- يضيف القناة 165 إلى قائمة اختيار القناة المباشرة Wi-Fi في شاشة الإعدادات. (كان 165 متاحًا سابقًا من خلال واجهة المستخدم على الويب ، ولكن ليس محليًا في التطبيق).
الإصدار 7.0 (20210915-141025)
التحسينات والميزات الجديدة
- يضيف دعم المكتبات الخارجية إلى Onbotjava والكتل.
- تحميل ملفات .jar و .aar في onbotjava.
- قيود معروفة - يجب أن يقوم جهاز RobotController بتشغيل Android 7.0 أو أكثر.
- قيود معروفة -.
- يمكن للمكتبات الخارجية توفير الدعم لأجهزة الأجهزة باستخدام التعليق التوضيحي في حزمة 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.ftccommon.external.oncreate
- org.firstinspires.ftc.ftccommon.external.oncreateeventloop
- org.firstinspires.ftc.ftccommon.external.oncreatemenu
- org.firstinspires.ftc.ftccommon.external.ondestroy
- org.firstinspires.ftc.ftccommon.extern
- يضيف الدعم لمركز DRIVE REV ROBOTICS.
- يضيف برنامج تشغيل GamePad USB Gamepad مخصص بالكامل إلى محطة السائق (راجع قائمة "ميزات GamePad المتقدمة" في إعدادات DS).
- يسمح ألعاب الألعاب بالعمل على الأجهزة دون دعم Kernel الأصلي Linux (على سبيل المثال بعض أجهزة Motorola الرومانية).
- يسمح لـ DS بقراءة العدد التسلسلي الفريد لكل لعبة GamePad ، مما يتيح التراجع التلقائي من ألعاب الألعاب المتساقطة حتى لو انزلقت مبادسة من نفس النموذج. (ملاحظة: لسوء الحظ ، لا ينطبق هذا على etpark gamepads ، لأنه ليس لديهم مسلسل فريد) .
- توفر قراءة الرقم التسلسلي الفريد أيضًا القدرة على تكوين DS لتعيين ألعاب الألعاب إلى موضع معين بشكل افتراضي (لذلك لا حاجة للبدء+A/B على الإطلاق).
- يتم استخدام حلقة LED على GamePad Xbox360 وشريط LED RGB على GP4Pad للإشارة إلى موضع السائق الذي يرتبط به GamePad.
- يمكن التحكم في محركات Rumble على ألعاب Xbox360 و PS4 و Etpark من Opmodes.
- يمكن قراءة لوحة اللمس المكونة من نقطتين على لوحة PS4 من Opmodes.
- يمكن الآن أن تكون أزرار "Back" و "Guide" على GamePad ملزمة بأمان بعناصر التحكم في الروبوت (سابقًا ، على العديد من الأجهزة ، من شأنه أن يعترض Android على هذه الأزرار كضغط زر الصفحة الرئيسية وإغلاق التطبيق).
- يتم تمكين ميزات GamePad المتقدمة افتراضيًا ، ولكن قد يتم تعطيلها من خلال قائمة الإعدادات من أجل العودة إلى دعم GamePad المقدم من Android.
- يحسن دقة قياس بينغ.
- الإصلاحات التي أظهرت وقت Ping أنها أعلى من الواقع عند الاتصال في البداية أو إعادة تشغيل الروبوت.
- لرؤية التحسن الكامل ، يجب عليك تحديث كل من وحدة تحكم الروبوت وتطبيقات محطة السائق.
- عينات تحديثات موجودة على/ftcrobotcontroller/src/main/java/org/firstInspires/ftc/robotcontroller/external/sarns.
- تمت إضافة عينات ConceptGamePadrumble و ConceptGamePadTouchPad لتوضيح استخدام هذه إمكانيات Gampad الجديدة.
- تم تكثيف عينات Vuforia الموجودة في عينتين فقط (ConceptVuforiaFieldNavigation & ConceptVuforiaFieldNavigationWebCam) توضح كيفية تحديد موقع الروبوت في الحقل باستخدام Vuforia. كلاهما يستخدم الصور المستهدفة للموسم الحالي.
- تمت إضافة ConceptVuforiAdriVetOtArgetWebCam لتوضيح طريقة سهلة للقيادة مباشرة إلى أي هدف Vuforia المرئي.
- يجعل العديد من التحسينات على نظام التحذير والتحذيرات الفردية.
- أصبحت التحذيرات الآن متباعدة ، بحيث يكون من الأسهل قراءتها.
- تمت إضافة تحذيرات جديدة للظروف التي يجب حلها قبل التنافس.
- يستخدم تحذير التطبيقات غير المتطابقة الآن إصدارات التطبيق الرئيسية والثانوية ، وليس رمز الإصدار.
- تتم إعادة تمكين التحذيرات تلقائيًا عند تثبيت تطبيق وحدة تحكم روبوت من موسم FTC جديد.
- يضيف دعمًا لمعاملات I2C على مركز توسيع مركز / التحكم دون تحديد عنوان التسجيل.
- انظر القسم 3 من TI I2C Spec.
- إن استدعاء هذه الأساليب الجديدة عند استخدام أجهزة الروبوتات الحديثة سيؤدي إلى عدم دعم.
- يغير طريقة VuForialocalizer
close()
لتكون عامة. - يضيف دعم نماذج الكشف عن كائنات TensorFlow V2.
- يقلل من غموض اللغة والرسومات الذاتية.
- يحذر OnBotjava الآن من الكتابة فوق الملف غير المقصود.
- يحسن سلوك شريط Wi-Fi ومحدد القناة على صفحة الويب إدارة.
إصلاحات الشوائب
- يعمل على إصلاح تطبيق وحدة تحكم الروبوت على Android 9+ عندما تتصل محطة برنامج التشغيل.
- إصلاحات الإصلاح حيث كان OPMode مسؤولاً عن استدعاء إيقاف التشغيل على TensorFlow TfobjectDetector. الآن يتم ذلك تلقائيًا.
- يعمل على إصلاح كتل تهيئة Vuforia للسماح للمستخدم باختيار AxesSorder. تم تحديث الكتل ذات الصلة عينة من أوبات.
- إصلاحات ftcrobotcontroller العدد رقم 114 LED وفئة Java لا تعمل.
- إصلاحات تطابق التسجيل لأوسع Opmodes التي تحتوي على أحرف خاصة في أسمائها.
- تصدر محطة Driver Station Opmode التي تصبح غير مستجيبة إذا تم تعيين محطة السائق على تخطيط المناظر الطبيعية وتم تشغيل بناء Onbotjava أثناء تشغيل رمز Opmode.
- يعمل على إصلاح تطبيق محطة السائق الذي يغلق نفسه عند تبديله ، أو يتم إيقاف تشغيل الشاشة.
- إصلاحات "دوامة سوداء من Doom" (Infinite "تكوين رسالة Wi-Fi Direct) على الأجهزة القديمة.
- تحديث تعليق الويكي على صفحة مقدمة OnBotjava.
الإصدار 6.2 (20210218-074821)
التحسينات
- محاولات لإصلاح الشرط تلقائيًا حيث لا يعمل مركز التوسع الداخلي لمركز التحكم عن طريق إعادة صياغة البرامج الثابتة الخاصة به
- يقوم بإجراء تحسينات مختلفة على شاشة الاقتران المباشر Wi-Fi ، خاصة في وضع المناظر الطبيعية
- يجعل خدمة وحدة التحكم في الروبوت لا يتم إعادة تشغيلها بشكل قاطع عند إحضار النشاط الرئيسي إلى المقدمة
- (على سبيل المثال ، لم تعد الخدمة تم إعادة تشغيلها ببساطة عن طريق عرض شاشة التفتيش الذاتي والضغط على زر العودة)
- لا يزال يتم إعادة تشغيله إذا تم فتح قائمة الإعدادات أو تكوين قائمة الروبوت
إصلاحات الشوائب
- إصلاحات FtCrobotController العدد رقم 71 لا يمكن فتح Opmodes في V6.1 كتل محرر غير متصل بالإنترنت
- إصلاحات FtcrobotController العدد رقم 79 6.1 تؤدي إلى إعادة تشغيل ناعمة على مسرحية Motorola E5
- تصحيح الإصلاحات حيث ستعيد هيئة الرقابة الخاصة بـ OS OS على تشغيل تطبيق وحدة تحكم الروبوت إذا لم يكن مركز التحكم قادرًا على التواصل مع مركز التوسع الداخلي الخاص به
- إصلاح بعض أجهزة i2c لا تظهر في حقول
HardwareMap
المناسبة (مثل hardwareMap.colorSensor
) - إصلاحات الإصلاح عند إجراء إعادة ضبط مصنع Wi-Fi على مركز التحكم لن يقوم بتعيين شريط Wi-Fi إلى 2.4 جيجاهرتز
- تصحيح الإصلاح حيث قد يفشل OnBotjava في إنشاء ملف جديد إذا تم تحديد خيار "إعداد رمز للأجهزة المكونة"
- إصلاح المشكلة عند إجراء عمليات معينة بعد حوادث OPMode من شأن
- تصحيح الإصلاحات حيث لن يعمل مركز تحكم مع مركز توسيع متصل بـ USB المكون إذا كان مركز التوسع مفقودًا عند بدء التشغيل
- يعمل على إصلاح المشكلات المحتملة الناتجة عن وجود إصدارات البرامج الثابتة لمركز التحكم/التوسع غير المتطابق
- إصلاحات FTC_APP إصدار 673 يتم حذف أحدث طابقات Matchlog بدلاً من القديم بواسطة Robotlog
- إصلاح ConceptVuforiArialGoAlnavigationWebCam عينة Opmode عن طريق توجيه الكاميرا بشكل صحيح على الروبوت.
- إصلاحات الإصلاحات حيث سيتم مرسوم Logcat مع مقاطعات المقاطعات عند طلب الإيقاف من محطة السائق (تم تقديم هذا السلوك بطريق الخطأ في V5.3). هذا التغيير ليس له تأثير على الوظيفة.
- إصلاح المشكلة حيث يفشل محرر الكتل في التحميل إذا كان اسم أي عود OPMode يحتوي على علامة اقتصادية.
الإصدار 6.1 (20201209-113742)
- يجعل زر المسح الضوئي على شاشة التكوين تحديث قائمة مراكز التوسع المتصلة عبر RS-485
- إصلاحات Skystone إصدار رقم 143
- يحسن توافق واجهة الويب مع إصدارات WebView الخاصة بالمتصفح الأقدم ونظام Android.
- إصلاحات في برنامج تشغيل UVC حيث بعض الكاميرات (مثل بعض Lifecams) التي أبلغت عن فترات الإطار كقيم مدورة بدلاً من القيم المقطوعة (على سبيل المثال
666667*100ns
بدلاً من 666666*100ns
لـ 15 إطارًا في الثانية) ، فإنها تفشل في البدء. - يضيف الدعم في برنامج تشغيل UVC للتحكم الافتراضي PTZ
- يضيف الدعم في برنامج تشغيل UVC للتحكم في المكاسب (ISO)
- يضيف الدعم في برنامج تشغيل UVC لتمكين/تعطيل أولوية AE. يوفر هذا الإعداد وسيلة لإخبار البرامج الثابتة للكاميرا أيضًا
- أ) يمكن أن يدوم معدل الإطارات المطلوبة من أجل توفير صورة أفضل من الناحية النظرية (أي مع التعرض الأطول من فترة الإطار المعتاد لمعدل الإطار المحدد)
- ب) يجب أن تلبي الموعد النهائي بين الإطار لمعدل الإطارات المحدد ، حتى لو كانت الصورة قد تم تعويضها كنتيجة لذلك
- يضيف الدعم لمركز التحكم OS 1.1.2 روبوت وحدة تحكم روبوت
- سيتم إعادة تشغيل تطبيق وحدة تحكم الروبوت إذا توقف عن الاستجابة لأكثر من 10 ثوانٍ
- يضيف دعمًا لاستخدام تطبيق محطة برنامج التشغيل على Android 10+
- يقدم ميزة انتخاب التمهيدي التلقائي التلقائي
- للحصول على التفاصيل ودليل الاستخدام ، يرجى الاطلاع على إدخال الويكي هذا
- يظهر أيقونة بجوار اسم OpMode في قائمة منسدلة قائمة OpMode على محطة برنامج التشغيل للإشارة إلى مصدر OPMode (أي أداة البرمجة المستخدمة لإنشائها)
- تصحيح الإصلاح حيث سيخرج تطبيق محطة السائق بعد عرض شاشة تكوين Wi-Fi المباشر
- إصلاح الكتل ومطالبات OnBotjava عند الوصول إليها عبر عميل أجهزة Rev
الإصدار 6.0 (20200921-085816)
ملاحظات هامة
- الإصدار 6.0 هو الإصدار لموسم المرمى النهائي.
- يتطلب Android Studio 4.0.
- يحتاج مستخدمو Android Studio إلى الاتصال بالإنترنت في المرة الأولى التي يقومون فيها ببناء التطبيق (من أجل تنزيل الحزم المطلوبة للبناء).
- كان الإصدار 5.5 كبيرًا في غير موسمها ، أغسطس 2020 ، Drop. يجدر مراجعة ملاحظات الإصدار أدناه أيضًا.
- لن يعمل الإصدار 5.5 وأعظم على هواتف Android 4.x و 5.x الأقدم. يجب على المستخدمين الترقية إلى جهاز Android 6.x معتمد أو أحدث.
- تم إعادة قيم PIDF الافتراضية لمحركات Rev إلى قيم PID الافتراضية التي تم استخدامها في موسم 2018-2019
- تم إجراء هذا التغيير لأن قيم 2018-2019 تحولت إلى العمل بشكل أفضل للعديد من الآليات
- هذا يجلب سلوك المحركات القس بما يتماشى مع سلوك جميع المحركات الأخرى
- إذا كنت تفضل سلوك موسم 2019-2020 لـ Rev Motors ، فإليك قيم PIDF الموجودة في مكانها ، بحيث يمكنك ضبطها يدويًا في Opmodes:
HD HEX Motors (جميع علب التروس): القيم PIDF السرعة: P = 1.17
، I = 0.117
، F = 11.7
الموضع القيم PIDF: P = 5.0
محرك سداسي سداسي: VELOCITY PIDF القيم: P = 4.96
، I = 0.496
، F = 49.6
موضع قيم PIDF: P = 5.0
ميزات جديدة
- يتضمن نموذج استنتاج TensorFlow وعينة Opmodes للكشف عن مداخن المبتدئين في نهاية المطاف (أربع حلقات مقابل مكدس الحلقة الفردية).
- يتضمن Vuforia أهداف رؤية الهدف النهائي وعينة أوصود.
- يقدم ميزة التكبير الرقمي للكشف عن كائن TensorFlow (للكشف عن الكائنات بشكل أكثر دقة على مسافات أكبر).
- يضيف إدخال التكوين لمحرك HD HD ULTRAPLANETARY
التحسينات
- يضيف طرق setGain () و getGain () إلى واجهة NormalizedColorSensor
- من خلال تحديد كسب مستشعر الألوان ، يمكنك ضبط ظروف الإضاءة المختلفة. على سبيل المثال ، إذا اكتشفت قيم الألوان المنخفضة مما كان متوقعًا ، فيمكنك زيادة الكسب.
- يتم تطبيق قيمة الكسب فقط على طرق ArgB () و getNormalizedColors () ، وليس على طرق اللون الخام. يوصى باستخدام طريقة getNormalizedColors () لسهولة الاستخدام والوضوح ، حيث يجب تحويل ArgB ().
- تحديث عينة java sensorcolor لإظهار استخدام الكسب
- دمج عينة java sensorrevcolordistance في عينة java ذات اللون ، والتي تعرض أفضل الممارسات لجميع أجهزة استشعار الألوان
- يحسن استرداد القيم من مستشعر اللون v3
- يقوم بتحديث حساب تطبيع قنوات RGB
- يحسن حساب قناة ألفا (يمكن استخدامه كمؤشر سطوع شامل)
- يعمل على إصلاح دقة المستشعر الافتراضية ، والتي تسببت في مشاكل مع البيئات المشرقة
- يضيف دعمًا لتغيير معدل الدقة وقياس شريحة مستشعر Broadcom
- يزيل قراءات وحسابات الأشعة تحت الحمراء غير المقصودة لرقاقة مستشعر برودكوم
إصلاحات الشوائب
- يحسن موثوقية تهيئة BNO0555IMU IMU لمنع فشل التهيئة العشوائية (التي تتجلى في
Problem with 'imu'
).
الإصدار 5.5 (20200824-090813)
الإصدار 5.5 يتطلب Android Studio 4.0 أو الأحدث.
ميزات جديدة
- يضيف دعمًا لاتصال فصول Java المخصصة من Opmodes الكتل (إصلاحات Skystone Issue #161).
- يجب أن تكون الفصول في حزمة org.firstins.ftc.teamcode.
- للحصول على سهولة الوصول إلى OPMode و Hardwaremap و Techlemeter و GamePad1 و GamePad2 ، يمكن أن تمتد الفصول الدراسية.
- يجب أن تكون الأساليب ثابتة عامة وليس لديها أكثر من 21 معلمة.
- يجب أن تكون الأساليب شرحًا باستخدام org.firstins.ftc.robotcore.external.exporttoBlocks.
- يتم دعم المعلمات التي تم إعلانها باسم OPMode و LineAropMode و Healemetry و Hardwaremap ويتم توفير الوسيطة تلقائيًا ، بغض النظر عن ترتيب المعلمات. على الكتلة ، يتم ملء مآخذ هذه المعلمات تلقائيًا.
- ستقبل المعلمات المعلنة باسم char أو java.lang.character أي كتلة تُرجع النص وستستخدم فقط الحرف الأول في النص.
- المعلمات التي تم الإعلان عنها على أنها منطقية أو java.lang.boolean ستقبل أي كتلة تعيد منطقية.
- المعلمات التي تم إعلانها باسم Byte ، Java.lang.byte ، Short ، Java.lang.short ، int ، java.lang.integer ، long ، أو java.lang.long ، سوف يقبل أي كتلة تُرجع رقمًا وسوف تدور حول هذه القيمة إلى أقرب رقم كامل.
- المعلمات التي تم إعلانها باسم Float ، java.lang.float ، double ، java.lang.double ستقبل أي كتلة تُرجع رقمًا.
- يضيف طريقة واجهة برمجة تطبيقات القياس عن بعد لإعداد تنسيق العرض
- كلاسيكي
- Monospace
- HTML (بعض العلامات فقط)
- يضيف دعم الكتل لتبديل الكاميرات.
- يضيف دعم الكتل للكشف عن كائن TensorFlow مع نموذج مخصص.
- يضيف دعمًا لتحميل نموذج اكتشاف كائن TensorFlow المخصص في صفحة إدارة ، وهو مفيد بشكل خاص للكتل ومستخدمي OnBotjava.
- يعرض رموز وميض محور التحكم الجديد عند تبديل نطاق Wi-Fi باستخدام زر التحكم في Hub (ممكن فقط على مركز التحكم OS 1.1.2)
- يضيف تحذيرات جديدة يمكن تعطيلها في إعدادات RC المتقدمة
- تحذير إصدارات التطبيق غير متطابقة
- تحذير غير ضروري 2.4 جيجا هرتز Wi-Fi تحذير
- تقوم Rev Hub بتشغيل البرامج الثابتة القديمة (أقدم من الإصدار 1.8.2)
- يضيف دعمًا لـ Sony PS4 Gamepad ، ويعيد صياغة كيفية عمل ألعاب الألعاب على محطة السائقين
- يزيل التفضيل الذي يعين نوع GamePad استنادًا إلى موضع السائق. تم استبداله بالقائمة التي تسمح بتحديد النوع لألعاب الألعاب مع VID غير معروف و PID
- محاولات لاكتشاف Gamepad Type استنادًا إلى USB VID و PID
- إذا لم يكن Gamepad Vid و PID معروفًا ، فاستخدم النوع المحدد من قبل المستخدم لهذا vid و pid
- إذا لم يكن Gamepad Vid و PID معروفًا ولم يحدد المستخدم نوعًا لهذا vid و pid ، فسيتم تصنيع تخمين متعلم حول كيفية تعيين لوحة الألعاب
- ستحاول محطة السائق الآن التعافي تلقائيًا من فصل ألعاب الألعاب ، وإعادة تعيينها في الموضع الذي تم تعيينه إليه عندما تم إسقاطه
- إذا تم تعيين لوحة لعب واحدة فقط وتسقط: يمكن استردادها
- إذا تم تعيين اثنين من ألعاب الألعاب ، ولديها توقيعات VID/PID مختلفة ، وسقطات واحدة فقط: سيتم استردادها
- إذا تم تعيين اثنين من ألعاب الألعاب ، ولديها توقيعات VID/PID مختلفة ، وكلاهما سيتم استردادهما: كلاهما سيتم استردادهما
- إذا تم تعيين اثنين من ألعاب الألعاب ، ولديها نفس توقيعات VID/PID ، وسقطات واحدة فقط: سيتم استردادها
- إذا تم تعيين اثنين من ألعاب الألعاب ، ولديها نفس توقيعات VID/PID ، وكلاهما ستراجع: لن يتم استرداد أي منهما ، بسبب غموض ألعاب الألعاب عند ظهورها على حافلة USB.
- يوجد حاليًا حالة واحدة معروفة: إذا كان هناك اثنان من ألعاب الألعاب ذات توقيع VID/PID نفسه موصوف ، ولكن يتم تعيين واحد فقط ، وكلاهما ينخفض ، فهو فرصة 50-50 سيتم اختيار واحد منها للاسترداد التلقائي إلى الموضع المعين: يتم تحديده من خلال أي شخص يتم إعادة تنشيطه أولاً بواسطة وحدة تحكم حافلة USB.
- يضيف واجهة مستخدم المناظر الطبيعية إلى محطة برنامج التشغيل
- ميزة جديدة: توقيت التدريب مع إشارات الصوت
- ميزة جديدة (مركز التحكم فقط): مؤشر قوة اتصال الشبكة اللاسلكي (0-5 أشرطة)
- ميزة جديدة (مركز التحكم فقط): سيتم تحويل النقر على عرض Ping/Channel إلى شاشة بديلة تُظهر Radio RX DBM وسرعة الارتباط (انقر مرة أخرى للتبديل)
- لن يخطط التصميم التلقائي. يمكنك تبديل التصميم من قائمة إعدادات محطة السائق.
كسر التغييرات
- يزيل دعم إصدارات Android من 4.4 إلى 5.1 (KitKat و Lollipop). minsdkversion هو الآن 23.
- يزيل أساليب
LinearOpMode
التي تم إهمالها waitOneFullHardwareCycle()
و waitForNextHardwareCycle()
التحسينات
- يعالج عنوان RS485 لمركز التحكم تلقائيًا
- يتم تلقائيا محور التحكم عناوين محجوزة
- سوف تستمر ملفات التكوين الحالية في العمل
- لا تزال جميع العناوين في حدود 1-10 متاحة لمحاور التوسع
- عادة ما يكون ضوء مركز التحكم خضراء صلبة ، دون يومض للإشارة إلى العنوان
- لن يتم عرض مركز التحكم على صفحة إعدادات تغيير عنوان مركز التوسع
- يحسن محدث البرامج الثابتة لـ Rev Hub
- يمكن للمستخدم الآن الاختيار بين جميع ملفات تحديث البرامج الثابتة المتاحة
- الإصدار 1.8.2 من البرامج الثابتة لـ Rev Hub يتم تجميعها في تطبيق Robot Controller.
- تمت إضافة النص لتوضيح أنه لا يمكن تحديث مراكز التوسع إلا عبر USB.
- تم تقليل سرعة تحديث البرامج الثابتة لتحسين الموثوقية
- يسمح بتحديث البرامج الثابتة لـ Rev Hub مباشرة من صفحة الويب
- يحسن عارض السجل على وحدة تحكم الروبوت
- دعم التمرير الأفقي (لم تعد كلمة ملفوفة)
- يدعم قرصة إلى Zoom
- يستخدم خطًا أحاديًا
- يتم تمييز رسائل الخطأ
- نظام ألوان جديد
- محاولات لإجبار Opmode الهارب/عالق دون إعادة تشغيل التطبيق بأكمله
- ليست كل أنواع الظروف الهاربة قابلة للتوقف ، ولكن إذا حاول رمز المستخدم التحدث إلى الأجهزة أثناء الهارب ، فيجب أن يكون النظام قادرًا على التقاطها.
- يجعل العديد من التعديلات على شاشة التفتيش الذاتي
- إعادة تسمية "إصدار OS" إلى "إصدار Android"
- إعادة تسمية "Wi-Fi Direct Name" إلى "Wi-Fi Name"
- يضيف إصدار OS Control Hub ، عند عرض تقرير مركز التحكم
- يخفي إدخال وضع الطائرة ، عند عرض تقرير مركز التحكم
- يزيل التحقق من تغيير قناة ZTE Speed Channel
- يعرض إصدار البرامج الثابتة لجميع مراكز التوسع والتحكم
- إعادة صياغة إعدادات شبكة الشبكة من صفحة إدارة
- يتم الآن تطبيق جميع إعدادات الشبكة بنقرة واحدة
- يمكن الآن تغيير قناة Wi-Fi Direct Direct من وحدات تحكم الروبوت المستندة إلى الهاتف من صفحة إدارة
- يتم ترشيح قنوات Wi-Fi بواسطة النطاق (2.4 مقابل 5 جيجا هرتز) وما إذا كانت تتداخل مع قنوات أخرى
- يتم تحديد قناة Wi-Fi الحالية مسبقًا على وحدات التحكم الروبوت المستندة إلى الهاتف ، وتحكم مراكز التحكم في تشغيل OS 1.1.2 أو أحدث.
- في مراكات التحكم التي تعمل على تشغيل OS 1.1.2 أو أحدث ، يمكنك اختيار الحصول على النظام تلقائيًا تحديد قناة على نطاق 5 جيجاهرتز
- يحسن onbotjava
- سمات الضوء والظلام الجديدة تحل محل المواضيع القديمة (الفوضى ، جيثب ، كروم ، ...)
- السمة الافتراضية الجديدة
light
وسيتم استخدامها عند التحديث لأول مرة إلى هذا الإصدار
- OnBotjava لديه الآن محرر babbed
- وضع القراءة فقط في وضع عدم الاتصال
- يحسن وظيفة عنصر قائمة "الخروج" على وحدة تحكم الروبوت ومحطة السائق
- الآن مضمون أن يتم إيقافه بالكامل وتفريغه من الذاكرة
- يعرض رسالة تحذير إذا كان هناك خطي learopmode موجود قبل الأوان بسبب الفشل في مراقبة حالة البدء
- يحسن رسالة الخطأ الموضحة عندما تكون محطة السائق ووحدة التحكم الروبوت غير متوافقة مع بعضها البعض
- لوحة التحكم Opmode محطة السائق معطل الآن أثناء قيام روبوت إعادة التشغيل في التقدم
- يعطل الإعدادات المتقدمة المتعلقة بـ Wi-Fi Direct عندما تكون وحدة تحكم الروبوت مركز تحكم.
- رموز بطارية الهاتف Tint على محطة السائق عندما تكون منخفضة/حرجة.
- يستخدم أسماء "بوابة HUB Control" و "Control Hub" (عند الاقتضاء) في ملفات التكوين الجديدة
- تحسين أداء قراءة I2C
- تحسن كبير جدا على مركز التحكم ؛ ما يصل إلى ~ 2x أسرع مع بقراءة صغيرة (مثل 6 بايت)
- ليس واضحًا في مراكز التوسع المتصلة بالهاتف
- تحديث/تحديث البنية التحتية
- تحديث إلى مكتبة دعم "Androidx" من "com.android.support: appcompat" ، وهو نهاية الحياة
- تحديث TargetSdKversion و compilesDkversion إلى 28
- تحديث البرنامج المساعد Android Studio's Android إلى الأحدث
- Fix تم الإبلاغ عن Timestamp في شاشة "حول"
- أضف عينة توضيح كاميرا الويب اليدوية استخدام: ConceptWebCam
إصلاحات الشوائب
- إصلاحات Skystone إصدار رقم 248
- إصلاحات Skystone إصدار رقم 232 وتعديل دلالات التخزين المؤقت بالجملة للسماح بحفاظ على التحولات اليدوية/التلقائية.
- يحسن الأداء عندما يتم فصل مستشعر المسافة 2M.
- يحسن قابلية قراءة الرسائل الخبز المحمص على أجهزة معينة
- يسمح لمحطة السائق بالاتصال بوحدة تحكم روبوت بعد فصل آخر
- يحسن توليد الأرقام التسلسلية المزيفة لكاميرات UVC التي لا توفر رقمًا تسلسليًا حقيقيًا
- في السابق ، ستقوم بعض الأجهزة بتعيين مثل هذه الكاميرات مسلسلًا من
0:0
وتفشل في فتح وبدء البث - إصلاحات FTC_APP مشكلة #638.
- يعمل على إصلاح عدد كبير من الأخطاء مع شاشة كاميرا Vuforia بما في ذلك:
- إصلاح الخلل حيث يمكن عرض المعاينة مع نسبة العرض إلى الارتفاع متزعزع
- إصلاح الخلل حيث يمكن قطع المعاينة في المناظر الطبيعية
- إصلاح الخلل حيث تم إفساد المعاينة تمامًا عند تدوير الهاتف
- إصلاح الخلل حيث يمكن أن ينجرف Crosshair عن الهدف عند استخدام كاميرات الويب
- تصحيح الإصلاحات في برنامج تشغيل UVC على بعض الأجهزة (FTC_APP 681) إذا تم بدء/إيقاف التدفق عدة مرات على التوالي
- تجلى القضية كذعر kernel على الأجهزة التي لا تحتوي على رقعة kernel.
- على الأجهزة المتأثرة التي لديها التصحيح ، كانت المشكلة واضحة مجرد فشل في البدء.
- يعتقد فريق التكنولوجيا أن السبب الجذري لهذه القضية هو خطأ في برنامج تشغيل Linux kernel XHCI. تم تنفيذ حل بديل في برنامج تشغيل SDK UVC.
- إصلاح الخلل في برنامج تشغيل UVC حيث يتم إسقاط نصف الإطارات من الكاميرا في كثير من الأحيان (على سبيل المثال ، تم تسليم 15 إطارًا في الثانية فقط أثناء جلسة دفق تم تكوينها مقابل 30 إطارًا في الثانية).
- إصلاحات الإصلاح حيث سيظهر اكتشاف كائنات TensorFlow نتائج كانت ثقتها أقل من الحد الأدنى من المعلمة الثقة.
- إصلاح مشكلة استغلال محتملة من CVE-2019-11358 في Onbotjava
- إصلاح تغيير عنوان مركز التوسع مع مراكز توسيع إضافية متصلة به
- يحافظ على اتصال شبكة مركز التحكم عند تحديد "إعادة تشغيل الروبوت"
- تصحيح الإصلاحات حيث ستفشل فحوصات الجهاز أثناء إعادة تشغيل الروبوت
- إصلاح الاستخدام Renderscript
- استخدم AndroidX.Renderscript المتغير: زيادة التوافق
- استخدم Renderscript في وضع Java ، وليس الأصلي: تبسيط البناء
- إصلاح مشكلة تحويل كاميرا الويب-إطار إلى bitmap: لم يتم تهيئة قناة ألفا ، فقط R ، G ، & B
- يعمل على إصلاح الفائض الحسابي المحتمل في الموعد النهائي
- يعمل على إصلاح Deadlock في دعم كاميرا الويب Vuforia والذي قد يتسبب في تأخيرات مدتها 5 ثوان عند إيقاف OpMode
الإصدار 5.4 (20200108-101156)
- إصلاحات Skystone إصدار رقم 88
- يضيف عنصر التفتيش الذي يلاحظه عند استخدام وحدة تحكم الروبوت (مركز التحكم) كلمة المرور الافتراضية للمصنع.
- إصلاحات Skystone إصدار رقم 61
- إصلاحات Skystone إصدار رقم 142
- إصلاحات FTC_APP مشكلة #417 عن طريق إضافة المزيد من إمكانات مراقبة الجهد والجهد لمحاور Rev.
- يعمل على إصلاح حادث تصادم في بعض الأحيان بسبب نشاط Onbotjava
- يحسن وظيفة OnBotjava AutoSave Ftc_app #738
- إصلاح قضية استجابة النظام عند فصل مركز التوسع
- إصلاح المشكلة حيث يمكن أن تمنع تهيئة IMU Opmodes من التوقف
- إصلاح المشكلة حيث ستفشل AndroidTextTospeech.speak () إذا كان يطلق عليه مبكرًا جدًا
- يضيف طرق وكتل Telemetry.speak () ، والتي تسبب محطة السائق (إذا تم تحديث
- يضيف ويحسن التحذيرات المتعلقة بمركز التوسع
- يحسن تحذير محور التوسع المنخفض البطارية
- يعرض التحذير مباشرة بعد الإبلاغ عن المحور
- يحدد ما إذا كانت الحالة حالية أو تحدث مؤقتًا أثناء تشغيل OpMode
- تعرض المراكز التي أبلغت عن انخفاض البطارية
- يعرض تحذير عندما يخسر Hub ويستعيد الطاقة أثناء تشغيل Opmode
- يعمل على إصلاح نمط LED للمركز بعد هذا الشرط
- يعرض التحذير عندما لا يستجيب مركز التوسع للأوامر
- يحدد ما إذا كانت الحالة حالية أو تحدث مؤقتًا أثناء تشغيل OpMode
- يوضح التحذير عندما لا يكون مركز التوسع موجودًا عند بدء التشغيل
- يحدد أن هذا الشرط يتطلب إعادة تشغيل الروبوت قبل استخدام المحور.
- سيعكس ضوء المحور الآن هذه الحالة بدقة
- يحسن التسجيل ويقلل من سجل البريد العشوائي خلال هذه الظروف
- مزامنة محور التحكم في الوقت والمنطقة الزمنية مع متصفح الويب المتصل ببرمجة الروبوت ، إذا لم تكن محطة السائق متوفرة.
- يضيف وظائف القراءة بالجملة لمحاور Rev
- يجب تعيين وضع التخزين المؤقت بالجملة على مستوى المحور مع
LynxModule#setBulkCachingMode()
. ينطبق هذا على جميع فئات الأجهزة SDK ذات الصلة التي تشير إلى هذا المحور. - تتوفر أوضاع التخزين المؤقت بالجملة التالية:
-
BulkCachingMode.OFF
(افتراضي): تعمل جميع مكالمات الأجهزة كالمعتاد. يمكن أن تقرأ البيانات بالجملة من خلال LynxModule#getBulkData()
ومعالجتها يدويًا. -
BulkCachingMode.AUTO
: يتم تقديم مكالمات الأجهزة المعمول بها من ذاكرة التخزين المؤقت القراءة بالجملة التي تم مسحها/تحديثها تلقائيًا لضمان عدم ضرب أوامر متطابقة نفس ذاكرة التخزين المؤقت. يمكن أيضًا مسح ذاكرة التخزين المؤقت يدويًا باستخدام LynxModule#clearBulkCache()
، على الرغم من أنه لا ينصح به. - (المستخدمين المتقدمون)
BulkCachingMode.MANUAL
: مثل BulkCachingMode.AUTO
باستثناء ذاكرة التخزين المؤقت أبدًا لم يتم مسحها تلقائيًا. To avoid getting stale data, the cache must be manually cleared at the beginning of each loop body or as the user deems appropriate.
- Removes PIDF Annotation values added in Rev 5.3 (to AndyMark, goBILDA and TETRIX motor configurations).
- The new motor types will still be available but their Default control behavior will revert back to Rev 5.2
- Adds new
ConceptMotorBulkRead
sample Opmode to demonstrate and compare Motor Bulk-Read modes for reducing I/O latencies.
Version 5.3 (20191004-112306)
- Fixes external USB/UVC webcam support
- Makes various bugfixes and improvements to Blocks page, including but not limited to:
- Many visual tweaks
- Browser zoom and window resize behave better
- Resizing the Java preview pane works better and more consistently across browsers
- The Java preview pane consistently gets scrollbars when needed
- The Java preview pane is hidden by default on phones
- Internet Explorer 11 should work
- Large dropdown lists display properly on lower res screens
- Disabled buttons are now visually identifiable as disabled
- A warning is shown if a user selects a TFOD sample, but their device is not compatible
- Warning messages in a Blocks OpMode are now visible by default.
- Adds goBILDA 5201 and 5202 motors to Robot Configurator
- Adds PIDF Annotation values to AndyMark, goBILDA and TETRIX motor configurations. This has the effect of causing the RUN_USING_ENCODERS and RUN_TO_POSITION modes to use PIDF vs PID closed loop control on these motors. This should provide more responsive, yet stable, speed control. PIDF adds Feedforward control to the basic PID control loop. Feedforward is useful when controlling a motor's speed because it "anticipates" how much the control voltage must change to achieve a new speed set-point, rather than requiring the integrated error to change sufficiently. The PIDF values were chosen to provide responsive, yet stable, speed control on a lightly loaded motor. The more heavily a motor is loaded (drag or friction), the more noticable the PIDF improvement will be.
- Fixes startup crash on Android 10
- Fixes ftc_app issue #712 (thanks to FROGbots-4634)
- Fixes ftc_app issue #542
- Allows "A" and lowercase letters when naming device through RC and DS apps.
Version 5.2 (20190905-083277)
- Fixes extra-wide margins on settings activities, and placement of the new configuration button
- Adds Skystone Vuforia image target data.
- Includes sample Skystone Vuforia Navigation OpModes (Java).
- Includes sample Skystone Vuforia Navigation OpModes (Blocks).
- Adds TensorFlow inference model (.tflite) for Skystone game elements.
- Includes sample Skystone TensorFlow OpModes (Java).
- Includes sample Skystone TensorFlow OpModes (Blocks).
- Removes older (season-specific) sample OpModes.
- Includes 64-bit support (to comply with Google Play requirements).
- Protects against Stuck OpModes when a Restart Robot is requested. (Thanks to FROGbots-4634) (ftc_app issue #709)
- Blocks related changes:
- Fixes bug with blocks generated code when hardware device name is a java or javascript reserved word.
- Shows generated java code for blocks, even when hardware items are missing from the active configuration.
- Displays warning icon when outdated Vuforia and TensorFlow blocks are used (SkyStone issue #27)
Version 5.1 (20190820-222104)
- Defines default PIDF parameters for the following motors:
- REV Core Hex Motor
- REV 20:1 HD Hex Motor
- REV 40:1 HD Hex Motor
- Adds back button when running on a device without a system back button (such as a Control Hub)
- Allows a REV Control Hub to update the firmware on a REV Expansion Hub via USB
- Fixes SkyStone issue #9
- Fixes ftc_app issue #715
- Prevents extra DS User clicks by filtering based on current state.
- Prevents incorrect DS UI state changes when receiving new OpMode list from RC
- Adds support for REV Color Sensor V3
- Adds a manual-refresh DS Camera Stream for remotely viewing RC camera frames.
- To show the stream on the DS, initialize but do not run a stream-enabled opmode, select the Camera Stream option in the DS menu, and tap the image to refresh. This feature is automatically enabled when using Vuforia or TFOD—no additional RC configuration is required for typical use cases. To hide the stream, select the same menu item again.
- Note that gamepads are disabled and the selected opmode cannot be started while the stream is open as a safety precaution.
- To use custom streams, consult the API docs for
CameraStreamServer#setSource
and CameraStreamSource
.
- Adds many Star Wars sounds to RobotController resources.
- Added Skystone Sounds Chooser Sample Program.
- Switches out startup, connect chimes, and error/warning sounds for Star Wars sounds
- Updates OnBot Java to use a WebSocket for communication with the robot
- The OnBot Java page no longer has to do a full refresh when a user switches from editing one file to another
Known issues:
- Camera Stream
- The Vuforia camera stream inherits the issues present in the phone preview (namely ftc_app issue #574). This problem does not affect the TFOD camera stream even though it receives frames from Vuforia.
- The orientation of the stream frames may not always match the phone preview. For now, these frames may be rotated manually via a custom
CameraStreamSource
if desired.
- OnBotJava
- Browser back button may not always work correctly
- It's possible for a build to be queued, but not started. The OnBot Java build console will display a warning if this occurs.
- A user might not realize they are editing a different file if the user inadvertently switches from one file to another since this switch is now seamless. The name of the currently open file is displayed in the browser tab.
Version 5.0 (built on 19.06.14)
- Support for the REV Robotics Control Hub.
- Adds a Java preview pane to the Blocks editor.
- Adds a new offline export feature to the Blocks editor.
- Display Wi-Fi channel in Network circle on Driver Station.
- Adds calibration for Logitech C270
- Updates build tooling and target SDK.
- Compliance with Google's permissions infrastructure (Required after build tooling update).
- Keep Alives to mitigate the Motorola Wi-Fi scanning problem. Telemetry substitute no longer necessary.
- Improves Vuforia error reporting.
- Fixes ftctechnh/ftc_app issues 621, 713.
- Miscellaneous bug fixes and improvements.
Version 4.3 (built on 18.10.31)
- Includes missing TensorFlow-related libraries and files.
Version 4.2 (built on 18.10.30)
- Includes fix to avoid deadlock situation with WatchdogMonitor which could result in USB communication errors.
- Comm error appeared to require that user disconnect USB cable and restart the Robot Controller app to recover.
- robotControllerLog.txt would have error messages that included the words "E RobotCore: lynx xmit lock: #### abandoning lock:"
- Includes fix to correctly list the parent module address for a REV Robotics Expansion Hub in a configuration (.xml) file.
- Bug in versions 4.0 and 4.1 would incorrect list the address module for a parent REV Robotics device as "1".
- If the parent module had a higher address value than the daisy-chained module, then this bug would prevent the Robot Controller from communicating with the downstream Expansion Hub.
- Added requirement for ACCESS_COARSE_LOCATION to allow a Driver Station running Android Oreo to scan for Wi-Fi Direct devices.
- Added google() repo to build.gradle because aapt2 must be downloaded from the google() repository beginning with version 3.2 of the Android Gradle Plugin.
- Important Note: Android Studio users will need to be connected to the Internet the first time build the ftc_app project.
- Internet connectivity is required for the first build so the appropriate files can be downloaded from the Google repository.
- Users should not need to be connected to the Internet for subsequent builds.
- This should also fix buid issue where Android Studio would complain that it "Could not find com.android.tools.lint:lint-gradle:26.1.4" (or similar).
- Added support for REV Spark Mini motor controller as part of the configuration menu for a servo/PWM port on the REV Expansion Hub.
- Provide examples for playing audio files in an OpMode.
- Block Development Tool Changes
- Includes a fix for a problem with the Velocity blocks that were reported in the FTC Technology forum (Blocks Programming subforum).
- Change the "Save completed successfully." message to a white color so it will contrast with a green background.
- Fixed the "Download image" feature so it will work if there are text blocks in the OpMode.
- Introduce support for Google's TensorFlow Lite technology for object detetion for 2018-2019 game.
- TensorFlow lite can recognize Gold Mineral and Silver Mineral from 2018-2019 game.
- Example Java and Block OpModes are included to show how to determine the relative position of the gold block (left, center, right).
Version 4.1 (released on 18.09.24)
تشمل التغييرات ما يلي:
- Fix to prevent crash when deprecated configuration annotations are used.
- Change to allow FTC Robot Controller APK to be auto-updated using FIRST Global Control Hub update scripts.
- Removed samples for non supported / non legal hardware.
- Improvements to Telemetry.addData block with "text" socket.
- Updated Blocks sample OpMode list to include Rover Ruckus Vuforia example.
- Update SDK library version number.
Version 4.0 (released on 18.09.12)
تشمل التغييرات ما يلي:
Initial support for UVC compatible cameras
- If UVC camera has a unique serial number, RC will detect and enumerate by serial number.
- If UVC camera lacks a unique serial number, RC will only support one camera of that type connected.
- Calibration settings for a few cameras are included (see TeamCode/src/main/res/xml/teamwebcamcalibrations.xml for details).
- User can upload calibration files from Program and Manage web interface.
- UVC cameras seem to draw a fair amount of electrical current from the USB bus.
- This does not appear to present any problems for the REV Robotics Control Hub.
- This does seem to create stability problems when using some cameras with an Android phone-based Robot Controller.
- FTC Tech Team is investigating options to mitigate this issue with the phone-based Robot Controllers.
- Updated sample Vuforia Navigation and VuMark OpModes to demonstrate how to use an internal phone-based camera and an external UVC webcam.
Support for improved motor control.
- REV Robotics Expansion Hub firmware 1.8 and greater will support a feed forward mechanism for closed loop motor control.
- FTC SDK has been modified to support PIDF coefficients (proportional, integral, derivative, and feed forward).
- FTC Blocks development tool modified to include PIDF programming blocks.
- Deprecated older PID-related methods and variables.
- REV's 1.8.x PIDF-related changes provide a more linear and accurate way to control a motor.
لاسلكي
- Added 5GHz support for wireless channel changing for those devices that support it.
- Tested with Moto G5 and E4 phones.
- Also tested with other (currently non-approved) phones such as Samsung Galaxy S8.
Improved Expansion Hub firmware update support in Robot Controller app
- Changes to make the system more robust during the firmware update process (when performed through Robot Controller app).
- User no longer has to disconnect a downstream daisy-chained Expansion Hub when updating an Expansion Hub's firmware.
- If user is updating an Expansion Hub's firmware through a USB connection, he/she does not have to disconnect RS485 connection to other Expansion Hubs.
- The user still must use a USB connection to update an Expansion Hub's firmware.
- The user cannot update the Expansion Hub firmware for a downstream device that is daisy chained through an RS485 connection.
- If an Expansion Hub accidentally gets "bricked" the Robot Controller app is now more likely to recognize the Hub when it scans the USB bus.
- Robot Controller app should be able to detect an Expansion Hub, even if it accidentally was bricked in a previous update attempt.
- Robot Controller app should be able to install the firmware onto the Hub, even if if accidentally was bricked in a previous update attempt.
المرونة
- FTC software can detect and enable an FTDI reset feature that is available with REV Robotics v1.8 Expansion Hub firmware and greater.
- When enabled, the Expansion Hub can detect if it hasn't communicated with the Robot Controller over the FTDI (USB) connection.
- If the Hub hasn't heard from the Robot Controller in a while, it will reset the FTDI connection.
- This action helps system recover from some ESD-induced disruptions.
- Various fixes to improve reliability of FTC software.
كتل
- Fixed errors with string and list indices in blocks export to java.
- Support for USB connected UVC webcams.
- Refactored optimized Blocks Vuforia code to support Rover Ruckus image targets.
- Added programming blocks to support PIDF (proportional, integral, derivative and feed forward) motor control.
- Added formatting options (under Telemetry and Miscellaneous categories) so user can set how many decimal places to display a numerical value.
- Support to play audio files (which are uploaded through Blocks web interface) on Driver Station in addition to the Robot Controller.
- Fixed bug with Download Image of Blocks feature.
- Support for REV Robotics Blinkin LED Controller.
- Support for REV Robotics 2m Distance Sensor.
- Added support for a REV Touch Sensor (no longer have to configure as a generic digital device).
- Added blocks for DcMotorEx methods.
- These are enhanced methods that you can use when supported by the motor controller hardware.
- The REV Robotics Expansion Hub supports these enhanced methods.
- Enhanced methods include methods to get/set motor velocity (in encoder pulses per second), get/set PIDF coefficients, etc..
Modest Improvements in Logging
- Decrease frequency of battery checker voltage statements.
- Removed non-FTC related log statements (wherever possible).
- Introduced a "Match Logging" feature.
- Under "Settings" a user can enable/disable this feature (it's disabled by default).
- If enabled, user provides a "Match Number" through the Driver Station user interface (top of the screen).
- The Match Number is used to create a log file specifically with log statements from that particular OpMode run.
- Match log files are stored in /sdcard/FIRST/matlogs on the Robot Controller.
- Once an OpMode run is complete, the Match Number is cleared.
- This is a convenient way to create a separate match log with statements only related to a specific OpMode run.
New Devices
- Support for REV Robotics Blinkin LED Controller.
- Support for REV Robotics 2m Distance Sensor.
- Added configuration option for REV 20:1 HD Hex Motor.
- Added support for a REV Touch Sensor (no longer have to configure as a generic digital device).
متنوع
- Fixed some errors in the definitions for acceleration and velocity in our javadoc documentation.
- Added ability to play audio files on Driver Station
- When user is configuring an Expansion Hub, the LED on the Expansion Hub will change blink pattern (purple-cyan) to indicate which Hub is currently being configured.
- Renamed I2cSensorType to I2cDeviceType.
- Added an external sample OpMode that demonstrates localization using 2018-2019 (Rover Ruckus presented by QualComm) Vuforia targets.
- Added an external sample OpMode that demonstrates how to use the REV Robotics 2m Laser Distance Sensor.
- Added an external sample OpMode that demonstrates how to use the REV Robotics Blinkin LED Controller.
- Re-categorized external Java sample OpModes to "TeleOp" instead of "Autonomous".
Known issues:
Version 3.6 (built on 17.12.18)
تشمل التغييرات ما يلي:
- Blocks Changes
- Uses updated Google Blockly software to allow users to edit their OpModes on Apple iOS devices (including iPad and iPhone).
- Improvement in Blocks tool to handle corrupt OpMode files.
- Autonomous OpModes should no longer get switched back to tele-op after re-opening them to be edited.
- The system can now detect type mismatches during runtime and alert the user with a message on the Driver Station.
- Updated javadoc documentation for setPower() method to reflect correct range of values (-1 to +1).
- Modified VuforiaLocalizerImpl to allow for user rendering of frames
- Added a user-overrideable onRenderFrame() method which gets called by the class's renderFrame() method.
Version 3.5 (built on 17.10.30)
Changes with version 3.5 include:
- Introduced a fix to prevent random OpMode stops, which can occur after the Robot Controller app has been paused and then resumed (for example, when a user temporarily turns off the display of the Robot Controller phone, and then turns the screen back on).
- Introduced a fix to prevent random OpMode stops, which were previously caused by random peer disconnect events on the Driver Station.
- Fixes issue where log files would be closed on pause of the RC or DS, but not re-opened upon resume.
- Fixes issue with battery handler (voltage) start/stop race.
- Fixes issue where Android Studio generated OpModes would disappear from available list in certain situations.
- Fixes problem where OnBot Java would not build on REV Robotics Control Hub.
- Fixes problem where OnBot Java would not build if the date and time on the Robot Controller device was "rewound" (set to an earlier date/time).
- Improved error message on OnBot Java that occurs when renaming a file fails.
- Removed unneeded resources from android.jar binaries used by OnBot Java to reduce final size of Robot Controller app.
- Added MR_ANALOG_TOUCH_SENSOR block to Blocks Programming Tool.
Version 3.4 (built on 17.09.06)
Changes with version 3.4 include:
- Added telemetry.update() statement for BlankLinearOpMode template.
- Renamed sample Block OpModes to be more consistent with Java samples.
- Added some additional sample Block OpModes.
- Reworded OnBot Java readme slightly.
Version 3.3 (built on 17.09.04)
This version of the software includes improves for the FTC Blocks Programming Tool and the OnBot Java Programming Tool.
Changes with verion 3.3 include:
- Android Studio ftc_app project has been updated to use Gradle Plugin 2.3.3.
- Android Studio ftc_app project is already using gradle 3.5 distribution.
- Robot Controller log has been renamed to /sdcard/RobotControllerLog.txt (note that this change was actually introduced w/ v3.2).
- Improvements in I2C reliability.
- Optimized I2C read for REV Expansion Hub, with v1.7 firmware or greater.
- Updated all external/samples (available through OnBot and in Android project folder).
- Vuforia
- Added support for VuMarks that will be used for the 2017-2018 season game.
- كتل
- Update to latest Google Blockly release.
- Sample OpModes can be selected as a template when creating new OpMode.
- Fixed bug where the blocks would disappear temporarily when mouse button is held down.
- Added blocks for Range.clip and Range.scale.
- User can now disable/enable Block OpModes.
- Fix to prevent occasional Blocks deadlock.
- OnBot Java
- Significant improvements with autocomplete function for OnBot Java editor.
- Sample OpModes can be selected as a template when creating new OpMode.
- Fixes and changes to complete hardware setup feature.
- Updated (and more useful) onBot welcome message.
Known issues:
- أندرويد ستوديو
- After updating to the new v3.3 Android Studio project folder, if you get error messages indicating "InvalidVirtualFileAccessException" then you might need to do a File->Invalidate Caches / Restart to clear the error.
- OnBot Java
- Sometimes when you push the build button to build all OpModes, the RC returns an error message that the build failed. If you press the build button a second time, the build typically suceeds.
Version 3.2 (built on 17.08.02)
This version of the software introduces the "OnBot Java" Development Tool. Similar to the FTC Blocks Development Tool, the FTC OnBot Java Development Tool allows a user to create, edit and build OpModes dynamically using only a Javascript-enabled web browser.
The OnBot Java Development Tool is an integrated development environment (IDE) that is served up by the Robot Controller. OpModes are created and edited using a Javascript-enabled browser (Google Chromse is recommended). OpModes are saved on the Robot Controller Android device directly.
The OnBot Java Development Tool provides a Java programming environment that does NOT need Android Studio.
Changes with version 3.2 include:
Enhanced web-based development tools
- Introduction of OnBot Java Development Tool.
- Web-based programming and management features are "always on" (user no longer needs to put Robot Controller into programming mode).
- Web-based management interface (where user can change Robot Controller name and also easily download Robot Controller log file).
- OnBot Java, Blocks and Management features available from web based interface.
Blocks Programming Development Tool:
- Changed "LynxI2cColorRangeSensor" block to "REV Color/range sensor" block.
- Fixed tooltip for ColorSensor.isLightOn block. Added blocks for ColorSensor.getNormalizedColors and LynxI2cColorRangeSensor.getNormalizedColors.
Added example OpModes for digital touch sensor and REV Robotics Color Distance sensor.
User selectable color themes.
Includes many minor enhancements and fixes (too numerous to list).
Known issues:
- Auto complete function is incomplete and does not support the following (for now):
- Access via this keyword
- Access via super keyword
- Members of the super cloass, not overridden by the class
- Any methods provided in the current class
- Inner classes
- Can't handle casted objects
- Any objects coming from an parenthetically enclosed expression
Version 3.10 (built on 17.05.09)
This version of the software provides support for the REV Robotics Expansion Hub. This version also includes improvements in the USB communication layer in an effort to enhance system resiliency. If you were using a 2.x version of the software previously, updating to version 3.1 requires that you also update your Driver Station software in addition to updating the Robot Controller software.
Also note that in version 3.10 software, the setMaxSpeed and getMaxSpeed methods are no longer available (not deprecated, they have been removed from the SDK). Also note that the new 3.x software incorporates motor profiles that a user can select as he/she configures the robot.
تشمل التغييرات ما يلي:
- Blocks changes
- Added VuforiaTrackableDefaultListener.getPose and Vuforia.trackPose blocks.
- Added optimized blocks support for Vuforia extended tracking.
- Added atan2 block to the math category.
- Added useCompetitionFieldTargetLocations parameter to Vuforia.initialize block. If set to false, the target locations are placed at (0,0,0) with target orientation as specified in https://github.com/gearsincorg/FTCVuforiaDemo/blob/master/Robot_Navigation.java tutorial OpMode.
- Incorporates additional improvements to USB comm layer to improve system resiliency (to recover from a greater number of communication disruptions).
Additional Notes Regarding Version 3.00 (built on 17.04.13)
In addition to the release changes listed below (see section labeled "Version 3.00 (built on 17.04.013)"), version 3.00 has the following important changes:
- Version 3.00 software uses a new version of the FTC Robocol (robot protocol). If you upgrade to v3.0 on the Robot Controller and/or Android Studio side, you must also upgrade the Driver Station software to match the new Robocol.
- Version 3.00 software removes the setMaxSpeed and getMaxSpeed methods from the DcMotor class. If you have an OpMode that formerly used these methods, you will need to remove the references/calls to these methods. Instead, v3.0 provides the max speed information through the use of motor profiles that are selected by the user during robot configuration.
- Version 3.00 software currently does not have a mechanism to disable extra i2c sensors. We hope to re-introduce this function with a release in the near future.
Version 3.00 (built on 17.04.13)
*** Use this version of the software at YOUR OWN RISK!!! ***
This software is being released as an "alpha" version. Use this version at your own risk!
This pre-release software contains SIGNIFICANT changes, including changes to the Wi-Fi Direct pairing mechanism, rewrites of the I2C sensor classes, changes to the USB/FTDI layer, and the introduction of support for the REV Robotics Expansion Hub and the REV Robotics color-range-light sensor. These changes were implemented to improve the reliability and resiliency of the FTC control system.
Please note, however, that version 3.00 is considered "alpha" code. This code is being released so that the FIRST community will have an opportunity to test the new REV Expansion Hub electronics module when it becomes available in May. The developers do not recommend using this code for critical applications (ie, competition use).
*** Use this version of the software at YOUR OWN RISK!!! ***
تشمل التغييرات ما يلي:
- Major rework of sensor-related infrastructure. Includes rewriting sensor classes to implement synchronous I2C communication.
- Fix to reset Autonomous timer back to 30 seconds.
- Implementation of specific motor profiles for approved 12V motors (includes Tetrix, AndyMark, Matrix and REV models).
- Modest improvements to enhance Wi-Fi P2P pairing.
- Fixes telemetry log addition race.
- Publishes all the sources (not just a select few).
- Includes Block programming improvements
- Addition of optimized Vuforia blocks.
- Auto scrollbar to projects and sounds pages.
- Fixed blocks paste bug.
- Blocks execute after while-opModeIsActive loop (to allow for cleanup before exiting OpMode).
- Added gyro integratedZValue block.
- Fixes bug with projects page for Firefox browser.
- Added IsSpeaking block to AndroidTextToSpeech.
- Implements support for the REV Robotics Expansion Hub
- Implements support for integral REV IMU (physically installed on I2C bus 0, uses same Bosch BNO055 9 axis absolute orientation sensor as Adafruit 9DOF abs orientation sensor). - Implements support for REV color/range/light sensor.
- Provides support to update Expansion Hub firmware through FTC SDK.
- Detects REV firmware version and records in log file.
- Includes support for REV Control Hub (note that the REV Control Hub is not yet approved for FTC use).
- Implements FTC Blocks programming support for REV Expansion Hub and sensor hardware.
- Detects and alerts when I2C device disconnect.
Version 2.62 (built on 17.01.07)
- Added null pointer check before calling modeToByte() in finishModeSwitchIfNecessary method for ModernRoboticsUsbDcMotorController class.
- Changes to enhance Modern Robotics USB protocol robustness.
Version 2.61 (released on 16.12.19)
- Blocks Programming mode changes:
- Fix to correct issue when an exception was thrown because an OpticalDistanceSensor object appears twice in the hardware map (the second time as a LightSensor).
Version 2.6 (released on 16.12.16)
- Fixes for Gyro class:
- Improve (decrease) sensor refresh latency.
- fix isCalibrating issues.
- Blocks Programming mode changes:
- Blocks now ignores a device in the configuration xml if the name is empty. Other devices work in configuration work fine.
Version 2.5 (internal release on released on 16.12.13)
- Blocks Programming mode changes:
- Added blocks support for AdafruitBNO055IMU.
- Added Download OpMode button to FtcBocks.html.
- Added support for copying blocks in one OpMode and pasting them in an other OpMode. The clipboard content is stored on the phone, so the programming mode server must be running.
- Modified Utilities section of the toolbox.
- In Programming Mode, display information about the active connections.
- Fixed paste location when workspace has been scrolled.
- Added blocks support for the android Accelerometer.
- Fixed issue where Blocks Upload OpMode truncated name at first dot.
- Added blocks support for Android SoundPool.
- Added type safety to blocks for Acceleration.
- Added type safety to blocks for AdafruitBNO055IMU.Parameters.
- Added type safety to blocks for AnalogInput.
- Added type safety to blocks for AngularVelocity.
- Added type safety to blocks for Color.
- Added type safety to blocks for ColorSensor.
- Added type safety to blocks for CompassSensor.
- Added type safety to blocks for CRServo.
- Added type safety to blocks for DigitalChannel.
- Added type safety to blocks for ElapsedTime.
- Added type safety to blocks for Gamepad.
- Added type safety to blocks for GyroSensor.
- Added type safety to blocks for IrSeekerSensor.
- Added type safety to blocks for LED.
- Added type safety to blocks for LightSensor.
- Added type safety to blocks for LinearOpMode.
- Added type safety to blocks for MagneticFlux.
- Added type safety to blocks for MatrixF.
- Added type safety to blocks for MrI2cCompassSensor.
- Added type safety to blocks for MrI2cRangeSensor.
- Added type safety to blocks for OpticalDistanceSensor.
- Added type safety to blocks for Orientation.
- Added type safety to blocks for Position.
- Added type safety to blocks for Quaternion.
- Added type safety to blocks for Servo.
- Added type safety to blocks for ServoController.
- Added type safety to blocks for Telemetry.
- Added type safety to blocks for Temperature.
- Added type safety to blocks for TouchSensor.
- Added type safety to blocks for UltrasonicSensor.
- Added type safety to blocks for VectorF.
- Added type safety to blocks for Velocity.
- Added type safety to blocks for VoltageSensor.
- Added type safety to blocks for VuforiaLocalizer.Parameters.
- Added type safety to blocks for VuforiaTrackable.
- Added type safety to blocks for VuforiaTrackables.
- Added type safety to blocks for enums in AdafruitBNO055IMU.Parameters.
- Added type safety to blocks for AndroidAccelerometer, AndroidGyroscope, AndroidOrientation, and AndroidTextToSpeech.
Version 2.4 (released on 16.11.13)
- Fix to avoid crashing for nonexistent resources.
- Blocks Programming mode changes:
- Added blocks to support OpenGLMatrix, MatrixF, and VectorF.
- Added blocks to support AngleUnit, AxesOrder, AxesReference, CameraDirection, CameraMonitorFeedback, DistanceUnit, and TempUnit.
- Added blocks to support Acceleration.
- Added blocks to support LinearOpMode.getRuntime.
- Added blocks to support MagneticFlux and Position.
- Fixed typos.
- Made blocks for ElapsedTime more consistent with other objects.
- Added blocks to support Quaternion, Velocity, Orientation, AngularVelocity.
- Added blocks to support VuforiaTrackables, VuforiaTrackable, VuforiaLocalizer, VuforiaTrackableDefaultListener.
- Fixed a few blocks.
- Added type checking to new blocks.
- Updated to latest blockly.
- Added default variable blocks to navigation and matrix blocks.
- Fixed toolbox entry for openGLMatrix_rotation_withAxesArgs.
- When user downloads Blocks-generated OpMode, only the .blk file is downloaded.
- When user uploads Blocks-generated OpMode (.blk file), Javascript code is auto generated.
- Added DbgLog support.
- Added logging when a blocks file is read/written.
- Fixed bug to properly render blocks even if missing devices from configuration file.
- Added support for additional characters (not just alphanumeric) for the block file names (for download and upload).
- Added support for OpMode flavor (“Autonomous” or “TeleOp”) and group.
- Changes to Samples to prevent tutorial issues.
- Incorporated suggested changes from public pull 216 (“Replace .. paths”).
- Remove Servo Glitches when robot stopped.
- if user hits “Cancels” when editing a configuration file, clears the unsaved changes and reverts to original unmodified configuration.
- Added log info to help diagnose why the Robot Controller app was terminated (for example, by watch dog function).
- Added ability to transfer log from the controller.
- Fixed inconsistency for AngularVelocity
- Limit unbounded growth of data for telemetry. If user does not call telemetry.update() for LinearOpMode in a timely manner, data added for telemetry might get lost if size limit is exceeded.
Version 2.35 (released on 16.10.06)
- Blockly programming mode - Removed unnecesary idle() call from blocks for new project.
Version 2.30 (released on 16.10.05)
- Blockly programming mode:
- Mechanism added to save Blockly OpModes from Programming Mode Server onto local device
- To avoid clutter, blocks are displayed in categorized folders
- Added support for DigitalChannel
- Added support for ModernRoboticsI2cCompassSensor
- Added support for ModernRoboticsI2cRangeSensor
- Added support for VoltageSensor
- Added support for AnalogInput
- Added support for AnalogOutput
- Fix for CompassSensor setMode block
- Vuforia
- Fix deadlock / make camera data available while Vuforia is running.
- Update to Vuforia 6.0.117 (recommended by Vuforia and Google to close security loophole).
- Fix for autonomous 30 second timer bug (where timer was in effect, even though it appeared to have timed out).
- opModeIsActive changes to allow cleanup after OpMode is stopped (with enforced 2 second safety timeout).
- Fix to avoid reading i2c twice.
- Updated sample OpModes.
- Improved logging and fixed intermittent freezing.
- Added digital I/O sample.
- Cleaned up device names in sample OpModes to be consistent with Pushbot guide.
- Fix to allow use of IrSeekerSensorV3.
Version 2.20 (released on 16.09.08)
- Support for Modern Robotics Compass Sensor.
- Support for Modern Robotics Range Sensor.
- Revise device names for Pushbot templates to match the names used in Pushbot guide.
- Fixed bug so that IrSeekerSensorV3 device is accessible as IrSeekerSensor in hardwareMap.
- Modified computer vision code to require an individual Vuforia license (per legal requirement from PTC).
- Minor fixes.
- Blockly enhancements:
- Support for Voltage Sensor.
- Support for Analog Input.
- Support for Analog Output.
- Support for Light Sensor.
- Support for Servo Controller.
Version 2.10 (released on 16.09.03)
- Support for Adafruit IMU.
- Improvements to ModernRoboticsI2cGyro class
- Block on reset of z axis.
- isCalibrating() returns true while gyro is calibration.
- Updated sample gyro program.
- Blockly enhancements
- support for android.graphics.Color.
- added support for ElapsedTime.
- improved look and legibility of blocks.
- support for compass sensor.
- support for ultrasonic sensor.
- support for IrSeeker.
- support for LED.
- support for color sensor.
- support for CRServo
- prompt user to configure robot before using programming mode.
- Provides ability to disable audio cues.
- various bug fixes and improvements.
Version 2.00 (released on 16.08.19)
- This is the new release for the upcoming 2016-2017 FIRST Tech Challenge Season.
- Channel change is enabled in the FTC Robot Controller app for Moto G 2nd and 3rd Gen phones.
- Users can now use annotations to register/disable their OpModes.
- Changes in the Android SDK, JDK and build tool requirements (minsdk=19, java 1.7, build tools 23.0.3).
- Standardized units in analog input.
- Cleaned up code for existing analog sensor classes.
- setChannelMode and getChannelMode were REMOVED from the DcMotorController class. This is important - we no longer set the motor modes through the motor controller.
- setMode and getMode were added to the DcMotor class.
- ContinuousRotationServo class has been added to the FTC SDK.
- Range.clip() method has been overloaded so it can support this operation for int, short and byte integers.
- Some changes have been made (new methods added) on how a user can access items from the hardware map.
- Users can now set the zero power behavior for a DC motor so that the motor will brake or float when power is zero.
- Prototype Blockly Programming Mode has been added to FTC Robot Controller. Users can place the Robot Controller into this mode, and then use a device (such as a laptop) that has a Javascript enabled browser to write Blockly-based OpModes directly onto the Robot Controller.
- Users can now configure the robot remotely through the FTC Driver Station app.
- Android Studio project supports Android Studio 2.1.x and compile SDK Version 23 (Marshmallow).
- Vuforia Computer Vision SDK integrated into FTC SDK. Users can use sample vision targets to get localization information on a standard FTC field.
- Project structure has been reorganized so that there is now a TeamCode package that users can use to place their local/custom OpModes into this package.
- Inspection function has been integrated into the FTC Robot Controller and Driver Station Apps (Thanks Team HazMat… 9277 & 10650!).
- Audio cues have been incorporated into FTC SDK.
- Swap mechanism added to FTC Robot Controller configuration activity. For example, if you have two motor controllers on a robot, and you misidentified them in your configuration file, you can use the Swap button to swap the devices within the configuration file (so you do not have to manually re-enter in the configuration info for the two devices).
- Fix mechanism added to all user to replace an electronic module easily. For example, suppose a servo controller dies on your robot. You replace the broken module with a new module, which has a different serial number from the original servo controller. You can use the Fix button to automatically reconfigure your configuration file to use the serial number of the new module.
- Improvements made to fix resiliency and responsiveness of the system.
- For LinearOpMode the user now must for a telemetry.update() to update the telemetry data on the driver station. This update() mechanism ensures that the driver station gets the updated data properly and at the same time.
- The Auto Configure function of the Robot Controller is now template based. If there is a commonly used robot configuration, a template can be created so that the Auto Configure mechanism can be used to quickly configure a robot of this type.
- The logic to detect a runaway OpMode (both in the LinearOpMode and OpMode types) and to abort the run, then auto recover has been improved/implemented.
- Fix has been incorporated so that Logitech F310 gamepad mappings will be correct for Marshmallow users.
Release 16.07.08
- For the ftc_app project, the gradle files have been modified to support Android Studio 2.1.x.
Release 16.03.30
- For the MIT App Inventor, the design blocks have new icons that better represent the function of each design component.
- Some changes were made to the shutdown logic to ensure the robust shutdown of some of our USB services.
- A change was made to LinearOpMode so as to allow a given instance to be executed more than once, which is required for the App Inventor.
- Javadoc improved/updated.
Release 16.03.09
- Changes made to make the FTC SDK synchronous (significant change!)
- waitOneFullHardwareCycle() and waitForNextHardwareCycle() are no longer needed and have been deprecated.
- runOpMode() (for a LinearOpMode) is now decoupled from the system's hardware read/write thread.
- loop() (for an OpMode) is now decoupled from the system's hardware read/write thread.
- Methods are synchronous.
- For example, if you call setMode(DcMotorController.RunMode.RESET_ENCODERS) for a motor, the encoder is guaranteed to be reset when the method call is complete.
- For legacy module (NXT compatible), user no longer has to toggle between read and write modes when reading from or writing to a legacy device.
- Changes made to enhance reliability/robustness during ESD event.
- Changes made to make code thread safe.
- Debug keystore added so that user-generated robot controller APKs will all use the same signed key (to avoid conflicts if a team has multiple developer laptops for example).
- Firmware version information for Modern Robotics modules are now logged.
- Changes made to improve USB comm reliability and robustness.
- Added support for voltage indicator for legacy (NXT-compatible) motor controllers.
- Changes made to provide auto stop capabilities for OpModes.
- A LinearOpMode class will stop when the statements in runOpMode() are complete. User does not have to push the stop button on the driver station.
- If an OpMode is stopped by the driver station, but there is a run away/uninterruptible thread persisting, the app will log an error message then force itself to crash to stop the runaway thread.
- Driver Station UI modified to display lowest measured voltage below current voltage (12V battery).
- Driver Station UI modified to have color background for current voltage (green=good, yellow=caution, red=danger, extremely low voltage).
- javadoc improved (edits and additional classes).
- Added app build time to About activity for driver station and robot controller apps.
- Display local IP addresses on Driver Station About activity.
- Added I2cDeviceSynchImpl.
- Added I2cDeviceSync interface.
- Added seconds() and milliseconds() to ElapsedTime for clarity.
- Added getCallbackCount() to I2cDevice.
- Added missing clearI2cPortActionFlag.
- Added code to create log messages while waiting for LinearOpMode shutdown.
- Fix so Wi-Fi Direct Config activity will no longer launch multiple times.
- Added the ability to specify an alternate i2c address in software for the Modern Robotics gyro.
Release 16.02.09
- Improved battery checker feature so that voltage values get refreshed regularly (every 250 msec) on Driver Station (DS) user interface.
- Improved software so that Robot Controller (RC) is much more resilient and “self-healing” to USB disconnects:
- If user attempts to start/restart RC with one or more module missing, it will display a warning but still start up.
- When running an OpMode, if one or more modules gets disconnected, the RC & DS will display warnings,and robot will keep on working in spite of the missing module(s).
- If a disconnected module gets physically reconnected the RC will auto detect the module and the user will regain control of the recently connected module.
- Warning messages are more helpful (identifies the type of module that's missing plus its USB serial number).
- Code changes to fix the null gamepad reference when users try to reference the gamepads in the init() portion of their OpMode.
- NXT light sensor output is now properly scaled. Note that teams might have to readjust their light threshold values in their OpModes.
- On DS user interface, gamepad icon for a driver will disappear if the matching gamepad is disconnected or if that gamepad gets designated as a different driver.
- Robot Protocol (ROBOCOL) version number info is displayed in About screen on RC and DS apps.
- Incorporated a display filter on pairing screen to filter out devices that don't use the “-“ format. This filter can be turned off to show all Wi-Fi Direct devices.
- Updated text in License file.
- Fixed formatting error in OpticalDistanceSensor.toString().
- Fixed issue on with a blank (“”) device name that would disrupt Wi-Fi Direct Pairing.
- Made a change so that the Wi-Fi info and battery info can be displayed more quickly on the DS upon connecting to RC.
- Improved javadoc generation.
- Modified code to make it easier to support language localization in the future.
Release 16.01.04
- Updated compileSdkVersion for apps
- Prevent Wi-Fi from entering power saving mode
- removed unused import from driver station
- Corrrected "Dead zone" joystick code.
- LED.getDeviceName and .getConnectionInfo() return null
- apps check for ROBOCOL_VERSION mismatch
- Fix for Telemetry also has off-by-one errors in its data string sizing / short size limitations error
- User telemetry output is sorted.
- added formatting variants to DbgLog and RobotLog APIs
- code modified to allow for a long list of OpMode names.
- changes to improve thread safety of RobocolDatagramSocket
- Fix for "missing hardware leaves robot controller disconnected from driver station" error
- fix for "fast tapping of Init/Start causes problems" (toast is now only instantiated on UI thread).
- added some log statements for thread life cycle.
- moved gamepad reset logic inside of initActiveOpMode() for robustness
- changes made to mitigate risk of race conditions on public methods.
- changes to try and flag when Wi-Fi Direct name contains non-printable characters.
- fix to correct race condition between .run() and .close() in ReadWriteRunnableStandard.
- updated FTDI driver
- made ReadWriteRunnableStanard interface public.
- fixed off-by-one errors in Command constructor
- moved specific hardware implmentations into their own package.
- moved specific gamepad implemnatations to the hardware library.
- changed LICENSE file to new BSD version.
- fixed race condition when shutting down Modern Robotics USB devices.
- methods in the ColorSensor classes have been synchronized.
- corrected isBusy() status to reflect end of motion.
- corrected "back" button keycode.
- the notSupported() method of the GyroSensor class was changed to protected (it should not be public).
Release 15.11.04.001
- Added Support for Modern Robotics Gyro.
- The GyroSensor class now supports the MR Gyro Sensor.
- Users can access heading data (about Z axis)
- Users can also access raw gyro data (X, Y, & Z axes).
- Example MRGyroTest.java OpMode included.
- More descriptive error messages for exceptions in user code.
- Updated DcMotor API
- Enable read mode on new address in setI2cAddress
- Fix so that driver station app resets the gamepads when switching OpModes.
- USB-related code changes to make USB comm more responsive and to display more explicit error messages.
- Fix so that USB will recover properly if the USB bus returns garbage data.
- Fix USB initializtion race condition.
- Better error reporting during FTDI open.
- More explicit messages during USB failures.
- Fixed bug so that USB device is closed if event loop teardown method was not called.
- Fixed timer UI issue
- Fixed duplicate name UI bug (Legacy Module configuration).
- Fixed race condition in EventLoopManager.
- Fix to keep references stable when updating gamepad.
- For legacy Matrix motor/servo controllers removed necessity of appending "Motor" and "Servo" to controller names.
- Updated HT color sensor driver to use constants from ModernRoboticsUsbLegacyModule class.
- Updated MR color sensor driver to use constants from ModernRoboticsUsbDeviceInterfaceModule class.
- Correctly handle I2C Address change in all color sensors
- Updated/cleaned up OpModes.
- Updated comments in LinearI2cAddressChange.java example OpMode.
- Replaced the calls to "setChannelMode" with "setMode" (to match the new of the DcMotor method).
- Removed K9AutoTime.java OpMode.
- Added MRGyroTest.java OpMode (demonstrates how to use MR Gyro Sensor).
- Added MRRGBExample.java OpMode (demonstrates how to use MR Color Sensor).
- Added HTRGBExample.java OpMode (demonstrates how to use HT legacy color sensor).
- Added MatrixControllerDemo.java (demonstrates how to use legacy Matrix controller).
- Updated javadoc documentation.
- Updated release .apk files for Robot Controller and Driver Station apps.
Release 15.10.06.002
- Added support for Legacy Matrix 9.6V motor/servo controller.
- Cleaned up build.gradle file.
- Minor UI and bug fixes for driver station and robot controller apps.
- Throws error if Ultrasonic sensor (NXT) is not configured for legacy module port 4 or 5.
Release 15.08.03.001
- New user interfaces for FTC Driver Station and FTC Robot Controller apps.
- An init() method is added to the OpMode class.
- For this release, init() is triggered right before the start() method.
- Eventually, the init() method will be triggered when the user presses an "INIT" button on driver station.
- The init() and loop() methods are now required (ie, need to be overridden in the user's OpMode).
- The start() and stop() methods are optional.
- A new LinearOpMode class is introduced.
- Teams can use the LinearOpMode mode to create a linear (not event driven) program model.
- Teams can use blocking statements like Thread.sleep() within a linear OpMode.
- The API for the Legacy Module and Core Device Interface Module have been updated.
- Support for encoders with the Legacy Module is now working.
- The hardware loop has been updated for better performance.