Skip to content

SPOT 4.0.0-RC.4

Compare
Choose a tag to compare
@TheElectricDream TheElectricDream released this 08 Sep 19:20
· 14 commits to main since this release

This marks the fourth release candidate of SPOT 4.0.0. THIS UPDATE COMMITS THE CARDINAL SIN OF BREAKING THE COMPATIBILITY OF OLDER RELEASE CANDIDATES, UPDGRADING IS MANDATORY.

Why you ask, am I breaking everything again? Because I'm reverting back to software PWM for now. That doesn't mean hardware PWM is bad, but for our application it's been more trouble then it's worth, and the RC.3 release was premature. See release notes below for more details. My apologies.

The software can be downloaded here: SPOT v4.0.0-RC4

Here are the patch notes for this release:

  • Fixed the ArmConfig.png image so that the body axis orientation is correct.
  • Fixed a bug where if the user saves a GUI state with a diagram selected, when loading the GUI state it will load the diagram (this can lead to problems if you load the state and the diagram is missing or renamed). When loading states, the diagram dropdown should be set to default.
  • Flip-flopped back to software PWM for the following reasons:
  1. Hardware PWM is best for high frequency problems, where the the pulses are extremely fast. Because of the valve time on the thrusters, is does not make sense to have a high frequency PWM.
  2. The minimum hardware PWM achievable on the PCA9685 is 24 Hz. This can work [see Yazan], without a great controller it wastes a lot of air.
  3. This minimum PWM frequency also limits the minimum duty cycle that be commanded. At 24Hz, any duty cycle lower then 16.8% is not achievable (no air will come out). This results in a large dead zone where simple PD controllers struggle.
  • Because of the above, reverted the thruster check code and clean shutdown code to work with GPIO code and not the PCA9685.
  • Created a software PWM Python script that is located on all platforms and in the Resources folder. This script runs as fast as possible when executed, and receives duty cycle commands via local UDP from an active diagram.
  • Created a PWM management script that manages the remote starting and stopping of the PWM Python code.
  • Fixed a bug where the acceleration in X was incorrect for all platforms in simulation (no derivative was being taken).
  • Tweaked the gains and the starting conditions for the default experiment to have better results and smoother behavior.
  • Reverted back to the data rate being 80% of the baseRate - while buffering still seems to be resolved, doing this seems to help when there are network latency problems in the lab.