Thank you everybody for welcoming this project and for the feedback given.
This blog was created to describe the evolution of our Computer Engineering course final project. We are students from ISMAT - Instituto Manuel Teixeira Gomes, in Portimão, Portugal. Also, with this blog, we hope we can contribute to the understanding of some of the concepts we used and to report the obstacles we encountered and how we came to solved them (or not).
Saturday, June 30, 2012
:: Video recorded during presentation using Julio camera ::
And to finish our blog publications... a short video with a different perspective. The video was recorded on Maria, using it's video capabilities, during the first flight of Julio.
Friday, June 29, 2012
:: Video of the presentation ::
And here it is... the video of the presentation. The sound is not to good (and it's in Portuguese), but it was what we could record.
We take the opportunity to thank everybody who helped us on the project.
We take the opportunity to thank everybody who helped us on the project.
Thursday, June 28, 2012
:: Report published ::
Here it is the final and complete version of the report.
Unfortunately we didn't had the time to translated to English, so the version here available is the original one in Portuguese. If you don't speak Portuguese, maybe Google will help on understanding it ;)
Link to final report
Unfortunately we didn't had the time to translated to English, so the version here available is the original one in Portuguese. If you don't speak Portuguese, maybe Google will help on understanding it ;)
Link to final report
:: Presentation preparation ::
The expected moment is coming. It's today at 18h30.
We've been here all morning preparing the room:
We've been here all morning preparing the room:
- Drawing a 5x3meters rectangle as our "area" for Chasso;
- Testing the compass values of Chasso, so that we assemble the room with the least influences possible (turn out to be a maximum amount of 2 degrees - much better than any value we got anytime before);
- Testing the ambient light (to know how we can calibrate Maria and still have good results for facial recognition);
- Assemble a second projector, for closeups on the robots (since not everybody will be able to see them on the floor);
- Assemble everything else and to some dry runs.
At 17h00, with the heat, we started having problems. Until that time, everything was running smoothly and as planned. But, then, the USB hub inside Maria blew up, as well as the web cameras whom also stopped work. We had to rush thru the university to get 4 fans and try to cool everything up and substitute the hub.
We eventually manage to cool down everything, including the PC, which also, by then, was also having errors on the wi-fi board and because one of the web cameras was "dead", we had to recalibrate Maria and do the presentation with less sensitivity on Maria.
Wednesday, June 27, 2012
:: Global and final tests ::
Today, the day before the presentation to professors and fellow students, we are doing our final tests. It shouldn't be, but it is the first time we reunited all components on the same room, and use all together for the first time, as a global system. Unfortunately, because of the large scope of the project and the amount of time we had to develop it, only today we manage to test everything all at once. Everything went ok ;)
And the door with the "To do's" is clean! Everything done. Now, let's prepare the presentation.
And the door with the "To do's" is clean! Everything done. Now, let's prepare the presentation.
Tuesday, June 26, 2012
:: Report delivered! Now, dry runs! ::
Today, we finished the final report and send it to evaluation. After the work is presented, we will publish it here.
After the report, we did our first assemble of everything has is going to be presented. The presentation will occur on the 28th of June, therefore tomorrow, will be spent preparing the presentation and do some dry runs.
Monday, June 25, 2012
Saturday, June 23, 2012
:: Report, report, report ::
The last days are being rough. It's the final stretch. We have until the 25th to deliver the final report of the project, so, we've been working a lot of hours to complete it.
Today we had the visit of Prof. Tiago, who once more gave us some hours of his weekend to help us on the report. Yesterday, Prof. Pereira, also sent some information of what to change by email, so, the rest of the weekend, we will be working on it.
The deadline is near and now it's just, writing, revision, writing, revision...
Today we had the visit of Prof. Tiago, who once more gave us some hours of his weekend to help us on the report. Yesterday, Prof. Pereira, also sent some information of what to change by email, so, the rest of the weekend, we will be working on it.
The deadline is near and now it's just, writing, revision, writing, revision...
Sunday, June 17, 2012
:: Measuring results and compelling data ::
This weekend we did measured can compelled the values of all the results we identified during the last weeks as the main results we should present on the final report of our work.
It was a week and weekend all working on the final report.
We quantified some interesting results... the data confirmed some of the problems we already knew, like the Chasso compass problems near concrete walls, Julio GPS problems and mainly, face recognition problems in some angles and light conditions.
Saturday, June 09, 2012
:: Thumbs up on Julio autonomous flight ::
Today we finished the tests (ok, maybe small adjustments can be made, but everything looks very good now) on Julio autonomous flight, according to the "locked" face. Julio can now respond very good to the movements of the face and follow it in a way to have it on center of the image.
Today we had our tutors at our "lab" and we had the opportunity to show all the functions implemented and discussed what we should adapt and do more. We came to the conclusion that because we can't have an acceptable accuracy on the GPS coordinates for Julio, on terms of implementation, we should wrap the project as it is. Everything is now at 95% (only some small adjustments and fine tuning it's needed), therefore, we should reserve the next two weeks to work on the report and on elaborating it's data
One public thank you to Prof. Melo and Prof. Tiago for taking part of their Saturday to come where we are working and help us on the project.
Thursday, June 07, 2012
:: Bad news don't come only once ::
After some early morning tests with the Chasso robot to confirm that the Parallel search worked fine on a full room (as planned with 5 meters x 3 meters), we could verify that theoretically it worked fine, but the incorrect readings from compass, because of the concrete walls, just made us realize that the robot did some strange search patterns and not a parallel pattern. Nothing that we can avoid, at least with a compass not as accurate as this one from the Lego.
After this, we went to test the Ar Drone (aka Julio) on the exterior with the Android application for getting the GPS coordinates and send them over wi-fi to our console application, but we had several problems:
The rest of today, we spent implementing a new algorithm for autonomous flight of Julio, because of the changes we've been done to implement a better performance on Maria console application, the previous algorithm was not responding correctly. We have now a base that we can think will be final, but we still need to do more tests and do some fine tuning, because at this time, we only have the Yaw (rotation movement) and Pitch (back and forward movement) working almost perfect. We still have to implement the Roll and Gaz (altitude).
After this, we went to test the Ar Drone (aka Julio) on the exterior with the Android application for getting the GPS coordinates and send them over wi-fi to our console application, but we had several problems:
- With the weight of the mobile phone on top, the flight becomes very unstable, specially if the day is a little bit windy like today was and it's almost impossible to control the flight (at least in an autonomous way);
- Because of the high balance of the drone with the mobile phone, faces are hard to recognize on video (because of the maximum 30 degrees declination);
- The GPS of the phone we had available was very inaccurate. Readings with the phone placed on a fixed place, could give more than 7 meters differences. This just ruins our hope of having a way to know the location of Julio on space, therefore, all functions based on Julio needing to know it's location could go by the drain (returning home, quadratic search pattern, parallel search pattern and search based on waypoints). With only about 2 weeks to deliver the project, it should be difficult for us to get a solution for this problem :(
The rest of today, we spent implementing a new algorithm for autonomous flight of Julio, because of the changes we've been done to implement a better performance on Maria console application, the previous algorithm was not responding correctly. We have now a base that we can think will be final, but we still need to do more tests and do some fine tuning, because at this time, we only have the Yaw (rotation movement) and Pitch (back and forward movement) working almost perfect. We still have to implement the Roll and Gaz (altitude).
Wednesday, June 06, 2012
:: Julio navigation functions are on track ::
With the GPS data recollected from the Android mobile phone on top of Julio, we are now able to get the location of Julio in exterior locations.
On the last days we've been working on getting the readings of the GPS and implementing all the functionalities on code, but, without having a proper space to test, until now, everything is theoretical. Tomorrow, because it's a national holiday, we will get together to test all this new code and see what adaptations may be needed.
Let's hope everything comes together and until next Sunday we will finish all Julio functions, otherwise, we will be behind our schedule and with only three weeks due to the deliver the project, we will be facing a problem.
On the last days we've been working on getting the readings of the GPS and implementing all the functionalities on code, but, without having a proper space to test, until now, everything is theoretical. Tomorrow, because it's a national holiday, we will get together to test all this new code and see what adaptations may be needed.
Let's hope everything comes together and until next Sunday we will finish all Julio functions, otherwise, we will be behind our schedule and with only three weeks due to the deliver the project, we will be facing a problem.
Sunday, June 03, 2012
:: Major milestone achieved ::
This weekend revealed itself as very good weekend in terms of closed items. It was our milestone to close all the operations/functionalities of the Chasso robot and also of Maria. We were having some problems during the last two weeks, but everything came together when we most needed it to be. We came just in time to close this milestone on the planned date.
Maria
- We finally reunited all the conditions required to test the console App on Maria, using the I7 PC. In terms of performance we got a small improvement just because of the new processor (the other was an I5), but after some changes on the code to use more cores and taking advantage of the multithreading capabilities of the machine, and also some changes on the Chasso timers to read the sensors (because they are slow) we manage to get the performance to the level we wanted initially.
- Having this problem solved, we then tested the usability of the application on Maria, because of the touchable surface. We encountered some problems on it's sensitivity, so we went to do some changes again on Maria. This time we added another camera, taking advantage of the new NUI Group (Natural User Interface Group) freeware driver's 1.5 version, that adds this multi camera functionality. Problem solved! With each camera covering half of the surface, we eliminated the light reflex and also increased the sensitive. We now have what we think is Maria 99% done! Everything is working smoothly and has expected on an amateur surface table, mounted with only this resources. There are small issues, like the need of calibration according to the light on the room, but nothing that can't be done every time we need to use it.
Chasso
- The quadratic spiral search, the parallel search and the track points navigation functions are now made and tested. We could say that everything went almost very well, if it wasn't for the differences on the compass readings near walls and metal sources. This misreadings make the odometer to not work very well, but we can say the results are very good, for a proof of concept.
- We just add one more little lego piece to the robot. With this piece on the back of the camera battery we managed to get the robot more stable when turning.
- Also final touches were made to the record video functionality. It's now fully working.
Julio
- The C# class to receive the GPS coordinates from the Android mobile phone to be mounted on top of Julio is now done and tested.
Friday, June 01, 2012
:: Big weekend is near ::
Next weekend we're going to do the tests on the rest of the Chasso functions developed during this week: quadratic search, paralel search and track points navigation. It's going to be hard work.
If everything goes well, next week we will implement the "same" functions on Julio, this time based on GPS coordinates and not on on an estimate position.
Fingers crossed :)
Saturday, May 26, 2012
:: Chasso knows how to return home ::
This saturday we got together to do tests on the functionalities we've been working during the week.
Maria
- We ran some tests with a different computer, with an I7 processor with Windows 7 and 64 bits. Everything went well and we manage to easily install the multitouch driver. We have now to wait for a license from Luxand (FaceRecognition SDK), so that we can test all project on this computer and check if there is a performance improve.
- We did some small adaptations to the application layout.
- We tested the "home" function we had developed during the week for the Chasso robot. We had to made some adaptions, because we were calculating the angle between the (x1,y1) and (x2,y2), but we were forgetting to calculate the value back from the trigonometric circumference to the heading circumference. We also confirmed what we suspected, that small changes on the compass readings influce that time and angle calculated for returning to the home position, but, we can't consider the results to be bad.
Chasso
- To test if the readings of the heading from the compass weren't so affected by the concrete walls and to confirm that the drawing on the map was correct (according to heading and distance) we went to do some tests outside, on the backyard. The map drawing function worked has expected, but again, we found some problems. The bright sun light outside was too much for the color sensor of the Lego NXT, so, after turning to a defined heading the base of the Chasso couldn't be stopped on the correct position as it was expected. We then did some more experiences to overcome the problem:
- We tried putting a black bag on top of the Chasso robot, but it affected the Bluetooth communication.
- We put a black thick paper around the color sensor and then slowed the turning speed to 10% of motor power. Only after this to changes we found some good results, but even so, we continue to have some problems in direct sunlight, within some lateral degree of incidence.
- We also did some tests on the "Face lock" function on Chasso, and that proved to work completely at first time. Even with more than one face at the same time on image, the Chasso camera follows the correct person.
Thursday, May 24, 2012
:: Advances on Chasso ::
We have completed two more functionalities on Chasso:
- Returning home - based on the current X and Y positions, we calculate the time needed to return to the home position. We then transform this value to a distance and for last, we calculate the angle to turn. After this calculations, the commands are sent to Chasso to return home. Unfortunately, this function is not accurate, due to the compass fluctuating readings.
- Lock face - when a face is "locked" on Chasso (by pressing the face on the image) the camera of Chasso now follows the face and displays the readings on the label.
The weekend is near and with it, more time (and space) to some more tests. We have to finalize the tests with Maria console application and the multitouch drivers on Windows 7, 64 bits. Let's hope this are the final tests and fine tuning needed to establish a reliable solution.
Monday, May 21, 2012
:: The "post it's" are moving (slowly) ::
Since we decided to apply an agile methodology to the development, we adopted the use of some artifacts of Scrum (as shown before). We have now some post it's from the "To do" do other's boards but we have more than 50% still to start. It's not a good metric, since we are at around 45 days to present the project... why did we choose a such a big project? :)
Saturday, May 19, 2012
:: 3 steps forward, 2 steps back ::
Once more we had a mixed result week. During today we had a meeting to assemble and test everything we worked individually during the week and again, not everything went well as expected.
Maria:
- We fixed the infra-red lamps on the new places, based on the new location of the camera according to what we've been testing. It work well. For now there is a small region on the right of the screen that is not capturing movement, but we ran some more tests and it seems that we overcome that with better calibration.
- We went to test the multitouch drivers on the MacBook Pro because it's the better computer we have and it should be used on the presentation for the work, but we ran into some problems, because of the 64 bit drivers. After a couple of hours we decided to investigate more, because the 32 bit drivers do not work correctly.
Julio:
- We finished the Android App (based on brmGPS free source code) to run on one of our Android mobile phones to put on top of Julio and that way, get the correct GPS coordinates from Julio.
- We also finished a C# class that using sockets receives the GPS coordinates from Julio. This will be assembled, if everything goes well, next weekend and tested "on board" of Julio.
Chasso:
- We gave a pretty extensive testing to the odometry (establishing location based on sensors) and we got some bad results. At the beginning we taught our localization algebra functions we incorrect, but after some time and debug we found out the problem was an odd one... the HiTechnic Compass sensor we are using on Chasso is very sensitive. What we discover is that near a concrete wall or a metallic chair (less than 50 cm) the compass can give incorrect readings on values up to 50 degrees, witch is a very high value. By it self this just ruins our expectations of having a very good estimation algorithm. We change the location of the compass, by extending the pole more 20 cm, but it wasn't enough. The main problem is the concrete walls. We have to deal with this problem on the following days.
- This problem prevented us from testing other functions already implemented on code, like: returning home, travel by track points, cleaning the path and others.
- We fixed a problem with the light sensor, because in bright days the light can be too much inside Chasso and because the Lego NTX color sensor is too sensitive doesn't identify the orange color and stops turning the base. We fixed this by adding some more lego pieces to each side of the base.
Thursday, May 17, 2012
:: Mid-time work report ::
During the last 3 weeks we've working on the mid-time report we have to deliver. During this week this has been the main focus of our time.
Nevertheless, we've been working as well on getting an Android software to get the GPS coordinates to put on a mobile phone on top of Julio, to send the coordinates to Maria's console App and also to develop some more functions of Maria's console App to control the Chasso Robot.
Let's see if this weekend we can put this functions to fully work.
Sunday, May 13, 2012
:: The weekend brought good results ::
After a week working each other separately on the different tasks each one had, we got together this weekend to combine everything we have been working and try go get some more tasks completed.
This was a very good weekend in terms of results of the work we've been doing, in several fronts:
This was a very good weekend in terms of results of the work we've been doing, in several fronts:
- Maria:
- After a period were we've been struggling with some overexposure of light, we did some more tests... first we tested with a different projector with 2000 lumens instead of the 800 lumens of the one we were using, but it was too much light. Not even calibrating the exposure helped. We then did a test that involved using different polarized lens on the projector and on the camera, but didn't helped as well. The last test we did and from which we got some good results was mounting the camera on different places. We will continue this last test during this week, because it seems we can have some acceptable results if we change the camera to the opposite place from where it is now, but we still need to build a base and test it better.
- We also got the visit from our professor of Physics and Mathematics, Prof. Rogério Cardoso who accepted our invitation and came to evaluate the project and gave us some more ideas to pursuit. One of each was to use some different materials. We should test with a metal mirror instead of the glass we are currently using, because the reflection of the metal is more diffuse than of the glass. He also recommend for us to try a top glass that could pass the full infra-red spectrum of light and not only the visible light. Let's see if we can find this materials any where and at an affordable price.
- Finally we achieved something we were trying for some weeks... to get a solution to let Windows recognize "Maria" as a fully multitouch interface.
- Chasso control:
- We took all the stuff of one of the rooms and marked on the floor an area of 5 meters by 3 meters as we want to use on the "test room for Chasso".
- With the room ready we then did a batch of tests for running Chasso for periods of 5 and 15 seconds, with a battery level with 71% and 87% (by the existing data we know we shouldn't use Chasso with less of 70% of it's 9 volts power), running the motor at a speed of 50% of battery power.
- We then proceed to do a first statistic analysis of the collected data and one of the "interesting" things we found was that even on a small period of time (5 seconds) Chasso could travel with a distance differences of 3 centimeters, which in terms of odometer, for estimation of position is not good. The good news, was that it worked almost the same way with 71% of battery power.
- With the data aqquired we could finally implement the functions on the software to draw Chasso on the Map as it moves around the room. This proved a very a hard task, which in overall terms took more than 24 hours to do. This happened because we just forgot that the heading circumference is different from the trigonometric circumference and only when we got over that and converted the headings bearings correctly to the trigonometric equivalent and then applied a correction based on the room position to the north (0 degrees in bearing) we finally got everything working correctly.
Friday, May 11, 2012
:: Long week ::
This has been a long week of work, but with no publishable news, therefore we didn't published any new post on the blog.
We've been working in 3 fronts:
We've been working in 3 fronts:
- Maria's console software - finalizing the implementation of the UI and the integration with the C# class of "Localization Algebra" that we produced early;
- Maria - trying different layout in terms of mirrors and lights, in the pursuit of eliminating the light excess. This week we tried to use 2 different polarized filters. They almost solve the problem, but create another problem, we loose the correct color on the project image;
- Mid development report - we continue to elaborate the mid term development report that we are due to deliver on the 15th.
This weekend we will have the visit of Prof. Rogerio Cardoso (Physics and Mathematics) from who we are expecting some ideas on how to solve the problem of light excess on Maria. Also, we pretend to finish this weekend the Odometer of Chasso and it's representation on the map.
A long weekend will be...
Sunday, May 06, 2012
:: Long working weekend, but no major steps done ::
After a week where we dismount Maria's hardware to try to different ways and materials, like using 2 mirrors to deflect light, we came to the weekend with the problem of having an area on the Maria's projection surface with too much light. Even with the work that was done during the weekend we couldn't manage to get a solution.
Nevertheless, during Saturday we got some new ideas from our tutors on the project (Prof. Francisco Pereira and Prof. Tiago Candeias). It was our first presentation of all the components to them. Overall, they gave a very good opinion and some suggestions, specially for Maria, which we will try to test during next week.
So, a part from this step backward to try to reconstruct Maria on a different form to avoid the "too much light" problem, the only step forward was the almost full implemention of Maria's User Interface prototype on the Maria's console software. Some controls still need future work, but we manage to finish the weekend with, let's say, 75% of the UI done. Next step, try to close the rest of the 25% until next weekend.
Nevertheless, during Saturday we got some new ideas from our tutors on the project (Prof. Francisco Pereira and Prof. Tiago Candeias). It was our first presentation of all the components to them. Overall, they gave a very good opinion and some suggestions, specially for Maria, which we will try to test during next week.
So, a part from this step backward to try to reconstruct Maria on a different form to avoid the "too much light" problem, the only step forward was the almost full implemention of Maria's User Interface prototype on the Maria's console software. Some controls still need future work, but we manage to finish the weekend with, let's say, 75% of the UI done. Next step, try to close the rest of the 25% until next weekend.
Saturday, April 28, 2012
:: Chasso is turning to the defined direction! ::
Two more days of work and a critical task was done. One more baby step towards the end.
We have now managed to make the Chasso Robot turn to exactly the azimuth/heading we want. That was a very big problem, because if we couldn't achieve it we couldn't command properly the robot. Our main concern was the latency and the different responses that the Lego motors do to the same command.
After the tests and tryouts we manage to create an algorithm for the turn to the correct direction that works like this:
We have now managed to make the Chasso Robot turn to exactly the azimuth/heading we want. That was a very big problem, because if we couldn't achieve it we couldn't command properly the robot. Our main concern was the latency and the different responses that the Lego motors do to the same command.
After the tests and tryouts we manage to create an algorithm for the turn to the correct direction that works like this:
- One motor lowers the base to the floor, lifting the robot on the air;
- The other motor does a rotation of 70% the estimated rotation (we calculated this rotations value based on tests ran by us), with the speed of 50% the power of the motor;
- We then do a loop where we do turns on 20% the power of the motor with cycles of 200 degrees revolutions. This way we can read the compass heading on each cycle and determine if we are on the pretended heading;
- After this we recollect the base, not at 50% the power as we were doing on the descent but at 20%. We discover that doing this we had less chances of the Chasso balance and provoke a change of 2 degrees on the compass heading. This means the robot is again on the floor on exactly the defined azimuth;
- After that we turn the base 70% of the estimate rotation on the opposite direction, again at 50% the power;
- Then we do a cycle using the color sensor the see if the base is in the correct position. If not, we continue rotating the base at 20% the power until that occurs.
We still have some "minor" problems, but they seem very difficult to overcome:
- Changes of heading with less than 10 degrees. The Lego motors are not very good in responding to this small rotations, specially when they carry the weight we use on Chasso;
- The weight of the Chasso makes to down and up base operations not always presenting the same results, does the end of the operation isn't always the expected. We have to ran tests on some dozen times to check if this becomes a problem or not.
The "turn to the heading" operation became more slower, but it's much more accurate (even if the compass only gives even readings - therefore we always turn when we have at least one degree of what we want).
Another good news is the the battery on Chasso wi-fi camera still is above 60%. On the technical specifications we read that for our consumption, it should last at least 10 hours, but it seems it lasts much more than that. We have now about 20 hours after it's initial charging.
Thursday, April 26, 2012
:: Chasso and Julio are working simultaneously! ::
Finally we have a breakthrough on a problem that has importunate us for several weeks, the performance issue on having Chasso and Julio robots turned on at the same time. We couldn't have performance to show both videos at the same time and having an acceptable user interface response from the screen controls (in Maria's console App).
After rewriting the algorithm, we took off the timers for image processing and put all tasks regarding the UI on the "Form Shown" event of the main form of the application. Doing this, we maintain a loop that is repeating the update of the user interface, therefore not having any latency during video processing. This is also better in terms of taking advantage of a better CPU. The disadvantage is that the CPU usage is always on a very high limit, but with the video process and live face detection/recognition this is a high resource consuming application. But at least, everything is working and the performance with only one robot at a time is very acceptable, processing at least 2 video frames per second.
On the software front, the next steps are:
:: Maria, touch accuracy problems ::
On the touch surface area, there is a zone where the projector reflects and causes a very difficult touch detection, on the remaining area the touch sensitivity is acceptable.
We came with an idea, put another mirror in order to attenuate the intensity of reflected light.
Some temporary changes were made in Maria "body":
1- Added a mirror (a bit bigger than the other) for the extra refletion;
2- Moved the infrared lamps to another position;
3- Removed the tracing paper cover of the IR Lamps;
4- Lifted the camera calibration base.
Thus creating a set of mirror reflections (the projector to a mirror that reflects to another mirror which in turn reflects on the touch surface) that will hopefully mitigate the zone of high light intensity caused by the projector.
But we were not really successful...
That zone, that we refered, is visible at the beginning of the video (0:01), the dark squares should be homogeneous, but it is possible to see the area (bottom below, user perspective) of greater intensity.
Next days will be to improve the changes on Maria body, in order to continue on fine calibration.
Wednesday, April 25, 2012
:: Global test completed ::
The day began by making with the Switch and Router configuration. As Julio and Chasso are in different ranges of IP's, it was necessary to reconfigure the network in order to make the global tests, because Julio works as an Access Point on 192.168.1.1 and to work with all components at the same time, we needed another network on the 192.168.2.x, so that Maria console can comunicate with both networks (one with cable and another with wi-fi) and to maintain the necessary internet connection :)
For the first time we had everything to to a test with all the components we are going to use on the final presentation. On the Chasso robot adjustments were made to balance the weight when doing a lift. With the new battery, it was necessary to do tests to find de adequate place to put it, because we need the balance to be stable, even when Chasso rotates. Everything ran smoothly. This operation was successful.
Regarding the new battery, we were very happy. We were not sure about the battery life, but after 1:30 the battery remains above 80%. Another successful test (and another good ebay buy). Then came the big test, try to connect simultaneously Julio and Chasso to test whether the two could be ran together, specially the video update. After some hesitation, everything went well. One negative test point has what we were expecting, was the performance on UI update. We have not enough computational resources for the processing of two videos. The two images are captured, but the image processing is not done in an aceptable time. We have to improve this section by optimizing the code and try new ways of processing the video.
In relation to Maria, we are having some trouble (girls!). The driver used is not working as expected. We have to research more on how to optimize this also. In summary, today was very productive day, but solving some issues, brought us another. The fight continues...
Regarding the new battery, we were very happy. We were not sure about the battery life, but after 1:30 the battery remains above 80%. Another successful test (and another good ebay buy). Then came the big test, try to connect simultaneously Julio and Chasso to test whether the two could be ran together, specially the video update. After some hesitation, everything went well. One negative test point has what we were expecting, was the performance on UI update. We have not enough computational resources for the processing of two videos. The two images are captured, but the image processing is not done in an aceptable time. We have to improve this section by optimizing the code and try new ways of processing the video.
In relation to Maria, we are having some trouble (girls!). The driver used is not working as expected. We have to research more on how to optimize this also. In summary, today was very productive day, but solving some issues, brought us another. The fight continues...
Tuesday, April 24, 2012
:: First global test is near ::
Today arrived our last purchase for the system, the battery for the wi-fi camera to mount on top of the Chasso Robot.
After our tests with simulated weight and volume, we ordered the TeckNet AE-iEP387-7000mAh 5V 2A because it seems like te best choice.
If the Chasso behaves ok with the weight and we manage to get a position for it that doesn't not afect the balance, we can finaly do our first global test, with all components working simultataneasly. Our main concern is the performance of everything (according to our previous tests). More news tomorrow...
After our tests with simulated weight and volume, we ordered the TeckNet AE-iEP387-7000mAh 5V 2A because it seems like te best choice.
If the Chasso behaves ok with the weight and we manage to get a position for it that doesn't not afect the balance, we can finaly do our first global test, with all components working simultataneasly. Our main concern is the performance of everything (according to our previous tests). More news tomorrow...
Saturday, April 21, 2012
:: WinForms still rules (in some situations) ::
After being all week working on code translation from WPF to WinForms we got together one more day to do some tests and evaluation.
So the agenda for the meeting was:
1. Test the WinForm App with the Chasso robot;
2. Test the WinForm App with Julio robot;
3. Test the WinForm App with both robots;
4. Test Julio with a iPhone on top, sending GPS coordinates;
5. Test traveling salesman algorithm;
6. Define intermediary report content;
7. Discuss implementation of Maria's UI;
8. Test the MacBook Pro connect to Maria.
We managed to do a lot of work on this day:
1. We had changed the Maria's Console application from WPF to Windows Forms because we were having a very bad performance. With both cameras and sensors from both robots connected, we couldn't get from than 1 frame per second on video (even with only one working at a time).
The tests with only the Chasso Robot and in WinForms, even with more poolings from sensors per second are much better than on WPF. The video frame passed from 1-2 frames per second to 5-8.
2. Once more we run into some difficulties. Because almost all examples from .NET ARDrone SDK Wrapper are for WPF we had to rewrite a lot of code. Until now we couldn't finish this task. News will come on the following days.
3. As on point 2, we will have to wait for the programming to be finished so that we can test it.
4. This was the fun part of the day. For the first time we took the ARDrone (Julio) for exterior flight, but not before we did some interior tests with an iPhone on top of it. By the end of the day we had some conclusions and changes to the project (a part from one more big incident where we tread the hull once more):
- The iPhone is very heavy for the Julio. It's 140 grams are too much for it. To make it carry that weight and have a stable flight, we shouldn't use the protection hull and tweak the Drone, but that would make us loose the warranty. We also confirmed this on web forums;
- The iPhone wi-fi network is always trying to connect to the local available networks, making the iPhone App become more unstable and affecting the flight (Julio does less responses of commands per second);
- The Android based Z71 Boston mobile phone were more lightweight (around 100 grams) and it's wi-fi network didn't affected the ARDrone as much as the iPhone;
- Based on this, we will change the project and use the Android Phone has our GPS on Julio. We will now look form information on our to program this on Android.
5. We left this item for a future meeting.
6. We discussed what we should prepare for this report, that is due to be delivered on the 15th of May.
7. We did some small tests in WinForms, but we need to get back to this on the following days.
8. Done with success.
Wednesday, April 18, 2012
:: Chasso Navigation and Traveling Salesman Algorithms done ::
During these days, because classes have already started we didn't got the time to get together, therefore we've been advancing on tasks we can do by ourselves.
We have now finished an implementation in C# of a class to solve the "Traveling salesman problem" based on the book "A java library of graph algorithms and optimization" by Hang T. Lau. We will use this as an agent in Artificial Intelligence for discovering the fastest way between 3 points and return "home".
We also designed a flowchart with a new algorithm for the Chasso navigation. With the changes made we hope to circumvent the performance and latency problems we were having. Now we are going to implement it and do some tests. Probably more news on this will be available next weekend.
We have now finished an implementation in C# of a class to solve the "Traveling salesman problem" based on the book "A java library of graph algorithms and optimization" by Hang T. Lau. We will use this as an agent in Artificial Intelligence for discovering the fastest way between 3 points and return "home".
We also designed a flowchart with a new algorithm for the Chasso navigation. With the changes made we hope to circumvent the performance and latency problems we were having. Now we are going to implement it and do some tests. Probably more news on this will be available next weekend.
Sunday, April 15, 2012
:: Maria's UI ::
Yesterday we were very disappointed after we detect some problems, mainly performance issues that can derail the whole project, but we have only one way ... to move forward.
On the other side, we have reached the base of the final version of the Maria's UI prototype. It is subject to change, according to eventual implementation problems, but shouldn't be very different from this.
On the other side, we have reached the base of the final version of the Maria's UI prototype. It is subject to change, according to eventual implementation problems, but shouldn't be very different from this.
:: Serious Problems ::
After a promising week, this weekend we met again for a full day working together with a tight agenda:
We are using a MacBook Pro with an i5 and 8 Gb of RAM and the processor is getting to around 40% of use, so what we will do to try to solve this issue is to break some of the processor consuming tasks in threads, so that we can use multiple cores of the CPU and get a little more performance. News on this on the following days...
1. Continue and try to finalize Maria's UI prototype;
2. Do some more tests with different materials on top of Maria glass;
3. Continue the programming of the "Travelling salesman" algorithm;
4. Implement new wi-fi camera for Chasso, together with Chasso navigation (this one using all the changes made to it on the last days, mainly the color sensor to know the whereabouts of the base).
If on points 1 to 3 of the agenda, we did some steps forward. Not finishing it, but came close to have it done or at least, got more near the end, in the point 4 of the agenda we found a major problem that could become a major impediment on the implementation of our concept... the Lego NXT brick has a very high latency between the sensors readings (we have to wait more than 500 milliseconds) for a complete reading on all 4 sensors. This by itself we already knew, the problem is when we had the time consumed for processing the video for the wi-fi camera, the time do detect faces on that video and the other tasks, the system becomes very, very slow. It's impossible to work only the Chasso, so using both Chasso and Julio at the same time, seems even more impossible.
We are using a MacBook Pro with an i5 and 8 Gb of RAM and the processor is getting to around 40% of use, so what we will do to try to solve this issue is to break some of the processor consuming tasks in threads, so that we can use multiple cores of the CPU and get a little more performance. News on this on the following days...
Subscribe to:
Posts (Atom)























