University: The University ofNorth Carolina at Charlotte
Team Member(s): John Wilkes,Michael Warthon, William Wheeler
Faculty Advisors: Dr. JamesConrad
Title: An Introduction toRobotics Using The National Instruments Starter Kit Robot
Software: LabVIEW Robotics2009
Hardware: DaNI RoboticsPlatform
The purpose of this projectwas to use the National Instruments Robotics Starter Kit to design labs for theUniversity of North Carolina at Charlotte’s Introduction to Robotics course.Our team designed 7 labs, and completed solutions for 6.
The National InstrumentsLabVIEW Robot is a powerful learning tool that can teach students concepts ofautonomous robotics as well as the programming language LabVIEW.
Lab 1: LabVIEW Tutorial andPerception Analysis
• Introduces LabVIEW roboticsand hardware setup along with manipulation of
ParallaxPING))) ultrasonic sensor.
• This lab is a general tutorial to the LabVIEW robotics2009 software. Students will be required to learn the basic operation of thesoftware. Students will also be familiarized with the basics of the ParallaxPING))) ultrasonic sensor.
Lab 2: Motor Control
• Introduces students to basic concepts of DC motorcontrol by programming the robot to move in a specific predetermined pattern(2x2 meter square).
• Students will learn the basics of motor control onthe robot. They will also be introduced to the PID (Proportional Integral Derivative)controller. The PID controller is a method of allowing the robot to maintain aconsistent velocity while preforming a set task. In the case of this lab, thetask will be to have the robot move in a 2 x 2 meter square pattern.
Lab 3: Edge Detection and Obstacle Avoidance
• Introduces the students to hierarchy within LabVIEWby programming edge detection and still allowing concurrent obstacle avoidancebehavior.
• Students will be required to learn how to runmultiple LabVIEW programs concurrently. This goal will be achieved by havingstudents use two SHARP infrared sensors as edge detection sensors.
Additional Materials Needed:
• Sharp Infrared Sensor
Lab 4: Tilt Detection using Accelerometer
• Robot will use an accelerometer to determine if therobot is tilted or not. This lab will be implemented by programming the robotto reverse and resume parallel to the original direction if the robot istilted.
• Apply knowledge of adding a sensor from previous labto determine whether or not the robot is tilted. Students will also familiarize themselveswith an Accelerometer sensor as they implement tilt detection.
Additional Materials Needed:
Lab 5: A* Path Planning
• Robot navigation using a student programmed map ofthe environment within the LabVIEW program.
• A new Robotics concept will be presented to studentsthat go more in-depth into navigation as it now involves the use of a map.Students will learn about the algorithm involved in creating a map and planningthe best or shortest path for the robot to take.
Lab 6: Obstacle Course Competition
• Students will use knowledge gained in previous labsto program the robot to successfully navigate an obstacle course. Extra creditwill be given for fastest times and most precise navigation.
• No specific learning objectives; previous learningobjectives will be applied.
• Students may add additional sensors as desired.Obstacle course will be provided.
Lab 7: Robot Convoy
• This lab will test all knowledge gained in previouslabs and will incorporate several sensors. Robots will follow each other in aconvoy type fashion while running a basic obstacle avoidance program.
• No specific learning objectives; previous learningobjectives will be applied. Subject to change depending on what sensor will beused.
Additional Materials Needed:
• To be determined.
Tutorials for labs 2 through6 have been provided.
The purpose of this project is to use the NationalInstruments Robotics Starter Kit platform to design labs for the University ofNorth Carolina at Charlotte’s Introduction to Robotics course. Our project group was responsible fordesigning, implementing, and creating solutions to these particular labs. Someof the more difficult challenges in this lab involved:
There are two documents foreach lab, which are the student document and tutorial. The student document forthe lab presents what the purpose of the lab is, what sensors will be used ifany, and a description of the topic that will be covered and implemented. Thetutorial provides one possible solution for the lab that the instructor may usein order to provide any extra information or hints to the students if they arehaving trouble or completing the lab.
The benefit of using LabVIEWin this project is the ease of programming involved to accomplish advancedtasks. The visual interface in LabVIEW helps to make debugging easier as nowyou can visually see all of the components you are using in your program. Itwas also a simple task to integrate new sensors to the robot due to the builtin subVIs that allowed the programmer to read or write to any sensor set up inthe corresponding FPGA VI. The functionality of LabVIEW allowed us to mucheasier write the code for each lab than if we used other programming languages.
The purpose of lab 2 was to teach students concepts of motorcontrol. This code causes the robot to move forward 1 meter, turn 90 degrees,and then repeat process thus forming a 1x1 meter square. In the actuall labstudents are required to make the robot travel in a 2x2 meter square pattern.
In lab 3 students are required toalter the roaming vi that ships with the robotics starter kit. Students arerequired to add edge detection to the robot. This code will cause the robot tostop and change direction when an edge is detected.
This is an excerpt from the modifiedroaming vi.
In this lab students are required to program the robot usingan accelerometer as a tilt detector. In the picture above code can be seen thattakes a raw voltage value seen from the accelerometer and turns the voltageinto acceleration.
The above picture shows an excerpt from Lab 5 where studentsmust set up the map and make it so that the robot follows the calculated path.The picture shows the part of the code where a subVI is called that performsthe A* Path Planning algorithm and counts the number of array elements in thepath.