Roadmap to Membership of RICS - Pathways and Routes
design the implementation of trajectory path of the robot using parallel loop
1. EXPERIMENT NO. 2
AIM:
To study and design the implementation of trajectory path of the robot using parallel loop algorithm
Apparatus Used:
Microsoft Windows XP, Professional Version 2002, Intel® Pentium® Dual CPU. E2180 @2.00
GHz, 2.00 GHz, 199 GB of RAM, Lab VIEW Robotics 2011 SP1
Theory:
LabVIEW (short for The Laboratory Virtual Instrumentation Engineering Workbench) is a platform
and development environment for a visual programming language from National Instruments in
which you create programs using a graphical natation (connecting functional nodes via wires through
which data flows), in this regard, it differs from traditional programming languages like C, C++, or
Java in which you program with text. However LabVIEW is much more than a programming
language. It is an interactive program development and execution system designed for people, like
scientists and engineers, who need to program as part of their jobs. The LabVIEW development
environment works on computers running Windows, Mac OS X, or Linux. LabVIEW can create
programs that run on those platforms, as well as Microsoft Pocket PC Microsoft windows CE, Palm
OS, and a variety of embedded platforms, including Field Programmable Gate Arrays (FPGAs),
Digital Signal Processors (DSP), and Microprocessors.
Procedure:
Execution is determined by the structure of a graphical block diagram on which the programmer
connects different function nodes by drawing wires. These wires propagate variables and any node
can execute as soon as all its input data become available. LabVIEW ties the creation of user
interface (front panels) into the development cycle. LabVIEW programs/subroutines are called
virtual instruments (VIs). Each VI has three components; a block diagram, a front panel, and a
connector panel. The last is used to represent the VI in the block diagram of other, calling VI.
Controls and indicators on the front panel allow an operator to input data into or extract data from a
running virtual instrument. However, the front panel can also serve as a programmatic interface.
Thus a VI can either be run as a program, with the front panel serving as a user interface, or when
dropped as a node onto the block diagram, the font panel defines the inputs and outputs for the given
node through the connector pane. This implies each VI can be easily tested before being embedded
as a subroutine into a larger program. The graphical approach also allows non-programmers to build
programs simply by dragging and dropping virtual representation of lab equipment with which they
are already familiar.
2. Execution of VI’s and Sub –VI’s:
Main VI:
Block Diagram:
Figure: 1 Block Diagram of Control loop
3. Sub VI:
Creating Steering:
Result:
This “Single Control Loop” example is useful for robots that do relatively simple repetitive
algorithms. This design uses simulated LIDAR data with the Vector Field Histogram obstacle
avoidance algorithm and steering API. Insert code for acquiring and processing sensor data and
controlling the robot inside the Timed Loop controls timing and is configured to run at 10 Hz.
However, all processing must execute fast enough to keep up with this loop rate.
Timed Loop:
Execute one or more sub diagram, or frames, sequentially each iteration of the loop at the period we
specify. Use the Timed loop when we want to develop the VIs with rate timing capabilities, precise
timing, feedback on loop execution, timing characteristics that change dynamically, or several levels
of execution priority.
Steering Frame:
To create the steering frame of robot there are steering VIs under Robotics VIs in which “Ackermann
steering VI” is used in this design. The center of the steering is at the midpoint of the wheel
separation width between the rare wheels. Figure 2 shows the VI of Ackermann Steering Frame. In
this figure1 and 1.5 in Ackermann VIis wheel separation width and length respectively. In this VI
there are two steering front wheel and two fixed rear wheel is used. To create them we use separate
VIs for “Create Steering Wheel.vi” and “Create Fixed Wheel.VI”. In both VIs wheel parameters and
steering parameters is set according to our design and movement of frame. Wheel object is created
using controls which are in pink boxes.
4. Using Read Saved LIDAR data VI:
This VI reads the saved data extracting from LIDAR sensor attached to robot. LIDAR Sensor sensors
scan a sector of angle and return the distances to nearest object in every direction. Thus this VI gives
two output data magnitude in mm and direction of that length.
Simple Vector Field Histogram VI:
Output from LIDAR sensor VI is input of this VI. Identifies obstacles and gaps or open areas, in the
robot environment, which we can use to implement reactionary motion in a robot vehicle. Panic
range defines the range at which this VI identifies an obstacle as an area of the environment to avoid.
A distance specifies the distances between the robot sensor and objects in the robot environment. A
direction angle specifies the angles at which objects are located with respect to the center of the
sensor. Positive values represent locations to the right of the center of the sensor, and negative values
represent positions to the left of the center of the sensor. Elements in direction angles correspond to
elements in distances. Distance threshold specifies the distance at which this VI does not consider
objects to be obstacles. This VI ignores any objects at distances greater than distance threshold.
Largest gap describes the largest open area in the robot environment. Histogram returns the
histogram data that represents the distances to objects in range of the sensor, arranged by angle and
direction. Now output from VFH is angle to gap which decide that how much robot rotate it’s
steering to get the right direction for forward movement.
Apply Velocity to wheels VI:
Now according to angle to gap this VI apply the right velocity to move the robot in maximum gap
path. Steering frame in is a reference to the steering frame on which to operate. Steering frame
velocity specifies the velocity of the steering frame, error in describes error conditions that occur
before this node runs.
Precautions:
To avoid hanging the user interface with front panel locking, configure all events you want a VI
to handle in a single Event structure or always make sure there is only one Event structure in a
loop.
Additionally, make sure there is always an Event structure available to handle events as they
occur.