Tags

Tags give the ability to mark specific points in history as being important
  • v17.0.0

    Release: v17.0.0
    Breaking Changes
    ================
    - Requires armw v2.0. Changes were made simultaneously to both projects to improve stability and fix a number of concurrency related bugs. (!194)
    - The median_noise_dB field in the LinkStatsFeedbackMessage has been changed to median_noise_db due to ROS2 not supporting the original name. (!194)
    
    New Features / Improvements
    ===========================
    - Updated clock generator to use tick/tock, this significantly speeds up simulation (sometimes it is almost too fast). Added a registration service so that the modem sim can register / unregister with the clock. Clock increments after rendezvous from every connected modem sim.  (!194)
    - Switched from loop_once back to spin called in thread. (!194)
    - Added health monitor. Uses diagnostic messages to monitor status of ROS nodes. (!197)
    
    Bugfixes
    ========
    - Replacing headers with armw fill time (!194)
    - Publishers / Services using None (rclpy will not autofill None) (!194)
    - Concurrency bugs (such as those related to using loop_once) (!194)
    - Fix slot/cycle counters for TDMA MACs (!193)
    - Health monitor improves integration test stability (!197)
    
    Test Improvements
    =================
    - Updated unit tests to work with ROS2 (!194)
    - Improved test stability by removing helper classes wherever possible, also made use of futures where needed. (!194)
    - Skipped some tests that often result in failures due to race conditions (!194)
    - Updated gitlab CI yml to use parallel matrix for ROS 1 & 2 testing, also swapped to using a local registry to share images between multiple CI machines (!194)
    - Moved location of docker images to docker directory at root of project to keep all dockerfiles together (!194)
    - Added new dockerfile for ROS2 (!194)
    - Fixed trigger pipelines in gitlab ci, trigger pipelines get branch of triggerer. (!196)
  • v16.0.0

    Release: v16.0.0
    Breaking Changes
    ================
    - `LinkStatsFeeback` message: added `receiver_src` field, fixed name of `median_noise_dB` field (!184)
    - Removed `epoch_end` from time fields in default `LinkStatsFeedback` codec (!184)
    
    New Features / Improvements
    ===========================
    - Added `LinkStatsSummary` message to publish aggregated `LinkStatsFeedback` (!184)
    
    Bugfixes
    ========
    - Removed `epoch_end` from time fields in default `LinkStatsFeedback` codec (it was saturating in January 2025) (!184)
    - Fixed regression in name of `LinkStatsFeeback` `median_noise_dB` field (it briefly had a lowercase "b") (!184)
    - Fixed calculation of ping OWTT in modem simulator (!188, !186)
    - Fixed modem sim logging (!186)
    - Fixed OWTT calculation for every sim packet (!190)
  • v16.0.0-rc2

    Release: v16.0.0-rc2
    Bugfixes
    ========
    - Fixed calculation of ping OWTT in modem simulator (!188)
  • v16.0.0-rc1

    Release: v16.0.0-rc1
    Bugfixes
    ========
    - Fix simulated ping OWTT (!186)
    - Fix modem sim logging (!186)
  • v16.0.0-rc0

    Release: v16.0.0-rc0
    Breaking Changes
    ================
    - `LinkStatsFeeback` message: added `receiver_src` field, fixed name of `median_noise_dB` field (!184)
    - Removed `epoch_end` from time fields in default `LinkStatsFeedback` codec (!184)
    
    New Features / Improvements
    ===========================
    - Added `LinkStatsSummary` message to publish aggregated `LinkStatsFeedback` (!184)
    
    Bugfixes
    ========
    - Removed `epoch_end` from time fields in default `LinkStatsFeedback` codec (it was saturating in January 2025) (!184)
    - Fixed regression in name of `LinkStatsFeeback` `median_noise_dB` field (it briefly had a lowercase "b") (!184)
  • v14.0.4

    Release: v14.0.4
    Includes important bug fix to `tdma_slotted_aloha` #52
  • v14.0.3

    Release: v14.0.3
    Bugfixes
    ========
    - Fix handing of the dynamic queue cache when using packet codecs that break a packet into multiple sections.  Previously, a dynamic queue could be ignored due to invalid cache when the number of available bits increased over the course of a packet. (!171)
  • v14.0.2

    Release: v14.0.2
    Documentation Improvements
    ==========================
    - Significant additions to documentation (!168)
    - Improved documentation formatting (!168)
    - Removed out-of-date information (!168)
  • v14.0.1

    Release: v14.0.1
    Bugfixes
    ========
    - Fix a bug in the modem sim that would zero-pad bad frames when partial packets were received. (!165)
  • v14.0.0

    Release: v14.0.0
    Breaking Changes
    ================
    - `GetNextQueuedMessageResponse` (part of `GetNextQueuedMessage.srv`) has a new field: `string[] msg_tags`. (!160)
    - `PingModem.srv` and `PingTransponders.srv` timeout field is now that same: `timeout_sec` and logic has been updated across package (!158)
    - `Tdma*Status.msg` has the following fields added to support QoS tags (!158):
      - `minimum_priority`: will be value set in tag for [this] slot
      - `time_to_next_dedicated_slot`: time to next un-tagged / un-restricted slot where you are guarenteed to TX if you have _any_ data.
    
    New Features / Improvements
    ===========================
    - `GetNextQueuedMessageResponse` new field: `string[] msg_tags`. (!160)
      - `string[] msg_tags` are the tags for the message returned in the response.
      - since dynamic_queues are not handled by the `message_queue_node` directly, we now use this field to validate responses, and invalid responses are ignored.
    - added `deserialize_anymsg()` to `mac_utils.py` (!160)
    - changed `toggle_software_mute()` in `tdma_advanced_node` to a switch of type `std_msgs/Bool` and updated logic in `mac_switcher. (!158)
    - `tdma*` can now calculate `time_to_next_dedicated_slot` (!158)
    
    Bugfixes
    ========
    - `TagConfig` was not setting `self.exclude_queue_ids`. it was setting `set.exclude_list` (typo!) and no other nodes were using that attr.
    - Fixes to message queue (!160):
      - dynamic queue response tag validation
      - was not setting `minimum_priority` when creating `tag_config` instance.
      - was not passing `minimum_priority` to dynamic_queue_query call.
    - set software_mute correctly in `tdma_advanced` (!161, #46)
  • v11.1.0

    Release: v11.1.0
    New Features / Improvements
    ===========================
    - `tdma_advanced_node` can now pass an empty list for `~comms_slots`. When empty, (`comms_slots=""`) this tells `tdma_advanced_node` not to send comms packets in _any_ slots. Useful for a ping only tdma MAC config
    
    Bugfixes
    ========
    - `acomms_driver_node`: changed minimum ping_reply_timeout from 5 seconds to 1.
    - `modem_sim_node`: changed minimum ping_reply_timeout from 5 seconds to 1.
    - `tdma_advanced_node` bug fix for empty `~comms_slots`.
  • v11.0.0

    Release: v11.0.0
    Breaking Changes
    ================
    - Removed legacy link-layer fragmentation (!142)
      - This functionality is now provided by `ros_acomms_net`, or by using dynamic queues to implement a new transport layer
      - Removes `EncodedAck` and `FragmentationStatus` messages
      - Removes associated unit tests
      - Removes the `allow_fragmentation` parameter from message codecs
    
    New Features / Improvements
    ===========================
    - Add acoustic range features, including node that publishes acoustic range automatically for pings (with sim and hardware support) (!144)
      - New message `AcousticRange.msg`
      - New node `acoustic_range_node.py`: Generates a range for every ping reply (modem ping OR remus transponder ping) using OWTT and `~sound_speed`.  Publishes `AcousticRange.msg` on `~acoustic_range_topic` (`default=acoustic_range`).
    - Logging improvements (!144)
      - Lowered the log verbosity for `tdma_advanced`
      - Added mechanism to `tdma_node` for caching the rosnode log level during init (then available to subclasses)
    - New `mac_switcher` node to handle switching among multiple MAC nodes using software mute (!145, !146, !147)
      - New node `MacSwitcherNode`
      - New message `MacSwitcherStatus.msg`
      - Includes "dead man switch" to revert control to "default" MAC node (!146)
      - Example launch file: `ros_acomms/ros_acomms_tests/launch/test_mac_switcher.launch`.
    
    Bugfixes
    ========
    - `modem_sim_node.py`: modem location topic name now uses the rosparam `~modem_location_topic`. It was hard coded to `location`. (!144)