Announcement

Collapse
No announcement yet.

FTC Robotics Library

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    The gyro idea is good, and the RUN_USING_ENCODERS mode is what I was referring to by the specific controller firmware, though that does have the power limitation of 80% and can throttle up to 100% and burn out the motors (which the motors could have other physical means to shut down the motor in case of that.)

    Comment


    • #17
      We are also going to be using fused wiring from output from the Power Distribution Module to the Motor Controllers http://www.powerwerx.com/fuses-circu...-12-gauge.html or use fused wiring from the Motor Controllers to the Motors http://www.tetrixrobotics.com/Contro...or_Power_Cable to help minimize the chance of motor burnout.

      Comment


      • #18
        I should be able to push my Image Processing code to the develop branch today, I just need to get rid of some evil OutOfMemory errors in my code, and expose the delay between frames to the user.

        Comment


        • #19
          The Camera code for my library is now on the develop branch (and some other things).

          Some notes:
          The current API doesn't handle breakpoints in the post processing callback well (the post processing callback is run async)
          If you are running a task on another thread, you need to handle your exceptions, as not handling them is fatal to the controller.
          I am close to the Dex method limit
          Lots of the image processing are wrapped in a SoftReference object to help control memory
          When getting an image from the camera manager, remember the photo has been in a SoftReference, and that up-to, and including, 5 photos are stored within the manager.
          The current code is being built against Android API 23, we may go down to 22 due to some issues, and we may upgrade the build tools to the latest version (or second latest).
          ProGuard is enabled for a reason

          Comment


          • #20
            Originally posted by dmssargent View Post
            I am close to the Dex method limit
            We have hit this limit previously in the season, and have enabled Multidex, which ran successfully with the ZTE Speeds. The only downside we noted was longer compile and install time.
            FTC6460 mentor (software+computer vision+electronics), FPGA enthusiast. In favor of allowing custom electronics on FTC bots.
            Co-founder of ##ftc live chat for FTC programming--currently you may need to join and wait some time for help--volunteer basis only.

            Comment


            • #21
              I trimmed down some of dependencies with ProGuard, and Gradle compile excludes. I will checkout MultiDex, thanks for the suggestion.

              Comment


              • #22
                We have upgraded our code to the newest SDK version (15.11).
                If you think the syntax was fairly brutal to convert to our library, we are working on the XSimplify mode to migrate the OpMode code to our library somewhat easily via adapters to my library, not quite there yet, but it is a bit better for the people who don't want to even try running with my library.

                Code:
                
                @Autonomous(name = "Hello World Example")
                
                public class HelloWorld extends SimpleOpMode {
                    @Override
                public void init(RobotContext ctx) {
                        enableNetworking().startNetworking();
                    }
                
                    @Override
                public void start(RobotContext ctx, LinkedList<Object> out) throws Exception {
                        telemetry.data("TIME", "Start Date: " +
                                (new Date(System.nanoTime() / 1000)).toString());
                    }
                
                    @Override
                public void loop(RobotContext ctx) {
                        log().i("LOOP", "Current loop count: " + getLoopCount());
                        telemetry.data("MESS", "Hello, World!");
                        telemetry.data("MESS", "How are you doing?");
                    }
                
                    @Override
                public void stop(RobotContext ctx, LinkedList<Object> out) throws Exception {
                        log().w("TIME", "End Date: " +
                                (new Date(System.nanoTime() / 1000)).toString() + "This ran for " + getRuntime());
                    }
                }

                Comment

                Working...
                X