Recent Changes - Search:

Main

Robotics I Fall 2007

Robotics II Spring 2007

Robotics I Fall 2006

Vision Servoing Laboratories

FPGA-Based Vision

VDSP

LabVIEW Embedded

Code

Site Admin

edit SideBar

RoboticsIFall2006.Lab4 History

Hide minor edits - Show changes to output

November 06, 2006, at 02:33 PM by 129.63.24.184 -
Changed lines 59-60 from:
*[[http://inventiondb.com/browse.php?cubeid=1977| Yung's Project 3 Calcutron Robot ]]
to:
*[[http://inventiondb.com/browse.php?cubeid=1977| Yung's Project 4 Calcutron Robot ]]
November 06, 2006, at 02:33 PM by 129.63.24.184 -
Changed lines 59-62 from:
*
to:
*[[http://inventiondb.com/browse.php?cubeid=1977| Yung's Project 3 Calcutron Robot ]]

*

Changed lines 45-46 from:
Build it in LabVIEW.  One possibility is to use global variables to have each sub-behavior indicate how it would like to move the motors if it were in control, and then have a supervisory behavior that determines which sub-behavior is presently the “lucky winner&#148 who gets their values actually copied to the motor.  This supervisory loop would have to continuously select from the possible motor settings, copying the winner into the actual motor outputs.
to:
Build it in LabVIEW.  One possibility is to use global variables to have each sub-behavior indicate how it would like to move the motors if it were in control, and then have a supervisory behavior that determines which sub-behavior is presently the “lucky winner” who gets their values actually copied to the motor.  This supervisory loop would have to continuously select from the possible motor settings, copying the winner into the actual motor outputs.
Added line 22:
Changed lines 29-30 from:
* Algorithmic control.  This is presented as a method that has problems when robots are flexibly select amongst operating modes.
to:
* Algorithmic control.  This is presented as a method that works when robots need to move lock-step through a series of actions, but has problems when robots must flexibly select from various operating modes.
Changed line 57 from:
*[[http://www.inventiondb.com/browse.php?cubeid=1353 | Ben's Project 3-Bolts ]]
to:
*
Changed lines 39-68 from:
!!About Sonar

The sonar ranging sensor determines distance to an object by measuring how long it takes for an ultrasonic ping
to be emitted, travel through the air to the object, and then get reflected back. 

Sound travels relatively slowly (to a microprocessor):  about 1 foot per millisecond.  Therefore, if an object is 1 foot away, the delay between a ping being emitted and the reflection being heard will be 2 milliseconds (because you have to count
the round-trip travel time).

The sonar sensors we will use is
the Devantech SRF04It has a separate signal wire for the transmit and receive pulses.  To connect to the Blackfin Handy Board, plug the sonar's transmit wire to a Handy Board digital output, and the sonar's receive wire to a digital input.  Use matching inputs and outputs; e.g., use digital input 12 and digital output 22.

Use the sonar initialize VI to configure
the input/output pair to function with a sonar sensors, and the sonar read VI to take a measurement.

!!About Servos

A servo motor consists of a DC motor, gear train, positioning measurement sensor, and controller electronics, all integrated into one compact package.

There are two basic types of servo motors:  free-running (in which the output shaft spins continuously, like a regular motor.  These are also known as a “winch servo”) and position-based (in which the output shaft can rotate about 180 degrees, back and forth). 

For this project, use a position-based servo motor.

The servo motor is controlled by an encoded digital signal.  In the case of the position-based motor, the signal tells the motor what angular position it should rotate to.  The motor then attempts to stay at the position.

!!The Project

Mount the sonar ranging sensor onto a servo motor, and then mount this assembly onto your robot.

Now, develop a LabVIEW program in which the robot will rotate the sonar for one sweep, building up an array of sensor readings, and then find the position that reveals the most open space.  The robot should then rotate toward that position and drive forward a bit.  Then this process should repeat.  The final result is a robot that continuously hunts for and drives toward open spaces.

Write up your results as an InventionDB project and link to your iDB cube at the bottom of this page.

Please create a short video of your robot performing this function.  Use Windows Movie Maker to compress it into a reasonably small .WMV format file, and then upload to InventionDB
.
to:
Now, draw a state transition diagram (or other diagram that you understand and can explain) to document your design.  Post to invention database.  (If it's a pencil drawing, use the flatbed scanner in the lab.)

!!Implement It

Build it in LabVIEW.  One possibility is to use global variables to have each sub-behavior indicate how it would like to move the motors if it were in control, and then have a supervisory behavior that determines which sub-behavior is presently
the “lucky winner&#148 who gets their values actually copied to the motorThis supervisory loop would have to continuously select from the possible motor settings, copying the winner into the actual motor outputs.

That's just one way.  Based on the readings and your interest exploring LabVIEW, you might have other ideas
.

!!Document It

Explain your work on the inventionDB
.  Include screensnaps of key VIs, discussion, robot photos, and a robot movie.  Upload the source VIs.
Added lines 17-18:
!!Introduction
Changed lines 24-25 from:
Together, these two topics form the beginnings of a field of study known as ''classical control.''  This
to:
Together, these two topics form the beginnings of a field of study known as ''classical control.''  This field is concerned with systems such as factories, engines, plants, and other large systems to be controlled.

Then two sections discuss robot control:

* Algorithmic control.  This is presented as a method that has problems when robots are flexibly select amongst operating modes.
* Reactive control.  This is my own phrase for a limited version version of what is more broadly known in the literature as ''behavior-based control.''  In my design, multiple behaviors can run in parallel, with exactly one of them (the one with the highest priority) being allowed to actually control the robot's motors.

In this lab, you are invited to bring together ideas from these two sections, along with a thorough introduction to Behavior-Based Robotics in the Arkin book, into a practical implementation on your robot.

!!Frame the Problem

Your first task is to decide what behaviors you would like your robot to coordinate.  To date, you have implemented light-seeking, open space-seeking, bouncing-off-of-obstacles, wall-following, and velocity control.  You may add a new behavior, such as following a black line of electrical tape on the floor.

You should choose 3 behaviors and then determine how the robot will select among them.  For example, the robot might seek out bright light, but if it runs over a line, it will follow it for 30 seconds, and then start light-seeking again.  While both of these behaviors are possible, if the robot runs into something with its touch sensors, that will override either other behavior, and cause it to back up and turn away.

Changed lines 10-13 from:
*

!Project 3
: Open-Space Seeking
to:
Please read:

* Chapter 4 from the Arkin book, ''Behavior-Based Robotics''
* Chapter 5 from Martin, “Control”

!Project 4: Behavior-Based Control

Chapter 5 of the Martin book discusses the following types of control:

* Simple feedback control.  This was discussed in class, and was the topic in Lab 2.
* Proportional-derivative control.  This was also briefly mentioned in class.

Together, these two topics form the beginnings of a field of study known as ''classical control.''  This

Added lines 1-50:
!Lab 4: Behavior-Based Control

Assigned: Thursday, September 28, 2006. \\
Due: Thursday, October 5, 2006.

''In this lab, you will develop approaches to coordinating multiple robot control modes into a coherent overall robot behavior.''

!Readings

*

!Project 3: Open-Space Seeking

!!About Sonar

The sonar ranging sensor determines distance to an object by measuring how long it takes for an ultrasonic ping to be emitted, travel through the air to the object, and then get reflected back. 

Sound travels relatively slowly (to a microprocessor):  about 1 foot per millisecond.  Therefore, if an object is 1 foot away, the delay between a ping being emitted and the reflection being heard will be 2 milliseconds (because you have to count the round-trip travel time).

The sonar sensors we will use is the Devantech SRF04.  It has a separate signal wire for the transmit and receive pulses.  To connect to the Blackfin Handy Board, plug the sonar's transmit wire to a Handy Board digital output, and the sonar's receive wire to a digital input.  Use matching inputs and outputs; e.g., use digital input 12 and digital output 22.

Use the sonar initialize VI to configure the input/output pair to function with a sonar sensors, and the sonar read VI to take a measurement.

!!About Servos

A servo motor consists of a DC motor, gear train, positioning measurement sensor, and controller electronics, all integrated into one compact package.

There are two basic types of servo motors:  free-running (in which the output shaft spins continuously, like a regular motor.  These are also known as a “winch servo”) and position-based (in which the output shaft can rotate about 180 degrees, back and forth). 

For this project, use a position-based servo motor.

The servo motor is controlled by an encoded digital signal.  In the case of the position-based motor, the signal tells the motor what angular position it should rotate to.  The motor then attempts to stay at the position.

!!The Project

Mount the sonar ranging sensor onto a servo motor, and then mount this assembly onto your robot.

Now, develop a LabVIEW program in which the robot will rotate the sonar for one sweep, building up an array of sensor readings, and then find the position that reveals the most open space.  The robot should then rotate toward that position and drive forward a bit.  Then this process should repeat.  The final result is a robot that continuously hunts for and drives toward open spaces.

Write up your results as an InventionDB project and link to your iDB cube at the bottom of this page.

Please create a short video of your robot performing this function.  Use Windows Movie Maker to compress it into a reasonably small .WMV format file, and then upload to InventionDB.

----

!Student Links to InventionDB Writeups

Link to your InventionDB cubes here.

*[[http://www.inventiondb.com/browse.php?cubeid=1353 | Ben's Project 3-Bolts ]]
Edit - History - Print - Recent Changes - Search
Page last modified on November 06, 2006, at 02:33 PM