The navigational system is a combination of hardware electronics and software that will be able to determine the distance position and angle of orientation of a snow groomer (Groomba) in real-time. This system will additionally establish target positions and target orientations that the Groomba will have to match to navigate inside a 10-foot by 10-foot area in a pre-determined zig-zag pattern. This system will compare the real-time position and orientation to the target position and orientation, determine the offset from the target, and send this difference to the driving system so the driving system can adjust the speed of the motors accordingly.
The navigational system is divided into 3 sub-systems: positioning sub-system, orientation sub-system, and mapping sub-system. The positioning sub-system uses distance references from beacons at fixed locations to triangulate the real-time (x,y) position in feet of the Groomba in relation to the 10-foot by 10-foot area. The orientation sub-system uses magnetic field strength sensors (Magnetometer) to calculate the real-time orientation of the Groomba in degrees, and the real-time orientation of the 10-foot by 10-foot area in degrees both in relation to the Earth’s magnetic north pole (Real North). The mapping sub-system creates a set of target positions as references for the Groomba to determine how far it must travel in a given axis (x or y), and a set of target orientations as references for the Groomba to determine how much it needs to turn in a given direction (left or right). Each target point has an x-axis component (distance) in the range of 0 to 10 feet, a y-axis component (distance) in the range of 0 to 10 feet, and an orientation component (angle) in the range of 0 to 360 degrees.
To calculate the position of the Groomba in real-time, we need a distance reference. In other words, to know how far the Groomba has traveled inside the 10-foot by 10-foot area, we need a reference point (or multiple) somewhere in the border of the area. My solution defines the use of 3 fixed-position beacons, which will send signals to a scanner (receiver) inside the Groomba. The distance from each beacon can be calculated from the received signal, and the distance from all 3 beacons can be used to calculate the distance traveled by the Groomba in the horizontal and vertical directions. The diagram in the left shows the fixed-position beacons Beacon 1, Beacon 2, Beacon 3 each beacon in a corner of the 10-foot by 10-foot area. The Scanner and Groomba are in a random position inside the area, to demonstrate the calculations of the (x,y) coordinates of the Groomba.
To calculate the (x,y) coordinate of the Groomba, we need the reference distance from 2 beacons at a time. For the x-axis, we use the pair of reference distances from Beacon 1 and Beacon 2. For the y-axis, we use the reference distances from Beacon 2 and Beacon 3. The pair of reference distances, along with the known distance between beacons (10 foot) creates a triangle. The height of this triangle is the distance the Groomba has traveled in that axis.
Previously we determined the two sides of the triangle on the left, a and c, by estimating the distance between Beacon and Scanner. We stablished that the third side, the base b, is a known parameter and it's the distance between each Beacon. Given a triangle with three different sides, Heron's formula can be used to calculate the area, then solve the area formula for the height of said triangle.
There are two important concepts to understand about this method. Those are the importance of the base of the triangle being the distance between each Beacon, and the importance of calculating the height of said triangle.
The base of the triangle being the distance to each beacon is important because, since the Beacons are placed on each corner of the 10-foot by 10-foot grooming area, the line between one Beacon and another is a straight line hence the height of this triangle will be a line perpendicular to the base of the triangle. In other words, the height of the triangle is a line that represents the distance from the base to the point where the sides a and c intersect, which is the point where the Groomba sits, making the height the distance from the Groomba to the base.
By using three beacons, we can create two distinct triangles. One triangle's height is a line that represents the distance in the x-axis and the other triangle's height represents the distance in the y-axis. Hence, we produced a (x,y) coordinate for the Groomba.
To the left you can see the respective calculations to generate the (x,y) coordinates of the positional sub-system for the values given in the first diagram above (Positioning).
I explained how the reference distances are used to calculate the (x,y) coordinates of the Groomba in real-time, but what technology is used to send and receive the signals used to estimate this reference distances?
Bluetooth Low Energy (BLE)
Originally, I had designed my system to work with the BLE technology. With this technology the beacons and the scanner would send and receive packets of data via Bluetooth communication. The strength of the signal, measured in decibels (dB) and ranging from 0dB (strongest) to -120dB (weakest), is used to estimate the distance between beacon and scanner. The equation to relate the Radio Signal Strength Indicator (RSSI) to a reference distance was generated from an experiment. Placing the beacons at fixed positions, moving the scanner around, measuring the distance and RSSI, and plotting a line of best fit from the data points measured. After finalizing my design however, I determined through experimentation, that the response of the system was not stable. The RSSI value fluctuated by large amounts despite the distance between scanner and beacon remaining the same. This system could not be implemented to autonomously navigate the Groomba reliably. As far as the reasons for the instability, further experimentation and resources would be required to determine the key factors that affect the behavior of the BLE signals, and due to the limited resources and timeframe allowed for this project a new solution had to be implemented instead.
Ultrawide Band (UWB)
There are many similarities with the UWB approach and the BLE approach, more specifically all the math still applies as well as the relationship between the fixed-beacons and the scanner. The main difference is the hardware and the method used to estimate the reference distances. The reference distance from the fixed position beacons is estimated using Time of Flight (ToF), not RSSI. ToF is a measure of the time delay between sending and receiving a message between the beacon and scanner. This time delay, multiplied by the speed of light, gives the distance between the beacon and scanner. (see diagram below)