Sonar Experiment No. 1
I was somewhat familiar with sonar. Maybe you've also heard about sonar being used to find fish; or perhaps how bats use echolocation to navigate and find food. However, I didn't have a really good grasp on its practical applications in robotics. This experiment was just my way of getting more familiar with sonar sensors.
For this experiment, I took a look at the beam pattern for a set of ultrasonic sensors I have. That is, I got a chance to see what Brake 'Bot would "see" at various distances in front of it. I also wanted to get an idea of what it wasn't able to detect. Feel free to try this out for yourself!
For this experiment, I took a look at the beam pattern for a set of ultrasonic sensors I have. That is, I got a chance to see what Brake 'Bot would "see" at various distances in front of it. I also wanted to get an idea of what it wasn't able to detect. Feel free to try this out for yourself!
Materials
Here's what I used to conduct this experiment
[ ] Brake 'Bot - equipped with two front-facing ultrasonic sensors
[ ] sturdy table (48" x 36")
[ ] duct tape
[ ] painter's tape
[ ] permanent marker
[ ] hi-polymer eraser - used as my target reflector; I kept the plastic/paper label on
[ ] Arduino sketch to report ultrasonic measurements (pingRange.ino)
[ ] Brake 'Bot - equipped with two front-facing ultrasonic sensors
[ ] sturdy table (48" x 36")
[ ] duct tape
[ ] painter's tape
[ ] permanent marker
[ ] hi-polymer eraser - used as my target reflector; I kept the plastic/paper label on
[ ] Arduino sketch to report ultrasonic measurements (pingRange.ino)
pingRange.ino | |
File Size: | 3 kb |
File Type: | ino |
Procedure
1. First, I placed Brake 'Bot at the center of the far end of the table. Then I marked off its footprint (in case I had to move Brake 'Bot temporarily).
2 . Next, I loaded the pingRange.ino sketch onto the Arduino. This sketch was modified to use only one of the front sensors at a time and report the range measurements in centimeters.
3. Then, I placed the reflector at various positions in front of the sensor and recorded the reported range values. To do this, I recorded the measurements onto strips of tape with the permanent marker. For the right sensor measurements I used duct tape (gray). And for the left sensor measurements I used painter's tape (blue). The measurements were reported through the Arduino's serial monitor. (If you're doing this experiment, it's helpful to have the Magnifier application open so you can read the measurements off your screen from a distance.)
When I finished the right sensor measurements, the beam pattern looked like this.
2 . Next, I loaded the pingRange.ino sketch onto the Arduino. This sketch was modified to use only one of the front sensors at a time and report the range measurements in centimeters.
3. Then, I placed the reflector at various positions in front of the sensor and recorded the reported range values. To do this, I recorded the measurements onto strips of tape with the permanent marker. For the right sensor measurements I used duct tape (gray). And for the left sensor measurements I used painter's tape (blue). The measurements were reported through the Arduino's serial monitor. (If you're doing this experiment, it's helpful to have the Magnifier application open so you can read the measurements off your screen from a distance.)
When I finished the right sensor measurements, the beam pattern looked like this.
Results
When I finished taking measurements for both sensors, I had the following beam pattern.
As you can see, the beam patterns overlap, though not completely.
Observations
The sensors responded to slight changes in how the reflector (eraser) was angled towards it. Although while still facing the sensor, the reflector wouldn't be detected if it was angled too far in one direction. This was particularly true when the reflector was further away from the center line. I didn't expect the sensor to be so sensitive to slight movements of the reflector.
The sensors would only detect the eraser while it was standing on its long side, but not while it was standing on its short side.
Given the sensors' height above the table (21 cm) and the height of the reflector (2.5 cm), there was a blind spot up to 35 centimeters away from the front of Brake 'Bot. Larger objects were detected, of course!
The sensors would only detect the eraser while it was standing on its long side, but not while it was standing on its short side.
Given the sensors' height above the table (21 cm) and the height of the reflector (2.5 cm), there was a blind spot up to 35 centimeters away from the front of Brake 'Bot. Larger objects were detected, of course!
As expected, the beam patterns for the two sensors overlapped. Given their close separation (8.5 cm) and the fact that they were facing the same direction, the overlap was considerable.
At the end of the day, this experiment helped me get an idea of Brake 'Bot's perspective of things in front of it. The range output from the sensors tell me that: at least one object was detected within the sensor's viewable area, and the closest object is X centimeters away. It wouldn't report the range of my arm as I nudged the eraser to angle it a little to the left or the right. It only reported the closest object. This may sound a bit obvious, but I didn't think about it until I actually did this experiment! Who knows what else we can learn from further experiments.
Future Work
Collect ultrasonic range data while Brake 'Bot is moving
Characterize a more expensive sonar sensor ($30 versus $110; How do they compare? Is it worth the expense?)
Characterize a more expensive sonar sensor ($30 versus $110; How do they compare? Is it worth the expense?)
Last Update: 11 December 2013