Software Libraries for Network Communication
From MobileRobots Research and Academic Customer Support
ARIA includes three ways to do network communications.
First is basic socket communication using the ArSocket class. ArSocket is similar to the standard C sockets (like Unix sockets or Winsock), but it simplifies some of the more complex or obscure aspects.
Next is ArNetServer. An ArNetServer manages receiving text commands from a client, and calls callback functions to handle the command. It can also just send text to clients. This is a simple way to provide a telnet command interface for remote operation.
These two classes are part of the ARIA library; ARIA contains documentation on these and related classes, and example and test programs.
Finally there is the ArNetworking library. This is a more complete framework for sending data updates to clients and receiving commands and other data from them. This is what MobileEyes uses to connect to the robot. ArNetworking includes many services already available for a server to use, including robot status and position, sensor data, map data, etc. ArNetworking is a seperate library, but is packaged along with ARIA, in the ArNetworking subdirectory. It also has its own, seperate reference manual, and example programs, in that directory.
You can ask questions about this topic on the aria-users Mailing List.
Remote Network Operation Design
The best way to implement remote network control is to use a client-server design and write two programs, one that runs on the robot's onboard computer, and a network client to run remotely. This becomes part of a three-tier architecture:
1. The robot with its embedded firmware for motor control etc.
2. A server program using Aria to connect to the robot over a serial port link implementing higher level robot control behavior
3. A remote client for operators to view and interact with the higer level control.
You may use the ArNetworking infrastructure to communicate between the control server and remote clients, such as MobileEyes, or any of the other available low-lever networking tools if you wish to develop your own protocol and client programs.
ArNetworking includes an example server program called 'serverDemo' (among others) which you can run on your robot's onboard computer. Then connect with MobileEyes to see sonar data and teleoperate the robot. Run 'serverDemo' with the '-help' argument to see available options. ARNL includes an example server program called 'arnlServer', 'sonarnlServer', or 'mogsServer' (or, in older versions, 'guiServer') to which you can connect with MobileEyes. If you don't have an onboard computer, but have a serial-to-ethernet bridge device installed, you can a server program with the '-remoteHost' option providing the address of the serial-to-ethernet bridge; then connect to 'localhost' using MobileEyes to connect to the locally running server program.
