top of page

Indoor positioning and navigation

Create Your First Project

Start adding your projects to your portfolio. Click on "Manage Projects" to get started

rosgraph.png
01 ROS

Our lodge employs a variety of sensors like Lidar, UWB, odometry, and IMU, leading to complex message exchanges within the system. To manage this, I selected ROS, a universal robot operating system. The ROS platform allows us to assign different independent nodes to handle specific tasks and facilitates easy message exchange between nodes.

02 Trilateration

Trilateration is a mathematical method used to calculate the lodge's position relative to the origin anchor. We calculate the distance between the tags and three other anchors. As there will be some error, the calculated point will not exactly match the real position. To minimize this error, we employ the least squares method to refine the calculated result, thus generating more reliable data.

Trilatation.png
03 Move Base
a) Positioning:

Determining the current and target positions requires at least three coordinate frames: Map, Odom, and Base link. These provide the simplest positioning and are further refined by two additional frames, UWB and IMU, which reduce error.

Map:

This is a fixed coordinate frame that serves as the world coordinate frame.

Odom:

This represents the difference and drift between the position calculated by odometry and the position calculated by the sensor.

Base link:

This represents the position relative to the robot's center.

Sensor:

This provides the sensor-calculated position, which is more accurate than the one calculated by odometry. 

These coordinate frames are linked to form a transformation tree, enabling coordinate transformations within the system.

b)  Map

To ensure our lodge moves safely through the shopping mall without colliding with obstacles or customers, I have inflated the boundaries in the map. Different costs are assigned to the inflation area based on distance from the boundaries. This informs the robot's path planning, encouraging it to choose the safest and most optimal path.

c) Global Path Planning
The move base package includes two global planning algorithms: A* and Dijkstra. While Dijkstra guarantees the shortest path, it takes slightly more time. A* is more efficient but not as stable as Dijkstra. Therefore, we have chosen to use Dijkstra as our global planner.
path.png
bottom of page