Ultrasonic Sensors
- The speed of sound is 340 m/s or 29 microseconds per centimeter.
- The ping travels out and back, so to find the distance of the object we take half of the distance travelled, so it returns microseconds 29 / 2.
- The sensors shown the distance directly between the object to the sensor, depending on the high of the object we can calculate if we go over it or if we avoid it.
Technical Specs
- Power consumption: measured 5mA standby per sensor (plus 3mA for a 4-channel 2-input OR-gate IC)
Constraints
- Precision 30mm
- Minimum surface detected in an ideal environment 0.6 cm2, (the object next to the tape)
- Not accurate if used in hot environments
- Sensible to interference in presence of loud noises
- Minimum sensing distance 3cm
- Not accurate with low density targets
- Maximum sensing distance 4m
- Effectual angle 15° from the center, 30° the total of the cone.
- The limit of the density that we can measure is 100kg/m3 for reference this is a table of the density of the snow and/ice
Recommended Location on the Rover
It will be better to put 4 ultrasonic sensors in each corner, but with 3 will be more than enough, the back and the front of the rover will follow the locations that are pointed on the draw, with those angles of inclination and trying to be close and keeping the same high from the floor that I estimated in 24cm with the actual body of Octanis.
Following this location we will cover in each corner 120 or 90 degrees and have 4 or 3 points of view, with this we will be able to use trigonometry (Pythagoras formulas) to make estimations of how far and how big the objects are. An approximation of this is shown in this draw.
Algorithm
After trying with a handmade model where I set up the sensors in the positions that I indicate above, and comparing with the theoretic calculations I suggest the following steps to avoid meaningful obstacles.
My handmade model is as accurate as I could made it, in the final version of Octanis the sensors will be inside of a 3D printed plastic container that will fix their positions in a more accurate way to the theoretic design.
Even though the results I got were really close to the ones that I calculated based on the data sheet that describe the HC-SR04 sensor.
Octanis with his GPS will select a point where to go, it will also received from the ultrasonic sensors, 4 or 3 points in each corner, a point coming for each 30 degrees that is what each individual sensor covers.
We will need to set up a reference frame taking like center Octanis itself, for symmetry I will choose as XY plane and center Octanis on the origin, the Z axis will have its 0 on the upper part of Octanis, I'll use this to make the calculations and know where and how big the objects are, this reference can be changed in order to make it easy to implement.
We will locate the sensors in this plane, we know how the cone of sound spreads away from the rover theoretically
An object of 0.7 cm of height located on the floor can be detected at minimum 70 cm away from the rover.
An object of 3.5 cm of height located on the floor can be detected at minimum 34 cm away from the rover and the sensor on the front part of the rover will show that the object is at 43cm away from itself, wit the 43cm data, we can calculate in our plane the distance of this object to the rover the 43cm will be our Hypotenuse and we know the angle with the sensor and the vertical plane is 75°, so we know the real distance to the rover is 34cm.
To know if the object is big enough to go over it (3-3.5 cm at maximum) we wont be able to detected when the distance between the rover and the object is smaller than 34cm.
We apply the same principle to know the size of any object.
What happens if we face an object that we must avoid? Like we have 6 points of view in the front, when moving forward we will mainly paid attention (keep memorize) the data of the two front sensors, when we detect based in the description above an obstacle that we can't go over, we will start paying attention to the other 4 sensors on the sides (for example, we keep in mind the last 50 numbers of the 2 front sensors and just the 20 last numbers of the 4 side sensors), we will see in which side the obstacles are farther from us and we will choose that side to go around to the obstacle that it's in front of us, after this is done we will set up the main path that we had before going around the obstacle.
Holes on the Ground
No practical way of detecting holes with the HC-SR04 sensors.
Irregular surface
This is one example of the surface on the Greenwich Antarctic island,
To simulate the terrain I choose an irregular surface made of stones,
The preliminary results are clear, in this kind of surface the sensors don't know how select a reference ground, they show every single rock that is in front of them as an obstacle, in this type of surface the sensors don't provide a practical use to avoid real obstacles.
Cold Environment
I kept one sensor at -17°C during 24h and after tried to used it, the measures that I got when the sensor was thawing was as accurate as the ones that I got with another sensor that hasn't been frozen.
Interface with MSPEXP432
With the down being the location of the OR gate on the Ultrasound board, the connections are mapped as such :
Source (Ultrasound board) | Destination () |
---|---|
OR sleep | Ultrasonic_OR_sleep |
lower enable | Ultrasonic_enable_0 |
upper enable | Ultrasonic_enable_1 |
lower trigger | Ultrasonic_OUT0 |
upper trigger | Ultrasonic_OUT1 |