‹ BackHN Continuity

Thread

German Rheinmetall open-sources its Battlesuite connected weapon system protcol

284 points · 109 comments · summarity

  1. alhirzel · · focus · HN ↗
    Reminds me a lot of the Tactical Microgrid Standard (aka TMS aka MIL-STD-3071) [1], probably just because TMS uses DDS as well. I would really like to know if there is a protocol that functions like DDS but caters to real-time guarantees and prioritizes (at a "simple protocol" level) usability on embedded systems with no dynamic memory allocation. It would also need to be just-as-functional with non-real-time systems. One problem with DDS is that it is too heavy-handed to implement well on an embedded system.

    [1] <a href="https:&#x2F;&#x2F;battery.army.mil&#x2F;system-integrator-hub&#x2F;tms&#x2F;" rel="nofollow">https:&#x2F;&#x2F;battery.army.mil&#x2F;system-integrator-hub&#x2F;tms&#x2F;

    1. p_l · · focus · HN ↗
      Pretty sure there are DDS implementations that provide most of that, maybe with memory pools instead of no-allocations.

      Other than that, PX4 uses an in-memory only pub&#x2F;sub for internal data bus, somewhat inspired by DDS

      1. alhirzel · · focus · HN ↗
        I should have also mentioned that my appetite also includes not being locked into one vendor&#x27;s software stack. For instance, there are nice offerings from Eprosima [1] and Twin Oaks [2] that do this, but they seem to be &quot;outstanding in their field&quot; and would be difficult to replace if a need to do so developed. In the case of Eprosima&#x27;s offerings, they also make some architectural assumptions that are difficult to maintain for some applications (such as having a paired Linux device with each embedded device acting as a translator).

        But yes - there absolutely are solutions already. I guess I was just lamenting that they weren&#x27;t really functionally accessible for all applications.

        [1] <a href="https:&#x2F;&#x2F;micro-xrce-dds.docs.eprosima.com&#x2F;en&#x2F;latest&#x2F;" rel="nofollow">https:&#x2F;&#x2F;micro-xrce-dds.docs.eprosima.com&#x2F;en&#x2F;latest&#x2F;

        [2] <a href="https:&#x2F;&#x2F;www.twinoakscomputing.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.twinoakscomputing.com&#x2F;

    2. cpgxiii · · focus · HN ↗
      There&#x27;s a range of DDS implementations, definitely a number that are compatible with embedded and spaceflight applications that don&#x27;t require dynamic memory allocations. You&#x27;re going to take a hit on some DDS features, but then again you aren&#x27;t going to need to handle a large queue of large dynamically-sized messages on some small embedded platform.

      I think it&#x27;s rarely the right choice - most of the hardware I&#x27;ve seen that uses embedded DDS probably should have used plain old UDP instead and then whatever client was running on beefier hardware then handled the translation into DDS - but there are shipping products that use embedded DDS.

    3. matthewmacleod · · focus · HN ↗
      Zenoh (<a href="https:&#x2F;&#x2F;zenoh.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;zenoh.io&#x2F;) is a good alternative to DDS in many cases - it scales down to microcontrollers with most features still intact, but scales up to a routed hybrid mesh if needed.

      It does move the schema enforcement out of the middleware layer, so it’s a bit different. But it’s now a first-class alternative middleware implementation for ROS2 as an alternative to DDS.

      1. alhirzel · · focus · HN ↗
        Wow - thanks for pointing this out! I will be looking into it.
    4. BoorishBears · · focus · HN ↗
      TIL there are people using DDS for non-realtime
Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.