The NATURE (Navigating All Terrains Using Robotic Exploration) autonomy stack is an full stack for autonomous off-road navigation. It features modules for perception, path planning, and vehicle control, with options for Ackermann and skid-steered vehicles.
For more information about the modules and their capabilities and options, check out the wiki.
Ubuntu 16.04 with ROS-Kinetic and a functioning catkin workspace are required to build and run this code.
Clone the repo into your catkin_ws/src directory with the following command.
$git clone https://github.com/CGoodin/nature-stack.git nature
NATURE can work with ROS or ROS-2, see instructions below.
First, copy the installation files for ROS-1 to the correct name.
$cp CMakeLists_ros1.cmake CMakeLists.txt
$cp package_ros1.xml package.xml
Next, from the top level catkin_ws directory, type
$catkin_make install
Or to build only the nature package:
$catkin_make --only-pkg-with-deps nature
If user-defined workspace with default install spaces: Make sure that setup.bash
has been sourced in either the workspace's devel
or install
folder depending on if catkin_make
or catkin_make install
has been used respectively. Though typically this command is added to ~/.bashrc
so that it is called on opening a command prompt instead of being issued manually.
# Can be placed in ~/.bashrc also so does not need to be issued manually
source ~/<path_to_catkin_workspace>/[install|devel]/setup.bash
# Example on my computer (when built with catkin_make):
source ~/catkin_ws/devel/setup.bash
To test the installation, type
$roslaunch nature example.launch
First, copy the installation files for ROS-1 to the correct name.
$cp CMakeLists_ros2.cmake CMakeLists.txt
$cp package_ros2.xml package.xml
Next, from the top level catkin_ws directory, type
$colcon build --symlink-install
Or to build only the nature package:
$colcon build --packages-select nature --symlink-install
If user-defined workspace with default install spaces: Make sure that setup.bash
has been sourced in either the workspace's devel
or install
folder depending on if catkin_make
or catkin_make install
has been used respectively. Though typically this command is added to ~/.bashrc
so that it is called on opening a command prompt instead of being issued manually.
# Can be placed in ~/.bashrc also so does not need to be issued manually
source ~/<path_to_colcon_workspace>/[install|devel]/setup.bash
# Example on my computer (when built with catkin_make):
source ~/ros2_ws/install/setup.bash
To test the installation, type
$ros2 launch nature example.launch.py
The package requires the ROS PointCloud Library (PCL) interface. If you get errors related to missing pcl header files, then you may need to install pcl_ros on your system.
$sudo apt-get install ros-kinetic-pcl-ros
To run an example simulation with MAVS, first install and build MAVS.
You will also need the package to interface MAVS to ROS, either the mavs_ros package for ROS 1 or the mavs-ros2 package for ROS2. The instructions below are for ROS1, but the process is similar for the mavs-ros2 package.
Clone the MAVS-ROS interface package into your catkin_ws/src directory
$git clone https://github.com/CGoodin/mavs_ros
Then, from the top level catkin_ws directory, type
$catkin_make install
Then, from the "launch" directory of the "nature" folder, run
$roslaunch nature mavs_example.launch
This project is made possible by technical and financial support of the Mississippi State University Center for Advanced Vehicular Systems as well as the Automotive Research Center (ARC) in accordance with Cooperative Agreement W56HZV 14 2 0001 U.S. Army CCDC Ground Vehicle Systems Center (GVSC) Warren, MI.