Localization

Localization

The location subsystem will consist of a collection of DecaWave modules and an inertial measurement unit (IMU). We will have four DecaWave DWM1001 modules at fixed anchor points as well as one module per mobile rover. At the anchor points, no interface is required, and we will provide power via micro USB. On each rover, we will read location information from the DecaWave with a Raspberry Pi via an SPI interface. The location calculations are handled onboard the DWM1001. We will execute information reads using Python and the SPIDEV library. We will interface with the IMU via I2C to get information needed to determine rover orientation. Ultimately, this will be used for path planning within ROS.

DecaWave:

Decawave 1001 Module gives the position of each rover relative to 4 known and fixed anchors. According to decawave, the x-y position is usually accurate to within 20cm of the actual location. So, we should be able to meet our requirement of determining an object’s position to within 2 meters of its actual location. The decawave module uses time of flight sensing to determine the position. This meets the constraint being feasible in a lunar environment, not relying on GPS. The DecaWave will receive power of 5V from the Raspberry Pi. The DecaWave will receive a clock signal from the Pi for SPI.

IMU:

An IMU, such as the Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board - LSM9DS1, will provide estimation for the angle of the rover. The IMU will include the 3 standard IMU sensors: gyroscope, accelerometer, and magnetometer. However, a magnetometer would not work on the moon, since there is no magnetic field on the moon. Therefore, we will first attempt to obtain accurate angle estimation through the gyroscope and accelerometer, only. A board like the Adafruit 9-DOF Accel/Mag/Gyro+Temp Breakout Board provides the output of all three sensors separately. This way, we are able to choose between using all 3 sensors or only 2 sensors. The IMU will receive power from the Raspberry Pi. The IMU will get its clock signal from the Pi for I2C.