Implementation of a Hybrid Direct Collocation (DIRCOL) based Trajectory Optimization Method for a Brachiating Robot [paper]
This repo supports:
- DIRCOL Trajectory Solving for a Two Link Robot using iPOPT Solver
- visualization using Julia Plot
- visualization using MeshCat Libraries
In this repository, we propose a trajectory planning technique that mimics a Brachiation robot swinging from bar to bar. Using a hybrid system direct collocation (DIRCOL) trajectory optimization, we successfully demonstrate the robot swinging up from a dead hang to catch the first bar and swing to the subsequent bars. This DIRCOL technique was tested on various mass distributions in the robot as well as different bar separation distances to understand the behavior with varying parameters. In addition, we show the importance of a free time setup on the cost function in producing consistent feasible trajectories using this DIRCOL technique.
Julia v1.6.7, Juptyer Notebook
- Install Julia. Download v1.6.7 from the Julia website. From here you can follow these platform specific instructions to get started.
- Clone this repo and put it wherever you want.
- Start a Julia REPL in your terminal using julia, or the location to the Julia binaries. If this doesn't work, make sure you followed the platform specific instructions.
- Install the IJulia using the Julia package manager. In the REPL, enter the package manager using ], then enter add IJulia to add it to your system path.
- In the REPL (hit backspace to exit these package manager), enter using IJulia
- Launch the notebook using notebook() or jupyterlab()
The majority of the necessary code is located Monkey_ Bar_Controls_Bar_to_Bar. For swing up trajecotries alone, reference Simplified_Monkey_Bar_Controls. A full derivation of a three-link Monkey Bar Robot is shown in MonkeyBotDynamics. Run each jupyter notebook cell sequentially as described.
Visualized Solved Trajectory using Julia Plot
output1.mp4
Visualized Solved Trajectory using Meshcat