Skip to content

FlaSpaceInst/EZ-RASSOR

Repository files navigation

EZ-RASSOR

build badge style badge

The EZ-RASSOR (EZ Regolith Advanced Surface Systems Operations Robot) is an inexpensive, autonomous, regolith-mining robot designed to mimic the look and abilities of NASA’s RASSOR on a smaller scale. The primary goal of the EZ-RASSOR is to provide a demonstration robot for visitors at the Kennedy Space Center. The EZ-RASSOR can:

  • Rove across light-to-moderate terrain
  • Collect regolith in rotating drums
  • Return regolith to hoppers located away from dig sites
  • Execute pre-planned routines
  • Autonomously navigate around possible obstructions
  • Cooperate in a swarm of other EZ-RASSORs

For more information, our wiki contains a high-level overview of the EZ-RASSOR and its many components.

POTENTIAL CONTRIBUTORS: check out the contributing guidelines and the license.

INSTALLATION PREREQUISITES

TYPICAL INSTALLATION

First, clone this repository with git.

git clone https://github.com/FlaSpaceInst/EZ-RASSOR.git cd EZ-RASSOR

Then, let the develop.sh script do the heavy lifting! On Ubuntu Xenial or Ubuntu Bionic, creating a catkin workspace and building all packages is achieved with these commands:

# By default, all ROS packages in the *packages* folder will be installed sh develop.sh setup sh develop.sh link sh develop.sh resolve sh develop.sh build sh develop.sh install ** RESTART TERMINAL **

If you encounter Sub-process /usr/bin/dpkg returned an error code..., try to fix the broken install with the following command, then rerun the original command:

sudo apt --fix-broken install ** RERUN ORIGINAL COMMAND **

Everything's installed now! Proceed to the usage section.

CUSTOMIZED INSTALLATION

If you want to install specific EZ-RASSOR packages, you can use the same develop.sh script:

Make sure you have already run the setup command at least once:

sh develop.sh setup

Then, you can call the relink function and use -o to pass in the package name(s) you would like to install:

sh develop.sh relink -o ezrassor_sim_control ezrassor_sim_description ezrassor_sim_gazebo sh develop.sh build sh develop.sh install

Alternatively, you can also call the relink function and use the -e flag to make the script install all but the specified package(s):

sh develop.sh relink -e ezrassor_swarm_control

USAGE

The EZ-RASSOR is controlled via a collection of launch files. These files contain lists of commands that start up the robot's systems and the simulation environment. They are read, understood, and executed by a core ROS utility called roslaunch, whose general syntax is as follows:

roslaunch <package> <launch file> [arguments...]

Each launch file is located in one of our packages, and the most important launch files are located in the ezrassor_launcher package. To learn more about a specific launch file, visit that launch file's package's wiki page (via the navigation menu on the right). Here are some example commands that show launch files in action:

# Launch the simulation with a single robot controlled by the mobile app. roslaunch ezrassor_launcher configurable_simulation.launch control_methods:=app # Launch the simulation with a single robot controlled by an autonomous loop. roslaunch ezrassor_launcher configurable_simulation.launch control_methods:=autonomy # Launch the simulation with two robots, both controlled by gamepads, on the moon. roslaunch ezrassor_launcher configurable_simulation.launch \ control_methods:=gamepad \ world:=moon \ robot_count:=2 \ joysticks:="0 1" \ spawn_x_coords:="-1 1" \ spawn_y_coords:="1 -1" # Launch the communication system in dual mode: manual and autonomous control together. roslaunch ezrassor_launcher configurable_communication.launch control_methods:="app gamepad autonomy"

Please read the wiki page for the ezrassor_launcher to learn more about what the main launch files can do.

AUTHORS

EZ-RASSOR 1.0 Team

EZ-RASSOR 2.0 (GPS-Denied Autonomous Navigation) Team

EZ-RASSOR 2.0 (Swarm Control & Management) Team

EZ-RASSOR 3.0 (Swarm Build Pad) Team

CITATION

Please include the following citation when using EZRASSOR for a paper:

@misc{ezrassor_2021, author = {EZRASSOR Team}, title = {EZRASSOR}, year = {2021}, publisher = {GitHub}, journal = {GitHub repository}, howpublished = {\url{https://github.com/FlaSpaceInst/EZ-RASSOR}} }