Project Details

Client

Absolute

Country

Romania

Industry

IoT, Robotics

Type

ROS, Android

Technologies

Android, Java, Bluetooth

Hours Of Development

200

Team Size

2

Indoor Navigation Autonomous Robot

The Story

The project is an internal R&D for a potential commercial indoor navigation robot. We used the Lego Mindstorms NXT 2 running ROS to build the prototype. Due the fact that the CPU doesn’t have enough power to run the triangulation algorithms and to properly process the Bluetooth signals, this part of the software is on an Android phone. The phone is using the signals from at least 3 BLE beacons to triangulate the distances and position. It is similar to GPS or any other radio signal triangulation/trilateration algorithms.

After the position is found, based on a predefined reference point and using the compass, it determines the heading and the angles for navigation. The robot features a Bluetooth service which is called by the Android phone and controls the stepper engine.

The position, angles and heading are monitored at predefined intervals and course corrections are sent to the robot fallowing the adjustments. Besides the compass, the heading is determined by using dead reckoning methods, which are taking into consideration the stepper engine rotations and the rest of the mechanical parts to compute the distances and angles.

The next steps include adding proximity sensors and/or mapping sensors using ultra sounds and/or lasers. A video camera will be used for pattern and form recognition. Our projections lead up to a time period of 6 months during which we scale up the project for commercial grade testing.

Functionalities:

1. Radio signal processing and triangulation/trilateration. Determine distances measurements based on the radio signal strength.
2. Determine the position of the gadget based on the information processed.
3. Determine the direction and the rotation angle to the target point.
4. Command and control the two stepper engines to rotate and move the robot to the target point.
5. Measurement of the distance the robot moved using dead reckoning method.