anchor.diff:  | Sends strings via TCP to their main simulation app
   
   | https://henschel-robotics.ch/hdrive/software/[Henschel Servos] 
  +| https://github.com/ragavsathish/RabbitMQ-Matlab-Client[RabbitMQ] 
  +| Simple Java wrapper for RabbitMQ 
  +
  +| http://support.robotis.com/en/software/dynamixel_sdk/usb2dynamixel/windows/matlab.htm[Robotis Dynamixel]
  +| C library that provides utility functions to manually create the protocol structure
  +
  +| https://sourceforge.net/projects/urbi/?source=typ_redirect[URBI] (http://agents.csse.uwa.edu.au/aibosig/resources/downloads/tutorial_liburbiMatlab_0.1.pdf[tutorial])
  +| Seems to be deprecated
  +
  +| http://fileadmin.cs.lth.se/cs/education/MMKN30/Nao/download/Documentation/dev/matlab/index.html[Aldebaran Nao]
  +| Seems to be deprecated
   | Creates XML messages and sends them to a service running locally on the servo
   
   | https://github.com/ragavsathish/RabbitMQ-Matlab-Client[RabbitMQ] 
  
positive.code: end
  ----
  
  They designed the API such that each topic requires dedicated publishers and subscribers, which is contrary to LCM where each subscriber can listen to multiple channels (topics). This in combination with specifying the type on initialization removes most of the boiler plate code necessary for dealing with message types. The resulting user code is more concise and is arguably more readable.
  
  [source,matlab]
  ----
  
negative.code:     }
  
      public synchronized Message getNextMessage(long timeout_ms) {
      
  		if (!messages.isEmpty()) {
  		    return messages.removeFirst();
          }
  
          if (timeout_ms == 0) {
              return null;
          }
          
          // Wait for new message ...
      }
      
  }
  ----
  
  Note that it is important for _getNextMessage_ to have a relatively short timeout (low seconds). Calls that get stuck in Java can cause the UI to become unresponsive and may require users to force close MATLAB without being able to save the workspace. Passing in a timeout of zero provides a non-blocking interface that returns empty if no messages are available.
  
  [source,matlab]
  ----
  