Swarmathon IV Base Code Release
Release Notes
There are a number of bug fixes (see the commit history). The biggest additions are RosBridge connections and throttling of topics, and an update to the GUI.
RosBridge and Throttling
The biggest challenge (apart from localization) during competitions has been unreliable networks and saturation of bandwidth. RosBridge (http://wiki.ros.org/rosbridge_suite) allows each Swarmie and the laptop running the GUI to run their own ROS master. Connections between masters are managed using javascript running on a javascript engine (we are using the firefox browser currently which isn't bad but we would love any nodejs gurus out there to port it to node 👍). This means there is no single point of failure and the swarm can scale. We have tested about 20 robots running at once. The Swarmies are really able to swarm now :)
@wfvining has written example code included with this release that demonstrates how to setup recruitment using RosBridge. Please feel free to ask questions about how this works on the forums. @abbypribis our high school intern (and now incoming freshman at UNM) has put a lot of work into this code, so thanks to her!
We also enabled topic throttling. This sets an upper limit on the number of messages that a topic can broadcast. This prevents the cameras from saturating the network. For example. the camera rate from rover to GUI is capped at 5 FPS by default.
GUI Update
Four years ago, when we first wrote the GUI with its fixed height of 800 pixels the number one complaint we got was that it was too big to fit on a chrome book screen. Now with 2 and 4K laptop screens the GUI looks like a postage stamp. @Antonio-Griego with a lot of hard work retrofit the GUI so it is resizable and scales to whatever resolution screen you have. Thank you Antonio!
As usual we will fix bugs as we come across them but we will not implement any new features in the base code from now until after the competition.
Known bugs:
-
Transient bug where the GUI will crash if multiple checkboxes are checked in the map. Issue #207.
-
Transient bug where a Swarmie gets into a state where it will not drop off a cube it is carrying when it sees the collection zone.
See https://github.com/BCLab-UNM/SwarmBaseCode-ROS/issues for a full list of known issues and to add to this list.
Thanks to all the Swarmathon students and mentors who have submitted issues and pull requests! Your help is much appreciated.
Please report any issues here on GitHub or on the forums at nasaswarmathon.com.