robot software architecture (mobile robots)
DESCRIPTION
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.TRANSCRIPT
Sathya - Software Development @ [email protected]
ROBOT SOFTWARE ARCHITECTURE
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 Layero It handles the low-level driver functions required to operate sense and act of
the robot.
o It depends in sensors and actuators used in the system and
also other hardware that the driver software runs on.
o 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
o 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 .
o 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
o It represent the high-level control algorithms for the robotic system.
o It take system information such as position, velocity, or processed video
images and make control decisions based on all of the feedback.
o 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
o It provides physical interaction between the robot and a human
operator or
displays relevant information on a host PC or Devices.
Example from Fig:
o It read input from a mouse or joystick, or to drive a simple text display.
o 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