Usage

Dependencies

  • The software for this planner is based on OMPL, which consists of many state-of-the-art sampling-based motion planning algorithms. The required dependencies could be installed using the following command:

sudo apt install ros-noetic-ompl ros-noetic-grid-map-core ros-noetic-actionlib ros-noetic-geometry-msgs ros-noetic-grid-map-msgs ros-noetic-grid-map-ros ros-noetic-nav-msgs ros-noetic-roscpp ros-noetic-tf2-geometry-msgs ros-noetic-tf2-ros
  • Additionally, elevation_mapping ROS package was used to create a 2.5D map of the environment.

  • In order to test the software package in simulation environment, WoLF was used. This package provides whole-body controller, along with the robot description files and some interesting worlds for Boston Dynamics Spot robot, as well as several other famous quadruped robots.

Once the dependencies are met, the package can be installed as it follows:

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/aliy98/slope_constrained_planner
cd ..
source /opt/ros/<distro>/setup.bash
catkin_make

Usage in Simulation

In order to run the simulation environemnt, along with the elevation mapping package, the following launch file could be used:

roslaunch slope_constrained_planner_ros simulation.launch

Once the robot is spawned in a random point by go0.py script, a random goal point would be chosen on the map with a particular distance to robot. Then, robot would align to the goal point, and it would tilt along it’s y-axiz by tilt_robot.py script, in order to have a better view in the elevation map.

The planner node, could be launched using the following command:

roslaunch slope_constrained_planner_ros planner.launch

Once the solution path is found by the planner, the robot could move along the path, using the provided path_follower.py script:

roslaunch slope_constrained_planner_ros path_follower.launch

Usage in Real-World

Regarding the real-world usage with Boston Dynamics Spot CORE, the elevation mapping package, and spot ros packages could be launched using the command:

roslaunch slope_constrained_planner_ros navigation.launch

Moreover, the following command would make the robot stand up and wait for the waypoint on the found trajectory. Actually, it uses the commands on the Spot SDK, to perform the task of local path planning, based on the found global path by our planner.

rosrun slope_constrained_planner_ros gotopoint.py

The planner node, could be launched using the following command:

roslaunch slope_constrained_planner_ros planner.launch

Once the path is found, the waypoints on the trajectory would be published to the local path planner gotopoint, using the following command:

rosrun slope_constrained_planner_ros goal_publisher.py

Configuratrion

The parameters of planner components (e.g. sampler, motion validartor, planning algorithm), could be modified in the file slope_constrained_planner/config/params.yaml. Regarding the elevation map, the configuration files are located in the same directory which are named map_sim.yaml and map_real.yaml.