@gmfricke gmfricke released this Jan 9, 2019

Assets 2

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:

  1. Transient bug where the GUI will crash if multiple checkboxes are checked in the map. Issue #207.

  2. 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.


@wfvining wfvining released this Nov 13, 2018 · 66 commits to master since this release

Assets 2

This is the beta release for the 2019 Swarmathon competition.


  • New Scalable GUI
  • Utilize rosbridge and roslibjs to remove laptop as a single point of failure
    • Also includes changes that reduce data sent over the network by throttling the number of sensor readings that are sent back to the GUI to one message per second for the camera, IMU, and ultrasounds.

@gmfricke gmfricke released this Jul 11, 2018 · 140 commits to master since this release

Assets 2

The latest release of Gazebo introduced a bug in which the gazebo client and server use the same node name. This causes the simulation to fail.

The workaround is to change the default node name on creation so there is no name space collision.

@gmfricke gmfricke released this Mar 8, 2018 · 154 commits to master since this release

Assets 2

This is a maintenance release of the UNM base code. We intend this to be the last release before the competition at Kennedy Space Center.

This release has two purposes:

  1. The Arduino code has been moved into the SwarmBaseCode-ROS repository. All Arduino code is now kept in the Arduino subdirectory of the repository rather than being maintained in a separate repository. This allows us to load Arduino sketches and manage custom Arduino code submitted by teams more easily. Scripts in the misc directory load Arduino sketches and automatically merge calibration data. The rover node launch script calls these scripts to load the Arduino code. Unless you already have an "arduino" directory in your repository there should be no merge conflicts.

  2. Additional comments have been added to a number of packages. This is to improve documentation. Many teams will have modified those files extensively. There is no change in functionality so you may choose not to incorporate these comments when handling merge conflicts.

@wfvining wfvining released this Feb 13, 2018 · 194 commits to master since this release

Assets 2

This release contains no functional updates to the code. It includes only updated comments to improve code readability and understandability. It also includes an update to the GUI to show where the end of the line is when viewing the odom frame in the map.

@gmfricke gmfricke released this Jan 13, 2018 · 202 commits to master since this release

Assets 2

The rock models added to the simple_obstacle_example.world file are like the ones we will use in the physical and virtual competitions.

The arrangement or rocks is just an example.

@gmfricke gmfricke released this Jan 9, 2018 · 205 commits to master since this release

Assets 2

The River Labs April Tag ROS library causes the recently updated OpenCV library to crash. We forked the River labs version to BCLab-UNM/apriltags_ros and patched the problem.

The SwarmBaseCode has been updated to use the fixed BCLab-UNM submodule.

Instructions for updating the newest AprilTags submodule are:

Assuming you set up the swarm base code as a remote as described in the swarm base code readme, execute the following command:

git pull SwarmBaseCode

Then update the AprilTag submodule:

git submodule sync — src/apriltags_ros
git submodule update —remote src/apriltags_ros

@gmfricke gmfricke released this Dec 13, 2017 · 207 commits to master since this release

Assets 2

If the user hit the autonomous button when the Swarmie could see a target April tag then the Swarmie would not be able to collect targets later.

The problem is that the Swarmie sees the tag and enters the pick-up routine before it is in autonomous mode.

The fix is to not send the logic controller tag data when the Swarmie is in manual mode.

@gmfricke gmfricke released this Dec 12, 2017 · 210 commits to master since this release

Assets 2

Two scripts contained hardcoded paths that assumed the repository was named SwarmBaseCode-ROS. This release replaces those references with relative paths.

The bug prevented the Swarmies from accessing the camera calibration file if SwarmBaseCode-ROS was missing from the rover. Not being able to access the calibration file meant rovers always reported their distance to April tags as zero.

The deployment script also contained a hardcoded path which prevented it from working as intended when run with the -R flag.

@gmfricke gmfricke released this Dec 12, 2017 · 212 commits to master since this release

Assets 2

This release includes comments for some of the behaviour controllers and additions to the readme describing how to use the deployment script. There is no change in functionality.