Install the requirements.
gazebo plugins: (use ros noetic with Ubuntu20.04 as an example)
sudo apt install ros-noetic-robot-state-publisher*
sudo apt install ros-noetic-joint-state-controller*
sudo apt install ros-noetic-controller*
sudo apt install ros-noetic-velocity-controllers*
sudo apt install ros-noetic-effort-controllers
sudo apt install ros-noetic-position-controllers
sudo apt install ros-noetic-gazebo-ros-control
sudo apt install ros-noetic-hector-gazebo
sudo apt install ros-noetic-effort-controllers
sudo apt install ros-noetic-joint-state-controller
sudo apt install ros-noetic-position-controllers
sudo apt install ros-noetic-velocity-controllers
sudo apt install ros-noetic-ompl
sudo apt install ros-noetic-tf2-geometry-msgs ros-noetic-ackermann-msgs ros-noetic-joy
osqp-0.6.2 and osqp-eigen v0.8.0 for mpc controller:
Firstly, go to website of OSPQ and download complete_sources.zip
from the Assets of 0.6.2
. Then unzip the code,
cd osqp
mkdir build && cd build
cmake ..
make
sudo make install
Go to website of osqp-eigen and download Source code.zip
from the Assets of osqp-eigen v0.8.0
. Then unzip the code,
cd osqp-eigen-0.8.0
mkdir build && cd build
cmake ..
make
sudo make install
NOTE: We may have forgotten other dependencies 😟, sorry!
Build the project:
git clone https://github.com/ZJU-FAST-Lab/uneven_planner.git
cd uneven_planner
catkin_make -DCMAKE_BUILD_TYPE=Release
Select different scenes to run by the scripts (map_mountain.dae is too large, can't be upload to github)
- hill:
./hill.sh
- desert:
./desert.sh
- volcano:
./volcano.sh
- forest:
./forest.sh
If this is the first time you've run the scene, you may need to wait a few moments for constructing the mapping
When you see the point cloud in the Rviz like in the hill scene below, you can use 2D Nav Goal
to choose the planning target.
NOTE:
- Due to the simplicity of the model, wheel slippage may occur in the simulation, resulting in poor trajectory tracking accuracy.
- In the forest environment, shrubs are solid triangular meshes which may cause the robot to get stuck while moving in the simulation.
The method used in this software are described in the following paper (available here)
Title: An Efficient Trajectory Planner for Car-like Robots on Uneven Terrain