Zero Robotics High School Tournament 2013 (USA Only)
The following test is from a 2012 ISS test session where we demonstrated several elements of the game. We have selected the test below to show the diferences between simulation and ISS.
This test shows two satellties navigating. After moving to their initial positions SPH1 (Blue) moves towards a fixed target using setPositionTarget. SPH2 (RED) turns off all control and is gradually pulled into the cloud.
Items to note
- Overall, estimation noise is similar to the simulation.
- You may see the blue satellite jump forward then correct backwards slightly. In this case, the satellite's actual CO2 tank was starting to get low. At each time step the internal positioning algorithm expected the satellite to be slightly farther ahead, then measurements corrected the position.
- Timing of motion is not exactly the same. The crew on the ISS sets a pressure regulator on top of the satellite control the force produced by the thrusters. If there is some error in the setting due to the accuracy of the pressure guage or changes in the tank level, there can be some variation in the satellite thrust.
- To make sure your code can tolerate variations in thrust and estimation noise, make sure you do not have overly strict timing requirements to arrive at a particular location and make sure to incorporate measurements to correct for errors in the expected motion.
Now is the time to make your code as bulletproof as possible:
- If you have noticed any small inconsistencies from run to run, try to track them down. Any simulation crashes or "Invalid force or torque" warnings should be taken seriously. On the ISS, they may cause satellite resets, resulting in a match being decided by simulation results.
- Using "closed loop" controllers such as setPositionTarget() and setAttitudeTarget() will tend to be more reliable then "open loop" commands like setForces() and setTorques() that don't use measurements to make corrections.
- Use the forums to talk to your fellow competitors. There are several veteran teams out there that may be willing to share some advice about preparing for the ISS.
- You do not have to remove DEBUG() statements from your final code, but they will not be displayed by the satellites.