[Originally posted on the Dallas Personal Robotics Group Listserver] http://list.dprg.org/archive/1998-September/007024.html ------------------------------------------------------- Howdy DPRG! Matt Minnis writes: > David, > > Could you explain your stereo sonar ranging system and how you are using it? > > I would be very interested to hear how you are doing this. > > Thanks, > > Matt Minnis The Polaroid sonar units seem pretty popular among robot builders, and there appear to be lots of different configurations and methods for using them. I bought a couple a few years ago and have tried several different arrangements, they are always "under construction" in some sense. The method I'm now using is really quite simple and takes advantage of the fact that the sonar beams are quite narrow, on the order of about 15 degrees in the center (robust) part of the dispersion. The two Polaroid transducers are mounted in the center of the front bumper about 4 inches from the floor and about .75 inches left and right of the center line, like this: +--------------------------------------+ | | | ___ ___ | | / \ / \ | | | | | | | | \ / \ / | | --- --- | | | | | | | +--------------------------------------+ They are angled away from each other about 7.5 degrees, like this: (as viewed from the top of the bumper) +-------------<\-------/>--------------+ | +--------------\>----- PERCENT) can_detect = TRUE; else can_detect = FALSE; wall ----------------------------------- . . CAN . . . \ . . \ . bot \ \ In the case in which the robot is parallel with and very close to the wall, it is possible to get a false can detect, because the nearer sonar will read a very close distance and the other will see far down the wall. When this happens the robot will rotate toward the "can," that is, toward the wall, the far sonar will get a closer reading, the difference between the two will decrease, and the false detection will go away. Their is one pathological case in the DPRG contest, which is a "T" shaped course and therefore has two outside corners. If the robot approaches these at just the proper angle, it can fall within the can detection range and attempt to acquire (and grab!) the corner. The robot uses its four IR detectors to do navigation and collision avoidance when the sonar are in can-seeking mode, and this behavior is normally suppressed when a target is active. The solution arrived at for the outside corner false can detection is to activate the forward IR during the seeking process if the sonar begins to return a lot of common detects, which happens for corners but not for cans. I got this to work quite robustly while running around my work room and my office, but it failed in the actual contest, at this point I'm not sure why. After locating, grasping, and returning to the starting area with 4 of the 6 cans, the robot zeroed in on the far outside corner and attempted to grasp it. After a couple of tries it touched the wall with its bumper and the collision recovery mechanism was activated, the robot maneuvered away from the corner, and the other two cans were found and retrieved without incident. I would add at this point that the sonars, by the nature of the reflected sound energy that they utilize, get a lot of false readings. These seem to be caused by multi-path reflections off walls and floors, and can be easily demonstrated by slowly rotating the robot and watching the LCD readings. In practice, this has not been a problem, and I have for the most part just ignored it. Because the navigation algorithm depends on many detections to steer the robot toward a target, and the false readings are usually random and singular, they can be thought of as a background "noise" that is swamped by the S/N ratio of the "real" signals, the walls and cans. hope this is useful! cheers, dpa