Alsalam alikom wa ra7mat Allah wa barakatoh
2 hours ago, we have finished our final presentation about RDES. Al 7amd lellah, everything went fine and they liked our presentation (I hope). They also asked some questions (after 3 previous presentations without questions!!) which is in my point of view a good indicator specially when you feel your answers satisfied them al 7amd lellah.
Let's go back a little longer,
Yesterday, I walked up (@ 7:45am) because someone was knocking my door, I found out that it was Moussa and that he has just returned back from the institute after sleeping for a couple of hours there :D... he asked me to wear my clothes and such and to go to the HNI cuz zezo is working there and he is still awake... it's something like he wanted me to take over zezo's position and let zezo go home and have some rest...
I walked up and such... went there to find zezo with a very funny look like "who are you!!"... he was trying to stay awake by drinking coffee and such bad things :D.... I asked him to explain to me what he has done since yesterday... he told me what he reached and what he is thinking of... He was the expert among us in debug info, I was just trying to think with him.. you know, sometimes it's good to just make someone feel you are sharing his thoughts... it makes him more creative... and actually it happened, we tested something on his laptop that didn't work, we suggested to test it on my laptop, and it did work... this moment we were waiting for for the past few weeks... you can't imagine how I felt but I'll tell you... I felt I wanted to sleep :D... it's something like mmm "we are finally, done, let's take a rest".
What was left then is to make a parser for the debug info file and an application that integrates all our work.
I started in that application, we wanted to make it all as services to be easily integrated with MSRS. Moussa arrived sometime later, he was making the presentation the other day, and he was about to finialize it when zezo announced that he needs to sleep so Moussa made the parser instead of him and sent it to me to integrate... he was free then and went out with Zezo to buy somethings... when they came back, I was still working on those services...
later at 1:32am, we had our first output which is the result of watching a global variable called "_varBeta3".... I shouted "yessssssss"........ and for the first time during this month, I felt we did something they never expected we will do... specially that on the last meeting with Prof.Rukert, Prof.Abdel Wahal and Dr.Ulf... Dr.Ulf felt and actually asked us "so, we expect to see a non finalized project on the final seminar?" we sadly agreed.. and now we did ittttttt...
We stayed awake till 3:00am when we decided to sleep at the Inistitute for a few hours... and to continue work the next day...
At 6:00am, M.Hussein awaked us to pray al fajr and continue working... we wanted to finialize that application to make a rehearsal about the final presentation...
While finalizing the presentation (which was about 11:00am), Moussa suggested "How about if we put a slide saying 'we did it'..." we all liked the idea and modified it to put the same statement in different languages, we even asked a guy called Tanoto for help to translate it to something he can understand... we also wrote it in Chinese, Arabic and of course, in german "Wir taten es"
at 2:00pm sharp, we were there at the main whole starting our presentation about RDES... after we are done, people asked a lot (which is something I liked)... and then they clapped and we sat to start recording the coming sessions (Teleworkbench project and Dr.Sally's project)...
Prof.Rukert, Prof.Abdel Wahab and Dr.Ulf then came to our lab to see a live demo about the project... he then invited us to have a cup of tea all together... Dr.Emad showed us a heliocopter he bought that can fly with a remote control. we played a little then everybody run to catch the bus (which comes at xx:06 where xx is any hour in the morning) I stayed at the inistitute cuz I've somethings to do...
They called me to confirm that I'll be there at 8:30pm to have our last dinner in a Turkish resurant in downtown (Westent'o'r)... I was there on time al 7amd lellah...
We had the dinner and prayed al ma3'reb in the street as always :D... and went home to start packing our bags...
We then slept at 3:00am again to wake up at 6:00 to catch the bus that comes at 7:07am to catch our train at 7:49pm :D ...
but this is another story....
Stay in touch..
Alsalam alikom wa ra7mat Allah wa barakatoh
Alsalam alikom wa r7amat Allah wa barakatoh
Hope you are all doing well...
I missed blogging so much... but don't worry, I've prepared two or 3 long posts ;)... wait for them...
For those who don't know already, 3 of 3DEER team managed to travel to Germany in a 1-month scholarship (the remaining 2 has military service)...
I'll speak about Germany Trip in shaa Allah in details sometime later be ezn ellah... because it's not only my memories that I'll speak about.... you know!
So, for now, I'll speak about what we do there (technically)...
During our graduation project development cycle, we encountered one problem several times in which we really wished we can put a break point on the code loaded on any of the robots we have (LEGO or Khepera)... we really wanted to debug that code cuz the behavior was really unexpected. We decided to add this as a future work to our project.. just in case somebody got interested in this topic and decides to extend our work... fortunately, we were those ones who got that chance... I hope we are up to it....
So, let's dig into the topic (after that long introduction)..
The project is called Remote Debugging for Embded Systems (RDES, pronounced 'Ardis').. the aim is to provide an expendable architecture to debug programs on embded systems. How much expendable? to the extreme, that's if we can allow users to add 10 lines of code to add support for a completely different processor to be debugged, we consider this the success...
The architecture is simple, there will be a small source file linked with ur original code running on the robot that we call a Stub, this stub is the backbone of adding support to other micro processors, we intend to keep it as simple/compact as possible, and to provide all the client code (running on the host machine -usually a pc) as portable as possible. We then have build the client code as Service Oriented Architecture to allow two things:
1- Integration with Microsoft Robotics Studio.
2- Extendability, it's much easier to extend our project with multiple services... as you will see later...
So, about the client code, we have 3 main services..
Ah, one thing to remember, it's now August-14, the past 10 days, we've not been playing, we have made a decision to use GDB (GNU DeBugger) which we thought would be a good experience to employ an open source project in a research project -specially that non of us did such a thing before-. But unfortunately, we agreed yesterday that this decision was not the optimum one. As GDB was not elegantly written and it's not easily extended (at least it requires the user to compile the source code for Host & Target machine to be able to debug)... Al 7amd lellah, bad decisions happen, I believe what differs is when do people realize that they made a wrong one and how flexible are they to return to the early basic step of thinking what to start doing tomorrow...
Thanks Allah I've that wonderful team... (Although I miss Mustafa & Kamal... Maybe if they were here, we would have not made that first decision, I believe this is the best for everybody as Allah always do)
That's if for now....
The post seems so technical, but I promise the long posts I spoke about earlier have nothing technical in.
Alsalam alikom wa ra7mat Allah wa barakatoh
Haytham Alaa,
Heinz Nexdorf Institute,
Paderborn University,
Paderborn,
Germany.
Hope you are all doing well...
I missed blogging so much... but don't worry, I've prepared two or 3 long posts ;)... wait for them...
For those who don't know already, 3 of 3DEER team managed to travel to Germany in a 1-month scholarship (the remaining 2 has military service)...
I'll speak about Germany Trip in shaa Allah in details sometime later be ezn ellah... because it's not only my memories that I'll speak about.... you know!
So, for now, I'll speak about what we do there (technically)...
During our graduation project development cycle, we encountered one problem several times in which we really wished we can put a break point on the code loaded on any of the robots we have (LEGO or Khepera)... we really wanted to debug that code cuz the behavior was really unexpected. We decided to add this as a future work to our project.. just in case somebody got interested in this topic and decides to extend our work... fortunately, we were those ones who got that chance... I hope we are up to it....
So, let's dig into the topic (after that long introduction)..
The project is called Remote Debugging for Embded Systems (RDES, pronounced 'Ardis').. the aim is to provide an expendable architecture to debug programs on embded systems. How much expendable? to the extreme, that's if we can allow users to add 10 lines of code to add support for a completely different processor to be debugged, we consider this the success...
The architecture is simple, there will be a small source file linked with ur original code running on the robot that we call a Stub, this stub is the backbone of adding support to other micro processors, we intend to keep it as simple/compact as possible, and to provide all the client code (running on the host machine -usually a pc) as portable as possible. We then have build the client code as Service Oriented Architecture to allow two things:
1- Integration with Microsoft Robotics Studio.
2- Extendability, it's much easier to extend our project with multiple services... as you will see later...
So, about the client code, we have 3 main services..
- Mapping Service:
You know about Debugging Information? this is an additional file that the compile generate. This file contains mapping table.. in it's simplest form, it has something like this:
UserLine# AssemblyLine#
1 1
1 2
2 3
this means that line one in user code (source code) has generated two assembly lines.. which are 1 and 2 while the second user code has generated only one assembly line...
the debugging information file contains much more information than just that mapping. It also has a Symbol-like table, that can be used to look up where any symbol is located in the application space.
Back to Mapping Service, the idea here is to have a generic service (generic to the level of debugging information format), so that anybody decides to add support to another format, would implement a service like this one which hopefully would behave the same.
The service should provide basic operations on debugging information, like "int GetAssemblyLine(int UserLine)"... - The CommunicationManager Service, this service has some logic of a debugger.. it's made to minimize the need to write code on Stub, instead, we do some more complicated logic. This also has a disadvantage which is, it increases the communication between embedded system and the client PC... you know, every project requires some design decisions, we looked at the benefit of having such a feature and thought, some more milliseconds would not hurt.
Ah, one thing to remember, it's now August-14, the past 10 days, we've not been playing, we have made a decision to use GDB (GNU DeBugger) which we thought would be a good experience to employ an open source project in a research project -specially that non of us did such a thing before-. But unfortunately, we agreed yesterday that this decision was not the optimum one. As GDB was not elegantly written and it's not easily extended (at least it requires the user to compile the source code for Host & Target machine to be able to debug)... Al 7amd lellah, bad decisions happen, I believe what differs is when do people realize that they made a wrong one and how flexible are they to return to the early basic step of thinking what to start doing tomorrow...
Thanks Allah I've that wonderful team... (Although I miss Mustafa & Kamal... Maybe if they were here, we would have not made that first decision, I believe this is the best for everybody as Allah always do)
That's if for now....
The post seems so technical, but I promise the long posts I spoke about earlier have nothing technical in.
Alsalam alikom wa ra7mat Allah wa barakatoh
Haytham Alaa,
Heinz Nexdorf Institute,
Paderborn University,
Paderborn,
Germany.