Path planning on 3D surfaces is a fundamental problem in robotics, computer graphics, and geospatial analysis, among other fields. Whether it’s navigating a drone along the contours of a hilly landscape or optimizing the movement of a robot over a complex structure, finding efficient, collision-free paths on curved surfaces is essential across many industries.
A particularly interesting and challenging case is when the goal is not just to find a path, but to generate a complete coverage of the surface with a path of a fixed width. This scenario arises in tasks like:
Despite its importance, planning such paths on 3D surfaces is far from trivial. Unlike flat surfaces, curved geometries introduce several challenges:
Furthermore, there is no one-size-fits-all algorithm. The “best” path depends heavily on the application, the surface geometry, and even physical constraints of the device following the path.
The specific challenge we addressed in a recent project was to generate a continuous path that uniformly covers a selected body part—such as a leg, back, etc.—with a given path width as a user-defined parameter. This functionality is useful in a range of applications, from medical scanning to cosmetic or therapeutic treatments, where consistent surface coverage is crucial.
The input to our system is a point cloud representing the 3D surface, and the output is a path (ordered set of points with additonal metadata) that traverses this surface while adhering to the specified width. The first challenge was selecting the optimal starting point, which we solved by developing a custom algorithm. Before the actual path generation, we also converted the point cloud into a polygon mesh. This conversion is essential for making surface calculations and traversal feasible, as it allows us to work with a structured representation of the 3D geometry.
Path generation is then performed by utilizing surface normals to maintain alignment with the local geometry, and by employing quaternion-based computations to ensure smooth orientation changes along the 3D surface. This mathematical approach ensures robust handling of curvature without introducing abrupt changes in direction or orientation.
Additionally, our system supports partial surface coverage. For instance, when only the back or one side of a limb needs to be covered, we apply a custom filtering algorithm specifically designed for concave geometries. This ensures that the resulting path remains well-behaved and efficient, avoiding unnecessary coverage or erratic path fragments.
Above is a short video demonstrating our solution in action.
Ready to start your next project with us? That's great! Send us an email or connect with us on social media.