Difference between revisions of "Labview"

From RobotinoWiki
(An example of Robotino with LabVIEW)
(An example of Robotino with LabVIEW)
Line 43: Line 43:
  
 
In case the output is ''false'' (no obstacle detected) then a constant velocity of 500 mm/s in the X direction is applied (see block diagram below). This causes Robotino to move forward.
 
In case the output is ''false'' (no obstacle detected) then a constant velocity of 500 mm/s in the X direction is applied (see block diagram below). This causes Robotino to move forward.
 +
 +
[[File:Collision_avoidance_laserrangefinder_example_false.png]]
 +
 +
The ''Motor Speed 1'', ''Motor Speed 2'' and ''Motor Speed 3'' outputs of the ''OmniDrive'' are then connected as input for the 3 motors respectively which causes the 3 motors to turn and hence, moving the robot.

Revision as of 15:16, 3 January 2011

Robotino in LabVIEW

LabVIEW drivers are also available for Robotino. Using these drivers Robotino's functionality can be manipulated in LabVIEW. The drivers come with a set of easy to understand examples and an extensive help manual which illustrates the use of each Robotino LabVIEW VI.

Download

LabVIEW Drivers available

  1. AnalogInput
  2. Bumper
  3. Com
  4. Camera
  5. DigitalInput
  6. DigitalOutput
  7. DistanceSensor
  8. EncoderInput
  9. Gripper
  10. LaserRangeFinder
  11. Manipulator
  12. Motor
  13. NorthStar
  14. Odometry
  15. OmniDrive
  16. PowerManagement
  17. Relay

An example of Robotino with LabVIEW

Using the LabVIEW drivers, a scenario has been created where Robotino moves around in an obstacle cluttered environment by avoiding the obstacles.

Collision avoidance laserrangefinder example.png

In the figure above, the block diagram of the line follow example can be seen. Many of the Robotino's LabVIEW VIs (such as Com, LaserRangeFinder, OmniDrive and Motor) have been used to create this example.

You may note that the error stream traverses through all the Robotino LabVIEW VIs used in this example. Errors or warnings from previous VIs are carried to subsequent VIs and finally to an error sink.

In this example, Com takes the Hostname and two additional Boolean inputs, namely Connect and Disconnect. If Connect is set to true a connection to Robotino is initiated and if Disconnect is set to true, the connection is terminated. Upon establishment of a successful connection, a Com Id is returned which is then used by the other VIs to communicate with Robotino.

As you may note from the block diagram above, the LaserRangeFinder returns the readings from the Robotino's laser scanner. There are about 666 range values returned by the laser scanner. We then loop through the values between 283 - 383 (in front of the robot) and if any of those values is less than 0.8 (meters), that means the robot is in the vicinity of an obstacle. This check is done inside the for-loop (as seen above).

In case that the robot is close to an obstacle (the Boolean check in the for-loop returns true), we stop and rotate the robot until the front of the robot is clear of obstacles.

In case the output is false (no obstacle detected) then a constant velocity of 500 mm/s in the X direction is applied (see block diagram below). This causes Robotino to move forward.

Collision avoidance laserrangefinder example false.png

The Motor Speed 1, Motor Speed 2 and Motor Speed 3 outputs of the OmniDrive are then connected as input for the 3 motors respectively which causes the 3 motors to turn and hence, moving the robot.