EZ-RASSOR icon indicating copy to clipboard operation
EZ-RASSOR copied to clipboard

An inexpensive, autonomous, regolith-mining robot

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

  • ROS Melodic_
  • Python 2.7_
  • Pip_
  • rosdep_
  • build-essential_

TYPICAL INSTALLATION

First, clone this repository with git.

.. code-block:: bash

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:

.. code-block:: bash

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:

.. code-block:: bash

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:

.. code-block:: bash

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:

.. code-block:: bash

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):

.. code-block:: bash

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:

.. code-block:: bash

roslaunch [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:

.. code-block:: bash

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

  • Sean Rapp_
  • Ron Marrero_
  • Tiger Sachse_
  • Tyler Duncan_
  • Samuel Lewis_
  • Harrison Black_
  • Camilo Lozano_
  • Chris Taliaferro_
  • Cameron Taylor_
  • Lucas Gonzalez_

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

  • Jordan Albury_
  • Shelby Basco_
  • John Hacker_
  • Michael Jimenez_
  • Scott Scalera_

EZ-RASSOR 2.0 (Swarm Control & Management) Team

  • Daniel Silva_
  • Chin Winn_
  • Martin Power_
  • Daniel Simoes_
  • Autumn Esponda_

EZ-RASSOR 3.0 (Swarm Build Pad) Team

  • Hung Nguyen_
  • Coy Torreblanca_
  • Stanley Minervini_
  • Richard Malcolm_
  • Camry Artalona_

.. |build badge| image:: https://github.com/FlaSpaceInst/EZ-RASSOR/workflows/Build/badge.svg :target: https://github.com/FlaSpaceInst/EZ-RASSOR/actions .. |style badge| image:: https://img.shields.io/badge/Code%20Style-black-000000.svg :target: https://github.com/psf/black .. _wiki: https://github.com/FlaSpaceInst/EZ-RASSOR/wiki .. _contributing guidelines: CONTRIBUTING.rst .. _license: LICENSE.txt .. _usage: README.rst#Usage .. _wiki page for the ezrassor_launcher: https://github.com/FlaSpaceInst/EZ-RASSOR/wiki/ezrassor_launcher .. _Sean Rapp: https://github.com/shintoo .. _Ron Marrero : https://github.com/CSharpRon .. _Tiger Sachse : https://github.com/tgsachse .. _Tyler Duncan : https://github.com/Tduncan13 .. _Samuel Lewis : https://github.com/BrainfreezeFL .. _Harrison Black : https://github.com/HarrisonWBlack .. _Camilo Lozano : https://github.com/camilozano .. _Chris Taliaferro : https://github.com/Hansuto .. _Cameron Taylor : https://github.com/CameronTaylorFL .. _Lucas Gonzalez : https://github.com/gonzalezL .. _Jordan Albury : https://github.com/jalbury .. _Shelby Basco : https://github.com/blicogam .. _John Hacker : https://github.com/JHacker997 .. _Michael Jimenez : https://github.com/Mjimenez01 .. _Scott Scalera : https://github.com/ScottCarL .. _Daniel Silva : https://github.com/danielzgsilva .. _Chin Winn : https://github.com/wchinny .. _Martin Power : https://github.com/martinpower .. _Daniel Simoes : https://github.com/RuptorT .. _Autumn Esponda : https://github.com/autumnesponda .. _Hung Nguyen : https://github.com/hungjn .. _Coy Torreblanca : https://github.com/Coy-Torreblanca .. _Stanley Minervini : https://github.com/StanleyMine .. _Richard Malcolm : https://github.com/RichardMalcolm-CS .. _Camry Artalona : https://github.com/cmryArt .. _ROS Melodic : http://wiki.ros.org/melodic/Installation/Ubuntu .. _Python 2.7 : https://www.python.org/download/releases/2.7/ .. _Pip : https://pip.pypa.io/en/stable/installing/ .. _rosdep : http://wiki.ros.org/rosdep .. _build-essential : https://packages.ubuntu.com/bionic/build-essential

CITATION

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

.. code-block:: bibtex

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