Skip to content

SPOT 4.1.0 Pre-Release.1

Pre-release
Pre-release
Compare
Choose a tag to compare
@TheElectricDream TheElectricDream released this 21 Sep 12:39
· 9 commits to SPOT-4.1.0-Pre-Release since this release

Overview

This is a major software revision, moving from 4.0.0 to 4.1.0. This version is compatible with MATLAB 2024a and MATLAB 2024b, but was last built for 2024b. This version includes significant improvements to the Simulink diagram logic as well as general improvements and several new features for the graphical user interface. This version also includes new hardware that old versions cannot access, such as the inertial measurement units. See revision notes below for additional details. A major PWM revision is also included, but this is a Python script that runs on the platforms and is thus already available for all versions of the software.

The software can be downloaded here: SPOT 4.1.0-PR.1

Detailed Patch Notes

Initializer Changes

  • Change 1: Added a chunk of code at the end of the initializer to show how to run simulations without using the GUI by directly manipulating the GUI handle. This enables users to run simulations in a loop to facilitate optimization.
  • Change 2: Moved the estimate thruster forces to the end of the initializer as these parameters should never be changed by the user.

GUI Changes

  • Change 1: Added a refresh button next to the Simulink selection dropdown menu, which when clicked will refresh the available diagrams.
  • Change 2: Added a button to remotely control the state of the electromagnet on BLACK. This is still a work in progress and not ready for Pre-Release 1.
  • Change 3: Added a function which automatically checks for the presence of any continuous-time integrators or derivatives in the Simulink diagram. If found, a warning is displayed to users indicating that experiments may not match simulations.
  • Change 4: Removed the thruster count threshold variable from the GUI, as it is not something most users will be editing.
  • Change 5: Added LQR gains to support the new default control law. PID gains are still available if desired (though what is LQR if not a tuned PID).
  • Change 6: Data class labels are now automatically generated based on the name of the input signal to the bus. As a result, the ApplyDataClass function has become obsolete and has been removed.
  • Change 7: The data inspector has been reworked so that each plot can support overplotting. The data inspector figures have been split into sub-tab groups to allow for larger figures.
  • Change 8: Added a toggle to show the simulation result at the same time as an experiment is running so that performance can be compared in-situ. This is still a work in progress and not ready for Pre-Release 1.
  • Change 9: Added a toggle to show and hide the cone and dock from the simulation and the experiment.
  • Change 10: Added a toggle to show and hide the solar panels in simulation and experiment.
  • Change 11: Added a toggle to show and hide the path of the spacecraft (simulation only).
  • Change 12: Updated the real-time visualization so that the experiment time is displayed. This is still a work in progress and not ready for Pre-Release 1.
  • Change 13: Added a button on the direct hardware control tab to SSH into the vision computer.
  • Change 14: Removed the noise options as they generally went unused and GUI space is at a premium. In the next pre-release, noise will be properly added.
  • Change 15: Removed obsolete code from the GUI and moved some components to accommodate new features.
  • Change 16: Starting the PhaseSpace cameras no longer automatically starts the live feed. It is preferable to leave these choices to the user.
  • Change 17: Reworked the animation tool. Users can now select different parts of the spacecraft to animate, including the cone, dock, solar panels, and path traces. Thanks: Courtney.
  • Change 18: Added a public-facing function to execute simulations from a script.
  • Change 19: Added a new Computer Vision tab - for this release, it is disabled. But in the next release, it will contain the ability to capture a live feed from a camera on the RED platform.
  • Change 20: After much testing, it appears that there is still an issue with the data rate when Simulink is running at the same rate as the PhaseSpace system. For the moment, we have reverted back to 20 Hz diagram + 10 Hz data. In Pre-Release 2, we are hoping to collect data using ROS, which may finally resolve this problem.

Simulink Changes

  • Change 1: Removed a leftover termination block located in the Check Connections subsystem.
  • Change 2: Added hardware blocks to support the new BMI160 IMU's which are now installed on each platform. They provide acceleration and gyroscopic measurements.
  • Change 3: Reworked the data saving to use a single bus. This allows the bus inputs to be labeled and these labels can be used to automatically generate names for the data class.
  • Change 4: Significantly reworked the layout of the Simulink template. Guidance and control are now their own subsystems. Control laws and path planners are programmed inside these subsystems, and flags are used in the experiment logic to indicate which control law/path planner should be used during any given segment. This also means that there is only ONE path planner and control law code block, rather than one for each segment of the experiment.
  • Change 5: Made LQR the default control law, but PD is still available.
  • Change 6: Implemented Artificial Potential Field as the default path planner.
  • Change 7: Removed any instances of custom derivative blocks for the simulations.
  • Change 8: Implemented a new control mixer for the thrusters, which uses a heuristic ranking approach to avoid having to eliminate negative PWM values.
  • Change 9: Greatly reduced the number of If-Else blocks, which improves the performance of the simulations.
  • Change 10: Updated the Send Data to TX2 subsystem to support the new Orin vision computer.
  • Change 11: All angles are now wrapped by default. Control laws and path planning have been updated to show how attitude control can be accomplished without unwrapping. This should hopefully set the standard and avoid more confusion.
  • Change 12: Added color to distinguish the different memory store blocks. RED blocks are for the chaser, BLACK blocks are for the target, BLUE blocks are for the obstacle, and GREEN blocks are for the arm.
  • Change 13: Created a duty cycle zero-order hold subsystem for the three platforms in simulation. This block accepts the duty cycle at whatever rate the diagram is executed and then holds the value so that it is only run at 5 Hz. In this way, the simulated behavior should be closer to the experiment.
  • Change 14: After much back and forth with researchers, we settled on a default diagram rate of 20 Hz. This provided the most consistent performances.
  • Change 15: Moving average filters have been added to the PhaseSpace velocity calculations to help clean up the velocity measurement.

Bug Fixes

  • Bug 1: Fixed GitHub issue #53 regarding an incorrect warning message.
  • Bug 2: Updated the default SPOT GUI mat file to correct some errors and ensure compatibility with the new features.
  • Bug 3: Fixed an issue where the arm was showing up in the experiment live preview but not moving around because there is no arm data feedback to the GUI.
  • Bug 4: Fixed a typo in the BLACK pucks loading bar.
  • Bug 5: Fixed an issue where the GUI would freeze when the PhaseSpace executable crashes, requiring the user to hit Ctrl-C in the Command Window.
  • Bug 6: The incorrect labels in the save data section have been corrected.
  • Bug 7: Fixed a typo in the main GUI that would mislabel the nominal forces parameter.
  • Bug 8: Fixed an issue with the PWM code where the pulse timing was dependent on the duty cycle. Thus, as the duty cycle command changes, so would the timing of the next PWM pulse.

Known Issues

  • Bug 1: The Artificial Potential Field code is not currently working well and is not recommended for use. But it is included as an example of how to add a path planner. Hopefully, this can be improved for the next pre-release.
  • Bug 2: There is a possible sequence-break issue where if the user stops an experiment and the live data stream is running, the GUI may freeze.
  • Bug 3: When comparing the IMU angular velocity to the PhaseSpace angular velocity, there appears to be a time-lag of about 0.35 seconds. It is currently unknown how much of an impact this is having or if this latency is real.
  • Bug 4: The Animation Speed slider is currently broken and does not change the speed of the animations. There is also a visual issue where the tick text is cut off.

Planned Features

  • Change 1: Update the connection status LED so that it is dynamic and informs users when the connection has been lost.
  • Change 2: A special Kalman filter is actively being worked on to handle the time lag.
  • Change 3: There is a planned internal competition to develop better velocity estimation methods. The winning algorithm will be permanently added to the software.