Sunday, February 22, 2015

Week 7

This week, Wargo and Brigette continued to refine their work on the H-Bridge. All of the testing documents were completed and ready to turn into Dr. Mangum on Monday. PCB development for the H-Bridge will also begin Monday.
The testing documents included a current limit test and temperature tests. The current limit test was run in conjunction with the component temperature test. An Analog Discovery was used to generate a 5 Volt PWM signal and direction signal. The PWM was set to 1 kHz at 10% duty cycle and the direction signal was set at 1 Hz. Wargo and Brigette took temperature readings on all of the MOSFETs and recorded them in five minute intervals. After half an hour, they stopped the test and let the motor cool down. The test was repeated at a 50%, 75%, and 90% duty cycle. This test concluded that the board will fail before the components reach their current or temperature limits.



The motor temperature test was conducted over a one hour time interval with measurements taken every five minutes. The PWM was set to 1 kHz at 95% duty cycle and the direction signal was set to ground. This test concluded that the motor will need heat sinks to dissipate heat of up to 300 degrees Fahrenheit.


Gabe has spent this week finalizing the generation of a trajectory from the sidewalk edge data. The vision system is robust enough now to deal with multiple variations in edge landscape on the edge of the sidewalk and still return a viable location of the edge. From that information the program is able to generate a trajectory that the robot can use to localize its position. Gabe is currently working of improving the prediction of the edge so that the robot doesn't “lose” its way if it ever can’t reliably identify the edge.
Gabe is going to continue working on the trajectory and has set up several test videos to do so. From this point on Gabe will strive to develop an x and y output to send to Jaya’s control program. This should  only take a few days since the vision system will function essentially as a line follower for now.

This week, Harris was trying to calculate the camera position and pose in real world coordinates. An eight by eight grid map was drawn and registered into the camera feed. Three image points were chosen to match the object points of the grid map. The H homography transformation turns all the real world coordinates into image coordinates. However, a stipulation in the python code is matching the image coordinates with the real world coordinates incorrectly. Once this code is refined, the camera matrix can be entered by using translation and rotation matrices and will be able to output the camera position and pose. The only problem that can be foreseen is entering the translation and rotation matrices incorrectly into the program or solving them with a minor math error in the calculations.
Starting next week , Harris hopes to apply this program using the Tour PNADDER as the inertial frame and make changes accordingly for the minor tests.

This week, Tanner and Jason applied bondo to the edge of the base platform to fill in the honeycomb and then sanded it down to make the edges smooth. They also keyed a keyway into the sprockets and started to align them. Also, they took measurements and started to make the heat sink and tensioner for the motors.
Next week they will continue to smooth out the edges and fabricate the heat sink and tensioner. Alse, they will be learning how to use the new machine in AXFab to be able to finish modifying the intermediate rod.

This week Karl continued development of a filtration program for data from Tour PNADDER’s sensors. This program will help finalize various gains used in the control algorithms in the system. Dr. Isenberg provided all the necessary tools to both formulate the filtration program and simulate system responses, for the sake of testing the program prior to its use on the actual system. The goal for the upcoming week is to complete these two pieces of code so that Jaya can complete his work on the controller. For this to happen, much of the isolated work done by different individuals will need to come together; properly functioning/measured locomotion system, working encoder/decoder sets, 
and odometer software.

This week Jaya completed the controller for our robot, and managed to enable it to work for voltages between negative 12 and positive 12 volts. Next week Jaya is planning to work with Karl to get the code translated to a python format. Jaya also plans to start replacing test variables in his code with actual values, and if he complete these two tasks he will start working on imputing the controller into Simulink. There shouldn't be any major issues that he will have to face while completing these tasks.

Monday, February 16, 2015

Week 6

This week Karl has created a method for collecting data from a python simulation of the robot's controller, and demonstrating the control of the robot on a the previously simulated matlab simulation animator. By doing this, time does not need to be allocated in determining how to create a similar animator in python.

Karl has also begun organizing a group of functions, provided by Dr. Isenberg, such that they will filter data retrieved by the robot's inputs and outputs (voltages and odometry) and determine the necessary kinematic parameters for the robot. This data will help Jaya complete his controller so that it can then be implemented in python and tested on the real system. While Jaya is completing his work on the controller, Karl will be finishing his work in developing the filtering program.

Gabe and Haris are in the final stages of detecting the edge of the sidewalk reliably. They are now waiting for the platform to be completed in order to refine the filtering based on camera position and robot motion.

In the meantime, the vision team has begun developing camera calibration code and a strategy for implementing the edge detection data into the control system being developed by Jaya and Karl. This will likely result in using the vision system to generate a local trajectory for the robot to follow. Though methods of performing localization with respect to a campus map have been considered.


Tanner and Jason have mounted all the battery mounts, added rubber to them to help secure the battery, and attached the strap that will hold the batteries in place. They aligned and mounted the encoders down to 1/100th of an inch. They have also cut more pieces for the intermediate section and also started to design the heat sink that will act as a tensioner for the motors and chain. Finally, they created a part for Patrick to fabricate.


Next week, Tanner and Jason will design and finish building the heat sink and tensioner. They will also be finishing up the attachment of the locomotion system. They are going to apply bondo to the edge of the base and sand it down to a smooth surface.


Trent Wargo and Bridgette have continued testing and improvement of the H-bridge circuit.

Saturday, February 7, 2015

Week 5

February 7th 2015

By the end of this week Tanner and Jason have successfully installed bearings, aligned sprockets, aligned battery mounts, designed battery strap, glued caster blocks in place, and made cut supports for the bottom of the robot to prevent bending of the base.
Patrick, who is in charge of the machine shop, has finished machining intermediate drive system parts. Next week, this group will hopefully finish putting together the drive system along with having batteries fully mounted in place and will also design and build a heat sink for the motors.

This week Jaya completed integrating the back-stepping control method into an odometry code. Although he managed to get the two control theorems to produce an output, he is currently facing an issue where the robot simulation will follow the trajectory backwards instead of forwards. Next week Jaya plans to have solved this problem and fully completed the controller in MATLAB. A few potential problems that can be foreseen right now are that simply adjusting the gains cannot solve this problem, or that instead of a gain error it is a coding error which is hidden by a small typo or misunderstanding of the material.

The computer vision team, consisting of Gabe and myself, has made enormous amounts of progress but still have many issues to tackle with the OpenCV coding in python. We have applied a simple vertical line-filtering algorithm to a python code that enables the cameras to determine vertical lines in the environment with respect to the video feed that registers. We are currently trying to use a PnP solving method in our code. Applying this algorithm will enable the robot to determine its position and pose based on an initial point in the environment and image feed.

This week Wargo and Brigette continued working on the H-Bridge. They have delayed the PCB production to allow for extra time to fine tune the H-Bridge and make sure that it capable of running at a PWM signal of at least 1kHz. Dr. Isenberg has approved this delay because if the H-Bridge is not fine-tuned the robot will not function even with precise software implementation. Most of the control code is sampling at 50kHz and with a PWM of only 200Hz, as the current design allows, the robot will not be actively responsive to any control software being implemented.
This week the team was able to adjust the original schematic of the H-Bridge and add in diodes to clear out ripple voltages across the MOSFETs. With this new prototype the team will hopefully to be able to increase the PWM signal frequency. Next week Brigette and Wargo will continue testing the H-Bridge at higher PWM frequencies and analyze what the limits of the new design are.

Karl has begun creating various functions in python. First, the odometer function was created and updated, allowing the main program to call it at any point in the running process. Second, some functions such as parameter derivation using the runga-kutta method were also developed in python, for purposes of control simulation. The goal for this upcoming week is to research how to develop plots and animations in python in order to successfully create a simulated robot that will be able to demonstrate the control algorithm being implemented into Tour PNADDER’s system.

Saturday, January 31, 2015

Week 4


This week Brigette and Wargo handed over the schematics to Gardner to begin the PCB layouts. They have began testing the H-Bridge to figure out the extreme conditions required to break components. This week they ran through frequency tests on the PWM and direction signals to assure that all the current components will withstand rigorous switching. Next week Brigette and Wargo plan on continuing testing while developing the formal test document for the H-Bridge.

Although minimal tangible progress was made on Karl's part this past week, he was able to fully install the necessary programs (including python) and libraries to adequately begin developing programs for the beaglebone and minibox. He has been familiarizing himself with the the syntax of python, and has completed the first draft of the odometry code in python.


By the end of this week Tanner and Jason have accomplished installing the back caster wheels, fabricating and mounting main drive axle L-brackets, and mounting intermediate U-channels. They are still waiting on Patrick to finish machining the rest of the intermediate section. Next week, they hope to have battery brackets mounted and all of the drive system complete excluding the chain.


Harris and Gabe have enabled their opencv code in python to register video processing and analysis properties. They have developed a code that uses Hough Transformation lines to determine straight lines within registered images and are currently refining their code to filter the hough transform lines so that they may give us the lines of the side walk edges. Their edge detection code is currently being refined so that it can be used to localize the position of the camera with respect to the initial starting point of the robot. For this they will come up with a filtering algorithm to get rid of unnecessary lines of the hough output. This will enable them to localize the hough outputs. This will be started on Monday.

Sunday, January 25, 2015

Week 3


This week, Brigette and Trent worked on schematics for the electronic system. The schematics were finalized and confirmed by Dr. Isenberg and Dr. Davis will be reviewing them next week. When all the schematics are approved, construction on the PCB designs will begin. The parts for the prototype H-Bridge have arrived allowing Brigette and Trent to replace existing components with new components. Unfortunately the new MOSFETs are not handling the voltage and current spikes that the H-Bridge is producing when connected to the large motor so, next week the pair of them will be looking for a solution to this problem and potentially ordering new parts.
Brigette updated the Gantt Chart with everyone's current progress and will continue to update the Gantt chart to attempt to keep the project on track.

This week the vision team (consisting of Gabe and Harris) has been able to successfully perform an edge detection on a single still image and is near to completing a Hough analysis of the edges. This will allow the team to identify the edges of a sidewalk from which to judge the robot’s position.

The team has begun programming on robot’s mini-box computer which will eliminate some integration time in the future. However, another computer, running Linux, has been set up to run Open CV so development can occur even more quickly, by working simultaneously on both machines.Next week the team will complete analysis of still images and will begin to work with live stream input from the webcam. Planning has also begun on the correct method of localization using the information that will be provided by the Hough Analysis of the robot camera stream.

This week Jaya updated and completed the basic odometry program. Next week he will be implementing a control law titled “back-stepping” into the program which will allow the integration of a kinematic controller and a torque controller using a dynamical extension. The major problem of using this method is that Jaya will have to teach himself the material, which can lead to misunderstandings and it may take some time to fully grasp the context. One of the major benefits of using this method is that the odometry algorithm will be able to travel a more accurate path to find its destination points.

According to the gantt chart of assigned tasks, Karl was scheduled to assist Jaya in developing the computer torque controller. The calculations and pseudocode behind the basic controller were already developed in the Robotics II class last semester. With this said, Karl and Jaya decided that (knowledge of working in Python aside), Jaya had the material he needed to begin development of the controller on his own. Karl then decided to begin the task of developing a simulated mobile robot to demonstrate the dynamics and functionality of the controller on the basic system before it is implemented in the real robot. Using a template designed by Dr. Isenberg, Karl completed a simulated animation in MATLAB, able to demonstrate a controller designed in MATLAB. In the upcoming week, Karl will now attempt to develop the same/similar model in Python to work with the Python-based controller.

By the end of this week Jason and Tanner accomplished the following: mounted the motors to the platform base, provided Patrick with all the parts to be fabricated (all but one of the ordered parts has been delivered), and cut the L-brackets. Now the L-brackets just need to be drilled before mounting them to the robot base. Currently the pair are waiting for Patrick to finish the parts they gave him, so they can finish the drive system on the robot. Next week, Tanner and Jason hope to have all parts back from Patrick, and finish fabrication of the L-brackets for the wheel axels finished. With these parts completed, they can finish installing the drive system on to the robot base except for welding the axel into place. In addition, a caster wheel will be chosen, bought, and installed to the base.

Sunday, January 18, 2015

Week 2


As week two has come to a close, the Riddle Rascals have made significant progress on their project. To begin, Jason Chong and Tanner Reznicek made great progress in finalizing the CATIA model and ordering parts that are required to complete the fabrication of the platform base. Next week they hope that the parts that they ordered come in so that they can continue to fabricate the platform base for parts to be mounted to.

Next, Karl Pruhsmeier has greatly assisted in the team’s part ordering process by creating a standardized order form that is used to submit part orders to Jim Weber. Karl has also been spending time assisting Jaya Nwobu in developing and completing pseudo code for the odometry software. Karl then began on developing a simulated model of the robot in MATLAB, which will be used to help visualize the control programs being developed for the physical robot.

Trent Gardner has been working to write code and develop the parts needed for the motor decoders.

The team of Haris Tyeb and Gabe Bentz, is working on Open CV and has one computer running Open CV on Windows and has begun familiarization and testing with the Open CV software. Currently, the team is able to obtain a live stream of video from the webcam to be used on the project. Code is currently being researched and developed to perform basic edge detection on the stream. This will lead to the capability to distinguish the edges of sidewalks and gain the location of the robot. The team is also working on integrating Open CV onto a Linux computer. This will allow them to familiarize themselves with how the code and software will operate on the MiniBox computer that will be placed on the robot platform, which using a Linux operating system. Next week the Open CV team intends to have completed code for edge analysis of a video stream. From there they will begin using the information obtained to develop localization techniques in order to give the robot information on its location based on edge analysis of sidewalks. This progress will be dependent on the amount of open source code available and whether additional software will have to be installed and implemented to allow for the increased functionality of Open CV.

Brigette Cochran has completed work on the Gantt chart used to schedule events for the semester. This chart will be extremely useful for keeping the team on time for task completions. Brigette has also been working with Trent Wargo to develop schematics for the electronic system in order to determine proper connections with all electronic circuits. The schematics will also be used to develop the PCBs in the future. Finally, Brigette and Trent Have completed a working prototype of an H-Bridge. They have ordered the final parts needed to complete testing and should soon start on PCBs for both H-bridges that are needed.

Monday, January 12, 2015

Week 1

Having a clear schedule will keep the Riddle Rascals on track to complete the necessary stages of this capstone project. This week the Riddle Rascals completed the Gantt Chart. The goal was to schedule, in detail, all the tasks necessary to ingrate the IMU, GPS, and computer vision onto a visually appealing autonomous robot. The Gantt Chart has extra time allocated to keep the team on track if any particular stage falls behind. Also, the Gantt Chart delegates who will be working on what parts of the project to assure that each team member is allocated a fair amount of work over the course of the semester.