UAHuntsville Luna Rover Project
This thread is a continuation of the
NASA/UAH autonomous beacon navigation and obstacle avoidance robot using the Parallax QuadRover
thread started by the NASA Robotics Team during the summer, 2008.
I'd like to introduce the new team, who are taking over where the summer team left off.
First, a summary. Over the summer, a team of four NASA Robotics Academy interns
worked with and added to the QuadRover. The goals were:
1. Test the mobility using R/C
Worked great and was a lot of fun testing on inclines,
sand, gravel, dirt roads.
2. Add radio beacon localization
Used ultra-wide band radios furnished by Time Domain, Inc,
four in the field and one on the QuadRover, to provide the rover
position relative to the field radios. The range is 100m, with an
accuracy of about one foot which is updated on an average of
eight times a second.
3. Way Point Navigation
Using the radios, the rover navigated autonomously to predetermined
way points. YouTube video posts (www.youtube.com/NASA) show the
way point navigation.
4. Obstacle Avoidance.
A SICK scanning laser range finder was added to the rover. In autonomous
mode, the rover could either follow a person, or avoid a person.
The new project objectives are divided into two semester.
Fall Semester - Correct various glitches and improve the platform.
1. With the various hardware additions (Radio, LADAR, Batteries, power
supply), the QuadRover top structure was carrying a weight of about
twenty pounds. This weight proved too much for the 3/16 inch 6061 aluminum frame
(top structure), which cracked in several places (joints and bends). A new
top structure is being made out of 3/16" steel, using the original design as
a template.
2. The home brew power supply and a glitch when used with the UDP to serial
radio interface card. This will be checked out and corrected.
3. Some of the electronics added had 5 v. outputs. The team was unsuccessful
in using the 3.3 v. inputs on the Propeller (with the recommended series current
limiting resistors) and instead used the 5v. Propeller inputs intended for the
gyroscope and GPS sensors. This will be checked out.
4. A laptop computer running Linux will be added to the platform.
5. Add dead reckoning sensors (wheel encoders and gyroscope).
Encoders and encoder holders were generously provided by
the Oregon State University Team (check out their first place contest
entry in the OSU thread).
6. The QuadRover will be checked out with the above modifications to duplicate
the summer performance. This will familiarize the team with rover and the
software written by the summer team.
Spring Semester - Add performance upgrades
1. The majority of the software will be migrated to the PC, with the Propeller
running the R/C software and controlling the servos and the hydraulic valves.
2. Fuzzy control software written in C will be developed to:
a. integrate way point navigation with obstacle avoidance
b. autonomously navigate to a goal position while avoiding
known (i.e. mapped) hazards and unknown obstacles.
3. Use dead reckoning to navigate to a safe (predefined) position upon
radio beacon failure.
That's enough from me. I'll turn it over to the computer engineering team -
Team Luna.
John Piccirillo
Post Edited (JohnP) : 9/30/2008 7:04:07 PM GMT
NASA/UAH autonomous beacon navigation and obstacle avoidance robot using the Parallax QuadRover
thread started by the NASA Robotics Team during the summer, 2008.
I'd like to introduce the new team, who are taking over where the summer team left off.
First, a summary. Over the summer, a team of four NASA Robotics Academy interns
worked with and added to the QuadRover. The goals were:
1. Test the mobility using R/C
Worked great and was a lot of fun testing on inclines,
sand, gravel, dirt roads.
2. Add radio beacon localization
Used ultra-wide band radios furnished by Time Domain, Inc,
four in the field and one on the QuadRover, to provide the rover
position relative to the field radios. The range is 100m, with an
accuracy of about one foot which is updated on an average of
eight times a second.
3. Way Point Navigation
Using the radios, the rover navigated autonomously to predetermined
way points. YouTube video posts (www.youtube.com/NASA) show the
way point navigation.
4. Obstacle Avoidance.
A SICK scanning laser range finder was added to the rover. In autonomous
mode, the rover could either follow a person, or avoid a person.
The new project objectives are divided into two semester.
Fall Semester - Correct various glitches and improve the platform.
1. With the various hardware additions (Radio, LADAR, Batteries, power
supply), the QuadRover top structure was carrying a weight of about
twenty pounds. This weight proved too much for the 3/16 inch 6061 aluminum frame
(top structure), which cracked in several places (joints and bends). A new
top structure is being made out of 3/16" steel, using the original design as
a template.
2. The home brew power supply and a glitch when used with the UDP to serial
radio interface card. This will be checked out and corrected.
3. Some of the electronics added had 5 v. outputs. The team was unsuccessful
in using the 3.3 v. inputs on the Propeller (with the recommended series current
limiting resistors) and instead used the 5v. Propeller inputs intended for the
gyroscope and GPS sensors. This will be checked out.
4. A laptop computer running Linux will be added to the platform.
5. Add dead reckoning sensors (wheel encoders and gyroscope).
Encoders and encoder holders were generously provided by
the Oregon State University Team (check out their first place contest
entry in the OSU thread).
6. The QuadRover will be checked out with the above modifications to duplicate
the summer performance. This will familiarize the team with rover and the
software written by the summer team.
Spring Semester - Add performance upgrades
1. The majority of the software will be migrated to the PC, with the Propeller
running the R/C software and controlling the servos and the hydraulic valves.
2. Fuzzy control software written in C will be developed to:
a. integrate way point navigation with obstacle avoidance
b. autonomously navigate to a goal position while avoiding
known (i.e. mapped) hazards and unknown obstacles.
3. Use dead reckoning to navigate to a safe (predefined) position upon
radio beacon failure.
That's enough from me. I'll turn it over to the computer engineering team -
Team Luna.
John Piccirillo
Post Edited (JohnP) : 9/30/2008 7:04:07 PM GMT
Comments
Sorry for the long delay between posts. Team LUNA has been researching the following topics:
Theory and integration of Sick LADAR
Theory and integration of UWB Radio communication
Fuzzy logic control
Team LUNA would like to invite you to visit our website for more information regarding our project: http://www.eng.uah.edu/~teamluna/CPE_495:__Team_Luna/Welcome.html
At our website, you will be able to see first-hand progress of our rover. Pictures, video, updates, and documentation will be found here and updated regularly.
Also, dis-assembly has started, we have acquired and configured the laptop that will contain decision making algorithms, and presented our solution to the problem. This presentation will be posted this week.
Thanks,
Team LUNA
**Presentation for CPE 496, to be performed Spring 2009, has been completed. This item can be viewed in the Documentation section of the website.
**Mechanical Re-fabrication is in progress. Team Luna is running behind schedule due to delays from the fabrication shop. Luna has been assured that progress is being made, and the chassis will be finished ASAP.
**Team Luna has acquired our laptop, LAWANDA (LAptop With A Navigational Decision-making Algorithm). Configuration of the laptop is approximately 80% complete. Configuration will resume when Luna is ready for software configuration.
**UWB and LADAR configuration is progressing at a great rate. Both configurations have demonstrated proof of concept. Tony and Julie are now researching details of integration and data capture.
**Progress updates have been given to our supervisor, Dr. Emil Jovanov. Dr. Jovanov appeared to be satisfied with deliverables and demonstrations provided.
**Kris has started writing Luna’s data-logging system. Kris and Randall will also be responsible for Parallax Programming for laptop integration.
**The Documentation section of the website has been updated extensively. Please feel free to explore our current deliverables.
I have attempted to attach the team's presentation for work performed in the spring semester. Please visit our website for this information; this presentation is located in the documentation section.
Thanks for Reading,
Team Luna
John-
Team LUNA is excited to report that work has resumed configuring our rover. Since our last post, much work has been completed, and we have many status updates to offer.
** Tony and Julie met over the winter break to discuss and design UML diagrams of necessary C++ classes for communication between the LADAR and UWBLS systems. Coding these methods is in progress.
** Tony has the serial interface communicating reliably between the LADAR and the Ubuntu operating system. This interface now provides distance (in centimeters) back to the display. This information will be used to determine the distance between obstacles and the rover.
** Julie has the UWBLS set up in a four stationary, one mobile configuration. Communication between UDP packets sent and received has also been established. This information will provide the robot’s position to the navigational algorithm for autonomous navigation.
** Kris has taken the existing rover control code and removed all non-proprietary code over winter break. This will free up memory and cogs on the Parallax Propeller, enabling the system to be more robust.
** Kris has also completed the data-logging system with the exception of adding shared memory capability. This enhancement will be added when the team defines message format being sent and received.
** Randall has established bi-directional serial communication between the Parallax Propeller and the Ubuntu operating system. All rover decisions will be made by the Dell Mini Laptop and sent to the Propeller via this serial interface.
** Randall has also inspected and received the repaired chassis from the re-fabrication shop. The work performed was of excellent quality. The rover is now disassembled, with “mock up” configurations awaiting team concurrence. When a configuration is agreed, assembly and rewiring will resume.
Also, the team website has been re-vamped to reflect 496 continuation. Please feel free to check it out at your convenience: http://www.eng.uah.edu/~teamluna
Thanks for Reading,
Team LUNA
Team LUNA is excited to report that several milestones in the project have been met:
** Tony and Julie have completed basic integration and synchronization of. the Ultra Wide Band Radio and LADAR communication. With the initial effort completed, valuable information can be gathered to code in the navigation code for autonomous operation. The UWB radios will create a "grid" that the Quad Rover will operate in; the UWB radio mounted on top of the rover will determine the Quad Rover's position within the grid. The LADAR will be used to locate objects in the path of the Quad Rover; this will provide valuable information about obstacles in the vicinity of the rover. Integration of these two components is essential to determine the scope of the navigational algorithm to place on the Dell Mini 9" laptop.
** Randall has completed the chassis and wiring re-fabrication of the rover. The team can now perform "dry runs" on the rover to verify proper operation of all coded components.
** Randall has completed initial coding of Parallax micro-controller interface. This interface will receive information from the laptop (LAWANDA), and control the rover’s operation. This effort required writing of a LINUX driver to communicate serially with the Parallax Propeller. After the navigational algorithm computes how the the rover needs to operate, the laptop will send an coded message of one byte to the Propeller. This instruction will be decoded by the propeller and send command messages to control the servos and actuators. This message size will be subject to change after we install and implement "fuzzy logic" wheel encoders.
** Kris has taken his modified Propeller code and integrated the new control drivers for rover “dry runs”. With this effort completed, the Quad Rover will now have the ability to operate without having to re-flash the EEPROM between different test runs.
** Team LUNA has met and decided that “dry runs” on the rover will be conducted this coming weekend. The objective of these dry runs is to:
*Ensure that no regression faults have surfaced after chassis re-configuration and micro-controller programming
*Perform initial autonomous navigation using hard-coded programs (this will provide a metric of operation)
*Test and verify data-logging program (ensure that messages are captured and logged properly)
*Perform initial LADAR data capture and gather navigational information
*Perform way-point navigation using the Ultra Wide Band Localization System (UWBLS)
** The team is looking forward to this weekend; the information gathered will provide an accurate assessment of our status.
** Please feel free to explore our website (http://www.eng.uah.edu/~teamluna) for complete status updates, progress, photos, and videos. Team LUNA encourages any comments, questions, or criticisms.
Thanks for Reading,
Team LUNA
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
PG
Thanks for reading our post!
With the previous configuration (using the Propeller only), the last team successfully performed way-point navigation. Also they had successfully performed many different navigation type exercises (i.e. follow me, avoid me, etc.) using the LADAR signal as input.
Our design is more of an enhancement of the first design. We are taking the decision making away from the Propeller and giving this ability to the laptop. This also frees up Propeller cogs to add future enhancements.
We attempted to test a few of our scenarios yesterday, but it did not work out too well. We set up a 50 meter square test area in one of the fields at the university and stationed an Ultra Wide Band radio at each corner. The Quad Rover had the fifth UWB radio attached to it. First, we had a problem with one of the radios (turned out to be a battery). We didn't have an extra battery, so we used a power inverter, an extension cord, and Julie's car .
Our first run was to test the data-logger in RC mode (to make sure all of our data was accurate). During this run, both of our belts broke . We did not have any extra belts on hand, so testing was finished for the day.
We have done several "stand alone" tests on the components with the laptop; these tests proved positive results. As soon as we can get new belts, we will be in the field again, LOL...
The video that is posted on the website verifies RC functionality. In the video, we are driving the rover around one of the open areas at the university. As soon as we get more videos to post (demonstrating enhancements), I will set up a YouTube account and post there also. When I do this, I will post the URL on this forum and our website. So please stay tuned... we welcome any questions, comments, or criticisms.
Thanks,
RandallB
This has been a bittersweet week for Team LUNA. Last weekend, the team made test runs to gather and analyze data. This was promising until the Quad Rover’s drive belts broke. It is my understanding that this has been an ongoing issue with the Quad Rover. New belts are ordered; they will be installed as soon as they arrive.
Based on data that Team LUNA can analyze:
** Tony and Julie have verified that data items recorded match theoretical results. This is a very positive status update. Now, when simulations are performed, Team LUNA can troubleshoot in the event of simulation failure.
** Tony and Julie have written the initial driver programs for follow me, avoid me, and way-point navigation in C++. These programs will use a serial connection to the Propeller to operate in an autonomous state.
The "follow me" program will use the LADAR to locate the obstacle in its path (i.e. one of us), and follow us as we walk. This will be a good "nicety" when we have to transport the rover to the testing area.
The "avoid me" program will operate in the same manner, just proving the concept of using the LADAR for obstacle avoidance purposes.
The "way-point navigation" program will navigate the Quad Rover to specific way-points where the Ultra Wide Band radios are stationed.
The combination of all three will essential provide proof of concept for a full autonomous simulation through our mock up course.
** Kris has taken data from the simulation runs to verify data-logger operation. All data recorded is accurate with appropriate time stamps.
** Randall has performed architectural changes to the Propeller’s objects. This code is now complete and bench tested. Team LUNA is eagerly awaiting dry runs to verify that the autonomous rover is performing properly.
The team has established a look-up table of specific drive codes that will operate the Quad Rover. This will provide initial commanding of the rover during course navigation. This will all be altered and/or changed when the fuzzy logic algorithms are put in place. At this point in time, the laptop will send a serial message to control servos, throttle, brakes, etc.
** Randall is also communicating with the engineers at Parallax Inc. seeking resolution for the belt issue. After bench testing, it has been identified that the drive pumps for the wheels are still torquing the system while in a “stopped” state. This has been verified by testing with the “stock” Parallax drivers provided to control the Quad Rover in RC mode.
When this issue is resolved, I will post the solution here on the forum (just in case anyone is having the same belt problem).
Please stay tuned; Team LUNA is anticipating very positive updates soon.
Thanks for Reading,
Team LUNA
Team LUNA is excited to report that many updates can be provided at this time:
** We have received and installed the new belts to get our Quad Rover up and running again.
** We have had some electrical issues in the past two weeks. In this time, all of these issues have been identified and resolved. To date, the electrical issues that we have encountered have been: 2 bad batteries, blown fuses, and 1 bad battery charger.
** Team LUNA has had many successful bench tests to verify proper RC and autonomous navigation.
We have conducted many bench test to verify that all states of operation are working correctly. Some minor tweaks need to be made to the brake servo values after a recent brake adjustment.
** We have had one successful autonomous test to date. This test run was to verify a “follow me” program written as proof of concept for autonomous navigation.
This test performed fairly well; the discrepancies in the testing were due to improperly calibrated brake servos. Once these are calibrated properly, we are confident that our algorithm works.
** LADAR and UWB integration is complete. When weather permits, we are eagerly awaiting testing these modules to verify proper operation.
** Data logger development is now complete.
We are now able to gather all data from the test runs for analysis. This will help us to verify our requirements.
** Kris’s scope of work has now changed from parallax coding and testing to Development of a GUI simulator to provide a graphical view of rover operation. This GUI will provide a nice visual aid to operation as well as help analyze data received while the system is running.
Having the GUI simulator will provide a lot of useful information for analysis, as well as having a graphical display of what the rover is doing at all points of operation.
** Randall is still communication with the engineers at Parallax. After more bench testing, it has been verified that hydraulic drives are still torquing the system in all states where the solenoids have been turned off. This will accelerate belt decay; we are actively trying to resolve this issue.
During bench tests, I noticed that a considerable amount of torque is still being applied to the sides of the rover where the hydraulic solenoids are in an off state. In my opinion, this is why our belts have such a short "running life".
** Tony and Julie have begun working on the fuzzy-logic control algorithms for autonomous control. Class definitions and functions are in development. This will be a challenging task, but Team LUNA is confident that we can get positive results.
We plan to use fuzzy control algorithms on the laptop to send custom signals to the propeller. This will allow many different configurable states that the rover can operate in.
** Randall is working on the fuzzy control algorithms for rover control. Wheel encoders will be installed soon. Data from the wheel encoders will be sent to the Parallax propeller for manipulation, then sent to the laptop. The laptop will take inputs from the fuzzy control and use this information to decide rover operation. This will give the rover more functionality and control over the states of operation.
This function is still on the "to-do" list. Due to recent mechanical and electrical problems, I am a little behind schedule on this task. This will be added ASAP, so please stay posted!
** Team movies have been moved from this website. We have created a team YouTube account where all videos will be stored. In the movies section of the website, a hyperlink will be given when video updates are made.
After PiGuy's post (and the fact that we are hosting video from the university server), we set up a YouTube account to post team video. In the movies section of our website, you will find hyperlinks to new video. Thanks PiGuy for the info about not being able to see the video. We hope that this will resolve this problem.
Please stay tuned; Team LUNA is anticipating very positive updates soon. Please feel free to visit our website: http://www.ece.uah.edu/~teamluna
We encourage any questions, comments, or criticisms.
Thanks for Reading,
Team LUNA
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
PG
Sorry so long to get back to you. We have been extremely busy....
The rover may appear to be a little top-heavy, but ironically enough, the weight of the 24 Volt power supply about counter-balances the weight of the LADAR. Since the LADAR requires 24 Volts to operate, both are necessity. The signal from the LADAR measures the distance to the closest object and either avoids it or follows it depending on which testing driver that we are using. For the final objective, the LADAR will detect and avoid obstacles in its path. Operation of the rover is surprisingly good in this configuration (at all but very fast speeds).
Thus far, it's been a fairly hefty challenge to port almost everything over to the LINUX operating system, add dual capability of autonomous and RC operation and maintain the timing configuration that we desire. Now that we've made these enhancements, the next team to take over the project will have the extra cog space to add several peripherals. Personally, I would love to add the cameras -- but we are getting too close to the deadline for enhancements. At the minute, we just have ensure that our initial objective are met.
Thanks for reading, please stay posted -- we welcome any and all comments.
Thanks,
RandallB
Team LUNA is excited to report that many updates can be provided at this time:
** Team LUNA has had many successful bench and field tests to verify autonomous navigation. Currently testing has yielded somewhat positive results; the negative results direct us to which areas need improvement. At this time, we have found that brake servos need adjustment during very large (180) degree turns. Also, we are beginning to have problems with one of our Ultra Wide Band Radios. Further notes on this issue are posted later in the update.
** GUI development for the data logging is now complete. This data is being integrated into the graphical interface for data analysis. Aside from data analysis, the GUI will serve as a graphical "picture" of the rover's activity while in operation. This will serve as an essential visual aid for demonstration when the Quad Rover cannot be run indoors.
** Fuzzy-logic control algorithms are almost complete for both the laptop and micro-controller. Stand alone and integration testing is in progress. Integration testing has begun for both sides of the algorithm. The fuzzy-logic algorithm on the laptop side will decide what the servos (throttle and brake) and solenoids (hydraulics) need to be set to. This decision will be sent to the Quad Rover in a four-byte message operating at 38,400 Baud.
** Currently the team is having technical issues with one of the UWB radios provided to us. Brandon Dewberry from Time Domain will be consulting Julie this week to resolve this issue.
** Team movies have been added to the YouTube website. The hyperlink can be found in the Team Movies section. The movie that was added shows the preliminary bench testing of autonomous operation. This video exercises all states of operation. This is an old video -- but we have many more. They will be posted as soon as I get them from the video recorder.
Please stay tuned; Team LUNA is approaching the deadline fast, but we are confident that our goals for the project will be met.
Thanks for Reading -- any questions, comments, and criticisms are welcomed.
Team LUNA
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
PG
** Follow and avoid algorithms have been tested many times. LADAR data has been sampled and decoded to detect and avoid an obstacle that encounters its path. The non-fuzzy-logic algorithm for this process is 100% complete.
** UWB data has had quite a few successful test runs. We have performed a couple of successful way-point navigational test runs. The non-fuzzy-logic algorithm for this process is 100% complete.
** We have also had some successful integration tests with way-point navigation while avoiding obstacles. During these tests, the Quad Rover navigated the course while the team was standing on the test field. The Quad Rover was able to find its way to the next way-point and not hit anyone.....
** High-level fuzzy-logic development is in progress. This effort is approximately 50% complete.
** The simulation GUI is 100% complete. Kris is continually taking sample data from test runs for regression test and improvement of the simulator.
** The control translator for the Parallax Propeller is 100% complete. Fuzzy-logic Interpreter is approximately 90% complete in a stand-alone state. Integration will begin this coming week. This will allow the higher level program to serially set the servos and solenoids to values determined by the fuzzy-logic algorithm held on the Dell Mini laptop.
Please stay tuned; April 16th is approaching FAST!
Thanks for Reading,
Team LUNA