Monday, 26 January 2009

Overview of the blog / End-thoughts

This post


Since this blog (or, more precisely, all its posts pertaining to the end project) is to be used for evaluation, this blog post will serve to provide an overview of the postings.

The group members are Renata Norbutaite, Anders Dannesboe (a.k.a. prox), Anders Breindahl (a.k.a. skrewz) and of course Thomas (which is the name of the robot).

General structure


We've settled upon a strictly chronological blog, with allowance of hindsight-updates. Thus, all of the postings pertain to a particular moment in time---the date of the meeting the blog post is for---and to no particular subject. Of course, there has been subjects-of-the day, and this of course gets reflected in the postings.

To read through this blog, start with these introduction points, read the blog in its chronological order (start with Part I and work yourself upwards), and end up with the conclusion in this post. Use the chronological overview of this post to correlate actions to points in time (because wading through the posts themselves probably will be too tiresome).

Focal points


This blog describes the noteworthy efforts that we've gone through. Thus, un-noteworthy efforts are left out. At all posts, a goal-plan-results approach has been attempted.

We've taken a far-from-code approach to documenting this effort. This choice is because our
considerations pertain to the concepts, and not to the code they're implemented in, with few exceptions.

Code availability


The code is available in its entirety at the following location.

http://daimi.au.dk/~skrewz/thomas-src
http://daimi.au.dk/~skrewz/thomas-src.tar.bz2
(you may, in the future, need to use ``cs'' in stead of ``daimi''),

and (if that's unavailable!), by contacting skrewz. No specific licences have been settled upon, so that means public-but-all-rights-reserved---contact us if that is inappropriate for you.

Brief chronological overview



This walks through the postings, chronological, and explains the posts briefly. Note that, since the blog is top posting, so is this walkthrough.


  • End-project. PART XV:
    This posting describes what happened at around the exam.

  • 20090121: End-project. PART XIV:
    The robot was assured to be able to write its own name, and the rest of the alphabet was implemented. Meanwhile, a bluetooth effort wast tried.

  • 20090120: End-project. PART XIII:
    In a long day, both the reproducability of drawings, writing of the robot's name and various shapes were tested. A PC-side driver (a replacement of the GradientInterpreter layer and a driver class for this) was created,

  • 20090119: End-project. PART XII:
    Due to thievery of our battery pack, a bit of coding blindly was done. However, the effort became mostly physical-construction-oriented.

  • 20090117: End-project. PART XI:
    Refinements to the NavigationLayer motivate extensive testing of motor behaviour. It turns out to behave linearly. Also, the first really nicely-done drawings of triangles (which have a sharp corner) appear.

  • 20090116: End-project. PART X:
    First actual drawings (of circles, no less) start to appear. The NavigationLayer-implementation turns out to be too low-tech.

  • 20090114: End-project. PART IX:
    Experiments were conducted very thoroughly with the RCX-style touch sensors, and data plots were produced. All in order to defend program conditions (which turned out to be very easy).

  • 20090113: End-project. PART VIII:
    The GradientInterpreter layer is brought into play, and the lower layers are still being fiddled into place.

  • 20090112: End-project. PART VII:
    Further refinements on the troublesome MotorLayer, primarily related to touch sensors.

  • 20090108: End-project. PART VI:
    A group member becomes ill, and only the two bottommost layers are implemneted, tested and presented. However, the coding effort is picking up speed.

  • 20090106: End-project. PART V:
    The architecture is settled upon to the level of defining Java interfaces, and programming homework is delegated.

  • 20081212: End-project. PART IV:
    Still (re-)building the robot, but architecture discussions are touched upon: The layers are named, and terminology is established.

  • 20081209: End-project. PART III:
    The touch sensors are settled upon and installed. Generally, still in the building-the-robot-phase.

  • 20081205: End-project. PART II:
    It becomes more evident to the group that an X-Y-coordinator is a complex build. We manage to start building the Z-axis and start some basic motor controlling, and basically finish the X-axis.

  • 20081202: End-project. PART I:
    We discuss project headings and document our prototype's progress.

  • 20081128: Initial Description of End Course Project:
    In this post (which has seen approval) we discuss potential projects for the end course project.



Conclusion and final thoughts



This is the long conclusion and wrapping-up thoughts section of our project. We've allowed ourselves to be a little verbose for a conclusion in order to pick up on all self-evaluation that the chronological format doesn't allow.

Reflection


At the very beginning of this project we had a chance of describing our expectations to the final result. So, when we look back at this description, we can say that what we did is close to exactly what we were expecting. At this particular moment, we have a robot which is able to navigate in an X-Y coordinate system, and even, it is able to move a pen in an up/down motion.

It is the purpose of this robot is to be able to draw something, and indeed it does that. So far, the robot can draw whatever is given by description of lines and arcs, but the software extends beautifully to arbitrary t → (x,y,z) parametric functions of elapsed time in the movement.

Structure


For the robot to be able to do all this, we use three motors (X-axis handling, Y-axis handling, Z-axis handling) and six touch sensors in total for safety and calibration reasons. Four of them are related to the X-axis (2 at the min-border, 2 at the max-border) and two of them on the Y-axis (one at each min and max borders).

These will stop the motors, when a relevant part touches its min or max border. We considered to put a touch sensor onto the Z-axis as well, but that eventually seemed as a burden to the structure more than actual help.

Theory


When we talk about the robot from a theoretical point of view, we can think about the idea of feed back control. At every moment when we are in an action of drawing, we are aware of where exactly we are and where we are supposed to be at. The robot takes these two things into account and tries to bring the system to a goal state and keep it there. We have actually considered more sophisticated controlling such as proportional-derivate or similar would fit for us here in order to increase the accuracy, but we never actually came around to implement or otherwise try it. The current linear feedback algorithms do us good enough, already.

From the overall robot’s behavior point of view, we can think of terms as sequential control and reactive control. The behavior of the robot can be described as a sequential control whenever it follows the drawing instructions. The drawing is all about following a predetermined sequence of lines and arcs. The robot does not think (as of writing) about which way is the best to do that, it just follows the sequence. Now we have a sense of reactive control whenever the robot is calibrating itself. That is done by going to the min (which is determined by help of touch sensors) and counting all tachos all over again and going to the max. So, as it was said, it is not actual stimulus-response behavior, but a sense of it, because at this stage robot is dependable on the touch sensors.

Achievements


We've succeed with regards to our project description, as argued above. On top, we even went for some of our bells-and-whistles extensions, albeit we couldn't make them work (pertaining to Bluetooth, here).

So, from a project-to-product point of view, we've suceeded. But we achieve extra-description features, too. We have a sound software architecture, and we keep to it: The layered architecture in our software is actually a strictly layered architecture (i.e. no layer communicates with any but its immediate neighbours in the layer stack). And we demonstrate the usefulness of a strong software architecture in our ability to cleanly exchange the GradientInterpreter layer with an emulator, and run the whole software suite on a PC, outputting to GNUplot.

The separation of concerns that arises from strictly defined barriers of responsibilities also make for a really neat way of expressing movements in a high-level language. One simply has to provide a gradientlayer.GradientGiver implementation, and the robot will then be able to trace that.

Needless to say, our achieved typical error magnitude of 0.5 millimeters (and maximal error magnitude of strictly below 2 millimeters during normal working conditions) is also something to be proud of, and our physical setup seems to be able to keep up with the software's precision in being able to do almost-exact multiple-draw-experiments.

37 comments:

said...

wonderful ..................................................

優雅的 said...

不費勞力而得者,唯貧困而已..............................

微笑每一天 said...

may the blessing be always with you!! ........................................

怡如 said...

彰化聊天室二聊天勢苗栗聊天室ut中部人聊天聊天尋夢亞洲無碼成人影片亞洲無碼影片區亞洲短片 亞洲長片亞洲短片亞洲長片亞洲貼圖站亞洲電影瘋情網亞洲瘋情網下載亞洲瘋情影城亞洲歐美影片亞洲免費線上a片亞洲免費電影亞洲免費情色影片男同自男同志gay圖片男同志gay網男色情片男免費聊天亞色情網亞亞光碟網亞亞成人網免費影片亞亞成人影片亞洲go2免費影片亞洲成人線上看亞洲色圖亞洲免費色情片無碼美女視訊免費桌布下載成人文章成人圖片

鄭明宏 said...

cool blog,期待更新........................................

佩昭彥怡 said...

心中有愛,才會人見人愛。......................................................

Raphae9845 said...

0401影音成人影片交流愛撫淫叫色情照片性愛圖片女生如何自慰激突成人論壇美女脫胸罩走光一夜正妹視訊情人性愛論壇85cc影城性伴侶85cc色情影片打手槍情色視訊聊天室色情a片色情色情圖片限制級照片色情電話520sex免費色情網情色性愛一夜情聊天網成人聊天網視訊成人台灣性網av一夜女情色av淫女免費視訊美女挑逗情色影音聊天作愛影片辣妹清涼秀美女做愛成人自拍貼圖成人資訊色論壇台灣色情成人網站色情視訊聊天露三點打砲情色性愛貼圖av成人網成人影片

RexTemples0217 said...

思想與理論,貴呼先於行動,但行動較思想或理論更高貴..................................................

昱廷昱廷 said...

非常感謝~3Q~....................................................

黃k0822oryb_card said...

用行動來支持你~~~不留言不行!........................................

韋于倫成 said...

留言是種美德-感謝分享 ....................................................

佩怡 said...

人因夢想而偉大,要堅持自己的理想哦!........................................

育德 said...

憂能傷身,保重哦! ....................................................

東芳 said...

處順境須謹慎,處逆境要忍耐。........................................

文君 said...

Necessity is the mother of invention.............................................................

洪筱婷 said...

原來天鵝嫁給癩蛤蟆就會生出醜小鴨.................................................................

王邦鈺 said...

死亡是悲哀的,但活得不快樂更悲哀。......................................................................

銘木 said...

當一個人內心能容納兩樣相互衝突的東西,這個人便開始變得有價值了。............................................................

王名仁 said...

人生是故事的創造與遺忘。............................................................

亦妮 said...

要照顧身體歐~保重..................................................................

吳婷婷 said...

朋友是一面鏡子............................................................

倫惟倫惟 said...

蛛絲馬跡皆學問、落花水面皆文章............................................................

婷珊 said...

在你一無所有的時候 是誰在陪伴你 他便是你最重要的人............................................................

蔡靜芳蔡靜芳 said...

愛看您的新文章!加油!............................................................

思恬 said...

認識自己,是發現妳的真性格、掌握妳的命運、創照你前程的根源。............................................................

姚宜潔 said...

心中醒,口中說,紙上作,不從身上習過,皆無用也。..................................................

謝俊宏 said...

Poverty is stranger to industry.........................................

家唐銘 said...

量力而為,別勉強了,Cut your coat according to your cloth.............................................................

敬周喜 said...

所有的資產,在不被諒解時,都成了負債.................................................................

思張張亦 said...

動不一定每一次都成功,但坐而不行,絕無任何成功可言............................................................

esthermelvin said...

要在憂患恥辱的環境裡,創造我們自力更生的新生活。..................................................

冠陳儒 said...

一個人的際遇在第一次總是最深刻的,有時候甚至會讓人的心變成永遠的絕緣。......................................................................

牧宇 said...

要持續更新下去喲!!期待~~............................................................

翊翊翊翊張瑜翊翊翊 said...

這不過是滑一跤,並不是死掉而爬不起來了。..................................................

幸平平平平杰 said...

多謝美味的心靈雞湯......................................................

孫邦柔 said...

卡爾.桑得柏:「除非先有夢,否則一切皆不成。」共勉!.................................................................

鲁涵淞 said...

河水永遠是相同的,可是每一剎那又都是新的。........................................