J. Blanch, S. Tosunoglu, ASME Southeastern Regi<strong>on</strong> XI Technical Journal, Volume 2, Number 1, April 2003; also presented atthe ASME Southeastern Regi<strong>on</strong> XI Technical C<strong>on</strong>ference, Miami, Florida, April 4-5, 2003.getTicks( ) <str<strong>on</strong>g>and</str<strong>on</strong>g> TicksInASec<strong>on</strong>d( ) functi<strong>on</strong>s. Withthese two an approximate waiting functi<strong>on</strong> can bewritten:void WaitMS (int milisecs){UInt32 zero, ticks, time;zero = TimGetTicks( );ticks = zero +1;//c<strong>on</strong>vert time from ms to tickstime = (milisecs / 1000.0) *SysTicksPerSec<strong>on</strong>d( );while(ticks - zero read IRs⇒ move to Positi<strong>on</strong> 2⇒ waitMS(130) => read IRs⇒ move to Positi<strong>on</strong> 3⇒ waitMS(90) => read IRs]⇒ collisi<strong>on</strong> avoidance [⇒ change moti<strong>on</strong> (if necessary)]⇒ increment counter.This means that the HANDCOR needs at least0.015 + 0.079 + 0.122 + 0.082 = 298ms to gather thereadings for the obstacle avoidance subroutine.Because there are two forward looking <str<strong>on</strong>g>sensor</str<strong>on</strong>g>s <str<strong>on</strong>g>and</str<strong>on</strong>g>each has three positi<strong>on</strong>s, if an object appearsimmediately after a reading is taken, it will take <strong>on</strong>efull cycle before that object is detected. A full cycleis 298 ms plus the time it takes the palm to run anyinternal functi<strong>on</strong>s (this varies, but is generally lessthan 50 ms). Each sweep pattern covers just over 45degrees, <str<strong>on</strong>g>and</str<strong>on</strong>g> they complement each other to providereas<strong>on</strong>able detecti<strong>on</strong> of obstacles ahead of the robot.When the obstacles are closer, the overlapping fieldsprovide even better detecti<strong>on</strong>. Given that theeffective range of the <str<strong>on</strong>g>sensor</str<strong>on</strong>g> is just over 40 cm(reliability starts failing after about 50 cm), the <str<strong>on</strong>g>sensor</str<strong>on</strong>g>refresh rate limits the forward speed of the robot to40 cm in 300 ms, or it would be possible to hit anobject before seeing it. The driving <str<strong>on</strong>g>servo</str<strong>on</strong>g>s’maximum speed is under 0.89 revoluti<strong>on</strong>s persec<strong>on</strong>d; with a wheel diameter of 7.6cm (3in), themaximum velocity the robot can achieve is under 24cm in 1 sec<strong>on</strong>d, which is well within safe range.And advantage to having both <str<strong>on</strong>g>sensor</str<strong>on</strong>g>s mounted <strong>on</strong><str<strong>on</strong>g>servo</str<strong>on</strong>g>s is that they can be directed, <str<strong>on</strong>g>and</str<strong>on</strong>g> they can becombined for greater accuracy. By usingtrig<strong>on</strong>ometry [12], two readings can be taken fromthe same obstacle <str<strong>on</strong>g>and</str<strong>on</strong>g> then compared to determine itsdistance with greater accuracy. If a <str<strong>on</strong>g>sensor</str<strong>on</strong>g> detects anobstacle at a distance d R when its orientati<strong>on</strong> is θ R (figure 9) it is very simple to c<strong>on</strong>vert it tocoordinates relative to the robot < 2 >, <str<strong>on</strong>g>and</str<strong>on</strong>g> then tocoordinates relative to the other <str<strong>on</strong>g>sensor</str<strong>on</strong>g> < 3 >.⎡dRX ⎤ ⎡d⋅cos(θR)⎤dR= ⎢ ⎥ = ⎢ ⎥⎣dRY⎦ ⎣d⋅sin(θR)⎦< 1 >⎡DX⎤ ⎡URX ⎤ ⎡dRX⎤D = ⎢ ⎥ = ⎢ ⎥ + ⎢ ⎥⎣DY⎦ ⎣URY ⎦ ⎣dRY⎦< 2 >⎡dLX⎤ ⎡DX⎤ ⎡ULX ⎤dL= ⎢ ⎥ = ⎢ ⎥ − ⎢ ⎥⎣dLY⎦ ⎣DY⎦ ⎣ULY ⎦< 3 >Finally, θ L is⎛ d ⎞LYθL= arctan⎜⎟< 4 >⎝ dLY⎠From the platform, U R = U L = 4 cm <str<strong>on</strong>g>and</str<strong>on</strong>g> the anglesφ R = 35 o φ L = -35 o . Back substituting into < 4 >⎡d⎢⎣dLXLY⎤ ⎡U⎥ = ⎢⎦ ⎣URXRY+ d+ dRXRY−U−ULXLY⎛ 4 ⋅ sin(35) + d ⋅ sin( θ⎞R)− 4 ⋅ sin( −35)θL= arctan⎜⎟⎝ 4 ⋅ cos(35) + d ⋅ cos( θR)− 4 ⋅ cos( −35)⎠Assuming that there is no other obstacle betweenthe sec<strong>on</strong>d <str<strong>on</strong>g>sensor</str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> the original obstacle, θ L can beused to get a sec<strong>on</strong>d reading, d L from the obstacle,which can then be transformed to a sec<strong>on</strong>d distancereading D. The redundant distance readings shouldresult in a more accurate reading when compilingmaps.⎤⎥⎦
J. Blanch, S. Tosunoglu, ASME Southeastern Regi<strong>on</strong> XI Technical Journal, Volume 2, Number 1, April 2003; also presented atthe ASME Southeastern Regi<strong>on</strong> XI Technical C<strong>on</strong>ference, Miami, Florida, April 4-5, 2003.YU Lφ Ly Lφ Ry RU Rθ Lφx Lθ Rx RFigure 9. Obstacle detecti<strong>on</strong>.CONCLUSIONSSystem integrati<strong>on</strong> is indeed a difficult <str<strong>on</strong>g>and</str<strong>on</strong>g> timec<strong>on</strong>suming task, especially when comp<strong>on</strong>ents haveloose tolerances that can <strong>on</strong>ly be overcome bycombining hardware <str<strong>on</strong>g>and</str<strong>on</strong>g> software modificati<strong>on</strong>s.Radio-<str<strong>on</strong>g>c<strong>on</strong>trol</str<strong>on</strong>g>led Servos are a low cost alternativeto steppers <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>servo</str<strong>on</strong>g>s, but they do not allow for fine<str<strong>on</strong>g>c<strong>on</strong>trol</str<strong>on</strong>g> of positi<strong>on</strong> or moti<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> therefore should notbe used in places where precisi<strong>on</strong> is critical. RC.<str<strong>on</strong>g>servo</str<strong>on</strong>g>s worked great to orient the <str<strong>on</strong>g>sensor</str<strong>on</strong>g>s, albeit notvery quick for aut<strong>on</strong>omous running, they made itvery simple to face the <str<strong>on</strong>g>sensor</str<strong>on</strong>g>s in any desireddirecti<strong>on</strong>, <strong>on</strong> the other h<str<strong>on</strong>g>and</str<strong>on</strong>g>. using RC <str<strong>on</strong>g>servo</str<strong>on</strong>g>s to drivethe rover, resulted in a difficult to <str<strong>on</strong>g>c<strong>on</strong>trol</str<strong>on</strong>g> platformInfrared rangers worked c<strong>on</strong>sistently <str<strong>on</strong>g>and</str<strong>on</strong>g> coulddeliver data extremely fast, but they had to be timedso that the <str<strong>on</strong>g>servo</str<strong>on</strong>g> would reach the desired positi<strong>on</strong>before readings were taken.One source of errors that could not be overcomewas the electrical noise. This noise was caused bythe dynamic electric loads generated by the <str<strong>on</strong>g>servo</str<strong>on</strong>g>s,<str<strong>on</strong>g>and</str<strong>on</strong>g> inability of the platform to filter them out. Itshould also be noted that during testing, the time ittook for the WaitMS( ) functi<strong>on</strong> to end varied widely(this is not a reliably c<strong>on</strong>sistant delay method).Xd LDd Rtransacti<strong>on</strong>s <strong>on</strong> robotics <str<strong>on</strong>g>and</str<strong>on</strong>g> automati<strong>on</strong>, vol. 18,no. 3, June 2002.[3] Kelly A., “General soluti<strong>on</strong> for linearizedsystematic error propagati<strong>on</strong> in vehicleodometry,” in Proc. Int. C<strong>on</strong>f. Intelligent Robot<str<strong>on</strong>g>and</str<strong>on</strong>g> Systems (IROS01), Maui, HI, Oct. 29–Nov.3 2001, pp. 1938–1945.[4] Blanch J., <str<strong>on</strong>g>and</str<strong>on</strong>g> Tosunoglu S., “H<str<strong>on</strong>g>and</str<strong>on</strong>g>-HeldComputers as Mobile Platform C<strong>on</strong>trollers,”Florida C<strong>on</strong>ference <strong>on</strong> Recent Advances inRobotics, Florida State University, Tallahassee,Florida, May 10-11, 2001.[5] Blanch J., <str<strong>on</strong>g>and</str<strong>on</strong>g> Tosunoglu S., “Enhanced SmallMobile Platforms C<strong>on</strong>trolled by H<str<strong>on</strong>g>and</str<strong>on</strong>g>-HeldComputers,” IASTED Internati<strong>on</strong>al C<strong>on</strong>ference<strong>on</strong> Robotics <str<strong>on</strong>g>and</str<strong>on</strong>g> Applicati<strong>on</strong> (RA 2001), Tampa,Florida, November 19-22, 2001.[6] Blanch J., <str<strong>on</strong>g>and</str<strong>on</strong>g> Tosunoglu S., “C<strong>on</strong>trol of MobilePlatforms via H<str<strong>on</strong>g>and</str<strong>on</strong>g>-Held PDA’s,” the 15thFlorida C<strong>on</strong>ference <strong>on</strong> Recent Advances inRobotics, Florida Internati<strong>on</strong>al University,Miami, Florida, May 23-24, 2002.[7] Varveropoulos V., “Robot Localizati<strong>on</strong> <str<strong>on</strong>g>and</str<strong>on</strong>g> MapC<strong>on</strong>structi<strong>on</strong> Using S<strong>on</strong>ar Data.” The RossumProject, available at http://rossum.sourceforge.net/ accessed <strong>on</strong> December 2002.[8] “Futaba Servo Motors,” accessed fromwww.futaba-rc.com/<str<strong>on</strong>g>servo</str<strong>on</strong>g>s/futm0029.html,accessed <strong>on</strong> October 2002.[9] P<strong>on</strong>tech SV203 Servo motor <str<strong>on</strong>g>c<strong>on</strong>trol</str<strong>on</strong>g>ler boarduser manual. Available <strong>on</strong>line at www.p<strong>on</strong>tech.com. Accessed <strong>on</strong> December 2002.[10] “Acr<strong>on</strong>ame Articles Demystifying the Sharp IRRangers,” accessed from www.acr<strong>on</strong>ame.com/robotics/info/articles/sharp/sharp.html. Accessed<strong>on</strong> October 2002.[11] Technical info for the PPRK http://www-2.cs.cmu.edu/~pprk/ Accessed <strong>on</strong> January 2003.[12] Le<strong>on</strong>, S. J. “Linear Algebra with Applicati<strong>on</strong>s.”Upper Saddle River, New Jersey. Prentice Hall,Inc. 1998.[13] Gerald C. F., <str<strong>on</strong>g>and</str<strong>on</strong>g> Wheatley P. P., “AppliedNumerical Analysis.” Reading, Massachusetts.Addis<strong>on</strong> Wesley L<strong>on</strong>gman, Inc. 1999.REFERENCES[1] Borenstein J. <str<strong>on</strong>g>and</str<strong>on</strong>g> Feng L., “Measurement <str<strong>on</strong>g>and</str<strong>on</strong>g>correcti<strong>on</strong> of systematic odometry errors in<strong>mobile</strong> robots,” IEEE Trans. Robot. Automat.,vol. 12, pp. 869–880, Dec. 1996.[2] Martinelli A., “The Odometry Error of a MobileRobot With a Synchr<strong>on</strong>ous Drive System” IEEE