Date: 04/11/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 14 due April 12, 2016 Week 15th of the project entailed in Demo day presentation. One of the two biggest days for the class. I was able to demonstrate my robot to successfully arrived to a desired location given the robots random position. Code was was greatly enhanced to be more robust. More information of Software section. Code was initially written for obstacle avoidance but has not been tested. The robot has no longer breadboards and now has only perfboards (DOT PBC). The robot performed well.
Mechanical Advancements: No further updates. Electrical Advancements: Towbot is now completely running on perfboards. These significantly decrease the weight of the robot, and it made more appealing. Pictures below show how the components were positioned to optimize the space on the perfboard. Software Advancements: As stated on the previous week, there was a need to optimize the latency of camera. This was achieved by reducing the camera resolution from 640x480 to 320x240. Also, the code was improved by implementing fuzzy logic to the robot.
0 Comments
Date: 04/11/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 14 due April 12, 2016 Week 14th of the project entailed in pre-demo day presentation. Students are to present 90% of their robot working. I was able to demonstrate my robot to successfully arrived to a desired location given the robots random position. Code was written for displaying in real time the vectors, the coordinate location, and angle of between three colors. Obstacle avoidance was not implemented yet. Code was initially written but have not been tested. The preliminary obstacle avoidance code will be using the data received from the Teensy, and depending on which ultrasonic has detected an obstacle, it will create a vector that would act as the new heading. At this point, vector addition has not been implemented.
Mechanical Advancements: No further updates. Electrical Advancements: Successful connection to XBee. Communication between the Raspberry Pi and Teensy 3.2 was successfully implemented using point to point connection. Software Advancements: As of now, obstacle avoidance has been coded for but has not been implemented. There was a road block when sending number, decimal values from the Teensy to the Raspberry Pi. The issue came because the Xbee only allows to send charters and not integers. This problem was solved by converting the ultrasonic distance value, for example 100 cm, to the corresponding ASCII value of 'n'. On the Raspberry Pi, the function ord ( ) was used to convert the ASCII character value to its corresponding number decimal value. Another challenged arose in determining which sensor found the obstacle. This was a challenged because in my Teensy code, I would write on the serial port the distance of the sensor that detected an obstacle depending on the if statements, but on the reference frame of the Raspberry Pi, it would only detect the distance value but not of which sensor. This was solved by adding a value of 100 of the 2nd sensor and adding 200 on the 3rd sensor. In this manner, when the if statement, if sensor is less then sensor 30, goes true the values from 0-30 would correspond to Sensor 1, the values from 100-130 correspond to Sensor 2, and values from 200-230 correspond to Sensor 3. With this method, the Raspberry Pi would now which sensor had detected an obstacle and could then send the command via serial to move accordingly. See the picture below for reference. Lastly, the Python code has increased significantly in length making the program execute at a much lower rate. The latency of the image has increase significantly and optimizing code is of priority this upcoming week. Date: 04/05/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 13 due April 5, 2016 Week 13th of the project entailed continuing in software development. Vector analysis using OpenCV has been completed. Code was written for displaying in real time the vectors, the coordinate location, and angle of between three colors. Now we have a vector heading of the robot and a a vector heading for the final destination. Added to this, the program is able to identify a fourth color that would mimic an obstacle. When the obstacle is found, an orthogonal vector to the heading is created whose magnitude is directly proportional to the inverse magnitude of the vector between the origin and the obstacle. The sum this perpendicular vector and the vector heading of the robot will give a vector sum which is the "temporary" vector heading of the robot while it avoids the obstacle. This function will be tested this upcoming week. Mechanical Advancements: Battery mount received and attached. Electrical Advancements: Initial unsuccessful connection to XBee. Communication between the Raspberry Pi and the computer via USB port was successful but connection between Teensy 3.2 and computer via RX and TX signals was unsuccessful. Software Advancements: Vectors, location, angles, perpendicular vector, sum, vector magnitude obtained. This upcoming week we need to code the controller logic. Date: 03/29/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 12 due March 29, 2016 Week 12th of the project entailed continuing in software development. Initial vector analysis has advanced. Code was written for displaying in real time the vectors, the coordinate location, and angle of between three colors. Now we have a vector heading of the robot and a a vector heading for the final destination. The angle between them is not completely robust. There is a need to create perpendicular vector that is created when an obstacle is encountered, this has not been explored yet.. The sum this perpendicular vector and the vector heading of the robot will give a vector sum which is the "temporary" vector heading of the robot while it avoids the obstacle. This function will be tested this upcoming week. Mechanical Advancements: Waiting on battery mount. Electrical Advancements: Initial unsuccessful connection to XBee. Thinking how to accommodate XBees and other components on the final perfboard. Software Advancements: Vectors, location, angles obtained. Perpendicular vector, sum, vector magnitude needs to be determined. Date: 03/22/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 11 due March 22, 2016
Week 11th of the project entailed continuing in software development. Initial vector analysis was conducted with very little progress. The idea is the following: obtain a vector heading of the robot and a a vector heading for the final destination. The angle between them will direct the direction the robot turns. At the same time this is happening, there is a perpendicular vector that is created when an obstacle is encountered. The sum this perpendicular vector and the vector heading of the robot will give a vector sum which is the "temporary" vector heading of the robot while it avoids the obstacle. Mechanical Advancements: A battery holder was designed and will be sent of to the 3D Printing machine. Electrical Advancements: No advancements. Software Advancements: Investigating ways to draw vectors and create new vectors based on the location of the robot and the location of the final destination. Date: 03/14/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 10 due March 15, 2016 The 10th week of the project entailed displaying the special sensor for the robot. For this project, the special sensor is the camera. The camera will be used to perform image processing for object location and robot navigation. As previously stated, the camera that is being used is the PS3 Eye camera. All the image processing is being performed by a Raspberry Pi with OpenCV libraries in Python 2.7.
The special sensor for my project consisted on identifying three different colors from the image provided from the camera. Also, it was able to identified the contours of the objects and find the pixel coordinate centroids of each object. The process is explained below. Mechanical Advancements: The platform has been redesigned for more space and it will be manufacture during week 11. This is because of an incident that happened to the first platform and because of space. Electrical Advancements: XBee wireless communication systems have been ordered for communication between the R-Pi and the Teensy 3.2 Software Advancements: The methods of image processing are explained briefly but a detailed description of the procedure will be posted. The image processing was achieved by first converting the image from color to HSV system. It was then blurred for better pixel identification. Then, the images were masked according to the desired colors; in this case, purple, red, and blue. Lastly, the function moments from OpenCV was used to find the centroids of the detected objects. Future work involves using the camera to find the towing robot and the broken robot. Also, it is necessary to find the heading of the towing robot. This is done, once again, through image processing and vector analysis. This function was initially explored but was not robust. Date: 03/07/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 8 due March 08, 2016 Week 8 of the project entailed performing obstacle avoidance with a fully assembled and functional robot. This was successfully achieved. The robot was able to avoid obstacles and avoid the angle trap. The robot performance was much better than anticipated. The robot had three ultrasonic sensors with two DC gearmotors. Also, it had a breadboard with the Teensy 3.2 mounted, the motor driver, and multiple LEDs for debugging. Lastly, had four 3000 mAh, 3.7 V Lithium Ion batteries. The batteries were placed in series and parallel to obtain 6000 mAh and 7.4 V.
After completing obstacle avoidance, week 9 consisted of image processing using the Raspberry Pi (R-PI) 2 and the PS3 Eye Camera. There were many, many obstacles to install Raspbian on the R-Pi, download OpenCV libraries and setting the correct settings on the R-Pi. The mechanical, electrical, and software developments are discussed in detail below. Mechanical Advancements: As mentioned before, the aesthetics of the robot is not of admire. Little work was given to improving the body of the robot. This upcoming week, focus to enlarging the chassis will be given. Improvement to ultrasonic sensor mounts need to be considered and PS3 Eye camera mount need to be designed. Electrical Advancements: There was little electrical advancements. Initial research was conducted to communicate the R-Pi with the Teensy 3.2 Software Advancements: Week 9 was mainly software advancements. There were many road-blocks that are worth discussing for future learners that will help them avoid trivial mistakes: 1. Ensure that you have enough memory if installing large libraries like OpenCV -Initially, I successfully installed Raspbian Jessie with NOOBS pre-installed on an 8gb Micro SD card. Then, I began installing OpenCV. After 2.5 hours of installing libraries and OpenCV, the program had an error saying that the memory was full. So, make sure you have at least a 16gb memory card. 2. Ensure that you have the correct memory and the correct memory format (FAT32) -To solve the above issue, I had to find a larger SD Card. I found a 64gb Micro SD Card I used for my GoPro. After searching online, the default memory format for memories larger than 32gb is exFAT. Format that is not compatible with the R-Pi boot. Meaning that the 64gb memory card needed to be formatted to FAT32. I was unable to successfully accomplished this. My solution was to buy a new 32gb Micro SD Card. 3. Ensure that you select the correct Keyboard during set-up (NOT US ALTERNATIVE INTERNATIONAL) -After installing OpenCV and all the necessary libraries, I was finally able to began experimenting with image processing in Python language. I began by typing the really simple of "Hello World!" and every time I tried to run the code, it would result in an error. I investigated for hours the different debugging solutions online and none worked. I noticed that every time I would type quotation marks they were slanted and not straight. A moment of enlightenment came to me after hours and I decided to see if there was an error with the keyword selection I had made since there were many! I changed it to US International and that solve frustrating issue. 4. Ensure that when you call a Python file through the R-Pi terminal, you are on the OpenCV workon directory. -After being able to complile simple Python programs, the terminal gave an error every time I would call a Python program that had import cv2. This problem was because I was not working in the OpenCV directory that I created during installation. My problem was fixed with the following code.: source ~/.profile workon cv Date: 02/21/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 7 due February 22, 2016 The 7th week of the project entailed putting the complete robot together and coupling both the software, mechanical, and electrical components with the goal of performing obstacle avoidance. During this and the previous week, much effort was devoted to motor actuation and sensor information retrieval. Because of this, very little time was devoted to the aesthetics of the obstacle avoidance robot.
Mechanical Advancements: As mentioned the aesthetics of the robot is not of admire. The robot consist of two driven wheels with a low friction, non-rotational "wheel." There are three 3-D printed mounts on the front face of the robot. The battery and the breadboard will Velcro on the back of the platform for balance and space. Electrical Advancements: Electrically, two ultrasonic sensors, two motors, 4 LED lights, one motor controller, and external 5 V power were connected to the Teensy 3.2. The breadboard has not been yet finalized. Software Advancements: Controlling the direction and magnitude of the two motors was achieved using two ultrasonic sensors successfully. All the code was written in-house by examining various existing codes online. No external libraries have been used at this point. Multiple LEDs were coded for the purpose of debugging. Date: 02/14/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 6 due February 16, 2016 During the 6th week, initial sensors and motors were actuated. The Ultrasonic sensor was used to detect distance. It successfully was able to identify object that were approximately 90-120 cm. Through testing, it was apparent that there was about a 25-30 degrees of wide range. The motors where also actuated. The code was written to move forward and backward on command. An online code was used and it proved to be malfunctioning. The motor with be set to spin for 5 seconds backward and it would only spin 2 seconds. The problem was examined and corrected. The task for next week is to implement both and develop the code for the robot to detect obstacles.
Initial platform research was performed last week and some ideas were selected from various off-the-shelf design. This gave me a general structure of robotic platforms. The bottom platform has been designed but has not been manufacture. Very little time was given to the robots platform and this will have a great focus this upcoming week. Sonars and motor mounts need to be designed and printed by the end of this upcoming week. Date: 02/07/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz Date: 02/02/16 Student Name: Diego De La Hoz TA's: Andy Gray Jake Easterling Ralph F. Leyva Email: [email protected] Instructors: Dr. A Antonio Arroyo Dr. Eric M. Schwartz University of Florida Department of Electrical and Computer Engineering EEL 4665/5666 Intelligent Machines Design Laboratory Weekly Report 5 due February 9, 2016 During the 5th week, sensors, actuators, and other components were selected, ordered, and have arrived. All the parts listed the previous week have arrived. This past week, initial 3-D CAD modeling of the platform was performed. Also, I began exploring in to routing options for the towing robot. Two of the options that have been examined are A-Star routing and Vector addition routing algorithms. To begin, I will be examining vector addition given a specific a specific path from the god-camera.
Both the motors and encoders have arrived but a mistake occurred with the motors. There are two types of motors: one with the capability of attaching the encoder and the other one without the option. I got the one without the capability. Because of this, I might re-order the correct motors. Initial platform research was performed. Ideas were selected from various off-the-shelf design. This allowed me to see the general structure of robotic platforms and also beginning analyzing were all the robots components would go to . This upcoming week, the platform will be designed, modeled, and possibly manufactured. |
AuthorDiego De La Hoz Archives
April 2016
Categories |