I haven't seen it mentioned on here but some of you may know that there exists a protocol for passing control messages between an operator console and autonomous vehicle. JAUS, the Joint Autonomous Unmanned Systems protocol was designed as a hack by several defense contractors to unify and standardize the methods used to control autonomous vehicles.
Unfortunately what it was envisioned to be, and what it currently is, are at opposite ends of the spectrum. In the past months that I've been forced to use it I've become more and more disgusted over what I see as fundamental flaws that could have been avoided if folks who actually understood computer architecture would have been properly involved. The following is my list of gripes and reasons I feel (and hope) that JAUS dies a horrible death.1) JAUS is far too abstract a model to map easily to current hardware components. While reading the specification documents I had this vision going thru my head of a couple of rubber room college professors sitting down and arguing out a method for doing something without any real world experience related to what they were defining.
2) JAUS is little-endian!!! Who in their right mind designs a network transportable protocol using a little-endian number format? The implications of this are that programming for JAUS becomes a very large pain in the ass, especially on machines that use big-endian numbers. You must define manipulator/accessor methods for every stinking field in every type of message allowed for in the spec because you cannot simply map the data buffer from one machine to another and get meaningful information out of it. Again, probably defined by someone who thinks the Intel based PC is the only type of machine on the planet...and Intel is not an optimal choice for battery powered robots: too much power draw3) JAUS has no facility for dynamic discovery of what robotic components are available in a network or what their attributes might be. More on this later, but it makes the idea of a generic interoperable operator console an utter impossibility.
4) JAUS messages for handling audio-visual or ad-hoc sensor data are severely lacking or non-existent. The current hack for video is crippled because it makes certain assumptions about the format of the video stream and the capabilities of the camera.5) Since starting to use JAUS last August I've known five different vendors who all had different interpretations of how a single function is accomplished under JAUS. This tells me that it should not be used.
6) The written documentation for JAUS suxs. I've noted several places where the specification is vague or outright conflicts with what is written in a another section.
The reason I bring up this rant in this group is because JAUS is simply a bad implementation of a good idea. I realize that many of you are hobbyists and not professional robotic engineers but I've noted from reading the posts that you are generally asking the right questions and in many cases sharing good answers. I'd like to see folks outside the defense industry think about this issue of a standard robotics control language. I'm convinced the non-military sector can come up with a far superior scheme.
-noone of consequence