First, we need to thank the author's great work. In this repo, we Just update the Julia from the initial version to 1.5.0. We test the code in the Ubuntu16.04. The remaining is not changed.
Hierarchical Optimization-Based Collision Avoidance - An algorithm for generating dynamically feasible parking trajectories
Paper describing the theory can be found here.
H-OBCA is an optimization-based approach for autonomous parking. It builds on OBCA, which is a recent method for generating obstacle-free trajectories using optimal control.
H-OBCA is able to generate high-quality kino-dynamically feasible obstacle-free trajectories. These trajectories are smooth, and can be accurately tracked by simple low-level path following controllers. A Julia-based implementation is provided.
-
Change to the directory
-
Install Julia from https://julialang.org/downloads/ (code tested on version 0.5.1 and 0.6.0)
-
Open Julia in terminal
-
Install Julia package JuMP using Pkg.add("JuMP")
-
Install Julia package Ipopt using Pkg.add("Ipopt")
-
Install Julia package PyPlot using Pkg.add("PyPlot")
-
Install Julia package NearestNeighbors using Pkg.add("NearestNeighbors")
-
Install Julia package ControlSystems using Pkg.add("ControlSystems")
-
Start Julia in terminal
-
Type in terminal: include("setup.jl")
-
Type in terminal: include("main.jl")
-
To play with start points, change x0 in main.jl and run the code by: include("main.jl")
-
If you change anything in one of the collision avoidance problems, you need to activate the changes by running: include("setup.jl")
-
If you change the size of the car in main.jl, the change also need to be made in collision_check.jl
-
this code has been tested on Julia 1.5.0, and might not run on any other Julia versions
-
For best results, run code in Julia terminal