PathParam — Path-Parametric Planning & Control
For the implementation details, please check the paper, and/or the website.
Follow these steps:
-
Create a python environment with python 3.10. For example, with conda:
conda create --name pathparam python=3.10 conda activate pathparam pip install -r requirements.txt
-
Install acados, as well as its python interface.
-
Update python path to ensure that the package is visible to python.
export PATHPARAM_PATH=$path_to_pathparam export PYTHONPATH=$PYTHONPATH:$PATHPARAM_PATHMake sure to add this to your
.bashrcor.zshrcfiles.
To compare the Frenet-Serret (FSF) and Parallel Transform(PTF) frames, run the following command:
python examples/moving_frame_comparison.pyIn here we conduct the experiments associated with the robotic manipulator example in the paper.
With this set of examples we aim to answer the question Why path-parametric?. We do this by conducting three different experiments:
-
Tracking vs Following: Shows the advantage of an spatial reference over a temporal one. Run it with:
python examples/robotic_manipulator/example1_tracking_vs_following.py --case f --d
The options are the following ones:
--case:f(following) ort(tracking)--d: Introduces disturbance that mimics the robot blockage
-
Velocity Profile: Shows how path-parametric approaches allow to have a desired velocity profile, a very attractive feature for certain applications. Run it with:
python examples/robotic_manipulator/example2_velocity_profile.py --case 2
where
--casedefines the velocity profile as1(constant),2(sinusoidal) or3(quadratic). -
Corridors - Control around a reference: Shows how path-parametric references are a more general way to conduct motion control around a trajectory -- by means of corridors/tunnels/funnels--, accounting for deviations within a predetermined volume, and therefore, achieving behaviors that are considerably more flexible. Run it with:
python examples/robotic_manipulator/example3_corridor.py
For the brachistochrone problem run
python examples/brachistochrone/brachistocrhone.pyFor the dubins path as a path-parametric problem run
python examples/dubins/dubins.pyWhen comparing progress maximization against a standard time minimization approach, we used the well-known contouring control based formulation.
To replicate these results, see the original corrgen repository.