Potential Field API Referenceļ
This page documents ManipulaPy.potential_field, the module for potential field path planning with attractive and repulsive potential computations, gradient calculations, and collision checking for robotic manipulator motion planning.
Tip
For conceptual explanations, see Potential Field Module User Guide.
ā
PotentialField Classļ
ā
Potential Field Computationsļ
Attractive Potentialļ
Repulsive Potentialļ
Gradient Computationļ
ā
CollisionChecker Classļ
ā
Collision Detection Methodsļ
Hull Generationļ
Geometric Transformationļ
Collision Detectionļ
ā
Data Structures and Internal Representationļ
Convex Hull Storageļ
Internal convex_hulls dictionary structure:
convex_hulls = {
"link_name_1": ConvexHull(vertices_1),
"link_name_2": ConvexHull(vertices_2),
# ... additional links
}
ConvexHull Propertiesļ
Each ConvexHull object contains:
points: Original vertex coordinates
vertices: Indices of vertices forming the hull
simplices: Triangular faces of the hull
equations: Hyperplane equations for faces
Forward Kinematics Integrationļ
Integration with urchin URDF processing:
Input: Joint configuration (thetalist)
Method: robot.link_fk(cfg=thetalist)
Output: Dictionary {link_name: 4Ć4_transform_matrix}
ā
Computational Complexity Analysisļ
Potential Field Methodsļ
Method |
Complexity |
Dominant Operations |
|---|---|---|
|
O(n) |
Vector subtraction + norm |
|
O(kĆn) |
k obstacles Ć distance computation |
|
O(kĆn) |
k obstacles Ć gradient calculation |
Collision Detection Methodsļ
Method |
Complexity |
Dominant Operations |
|---|---|---|
|
O(mĆv³) |
m links Ć ConvexHull(v vertices) |
|
O(v) |
v vertices Ć matrix multiplication |
|
O(L²Ćv) |
L² link pairs à hull intersection |
Where: - n: Configuration space dimensions - k: Number of obstacles - m: Number of robot links - v: Average vertices per mesh - L: Number of links with visual geometry
ā
Numerical Implementation Detailsļ
Potential Field Scalingļ
Applied scaling factors in implementation:
Repulsive potential: 10Ć multiplier on final result
Repulsive gradient: 5Ć multiplier on gradient magnitude
Distance threshold: influence_distance parameter cutoff
Distance Computationsļ
All distance calculations use numpy.linalg.norm():
Method: Euclidean L2 norm
Input: Configuration space vectors
Precision: Double precision floating point
Matrix Operationsļ
Convex hull transformations use optimized NumPy operations:
Rotation: 3Ć3 matrix multiplication with broadcasted points
Translation: Vector addition with reshaped translation vector
Memory layout: Contiguous arrays for efficient computation
Intersection Detectionļ
Hull intersection testing relies on scipy.spatial.ConvexHull:
Algorithm: Built-in intersection testing methods
Precision: Computational geometry tolerance handling
Robustness: Handles degenerate cases automatically
ā
Error Handling and Edge Casesļ
URDF Processing Errorsļ
Missing files: URDF.load() exception handling
Invalid geometry: hasattr() validation for mesh.vertices
Empty meshes: Automatic skipping of links without valid geometry
Convex Hull Failuresļ
Coplanar points: scipy.spatial.ConvexHull internal handling
Insufficient vertices: Minimum 4 points required for 3D hulls
Numerical precision: Tolerance-based geometric computations
Potential Field Singularitiesļ
Zero distance: Protected by influence_distance > 0 requirement
Infinite gradients: Prevented by distance threshold checking
Numerical overflow: Managed through finite gain parameters
ā
Memory Managementļ
Convex Hull Storageļ
Memory allocation for collision checking:
Hull objects: Persistent storage throughout object lifetime
Transformed hulls: Temporary allocation during collision checks
Point arrays: Copy operations for transformation safety
Potential Field Computationsļ
Memory usage characteristics:
Gradient arrays: Allocated once, reused for multiple obstacles
Distance scalars: Temporary variables with automatic cleanup
Configuration vectors: Input parameter references (no copying)
ā
See Alsoļ
Path Planning API Reference ā Trajectory planning integration with potential fields
Kinematics API Reference ā Forward kinematics for collision checking
Utils Module ā Mathematical utilities for vector operations
URDF Processor API Reference ā URDF loading and processing capabilities
External Dependenciesļ
urchin ā URDF processing library
scipy.spatial ā Convex hull computations
NumPy ā Numerical array operations