This repository demonstrates path planning using the Artificial Potential Field (APF) method. Enhancements have been made to incorporate velocity considerations into the planning algorithm, improving dynamic response and real-time applicability for robotic systems.
- Artificial Potential Field (APF) Method: Employs attractive and repulsive potential fields to guide robots around obstacles toward a goal.
- Velocity Consideration: Integrates velocity dynamics, enhancing responsiveness and realism in path planning.
- Dynamic Path Planning: Adapts to changes in the environment and robot state.
apft_01.cpptoapft_06.cpp: Versions of the APF algorithm, each incorporating iterative improvements in handling velocity and dynamic constraints.apftc_real.py: Python script for real-time control, integrating velocity-based tracking.
The path tracking controller uses dynamic modeling in lateral and longitudinal directions, represented by:
Where:
-
$\beta$ : Side slip angle -
$\omega$ : Yaw rate -
$k_1, k_2$ : Side slip stiffness of front and rear wheels -
$m$ : Vehicle mass -
$a, b$ : Distances from the center of mass to front and rear axles -
$v_x, v_y$ : Longitudinal and lateral velocities -
$\delta_f$ : Front wheel steering angle -
$I_z$ : Rotational inertia around the z-axis
- Compile and run individual C++ implementations for specific APF configurations:
g++ apft_01.cpp -o apft_01 ./apft_01
- Execute Python-based real-time control:
python3 apftc_real.py
- Full Integration of Trajectory Tracking: Incorporating complete longitudinal and lateral controllers.
- Dynamic Obstacle Avoidance: Real-time detection and navigation.
- PID-Based Control Tuning: Optimization for smooth path following.
Contributions to improve algorithmic performance or add features are welcome. Fork the repository and submit a pull request with a detailed explanation of your enhancements.
This project is available under the MIT License.
For detailed questions or feedback, reach out via GitHub Issues.