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.