LandShark System Overview
The following picture shows the basic setup of the system for tele-operation mode with a single IP camera for video, GPS, and encoders. Since this is a basic overview of the system other sensors have been ignored to keep the complexity down.
From the Figure above:
The following outlines some of what is going on while the system is running:
The NodeManagers on the OCU and the LandShark are in constant communication with each other. They keep track of which OpenJAUS components are running on each system. If, on the OCU side, there is a timeout in the communications with the Primitive Driver on the LandShark the JAUS status light on the OCU stops blinking and it goes into a disconnected state. Likewise, on the LandShark side, a timeout occurs in communications with Subsystem Commander on the OCU, the System will go into an emergency state and stop all motors. Once the two systems start communicating again everything goes back to normal(OCU: Jaus status light blinks. LandShark: primitive driver accepts drive commands) and driving may proceed.
Request for GPS data, velocity state are periodically sent to the Subsystem Commander (approx 1 per second). These commands requests are forwarded to the NodeManager on the OCU. The NodeManager on the OCU knows where the requested component is and forwards the request to the NodeManager on the LandShark. These requests are then sent to the specific components running on the LandShark. GPS data requests are sent to the Global Pose Sensor, velocity state request are sent to the Velocity State Sensor. The Global Pose / Velocity State Sensor receive the request and send the response (which includes the requested data) back to the sender via the NodeManager on the LandShark. The NodeManager on the LandShark forwards the response to the NodeManager on the OCU. The OCU NodeManager then forwards the response to the Subsystem Commander which then updates the appropriate displays (Moving Map for GPS and Robot Status for Velocity and GPS) on the OCU display.
The Xbox 360 controller data is used to control the motor speed on the LandShark. On the OCU, when the Joystick moves, data is transformed into motor control commands. The data is then placed into an OpenJAUS “setWrenchEffort” message and sent to the Primitive Driver on the LandShark via the NodeManagers as describe in the previous section. The Primitive Driver then sends the commanded motor speeds to the motor controllers.
These are just a few of the processes that are going on behind the scenes.