No announcement yet.

Robot Software Rules

This is a sticky topic.
  • Filter
  • Time
  • Show
Clear All
new posts

  • Robot Software Rules

    Answers to questions about Robot Software Rules

  • #2
    Originally posted by FTC7253
    Subject: Software Modification Clarification

    GM1 - RS9 states
    Software Modification - Teams are not allowed to modify the FIRST Tech Challenge Driver Station application or Robot Controller SDK in any fashion.
    What is considered the boundary of the Robot Controller SDK? I am assuming that the intent of the rule is primarily to protect against decompilation/modification of .aar files, but would like confirmation.
    Can the following components be modified:
    • gradle files (needed to include other libraries - i.e. opencv)
    • Exposed java files in the SDK download (i.e.
    • Manifest files
    • layout files (note - it is possible to modify the layout directly in the file, or programmatically - are either legal)
    Thanks for your time and clarification

    For the Robot Controller SDK we restrict teams from modifying the .AAR files that are distributed with the SDK. We also prohibit them from streaming non-standard (i.e. data that is not normally streamed by our apps) data. A recent update to this rule in the Game Manual Part 1 covers this in more detail.

    The examples listed above (gradle files, Exposed Java files included with the SDK, Manifest files, and layout files) are okay per <RS09>.


    • #3
      Originally posted by FTC12833

      Subject: Software During Init

      Question: Can TensorFlow and/or Vuforia logic/methods be performed during the Init phase of the autonomous period, or must it wait until after Play begins?

      Answer: Yes. There is nothing in the rules that prohibits the initialization of sensors (including cameras and software sensors ... i.e. vision recognition systems) during the robot initialization


      • #4
        Originally posted by FTC12783

        Subject: Vision Code Execution During Initialization

        Q: During the initialization of an autonomous OpMode, is mineral detection AND recording the result of the mineral detection allowed?
        Currently, we only initialize TensorFlow during the initialization period. After hitting play, we begin our first scan for the location of the gold mineral. We devote the first two seconds of autonomous play to recording the result of mineral detection for use in determining drive directions within autonomous drive commands.
        Being able to scan for the location of the gold mineral during the initialization period is a big advantage.
        We have seen other teams do the initialization and scan of the sampling minerals during the initialization period. Is it legal to have the initialization AND recording of the mineral detection read within the initialization phase of autonomous?

        A: There is nothing in the rules that prohibits the execution of vision processing as a part of the robot initialization. Be aware that the locations of the minerals will likely change as a part of the randomization of the field. Be aware as well that there are anecdotal reports of long-running vision code possibly crashing the robot controller application with uncaught exceptions.


        • #5
          Originally posted by FTC10101

          Subject: Kotlin Programming

          Q: Is Kotlin legal to use? In game manual 1, rule <RS02> says that Java and Blocks are the recommended languages and that all programming must be done on either 1 of 4 applications (one being Android Studio). We code Kotlin on Android Studio, so Kotlin should be fully legal to use. We need a ruling due to an inspector question at qualifier and would like to have a copy of this official ruling on hand when advancing to future competitions.

          A: Yes, but it is not recommended. Teams using Kotlin should be aware that they will not be able to get technical support from event personnel (FTA, CSA, etc). Additionally, use of Kotlin is not supported by FIRST. If there are any issues that arise with the use of the FTC SDK with Kotlin, the team would be on their own for any troubleshooting or technical support.