<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-36076726</id><updated>2011-06-08T07:03:36.775+02:00</updated><category term='Presentation'/><category term='Surface Construction'/><category term='Seminar 1'/><category term='Commercial'/><category term='3D'/><category term='ideas'/><category term='CCR'/><category term='ppsx'/><category term='Tutorials'/><category term='3DEER First seminar'/><category term='3D Model Generation'/><title type='text'>3D Enviroment Exploration using lego NXT Robot - 3DEER</title><subtitle type='html'>5 Guys + Few Robots + Crazy Ideas = 3DEER</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-36076726.post-1530320499622590518</id><published>2007-12-20T08:47:00.001+02:00</published><updated>2007-12-20T09:45:08.884+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Commercial'/><category scheme='http://www.blogger.com/atom/ns#' term='ideas'/><title type='text'>Karto... 3DEER Commercial Implementation.</title><content type='html'>Alsalam alikom wa ra7mat Allah wa barakatoh&lt;br /&gt;&lt;br /&gt;I was checking &lt;a href="http://blogs.msdn.com/msroboticsstudio/default.aspx"&gt;MSRS blog&lt;/a&gt; today, and found this interesting &lt;a href="http://blogs.msdn.com/msroboticsstudio/archive/2007/12/19/technologies-to-support-autonomous-navigation-from-sri-international.aspx"&gt;post&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;What I see is interesting about the post is that Karto does some of the services that 3DEER can do as well as supporting more hardware too...&lt;br /&gt;&lt;br /&gt;We are now back to think of how to exploit the market need for such type of software...&lt;br /&gt;Any ideas?&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Haytham Alaa&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-1530320499622590518?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/1530320499622590518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=1530320499622590518' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/1530320499622590518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/1530320499622590518'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2007/12/karto-3deer-commercial-implementation.html' title='Karto... 3DEER Commercial Implementation.'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-7170858409690029653</id><published>2007-06-27T07:04:00.000+02:00</published><updated>2007-06-27T07:12:14.867+02:00</updated><title type='text'>Opensource or what !</title><content type='html'>Alsalam alikom wa ra7mat Allah wa barakatoh&lt;br /&gt;&lt;br /&gt;Yesterday, we have delivered our 3DEER Project to the faculty..&lt;br /&gt;Today, we began to think about the future of 3DEER... will it be one of those projects kept on the shelf of FCIS Library without anyone noticing it... of course this is not what we want.&lt;br /&gt;&lt;br /&gt;We thought to open-source it, we thought to sell it, the first choice was most preferred by me cause this let's us see whether the community will accept it and encourage it or not...&lt;br /&gt;&lt;br /&gt;The purpose of this post is to ask whoever reads this blog about his/her opinion..&lt;br /&gt;&lt;br /&gt;Thanks in advance&lt;br /&gt;&lt;br /&gt;Alsalam alikom wa ra7mat Allah wa barakatoh&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-7170858409690029653?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/7170858409690029653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=7170858409690029653' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/7170858409690029653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/7170858409690029653'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2007/06/opensource-or-what.html' title='Opensource or what !'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-5231591256737684352</id><published>2007-04-25T17:56:00.000+02:00</published><updated>2007-05-01T07:31:33.588+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CCR'/><category scheme='http://www.blogger.com/atom/ns#' term='Tutorials'/><title type='text'>CCR.... Paper 1</title><content type='html'>Alsalam alikom wa ra7mat Allah wa barakatoh&lt;br /&gt;&lt;br /&gt;It's so long since we've posted anything here...&lt;br /&gt;&lt;br /&gt;Today we will speak a little about CCR... "Microsoft's light weight concurrency&lt;br /&gt;library"&lt;br /&gt;&lt;br /&gt;What is CCR?&lt;br /&gt;&lt;br /&gt;It's the abbreviation for Concurrency and Coordination Runtime.. which is a library&lt;br /&gt;that Microsoft recently released with &lt;a href="http://microsoft.com/robotics"&gt;Microsoft&lt;br /&gt;   Robotics Studio&lt;/a&gt; library..&lt;br /&gt;&lt;br /&gt;CCR solves a lot of troubles we usually face when coding using Threads (and we will&lt;br /&gt;see shortly how)..&lt;br /&gt;&lt;br /&gt;Consider this sample (non-real) code:&lt;br /&gt;&lt;br /&gt;void OnOkay(Okay state)&lt;br /&gt;{&lt;br /&gt;      // Dothings&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void OnCancel(Cancel state)&lt;br /&gt;{&lt;br /&gt;  // Do Other things&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;and considering that you want to work asynchronously, that's you want to wait for a message (Okay or Cancel), know it's type and then call the aproperciate method for it, then wait for another message... etc, something like this:&lt;br /&gt;&lt;br /&gt;void ReadMessages()&lt;br /&gt;{  &lt;br /&gt; while (true) &lt;br /&gt;{        &lt;br /&gt;Message message = PullMessage(DispatchQueue);         &lt;br /&gt;switch(typeof(message))        &lt;br /&gt;{               &lt;br /&gt;case Okay:                  &lt;br /&gt;OnOkay(message as Okay);               &lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Just that simple...&lt;br /&gt;BUT, now your method waits till the handler finishes before polling the next message...&lt;br /&gt;What to do ?&lt;br /&gt;We can make a thread to run the handler in.. so, instead of doing this:&lt;br /&gt;case Okay:&lt;br /&gt;OnOkay(message as Okay);&lt;br /&gt;&lt;br /&gt;we will replace it with&lt;br /&gt;case Okay:&lt;br /&gt;Thread thread = new Thread(new ThreadStart(delegate(){&lt;br /&gt;OnOkay(message as Okay);&lt;br /&gt;}));&lt;br /&gt;thread.Start();&lt;br /&gt;&lt;br /&gt;Again, just simple..&lt;br /&gt;Now, what if I told you that the DispatcherQueue is accessed from so many threads,&lt;br /&gt;What to do?&lt;br /&gt;Okay, simple, put a lock statement to prevent multiple threads from accessing the&lt;br /&gt;Queue at the same time..&lt;br /&gt;&lt;br /&gt;Simple...&lt;br /&gt;Now, What if it's just like this:&lt;br /&gt;port.Post(new Okay());&lt;br /&gt;and&lt;br /&gt;port.Post(new Cancel());&lt;br /&gt;&lt;br /&gt;and it's thread safe, controls the number of threads open, just that &lt;strong&gt;neat.&lt;br /&gt;&lt;/strong&gt;Isn't that better?&lt;br /&gt;&lt;br /&gt;CCR doesn't offer a new technology, it's just an elegant way to manage you thread&lt;br /&gt;pools and conccurent tasks.&lt;br /&gt;&lt;br /&gt;A few definitions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dispatcher Class:&lt;br /&gt;       It's basically a ThreadPool.. which we can consider like a List of threads.. but it has a predefined number of threads (that can be passed in the constructor)&lt;br /&gt;       &lt;span style="color: rgb(0, 153, 0);"&gt;Dispatcher &lt;/span&gt;Dispatcher = &lt;span style="color: rgb(51, 102, 255);"&gt;new &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Dispatcher(5&lt;/span&gt;);&lt;br /&gt;   &lt;/li&gt;&lt;br /&gt;   &lt;li&gt;DispatcherQueue Class:&lt;br /&gt;       It's a queue of delegates each holds a handler that's waiting for certain type of messages.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Port:&lt;br /&gt;Something that you send/receive through... it's a virtual port (think about it like your printer/scanner port)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Arbiter:&lt;br /&gt;A static class that manges adding/removing your methods (wrapped in delegate objects)&lt;/li&gt;&lt;/ul&gt;So, enough speaking about how nice CCR is...&lt;br /&gt;Wait the next paper to give some sample code and explanation...&lt;br /&gt;&lt;br /&gt;Till then, you can check a good resource: &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/09/concurrentaffairs/default.aspx"&gt;MSDN.. About CCR&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Stay in touch...&lt;br /&gt;&lt;br /&gt;Alsalam alikom wa ra7mat Allah wa barakatoh&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-5231591256737684352?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/5231591256737684352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=5231591256737684352' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/5231591256737684352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/5231591256737684352'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2007/04/ccr-paper-1.html' title='CCR.... Paper 1'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-3541461191006696598</id><published>2007-02-23T16:49:00.000+02:00</published><updated>2008-11-13T11:42:22.125+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Surface Construction'/><category scheme='http://www.blogger.com/atom/ns#' term='3D Model Generation'/><title type='text'>3D- How to choose the "best point"... Part2</title><content type='html'>Alsalam alikom wa ra7mat Allah wa barakatoh&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OJg5ONgUSg/Rd7_SpKB-3I/AAAAAAAAAIg/iAx2yajGJzY/s1600-h/Cylinder_Feb_23.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_3OJg5ONgUSg/Rd7_SpKB-3I/AAAAAAAAAIg/iAx2yajGJzY/s320/Cylinder_Feb_23.JPG" alt="" id="BLOGGER_PHOTO_ID_5034742129197448050" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Figure 1. Cylinder shape + Flooded Contour. The surface is generated using Huang, Menq Approach explained &lt;a href="http://www.kiv.zcu.cz/publications/2003/tr-2003-02.pdf"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;Just few minutes ago, we managed to output the above image using an incremental approach. Thanks Allah.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;So, what's the progress so far?&lt;ul&gt;&lt;li&gt;Robotics APIs (Zezo): Managed to move the robot in an arbitrary direction.&lt;/li&gt;&lt;li&gt;Motion Planning (Kisho &amp; Moussa): Finished their first approach, working on &lt;a href="http://en.wikipedia.org/wiki/A%2A"&gt;A*&lt;/a&gt; (for shortest route).&lt;/li&gt;&lt;li&gt;3D Model Construction (Mustafa &amp;amp; Me): Just managed to output acceptable models of the Incremental Algorithm (after the Brutal Force approach)&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;Let's get into the topic... the "best point" in Huang Menq approach we explained in the &lt;a href="http://3deer.blogspot.com/2007/02/what-3d-in-3deer-means.html"&gt;previous post&lt;/a&gt; has three criteria:&lt;ol&gt;&lt;li&gt;It must fall in the K-Nearest Neighbors of both end points of the edge.&lt;br /&gt;Just get the K-NN for one end point -&gt; List1&lt;br /&gt;then use this list to get the K-NN for the other end point.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It must fall within the area formed by neighboring edges.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_3OJg5ONgUSg/Rd8EE5KB-6I/AAAAAAAAAI4/dS1-lXVkL70/s1600-h/3D_2_2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_3OJg5ONgUSg/Rd8EE5KB-6I/AAAAAAAAAI4/dS1-lXVkL70/s200/3D_2_2.JPG" alt="" id="BLOGGER_PHOTO_ID_5034747390532385698" border="0" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;p&lt;/span&gt; is the boundary vertex. Any candidate to p must fall within the range defined by that semi-circle.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_3OJg5ONgUSg/Rd8EE5KB-6I/AAAAAAAAAI4/dS1-lXVkL70/s1600-h/3D_2_2.JPG"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;It must form the biggest angle to the boundary vertex.&lt;/li&gt;&lt;/ol&gt;One problem was facing us in choosing the Best Angle, is how to determine the angle in the 3D Space... I tried to draw a diagram for explanation but it was not clear... think about it. In 3D, angles are somehow meaningless.&lt;br /&gt;We had to think of a way to project 3D Points onto an estimated plane so that we can measure the angle easily.&lt;br /&gt;We had two ideas (Actually the first is our idea, the second is from a online document):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Given a vertex &lt;span style="font-weight: bold;"&gt;v&lt;/span&gt;, and a plane &lt;span style="font-weight: bold;"&gt;P&lt;/span&gt; (Normal: &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt;, Centroid: &lt;span style="font-weight: bold;"&gt;C&lt;/span&gt;). The procedure is as follows:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;vec&lt;/span&gt; = (&lt;span style="font-weight: bold;"&gt;v&lt;/span&gt; - &lt;span style="font-weight: bold;"&gt;C&lt;/span&gt;) -&gt; gets origin based vector for &lt;span style="font-weight: bold;"&gt;v&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;norm1&lt;/span&gt; = (&lt;span style="font-weight: bold;"&gt;N&lt;/span&gt;*&lt;span style="font-weight: bold;"&gt;vec&lt;/span&gt;) -&gt; gets a n&lt;span style="font-size:100%;"&gt;ormal vector to the plane that contains &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt; &amp;&lt;span style="font-weight: bold;"&gt; vec&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;norm1 &lt;/span&gt;will definitely fall in P)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;result &lt;/span&gt;= (&lt;span style="font-weight: bold;"&gt;norm1 &lt;/span&gt;* &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt;) -&gt; gets a normal to the plane that contains &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt; &amp; &lt;span style="font-weight: bold;"&gt;norm1&lt;/span&gt; (which now falls in &lt;span style="font-weight: bold;"&gt;P&lt;/span&gt; &amp; the plane that contains &lt;span style="font-weight: bold;"&gt;ve&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;c&lt;/span&gt; &amp; &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt;)&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;This method we are not sure about it... so just don't use it&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;result &lt;/span&gt;= &lt;span style="font-weight: bold;"&gt;N&lt;/span&gt; * (&lt;span style="font-weight: bold;"&gt;N&lt;/span&gt;.DotMultiplyPositionVector(&lt;span style="font-weight: bold;"&gt;vec&lt;/span&gt;)) * -1;&lt;br /&gt;&lt;a href="http://www.sli.unimelb.edu.au/fjleahy/comp_methods/lecture_notes06/Topic3_Point_Plane_06.doc"&gt;Explained here&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The output above is generated using K = 1000. Which made the algorithm runs in a long time. We are working to know why is that.&lt;br /&gt;&lt;br /&gt;That's all till now..&lt;br /&gt;&lt;br /&gt;Alsalam alikom wa ra7mat Allah wa barkatoh&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-3541461191006696598?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/3541461191006696598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=3541461191006696598' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/3541461191006696598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/3541461191006696598'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2007/02/3d-how-to-choose-best-point-part2.html' title='3D- How to choose the &quot;best point&quot;... Part2'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_3OJg5ONgUSg/Rd7_SpKB-3I/AAAAAAAAAIg/iAx2yajGJzY/s72-c/Cylinder_Feb_23.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-3461757082862529417</id><published>2007-02-12T16:55:00.000+02:00</published><updated>2008-11-13T11:42:22.988+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='Surface Construction'/><category scheme='http://www.blogger.com/atom/ns#' term='3D Model Generation'/><title type='text'>What 3D in 3DEER means!!</title><content type='html'>Alsalam alikom wa ra7mat Allah wa barakatoh&lt;br /&gt;&lt;br /&gt;Mustafa and me has the 3D part of the project. Let me tell u a brief about it..&lt;br /&gt;&lt;br /&gt;Our problem we are tying to solve is: Given a scattered 3D Points (that the robot returned) we are asked to build a smooth 3D Model.&lt;br /&gt;&lt;br /&gt;The first time I sat to think about this task, I just thought "What a pity, we can finish this in a day and have rest for the end of the year"... I was wrong!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OJg5ONgUSg/RdCHQsi7SZI/AAAAAAAAAHo/vpMVJlpR-Ao/s1600-h/3D_1_1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_3OJg5ONgUSg/RdCHQsi7SZI/AAAAAAAAAHo/vpMVJlpR-Ao/s320/3D_1_1.JPG" alt="" id="BLOGGER_PHOTO_ID_5030669504678152594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;What you see above is how the project goes from 3D Perspective... a 3D Model (to the left), the robot returns some scattered points (the middle) we should output a 3D Model (to the right)..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Algorithms:&lt;/span&gt;&lt;br /&gt;We have read about a lot of algorithms.. mainly we read about two types:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Volumetric&lt;/span&gt;: Which works in O(n^2) (bad of course) but produces a fine smooth surface..&lt;br /&gt;Sample : &lt;a href="http://research.microsoft.com/%7Ehoppe/recon.pdf"&gt;Hoppe's Paper&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Incremental&lt;/span&gt;: Which works in O(nlgn) or O(n)... (fast of course) but needs some refining after generating the mesh. Besides, it assumes the points contain no noise..&lt;br /&gt;Sample: &lt;a href="http://www.kiv.zcu.cz/publications/2003/tr-2003-02.pdf"&gt;Huang, Menq&lt;/a&gt; (this is not their paper, but I couldn't find their original paper free online, and this is the only source I found that explains their algorithm and implements it)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Hoppe's Algorithms is as follows (brief of course):&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use K-Nearest Neighbor (we used &lt;a href="http://en.wikipedia.org/wiki/Kd-tree"&gt;kdTree &lt;/a&gt;as our data structure &lt;a href="http://www.google.com/codesearch?hl=en&amp;q=+kdtree.cs+show:c70edMVqiEg:EorCjp3QsI0:Jmm-X_6ctZY&amp;amp;sa=N&amp;cd=1&amp;amp;ct=rc&amp;cs_p=http://gentoo.osuosl.org/distfiles/autopano-sift-2.3.tar.gz&amp;amp;cs_f=autopano-sift-2.3/src/KDTree.cs#a0"&gt;Implementation&lt;/a&gt;) to calculate the Tangent Plane for every Xi. You need two data about each tangent plane; the Centroid and the Normal.&lt;br /&gt;The centroid calculation is pretty easy, just sum the K-points and divide them by k&lt;br /&gt;To calculate the Normal, you will need to use an algorithm called Principal Component Analysis (&lt;a href="http://www.google.com/codesearch?hl=en&amp;q=+principalcomponentanalysis+show:6Kgn_aUEfMs:XG0yr50UUHc:DuMzcK1oV90&amp;amp;sa=N&amp;cd=1&amp;amp;ct=rc&amp;cs_p=http://www.neurogems.org/paxinos3d/paxinos3d_src.zip&amp;amp;cs_f=uk/ac/ed/computational_geometry/algorithm/PrincipalComponentAnalysis.java#a0"&gt;Implementation&lt;/a&gt;)... this link also contains a full java implementation for Hoppe's algorithm.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Now build a graph (n^2 edges) from all points to all points and do a minimum spanning tre algorithm to reduce the number of edges&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The last problem to solve is the orientation of the Normals, those generated tangent planes' normals may need to be flipped to be right-oriented with respect to the whole other surfaces.&lt;br /&gt;To do this, we  decide that the surface having the maximum Z will have its normal pointing to the +ve Z direction. Starting from this oriented surface, we just propagate to determine the orientation of the planes connected to it...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Huang, Menq Algorithm:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We start by building the first triangle which has one point that is the most far point in the Z-Direction and the closet two points to it this triangle 's normal is set to +ve Z Direction&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;We start by considering each of the border edges, we find the Best Point (which should lie in the K-Neighbors of the two edge points. More about selecting the Best Point will come in a later Post In Shaa Allah)&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;This candidate point can be one of the following cases:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_3OJg5ONgUSg/RdCG_8i7SYI/AAAAAAAAAHg/dGlIFrmOpgA/s1600-h/3D_1_2.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_3OJg5ONgUSg/RdCG_8i7SYI/AAAAAAAAAHg/dGlIFrmOpgA/s320/3D_1_2.JPG" alt="" id="BLOGGER_PHOTO_ID_5030669216915343746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Case 1:&lt;/span&gt; the B (Best Point) is not visited yet.. just create two edges and form a new triangle.. and add it as a boundary Point.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Case 2:&lt;/span&gt; The B is a boundary vertex AND is a close&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_3OJg5ONgUSg/RdCOtsi7SaI/AAAAAAAAAH8/qow2f-kvlMY/s1600-h/3D_1_3.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_3OJg5ONgUSg/RdCOtsi7SaI/AAAAAAAAAH8/qow2f-kvlMY/s320/3D_1_3.JPG" alt="" id="BLOGGER_PHOTO_ID_5030677699475753378" border="0" /&gt;&lt;/a&gt;neighbor to e (which means it lies in the next or previous edge to e)... Add One edge to B, Add the new triangle to your list, remove the internal vertex from the boundary list.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_3OJg5ONgUSg/RdCPqMi7SbI/AAAAAAAAAIE/tkevGh5x14U/s1600-h/3D_1_4.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_3OJg5ONgUSg/RdCPqMi7SbI/AAAAAAAAAIE/tkevGh5x14U/s320/3D_1_4.JPG" alt="" id="BLOGGER_PHOTO_ID_5030678738857839026" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Case 3:&lt;/span&gt; B is on the boundary and is NOT a direct neighbor to e.... add two edges to B, add the new Triangle to the list..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That last Algorithm, is the one we are working on now... it's fast which would enable us to make runtime model generation (while the robot is exploring) In Shaa Allah.&lt;br /&gt;&lt;br /&gt;That's it for now..&lt;br /&gt;&lt;br /&gt;Alsalam alikom wa ra7mat Allah wa barakatoh&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-3461757082862529417?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/3461757082862529417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=3461757082862529417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/3461757082862529417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/3461757082862529417'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2007/02/what-3d-in-3deer-means.html' title='What 3D in 3DEER means!!'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_3OJg5ONgUSg/RdCHQsi7SZI/AAAAAAAAAHo/vpMVJlpR-Ao/s72-c/3D_1_1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-6103155159642757585</id><published>2006-12-11T01:29:00.000+02:00</published><updated>2008-11-13T11:42:23.179+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ppsx'/><category scheme='http://www.blogger.com/atom/ns#' term='3DEER First seminar'/><category scheme='http://www.blogger.com/atom/ns#' term='Presentation'/><category scheme='http://www.blogger.com/atom/ns#' term='Seminar 1'/><title type='text'>First Seminar - Presentation</title><content type='html'>&lt;div align="center"&gt;el salamo 3alikom wa ra7amtoo ALLAH wa baraktoo&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;need to see our presentation... &lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://www.acmascis.net/Steering%20Comittee/3DEER/3DEER.pdf"&gt;&lt;img id="BLOGGER_PHOTO_ID_5007055995047253762" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_AemLu5zNqa8/RXyi5iNIFwI/AAAAAAAAAAw/xa6TJuYUNeI/s320/untitled.JPG" border="0" /&gt;&lt;img id="BLOGGER_PHOTO_ID_5007055088809154290" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_AemLu5zNqa8/RXyiEyNIFvI/AAAAAAAAAAo/KEQnAeentFw/s320/untitled.JPG" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;span style="font-size:180%;"&gt;Click on the photo ;)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;hope you enjoy it...&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;div align="left"&gt;el salamo 3alikom wa ra7amtoo ALLAH wa baraktoo&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-6103155159642757585?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/6103155159642757585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=6103155159642757585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/6103155159642757585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/6103155159642757585'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2006/12/first-seminar-presentation.html' title='First Seminar - Presentation'/><author><name>Mohammed Moussa</name><uri>http://www.blogger.com/profile/08605221170280116613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_AemLu5zNqa8/S6dwym0oM2I/AAAAAAAAAHI/SMXO3ANqvXY/S220/Moussa.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AemLu5zNqa8/RXyi5iNIFwI/AAAAAAAAAAw/xa6TJuYUNeI/s72-c/untitled.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-2861713439210228777</id><published>2006-12-10T08:12:00.000+02:00</published><updated>2008-11-13T11:42:23.534+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3DEER First seminar'/><category scheme='http://www.blogger.com/atom/ns#' term='Seminar 1'/><title type='text'>3DEER... First Seminar.</title><content type='html'>Alsalam alikom wa ra7mat allah wa barkatoh&lt;br /&gt;&lt;br /&gt;Today we held our first seminar at the faculty, we were really afraid cuz we felt we are not ready + we don't have a WOW thing to speak about + we just made the presentation and rehursal yesterday (from 11:00am till 12:30am)...&lt;br /&gt;&lt;br /&gt;Al 7amd lellah the seminar was good and the professor liked it.&lt;br /&gt;Here are some pictures for our seminar:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5006781290234747122" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_3OJg5ONgUSg/RXupDnCDmPI/AAAAAAAAAAU/3VHicMCrB8s/s320/SV300076.JPG" border="0" /&gt;&lt;/p&gt;&lt;p align="center"&gt;Kamal... speaking&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/_3OJg5ONgUSg/RXupD3CDmQI/AAAAAAAAAAc/qQJAID-YfmE/s1600-h/SV300081.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5006781294529714434" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_3OJg5ONgUSg/RXupD3CDmQI/AAAAAAAAAAc/qQJAID-YfmE/s320/SV300081.JPG" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="center"&gt;Zezo... Speaking&lt;br /&gt;&lt;/p&gt;&lt;div align="center"&gt;&lt;a href="http://3.bp.blogspot.com/_3OJg5ONgUSg/RXumvnCDmOI/AAAAAAAAAAM/9oDiHEvO1dw/s1600-h/SV300075.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5006778747614107874" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_3OJg5ONgUSg/RXumvnCDmOI/AAAAAAAAAAM/9oDiHEvO1dw/s320/SV300075.JPG" border="0" /&gt;&lt;/a&gt;Moussa... Speaking, Our friend Sara taking photos with her mobile&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="left"&gt;We will be putting our presentation soon In Shaa Allah.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;Stay in touch,&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;Alsalam alikom wa ra7mat Allah wa barakatoh&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;Yours,&lt;br /&gt;Haytham Alaa&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-2861713439210228777?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/2861713439210228777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=2861713439210228777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/2861713439210228777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/2861713439210228777'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2006/12/3deer-first-seminar.html' title='3DEER... First Seminar.'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_3OJg5ONgUSg/RXupDnCDmPI/AAAAAAAAAAU/3VHicMCrB8s/s72-c/SV300076.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-8337131891659063592</id><published>2006-11-22T01:00:00.000+02:00</published><updated>2006-12-11T16:33:35.417+02:00</updated><title type='text'>First Seminar Preparations - episode 1</title><content type='html'>el salamo 3alikom wa ra7amtoo ALLAH wa barakatoo&lt;br /&gt;&lt;br /&gt;Its my first post on 3DEER blog, I really feeling very interesting to work in that project with my team mates that I really respect.&lt;br /&gt;&lt;br /&gt;we prepared for that seminar in just 2 meeting, first one was at my home, Haytham was the first one to arrive with our lovely baby robot, It was the first time for us to meet, It was really a shock when I first saw him,as it was small, cuty,tiny little one :D, but we had a deal that we're going to do the mission to gether ISA, and I really trust him.&lt;br /&gt;&lt;br /&gt;While waiting for others to come, three of us began to play together with my LEGO toys, as me and Haytham remembered our past experience playing with LEGO, we really had fun :D.&lt;br /&gt;&lt;br /&gt;Mustafa arrived but rest of the partners couldn't make it that day, Brainstorming..., to make the presentation.&lt;br /&gt;&lt;br /&gt;we made it :D, we gathered all what we need to write in the presentation and we wrote a draft, we said that we need to meet another time with the rest of the team to finalize the presenation and begin the rehearsal, Mustafa and Haytham left with the lovely baby...&lt;br /&gt;&lt;br /&gt;Thank you ALLAH&lt;br /&gt;&lt;br /&gt;c u in the next episod&lt;br /&gt;&lt;br /&gt;el salamo 3alikom wa ra7amtoo ALLAH wa barakatoo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-8337131891659063592?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/8337131891659063592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=8337131891659063592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/8337131891659063592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/8337131891659063592'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2006/12/first-seminar-preparations-episod-1.html' title='First Seminar Preparations - episode 1'/><author><name>Mohammed Moussa</name><uri>http://www.blogger.com/profile/08605221170280116613</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_AemLu5zNqa8/S6dwym0oM2I/AAAAAAAAAHI/SMXO3ANqvXY/S220/Moussa.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-116275421850304576</id><published>2006-11-05T21:01:00.000+02:00</published><updated>2007-02-15T21:08:30.114+02:00</updated><title type='text'>3Deer is moving</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/7142/749/1600/header.0.jpg"&gt;&lt;img alt="" border="0" src="http://photos1.blogger.com/blogger/7142/749/400/header.jpg" style="MARGIN:0px auto 10px; DISPLAY:block; TEXT-ALIGN:center"/&gt;&lt;/a&gt;Alsalamalikom wa ra7mat allah wa barkatoh&lt;br/&gt; &lt;br/&gt; Today,&lt;br/&gt; I can say 3Deer learnt how to obay its master (Me :D)&lt;br/&gt; I spent few days to figure out how to make it work probably with my MSRS(Microsot Robotics Studio), I got almost all errors found online :D..&lt;em&gt;PleaseScroll down, for some reason, the rest of the Post is down there....&lt;br/&gt; &lt;br/&gt; &lt;/em&gt; &lt;table border="1" style="DISPLAY:block"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td&gt; &lt;strong&gt;Action:&lt;br/&gt; &lt;/strong&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Connect from NXT to PC&lt;strong&gt;&lt;/strong&gt;&lt;br/&gt; &lt;strong&gt;&lt;/strong&gt; &lt;/div&gt; &lt;strong&gt;Error Message:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Line is Busy&lt;strong&gt;&lt;/strong&gt;&lt;br/&gt; &lt;strong&gt;&lt;/strong&gt; &lt;/div&gt; &lt;strong&gt;Resolution:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Restart the Serial Port Service from ur Bluetooth Manage on the PC &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;strong&gt;Action:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Sending msrs.rbt from LegoNXT Manager to the Brick&lt;strong&gt;&lt;br/&gt; &lt;/strong&gt; &lt;/div&gt; &lt;strong&gt;Error Message:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Cannot find needed files&lt;br/&gt; &lt;/div&gt; &lt;strong&gt;Resolution:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Manually send the Config file in Samples\Platform\Lego\NXT\Resources to the Brick(You will still get the same error cuz of the start image and such things, u can ignore then or edit the msrs.rbt and choose one of the current images) &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;strong&gt;Action:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Starting the Tutorial1 Dss Node&lt;strong&gt;&lt;/strong&gt;&lt;br/&gt; &lt;strong&gt;&lt;/strong&gt; &lt;/div&gt; &lt;strong&gt;Error Message:&lt;br/&gt; &lt;/strong&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Invalid Serial Port / Unable to connect to Lego NXT&lt;br/&gt; &lt;/div&gt; &lt;strong&gt;Resolution:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; 1- Check ur Bluetooth connections to know the port given to you Brick and put it in the config page.&lt;br/&gt; 2- Disable the Second Serial Port in ur Bluetooth Stick manager.&lt;br/&gt; 3- Manually start the MSRS program on ur Brick.. it'll crash and close, try to start it again... &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;strong&gt;Action:&lt;br/&gt; &lt;/strong&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Using Tutorial1&lt;strong&gt;&lt;/strong&gt;&lt;br/&gt; &lt;strong&gt;&lt;/strong&gt; &lt;/div&gt; &lt;strong&gt;Error Message:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; The Bumper's message is not sent.&lt;br/&gt; &lt;/div&gt; &lt;strong&gt;Resolution:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; I couldn't figure out why till now. Howerver, Tutorial4 (which controls ur Motors) works very well.. &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt; &lt;strong&gt;Action:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Building RoboticsTutorial&lt;i&gt;X&lt;/i&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br/&gt; &lt;strong&gt;&lt;/strong&gt; &lt;/div&gt; &lt;strong&gt;Error Message:&lt;br/&gt; &lt;/strong&gt; &lt;div style="MARGIN-LEFT:40px"&gt; Cryptographic failure while signing assembly 'D:\Microsoft RoboticsStudio (1.0)\samples\RoboticsTutorials\Tutorial1\obj\Debug\RoboticsTutorial1.Y2006.M06.dll'-- 'Error reading key file 'c:\mri\main\share\version\35MSSharedLib1024.snk'&lt;strong&gt;&lt;/strong&gt;&lt;br/&gt; &lt;strong&gt;&lt;/strong&gt; &lt;/div&gt; &lt;strong&gt;Resolution:&lt;/strong&gt;&lt;br/&gt; &lt;div style="MARGIN-LEFT:40px"&gt; The default key file used for signing all the assemblies is calledmrisamples.snk and can be found at&lt;br/&gt; D:\Microsoft Robotics Studio(1.0)\samples.&lt;br/&gt; 1) Check your project properties, right click the project name inSolution Explorer and choose Properties. Choose the Signing tab and makesure the Sign the assembly checkbox is checked and the URL is&lt;br/&gt; D:\Microsoft Robotics Studio (1.0)\samples\ mrisamples.snk or..\..\mrisamples.snk&lt;br/&gt; 2) Go to the Build Events tab ad check the Post-build event command linehas the following parameter: /keyfile:"D:\Microsoft Robotics Studio(1.0)\samples\mrisamples.snk"&lt;br/&gt; 3) In the Debug tab, "Start external program", change it to be:D:\Microsoft Robotics Studio (1.0)\bin\DssHost.exe, and so the "Working Directory" to be: D:\Microsoft Robotics Studio (1.0)\&lt;a href="http://www.eggheadcafe.com/software/aspnet/28709361/re-build-problem-for-sim.aspx"&gt;Reference&lt;/a&gt; &lt;/div&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;p&gt; &lt;br/&gt; &lt;/p&gt; &lt;p&gt; 3DEER is moving around.. my family is just saying "Hey haytham, call your Baby" &lt;/p&gt; &lt;p&gt; &lt;br/&gt; &lt;/p&gt; &lt;p&gt; That's all for now.. &lt;/p&gt; &lt;p&gt; &lt;br/&gt; &lt;/p&gt; &lt;p&gt; C u next Post.. &lt;/p&gt; &lt;p&gt; &lt;br/&gt; &lt;/p&gt; &lt;p&gt; Alsalam alikom wa ra7mat allah wa barakatoh &lt;/p&gt; &lt;p&gt; Yours,Haytham Alaa &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-116275421850304576?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/116275421850304576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=116275421850304576' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/116275421850304576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/116275421850304576'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2006/11/3deer-is-moving.html' title='3Deer is moving'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-116093719654052323</id><published>2006-10-15T20:24:00.000+02:00</published><updated>2006-10-15T20:33:16.540+02:00</updated><title type='text'>Ultrasonic Sensor tests</title><content type='html'>Alsalam alikom wa ra7mat allah wa barakatoh&lt;br /&gt;&lt;br /&gt;Today, I've been searching around a little bit to know more about ultrasonic sensors...&lt;br /&gt;&lt;br /&gt;I found some interesting tests (done by students for their project too) &lt;a href="http://www.tik.ee.ethz.ch/tik/education/lectures/PPS/mindstorms/sa_nxt/index.php?page=tests_us"&gt;here&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;My doubts :&lt;br /&gt;1- The sensor's accuracy :&lt;br /&gt;     if two sufaces with small difference in Z Axis, the robot may c them the same which may lead to bad model..&lt;br /&gt;2- The StepperMotor steps:&lt;br /&gt;    if the stepper motor uses large steps, then we will not be able to get accurate results&lt;br /&gt;&lt;br /&gt;Conclusion after today's search :&lt;br /&gt;1- The best results taken from the sensor is when the measured distance was over 50cm &amp; below 200cm which is a good sign, the worest case error is +/- 3cm.. which is not bad...&lt;br /&gt;2- No new about motors yet....&lt;br /&gt;&lt;br /&gt;Alsalam alikom wa ra7mat allah wa barakatoh&lt;br /&gt;&lt;br /&gt;Yours,&lt;br /&gt;Haytham Alaa&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-116093719654052323?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/116093719654052323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=116093719654052323' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/116093719654052323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/116093719654052323'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2006/10/ultrasonic-sensor-tests.html' title='Ultrasonic Sensor tests'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-36076726.post-116093649654228867</id><published>2006-10-15T20:14:00.000+02:00</published><updated>2006-12-11T00:40:32.513+02:00</updated><title type='text'>3DEER... What is this ?</title><content type='html'>Alsalam alikom wa ra7mat allah wa barakatoh,&lt;br /&gt;&lt;br /&gt;This is our first post here, so let's tell you what is this all about...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;1st 3DEER means &lt;/em&gt;:&lt;/strong&gt; 3D Environment Explorer using Lego NXT Robots..&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;2nd that long name means &lt;/em&gt;:&lt;/strong&gt; You put your young robot inside an unknown room or building, and it'll explore there for some time then comes out with a 3d fine model for the room.. cool, huh ?&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;3rd Who are we ?&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;We are a group of 5 Computer Science Students, Faculty of Computer and Information Sciences, Ain Shams University, Cairo, Egypt.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Our names :&lt;/strong&gt;&lt;br /&gt;1- Mustafa Mahmoud Mohie&lt;br /&gt;2- Mohammed Mustafa Moussa&lt;br /&gt;3- Mohammed Abdul-Aziz&lt;br /&gt;4- Kamal El-Dien Mohammed&lt;br /&gt;5- Haytham Alaa Al-Dien Hussein&lt;br /&gt;&lt;br /&gt;That's all for the first post,&lt;br /&gt;Stay in touch....&lt;br /&gt;&lt;br /&gt;Alsalam alikom wa ra7mat allah wa barkatoh&lt;br /&gt;&lt;br /&gt;Yours,&lt;br /&gt;Haytham Alaa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/36076726-116093649654228867?l=3deer.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3deer.blogspot.com/feeds/116093649654228867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=36076726&amp;postID=116093649654228867' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/116093649654228867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/36076726/posts/default/116093649654228867'/><link rel='alternate' type='text/html' href='http://3deer.blogspot.com/2006/10/3deer-what-is-this.html' title='3DEER... What is this ?'/><author><name>Haytham Alaa</name><uri>http://www.blogger.com/profile/02835085630794860777</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_3OJg5ONgUSg/Se9NxxJEIcI/AAAAAAAABPk/X2MiyibLuw0/S220/Candle.jpg'/></author><thr:total>2</thr:total></entry></feed>
