Skip to content

Ftc Nxt Legacy Configuration

Peter Brier edited this page Jun 21, 2015 · 7 revisions

This configuration is designed to allow an existing FTC team to work with the new Android system with a minimal investment. A demo video is found here on Youtube and the software is Here in Github

FtcNxtLegacyConfiguration

What is required:

  1. Existing FTC kit with Lego Mindstorm NXT and Tetrix (Hitechnic) motor and servo controllers and XBOX or Logitech F310 joysticks
  2. An Android device as RobotController
  3. An Android device as Driver Station
  4. 2 USB OTG cables, 1 USB HUB

We have found compatible Android devices available brand-new in store for around 50 Euros (Archos 70c Cobalt tablet) and you might find secondhand devices for less. The USB OTG cables are available starting at around 5 Euro and a USB2.0 hub is approximately 10 Euros. The complete investment is limited to around 100 Euro, and all parts are readily available.

Note: This configuration is a proof of concept. It is not known if such a configuration is allowed by FTC rules in the new season. It should at least be able to provide you with a functional robot.

Programming

There are two programming modes available in this configuration:

  1. Programming the robot application in Java using Android studio, using the NXT as a interface to the legacy motors and sensors. The NXT application used is a default application that is not modified. The NXT application processes commands from the Android Java application to read and write the inputs and outputs. No ronot control is performed on the NXT brick.

  2. Programming the robot application in Java using Lejos. The FtcRobotControllerApp is a default Application that is not modified by the team. The app only forwards state and joystick information to the NXT brick via USB. Robot programming is done in the NXT. This approach is more similar to the "old" RobotC approach.

Both approaches have their benefits. The first option (Programming in Android) gives full access to the User Interface and new SDK. There are however currently limitations in the speed and real-time behaviour of the android application. The learning curve is steep. The programming paradigm is an event driven control loop, that requires a significant different programming approach compared to the RobotC way of working. Note: using some support framework this can be (and should be) made more user friendly

The second option (Programming using Lejos) gives more direct access to the motors and sensors on the NXT. The Lejos java environment is easy to comprehend and has a stable and established API with many examples online. The programming paradigm is more alike RobotC (a sequential flow, with the ability to use tasks). Support libraries for robot tasks are available.