Software Architecture for (Robot-Sense, Think and Act ). It is general architecture for mobile robots for performing tasks.
A Layered architecture, use to build standard software by integrating robot subsystems and user logic.
Outline What and Why ? Layered Architecture (Mobile Robots) Advantages & Disadvantages Robot with Layered Architecture Queries____
What It refers how a system is divided into subsystems and how those subsystems interact .( Sense , Think, Act ) It is distinguished from other software architectures because of the special needs of robot systems. - Why A hierarchical set of control loops, representing high-level mission planning on high-end computing platforms. For controlling path planning, robot trajectory, obstacle avoidance
Layered Architecture Driver Layer Platform Layer Algorithm Layer User Interface Layer Depending on the target hardware, the software layers could potentially be distributed across multiple targets. In most cases, all of the layers run on one computing platform.
A three to four layer system Fig. Autonomous mobile robot with a manipulator Tasks : Including path planning, Obstacle avoidance, and Mapping . Used : Agriculture , Logistics , or Search and Rescue .
1. Driver Layer It handles the low-level driver functions required to operate sense and act of the robot . It depends in sensors and actuators used in the system and also other hardware that the driver software runs on. It takes raw sensor data, turn it into meaningful engineering units, and pass the sensor values to the other architecture levels (ex: analog to digital)
Driver Layer in simulation Interface to Common Sensors and Actuators Use : From low-cost infrared sensors to high-definition light detection and ranging (LIDAR) sensors. A physics-based environment simulator to switch between hardware and simulation.( Lab VIEW Robotics Module )
2. Platform Layer It translates data between the driver layer and the higher level algorithm layer by converting low-level information into a more complete picture for the higher levels of the software and vice versa . It corresponds to the physical hardware configuration of the robot. Figure . The platform layer translates between the driver layer and algorithm layer.
3. Algorithm Layer It represent the high-level control algorithms for the robotic system. It take system information such as position, velocity, or processed video images and make control decisions based on all of the feedback. Example of obstacle avoidance using a vector field histogram (VFH). -> VFH block receives distance data from a distance sensor, which was sent from the platform layer. -> The output of the VFH block contains path direction, which is sent down to the platform layer. -> In the platform layer, the path direction is input into the steering algorithm, which generates low-level code that can be sent directly to the motors at the driver layer . Figure . The algorithm layer makes control decisions based on feedback.
4. User Interface Layer It provides physical interaction between the robot and a human operator or displays relevant information on a host PC or Devices. Example from Fig : It read input from a mouse or joystick, or to drive a simple text display. It displays live image data from the onboard camera, and the X and Y coordinates of nearby obstacles on a map. The servo angle control allows the user to rotate the onboard servo motor that the camera is attached to; Figure . The user interface layer allows a user to interact with a robot or display information.
Advantages Reusing components of code in future projects. Easy to simulate and testing . Develop custom modules for different environments. Easy to select right hardware and increase scalability. Disadvantages It depends on hardware devices of Robot system. Software testing flaws cause to damage hardware. We can not use for multiple tasks.
Sample Mobile Robot Sample structure (Path Planning) Device Layer Sensors , Motors and Relays -> Send Analog to Digital signal Platform Layer (Embedded logic ) -> Receive data and send input to micro controller. -> Receive Image data from cameras . Algorithm Layer(User Logic with programming) ->Get inputs form platform layer and other Sub systems. -> Check path with Image processing algorithm and compare sensor outputs.(C, Java) ->Send output of logic to platform layer. ->Platform layer sends signals to sensors and actuators to steer wheel directions and change image device. UI Layer(GUI + Remote control devices ) Figure . Three layer software architecture