<?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-6141805809969548873</id><updated>2011-12-29T11:06:00.062-05:00</updated><category term='teleoperated'/><category term='robot'/><category term='embedded'/><category term='microcontroller'/><category term='xbee'/><category term='rover'/><category term='quadrupedal'/><category term='autonomous'/><category term='wireless'/><title type='text'>Aaqil Khan</title><subtitle type='html'>Welcome to my Mechatronic and Robotic Projects Webpage. Please feel free to leave comments or ask questions. I usually get back promptly. If I regrettably don't then please feel free to email me.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aaqilkhan.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6141805809969548873/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aaqilkhan.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Aaqil Khan</name><uri>http://www.blogger.com/profile/10133668180819255442</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_fTdr602nenQ/SBktT4H1cDI/AAAAAAAAAVU/BahebfT63b0/S220/bigdog.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6141805809969548873.post-5343640275790416463</id><published>2008-04-28T23:21:00.024-04:00</published><updated>2008-04-30T21:52:30.923-04:00</updated><title type='text'>Quadrupedal Hybrid Wheeled-Legged Robot</title><content type='html'>&lt;span style="font-family:arial;"&gt;[ &lt;a href="http://aaqilkhan.blogspot.com/2007/09/home-page.html"&gt;Home&lt;/a&gt; ]              [ &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;a href="http://aaqilkhan.blogspot.com/2007/08/autonomous-robotic-rover.html"&gt;Teleoperated Robot&lt;/a&gt;&lt;/span&gt; ]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;strong&gt;Project Snow: Introduction&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong style="font-family: trebuchet ms;"&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-family:trebuchet ms;" &gt;Project Snow &lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;is my next robotics venture. After being fascinated by number of hybrid wheeled-legged robots I decided to design my own Qudrupedal Hybrid robot.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;My &lt;a href="http://aaqilkhan.blogspot.com/2007/08/autonomous-robotic-rover.html"&gt;previous robot&lt;/a&gt; was based on a &lt;/span&gt;&lt;em style="font-family: trebuchet ms;"&gt;PIC16F877A&lt;/em&gt;&lt;span style="font-family:trebuchet ms;"&gt; microcontroller and had limited environmental sensing capabilities. Its autonomous capabilities relied on an infrared ranging sensor to detect objects and avoid collisions. Its arm was retrofitted with an end-effector to pick up objects. However, the arm was manually teleoperated by a graphical user interface on a remote computer by means of wireless communications using peer-to-peer RF transceivers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;After being inspired by famous robots like the &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://www.bostondynamics.com/content/sec.php?section=BigDog"&gt;Big Dog&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; from Boston Dynamics and &lt;/span&gt;&lt;a style="font-family: trebuchet ms;" href="http://gizmodo.com/gadgets/halluc-ii/"&gt;Halluc-II&lt;/a&gt;&lt;span style="font-family:trebuchet ms;"&gt; - a Japanese robot, which boast advanced quadrupedal and octopedal locomotion respectively, I&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;started the design work on my next robot during the winter of 2007-2008, when we had record snowfall in Toronto, ON - hence the name for this project.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/SBehr4H1b_I/AAAAAAAAAU0/FZJyChk_ka0/s1600-h/bigdog.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5194798470366851058" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/SBehr4H1b_I/AAAAAAAAAU0/FZJyChk_ka0/s320/bigdog.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/SBeiC4H1cBI/AAAAAAAAAVE/IdEfdYsqHpM/s1600-h/H2A.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5194798865503842322" style="margin: 0px auto 10px; display: block; width: 269px; cursor: pointer; height: 228px; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/SBeiC4H1cBI/AAAAAAAAAVE/IdEfdYsqHpM/s320/H2A.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;Highlights of Snow&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;strong&gt;System Overview&lt;/strong&gt;&lt;br /&gt;This robot will have an on board ASUS motherboard powered by an Intel Pentium processor at its core, running a custom software written in Visual Basic and will use image processing capabilities of &lt;a href="http://www.roborealm.com/"&gt;Roborealm&lt;/a&gt; embedded in the VB application. The OS will be a stripped down version of Windows XP which will happily run on 1GB RAM.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sensors&lt;/strong&gt;&lt;br /&gt;The robot will be endowed with fixed infrared sensors on its front, rear and sides to sense its environment. These sensors will act more like ears, reacting in real-time to intruders and obstacles in its path. These sensors will allow the robot to "listen" to its surroundings and the software will compensate to avoid collisions.&lt;br /&gt;&lt;br /&gt;For its eyes, a 3 megapixel camera will give it vision capabilities and with RoboRealm, the robot can be programmed to react to objects of different shapes and colors, as well as aid in navigation. The camera will be mounted on a turret to allow for 180deg pan angle and 90deg tilt angle.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Mechanics&lt;/strong&gt;&lt;br /&gt;The design of this robot will be quadrupedal hybrid type. 'Quadrupedal' implies that the robot will “walk” on four legs like any quadruped animal. 'Hybrid' means that it will have leg and wheel combination. While the legs will give it the Maneuverability to climb low profile objects or traverse uneven terrain, the wheels will give it the agility to react to sudden threats. While this may not exactly allow it to dodge bullets, it can, for example, move back quickly to protect itself from a slamming door or a charging dog and turn with within zero-radius.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6141805809969548873-5343640275790416463?l=aaqilkhan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaqilkhan.blogspot.com/feeds/5343640275790416463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6141805809969548873&amp;postID=5343640275790416463' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6141805809969548873/posts/default/5343640275790416463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6141805809969548873/posts/default/5343640275790416463'/><link rel='alternate' type='text/html' href='http://aaqilkhan.blogspot.com/2008/04/project-snow-quadrupedal-hybrid-wheeled.html' title='Quadrupedal Hybrid Wheeled-Legged Robot'/><author><name>Aaqil Khan</name><uri>http://www.blogger.com/profile/10133668180819255442</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_fTdr602nenQ/SBktT4H1cDI/AAAAAAAAAVU/BahebfT63b0/S220/bigdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_fTdr602nenQ/SBehr4H1b_I/AAAAAAAAAU0/FZJyChk_ka0/s72-c/bigdog.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6141805809969548873.post-5254542905911930947</id><published>2007-09-29T11:50:00.001-04:00</published><updated>2008-04-29T12:59:37.946-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='quadrupedal'/><category scheme='http://www.blogger.com/atom/ns#' term='microcontroller'/><category scheme='http://www.blogger.com/atom/ns#' term='embedded'/><category scheme='http://www.blogger.com/atom/ns#' term='teleoperated'/><category scheme='http://www.blogger.com/atom/ns#' term='rover'/><category scheme='http://www.blogger.com/atom/ns#' term='autonomous'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='xbee'/><title type='text'>Robotics Projects webpage:</title><content type='html'>&lt;span style="FONT-WEIGHT: bold"&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;Click photo to go to a Robotics Project&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;font-size:130%;"&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;&lt;span style="font-size:100%;"&gt;Original Teleoperated Robot With 5 DOF Arm&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://aaqilkhan.blogspot.com/2007/08/autonomous-robotic-rover.html"&gt;&lt;img id="BLOGGER_PHOTO_ID_5113800276082992706" style="FLOAT: left; MARGIN: 0px 10px 10px 0px" alt="" src="http://3.bp.blogspot.com/_fTdr602nenQ/RvfeQcw4pkI/AAAAAAAAAHw/mFp33c6XXTI/s320/Aug6_2007.jpg" border="0" /&gt;&lt;/a&gt;&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;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;span style="COLOR: rgb(0,0,153)"&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&lt;span style="font-size:130%;"&gt;Current Robotics Project: &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;&lt;span style="font-size:130%;"&gt;Snow&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;(work in progress)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://aaqilkhan.blogspot.com/2008/04/project-snow-quadrupedal-hybrid-wheeled.html"&gt;&lt;img id="BLOGGER_PHOTO_ID_5194498488376061890" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; CURSOR: pointer" alt="" src="http://4.bp.blogspot.com/_fTdr602nenQ/SBaQ2oH1b8I/AAAAAAAAAUc/qPLN3DbrYUQ/s320/Snow.JPG" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6141805809969548873-5254542905911930947?l=aaqilkhan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaqilkhan.blogspot.com/feeds/5254542905911930947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6141805809969548873&amp;postID=5254542905911930947' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6141805809969548873/posts/default/5254542905911930947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6141805809969548873/posts/default/5254542905911930947'/><link rel='alternate' type='text/html' href='http://aaqilkhan.blogspot.com/2007/09/home-page.html' title='Robotics Projects webpage:'/><author><name>Aaqil Khan</name><uri>http://www.blogger.com/profile/10133668180819255442</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_fTdr602nenQ/SBktT4H1cDI/AAAAAAAAAVU/BahebfT63b0/S220/bigdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fTdr602nenQ/RvfeQcw4pkI/AAAAAAAAAHw/mFp33c6XXTI/s72-c/Aug6_2007.jpg' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6141805809969548873.post-4030056884109204588</id><published>2007-08-29T10:30:00.001-04:00</published><updated>2008-04-29T18:14:48.045-04:00</updated><title type='text'>Differential Drive Robotic Rover</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/RyPzFz4yCbI/AAAAAAAAAJg/1oPxy-y9K0I/s1600-h/Aug5_2007+015.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_fTdr602nenQ/RyPzFz4yCbI/AAAAAAAAAJg/1oPxy-y9K0I/s400/Aug5_2007+015.jpg" alt="" id="BLOGGER_PHOTO_ID_5126208082031020466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;INTRODUCTION&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The aim of this project was to design and build a &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;font-size:100%;"  &gt;4WD differential drive rover &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;with &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:trebuchet ms;font-size:100%;"  &gt;integrated robotic arm &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;capable of &lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;autonomous &lt;/span&gt;operation with &lt;span style="font-weight: bold;"&gt;obstacle avoidance &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;object detection&lt;/span&gt;. Also designed to have a manual override &lt;span style="font-style: italic; color: rgb(51, 51, 255);"&gt;teleoperated &lt;/span&gt;mode for wireless remote manipulation using a graphical user interface on a PC for both rover as well as arm control.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;3D DESIGN &amp;amp; MODELING &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Below are the 3D CAD models of various components of the robot designed in Solidworks.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/Rtmy_Yt991I/AAAAAAAAAFI/k3BiNISLB3g/s1600-h/cover_btm_4.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105308454637926226" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/Rtmy_Yt991I/AAAAAAAAAFI/k3BiNISLB3g/s400/cover_btm_4.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/Rtmy_ot992I/AAAAAAAAAFQ/zC9gJt7Zs_s/s1600-h/cover_top.jpg"&gt; &lt;img id="BLOGGER_PHOTO_ID_5105308458932893538" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://3.bp.blogspot.com/_fTdr602nenQ/Rtmy_ot992I/AAAAAAAAAFQ/zC9gJt7Zs_s/s400/cover_top.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/Rtmy_ot993I/AAAAAAAAAFY/Xwtmb8EZfUo/s1600-h/sharp+-+gp2d12+-+bracket.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105308458932893554" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://3.bp.blogspot.com/_fTdr602nenQ/Rtmy_ot993I/AAAAAAAAAFY/Xwtmb8EZfUo/s400/sharp+-+gp2d12+-+bracket.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fTdr602nenQ/Rtmy_4t994I/AAAAAAAAAFg/PARtL5rcl0Q/s1600-h/parts+list.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105308463227860866" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://4.bp.blogspot.com/_fTdr602nenQ/Rtmy_4t994I/AAAAAAAAAFg/PARtL5rcl0Q/s400/parts+list.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fTdr602nenQ/Rtm2EIt996I/AAAAAAAAAFw/Dv8x_-9uXxM/s1600-h/robotarm_part1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105311834777188258" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://1.bp.blogspot.com/_fTdr602nenQ/Rtm2EIt996I/AAAAAAAAAFw/Dv8x_-9uXxM/s400/robotarm_part1.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/Rtm2EYt997I/AAAAAAAAAF4/tYSqOY-l7Os/s1600-h/robotarm_part2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105311839072155570" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/Rtm2EYt997I/AAAAAAAAAF4/tYSqOY-l7Os/s400/robotarm_part2.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/Rtm2EYt999I/AAAAAAAAAGI/Sxaj6BuREQQ/s1600-h/asm+-+robot+assy.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105311839072155602" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/Rtm2EYt999I/AAAAAAAAAGI/Sxaj6BuREQQ/s400/asm+-+robot+assy.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fTdr602nenQ/Rtmy_4t995I/AAAAAAAAAFo/qLu_ETCzY30/s1600-h/rover1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105308463227860882" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://4.bp.blogspot.com/_fTdr602nenQ/Rtmy_4t995I/AAAAAAAAAFo/qLu_ETCzY30/s400/rover1.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;SOFTWARE &amp;amp; HARDWARE OVERVIEW&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The graphical user interface for remote operation was created in &lt;span style="font-style: italic;"&gt;Visual Basic 6.&lt;/span&gt; Initial concept for software control of rover and arm required knowledge of &lt;span style="font-weight: bold;"&gt;inverse kinematics&lt;/span&gt; for precision real-time control of the arm. Below are sketches of initial conceptualization.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/RtoLGIt99-I/AAAAAAAAAGQ/5t-v3VQOCyc/s1600-h/scan1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105405327625287650" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/RtoLGIt99-I/AAAAAAAAAGQ/5t-v3VQOCyc/s400/scan1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/RtoLHIt99_I/AAAAAAAAAGY/cntS7GdgPh4/s1600-h/scan2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105405344805156850" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/RtoLHIt99_I/AAAAAAAAAGY/cntS7GdgPh4/s400/scan2.jpg" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/RtoLHIt9-AI/AAAAAAAAAGg/S483jdA8hjc/s1600-h/scan3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105405344805156866" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/RtoLHIt9-AI/AAAAAAAAAGg/S483jdA8hjc/s400/scan3.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/RyQBNj4yChI/AAAAAAAAAKQ/rj30uCMRt_Q/s1600-h/Pololu+servo+controller.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_fTdr602nenQ/RyQBNj4yChI/AAAAAAAAAKQ/rj30uCMRt_Q/s200/Pololu+servo+controller.jpg" alt="" id="BLOGGER_PHOTO_ID_5126223608337795602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;These concepts were incorporated into software and tested on servos that would later be part of the robotic arm. I decided on the &lt;a href="http://www.pololu.com/products/pololu/0207/"&gt;Pololu Micro Serial Servo Controller&lt;/a&gt; that accepts serial data using &lt;span style="font-style: italic;"&gt;RS232 protocol &lt;/span&gt;and can drive up to 8 servos. After some mathematical calculation involving arm lengths, weights and torque requirements, I selected Hitec &lt;a href="http://www.hitecrcd.com/servos/show?name=HS-805BB"&gt;HS-805BB&lt;/a&gt; and &lt;a href="http://www.hitecrcd.com/servos/show?name=HS-755HB"&gt;HS-755HB&lt;/a&gt; servos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;Images below shows servo data calibration and inverse kinematic equations that I derived:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/RyP--z4yCcI/AAAAAAAAAJo/iQ49vlYDTrY/s1600-h/Calib_Pololu.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_fTdr602nenQ/RyP--z4yCcI/AAAAAAAAAJo/iQ49vlYDTrY/s400/Calib_Pololu.jpg" alt="" id="BLOGGER_PHOTO_ID_5126221155911469506" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/RtoPCYt9-DI/AAAAAAAAAG4/kert7UjuhL0/s1600-h/asm+-+robot+assy1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5105409661247289394" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://3.bp.blogspot.com/_fTdr602nenQ/RtoPCYt9-DI/AAAAAAAAAG4/kert7UjuhL0/s400/asm+-+robot+assy1.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/R0pA_b2t1KI/AAAAAAAAANc/oigjpVlHqYs/s1600-h/calib_gp2d12.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_fTdr602nenQ/R0pA_b2t1KI/AAAAAAAAANc/oigjpVlHqYs/s400/calib_gp2d12.jpg" alt="" id="BLOGGER_PHOTO_ID_5136989783522661538" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/RyQACT4yCdI/AAAAAAAAAJw/1nHfM-T5eNU/s1600-h/Tamiya+-+Gearhead+motor+and+wheel2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 256px; height: 224px;" src="http://2.bp.blogspot.com/_fTdr602nenQ/RyQACT4yCdI/AAAAAAAAAJw/1nHfM-T5eNU/s400/Tamiya+-+Gearhead+motor+and+wheel2.jpg" alt="" id="BLOGGER_PHOTO_ID_5126222315552639442" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The rover component of the robot consisted of four 6V DC gearhead motors from &lt;a href="http://www.tamiyausa.com/product/item.php?product-id=72102"&gt;Tamiya&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;a href="http://www.tamiyausa.com/product/item.php?product-id=72102"&gt; &lt;/a&gt;powered by a &lt;a href="http://dimensionengineering.com/Sabertooth2X10.htm"&gt;Sabertooth 2x10&lt;/a&gt; motor controller from Dimension Engineering. The Sabertooth was set to operate in serial mode, where speed and direction data are sent as serial data packets. It provides a continuous current of 10A per channel which is sufficient to drive two motors per channel. Thus, the two left motors and two right motors are paralleled and driven by each channel of the motor controller.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;Below is the Sabertooth 2x10 motor controller.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/RyQAbT4yCeI/AAAAAAAAAJ4/tH-uCnmxQWc/s1600-h/Sabertooth2X10big.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_fTdr602nenQ/RyQAbT4yCeI/AAAAAAAAAJ4/tH-uCnmxQWc/s400/Sabertooth2X10big.jpg" alt="" id="BLOGGER_PHOTO_ID_5126222745049369058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Both the motor controller and servo controller slave devices are driven by a master &lt;a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;amp;nodeId=1335&amp;amp;dDocName=en010242"&gt;PIC16F877A &lt;/a&gt;microcontroller. In manual control override mode, the PIC communicates with the software on a PC via a bidirectional wireless UART link and receives instructions that drives both controllers as well as other devices like LEDs &amp;amp; sensors as well as transmits data from sensors back to the software.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;ROBOT TELE-CONTROL APPLICATION&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fTdr602nenQ/RyTCXz4yClI/AAAAAAAAAKw/LxR0P1SnXIw/s1600-h/Robot+GUI_Oct07.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_fTdr602nenQ/RyTCXz4yClI/AAAAAAAAAKw/LxR0P1SnXIw/s400/Robot+GUI_Oct07.jpg" alt="" id="BLOGGER_PHOTO_ID_5126435990175615570" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/R0pA-b2t1JI/AAAAAAAAANU/sJTZf-1rfR4/s1600-h/Robot+GUI_Oct07.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_fTdr602nenQ/R0pA-b2t1JI/AAAAAAAAANU/sJTZf-1rfR4/s400/Robot+GUI_Oct07.jpg" alt="" id="BLOGGER_PHOTO_ID_5136989766342792338" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;I &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;developed the &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;software in VB6 with the purpose of implementing real-time control of the rover and arm without the need for writing down scripts for pre-planning the robot's movements. The graphical user interface is divided into 4 quadrants. The top-left quadrant shows the graphical position of the robotic arm. The arm itself is made of 4 segments including wrist &amp;amp; gripper. The user can drag the end-effector to any location (Xp, Yp) in cartesian space with base of the arm at (0,0) and the software calculates the angles of A, B and C using inverse kinematic equations. The user can also move each arm segment independently without moving the other segments. Alternatively, each angle can be changed by directly editing the angle in the appropriate text box and using forward kinematics, the end-effector position (X, Y) is computed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/RyTGoj4yCmI/AAAAAAAAAK4/6_qjPdg37E8/s1600-h/VB_Code.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_fTdr602nenQ/RyTGoj4yCmI/AAAAAAAAAK4/6_qjPdg37E8/s400/VB_Code.JPG" alt="" id="BLOGGER_PHOTO_ID_5126440675984935522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The top right quadrant has controls for the rover. Basic controls for the differential drive are forwards, backwards, turn right, turn left and rotate either side. The navigation frame in the sidebar shows the speed of the rover as a percentage of full speed. Other controls on the rover like, wrist rotation, gripper controls and various LED lights can also be controlled from here.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The bottom left quadrant displays options for the infrared sensor. &lt;span style="font-weight: bold;"&gt;Scan180 &lt;/span&gt;option sweeps the sensor 180 degrees and displays the result graphically like a radar. The &lt;span style="font-weight: bold;"&gt;Follow Target&lt;/span&gt; option locks the rover onto a moving object in front of it and follows it while maintaining its distance.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fTdr602nenQ/RyQE-z4yCkI/AAAAAAAAAKo/EOzrBcJEzu4/s1600-h/Logitech+Game+Controller.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_fTdr602nenQ/RyQE-z4yCkI/AAAAAAAAAKo/EOzrBcJEzu4/s200/Logitech+Game+Controller.jpg" alt="" id="BLOGGER_PHOTO_ID_5126227752981236290" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The robot can also be operated by a Playstation 2 style USB game controller using DirectX routines. One advantage of this game controller is that it has lot of digital switching options for activating various controls on the robot. The two analog sticks worked very well for the robotic arm as well rover manipulation. When the keyboard control option is enabled, all of the features mentioned above for the rover and the arm can be controlled directly from the keyboard by various keyboard shortcuts.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Other software features include, graphical enhancements like grid (Polar and Cartesian), arm segment loci, inside and outside borders for the arm, ability to create macros, scripts, real-time &lt;span style="font-weight: bold;"&gt;battery power &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;wireless signal strength &lt;/span&gt;&lt;span&gt;indicators&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;When the wireless link is enabled from the application, any changes in rover or arm positions are transmitted to the robot in real-time. If sensor is enabled, the software requests the robot to send current sensor data. The progress bars for the signal strength and battery voltage indicator are also periodically updated.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;ELECTRONICS AND CIRCUIT DESIGN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Figuure below shows the block diagram of the electronics involved:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/Ru8u-ub-FyI/AAAAAAAAAHY/j6Wb0fKIG88/s1600-h/Robot+Block+Diagram+-+Sep17.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5111355757240915746" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/Ru8u-ub-FyI/AAAAAAAAAHY/j6Wb0fKIG88/s400/Robot+Block+Diagram+-+Sep17.bmp" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fTdr602nenQ/RyT5gz4yCpI/AAAAAAAAALM/6bSRxJTVlZQ/s1600-h/PIC16F877+IC.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_fTdr602nenQ/RyT5gz4yCpI/AAAAAAAAALM/6bSRxJTVlZQ/s200/PIC16F877+IC.jpg" alt="" id="BLOGGER_PHOTO_ID_5126496617933965970" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;At the heart of the electronics is the PIC16F877A microcontroller, which has sufficient GPIO pins and all the peripherals to interface with the rest of the electronics. The system derives its power from a 6V SLA battery which conveniently sits in the rover's belly, which was designed to accomodate the SLA. The electronics is divided into 5V and 3.3V electronic sub systems, each is powered by its own regulator and filtering circuits. The Sabertooth 2x10 motor controller provides the regulated 5V at 100mA, which powers the 5V system and I built an onboard 3.3v regulator for the 3.3V systems, which includes the wireless &lt;a href="http://www.maxstream.net/products/xbee/xbee-pro-oem-rf-module-zigbee.php"&gt;XBee Pro&lt;/a&gt; module from Maxstream.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/Ry1i1D4yCqI/AAAAAAAAALY/0LlaIlkAsMk/s1600-h/XBee+Modules.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_fTdr602nenQ/Ry1i1D4yCqI/AAAAAAAAALY/0LlaIlkAsMk/s200/XBee+Modules.jpg" alt="" id="BLOGGER_PHOTO_ID_5128864214360918690" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The PIC communicates serially with the XBee Pro module using the PICs onboard hardware USART. Since, the XBee Pro and PICmicro constitute a mixed 5V/3.3V system, they cannot be interfaced directly with each other. Instead, an intermediate transceiver or buffer is required for interfacing in such situations to prevent damaging the XBee due to overvoltage. The circuit below was designed to do just this.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fTdr602nenQ/Ru82fub-FzI/AAAAAAAAAHg/o-QB5HdBueU/s1600-h/Xbee+Interface.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5111364020757993266" style="margin: 0px auto 10px; display: block; cursor: pointer; text-align: center;" alt="" src="http://2.bp.blogspot.com/_fTdr602nenQ/Ru82fub-FzI/AAAAAAAAAHg/o-QB5HdBueU/s400/Xbee+Interface.jpg" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fTdr602nenQ/R0pB372t1MI/AAAAAAAAANs/rhUY3-dsABI/s1600-h/Aug5_2007+006.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_fTdr602nenQ/R0pB372t1MI/AAAAAAAAANs/rhUY3-dsABI/s400/Aug5_2007+006.jpg" alt="" id="BLOGGER_PHOTO_ID_5136990754185270466" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/Rx08S8w4poI/AAAAAAAAAIo/IvYZw5QvGUc/s1600-h/Aug5_2007+004.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_fTdr602nenQ/Rx08S8w4poI/AAAAAAAAAIo/IvYZw5QvGUc/s400/Aug5_2007+004.jpg" alt="" id="BLOGGER_PHOTO_ID_5124318247263970946" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fTdr602nenQ/Rx08f8w4ppI/AAAAAAAAAIw/SdHWK0Zve3Q/s1600-h/Aug16_2007+008.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_fTdr602nenQ/Rx08f8w4ppI/AAAAAAAAAIw/SdHWK0Zve3Q/s400/Aug16_2007+008.jpg" alt="" id="BLOGGER_PHOTO_ID_5124318470602270354" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fTdr602nenQ/R0pBkr2t1LI/AAAAAAAAANk/5z0SRnDXOQU/s1600-h/Aug5_2007+010.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_fTdr602nenQ/R0pBkr2t1LI/AAAAAAAAANk/5z0SRnDXOQU/s400/Aug5_2007+010.jpg" alt="" id="BLOGGER_PHOTO_ID_5136990423472788658" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fTdr602nenQ/RyPweT4yCYI/AAAAAAAAAJI/8hiYS6tXrQ0/s1600-h/Crystal+Oscillator.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_fTdr602nenQ/RyPweT4yCYI/AAAAAAAAAJI/8hiYS6tXrQ0/s200/Crystal+Oscillator.jpg" alt="" id="BLOGGER_PHOTO_ID_5126205204402932098" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Data transfer between the microcontroller and servo and motor controllers is also done serially. However, since the hardware USART pins were already used for PIC-XBee communication,        I had to implement UART (Universal Asynchronous Receiver Transmitter) function in software. Since, implementing software UART requires very precise timing functions to accomplish a predetermined baud rate, the selection of the system clock becomes very crucial. Using a 4.00MHz or 8.00MHz crystal, for example, will result in timing which is not divisible by standard baud rates:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-size:100%;" &gt;&lt;span style="font-family:trebuchet ms;"&gt;4.000 MHz / 9600baud = 416.6666... (not an integer)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;For serial communications, selecting a crystal frequency which is exactly divisible by standard baud rates, is very important. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Using the wrong crystal results in loss of data which results in unsatisfactory performance in teleoperated mode. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;In my case, I decided to use &lt;span style="font-weight: bold;"&gt;18.432 MHz&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-size:100%;" &gt;&lt;span style="font-family:trebuchet ms;"&gt;18.432 MHz / 9600 = 1920 (an integer)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fTdr602nenQ/RyTLtD4yCoI/AAAAAAAAALE/ehqwylvDSOI/s1600-h/FTDI+-+FT232RL.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_fTdr602nenQ/RyTLtD4yCoI/AAAAAAAAALE/ehqwylvDSOI/s200/FTDI+-+FT232RL.jpg" alt="" id="BLOGGER_PHOTO_ID_5126446250852485762" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;The microcontroller communicates with the radio transceiver (XBee) using the PIC's built in hardware USART peripheral at  38.4 kbps. The other XBee at the user's end is programmed to operate at the &lt;span style="font-family:trebuchet ms;"&gt;same&lt;/span&gt; baud rate and communicates &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;with the computer &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;through a serial port. For computers without a RS232 serial port, as in my case, a USB port can be made to emulate one using the &lt;a href="http://www.ftdichip.com/Products/FT232R.htm"&gt;FT232R - USB UART IC&lt;/a&gt; from FTDI Ltd. To make interfacing th&lt;span style="font-family:trebuchet ms;"&gt;e XBee through the USB port on the computer, &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=718"&gt;Sparkfun Electronics&lt;/a&gt; has a &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;breakout board for FT232R IC, with internal oscillator, EEPROM as well as 3.3V &lt;/span&gt;regulator on board.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:trebuchet ms;font-size:130%;"  &gt;&lt;span style="font-weight: bold;"&gt;PROTOTYPE DEMONSTRATION&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Slideshow of ongoing autonomous rover prototype with integrated robotic arm.&lt;/span&gt;&lt;embed src="http://www.youtube.com/v/Buk58yXyyvI" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;span style="font-family:trebuchet ms;"&gt; My robotic arm being controlled manually from a graphical user interface (GUI) application that I developed in VB6.&lt;/span&gt;&lt;embed src="http://www.youtube.com/v/d9fc5kzCai0" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;span style="font-family:trebuchet ms;"&gt; Earlier 3D model and simulation of the robot arm (Concept stage).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;embed src="http://www.youtube.com/v/OYughELI-hk" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6141805809969548873-4030056884109204588?l=aaqilkhan.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aaqilkhan.blogspot.com/feeds/4030056884109204588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6141805809969548873&amp;postID=4030056884109204588' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6141805809969548873/posts/default/4030056884109204588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6141805809969548873/posts/default/4030056884109204588'/><link rel='alternate' type='text/html' href='http://aaqilkhan.blogspot.com/2007/08/autonomous-robotic-rover.html' title='Differential Drive Robotic Rover'/><author><name>Aaqil Khan</name><uri>http://www.blogger.com/profile/10133668180819255442</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://bp3.blogger.com/_fTdr602nenQ/SBktT4H1cDI/AAAAAAAAAVU/BahebfT63b0/S220/bigdog.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fTdr602nenQ/RyPzFz4yCbI/AAAAAAAAAJg/1oPxy-y9K0I/s72-c/Aug5_2007+015.jpg' height='72' width='72'/><thr:total>12</thr:total></entry></feed>
