FlaSpaceInst / EZ-RASSOR

An inexpensive, autonomous, regolith-mining robot
59 stars 19 forks source link
autonomy blender computer-vison dust-to-thrust fsi gazebo javascript lunar-rover mapping martian-rover mining nasa prospecting python robotics ros simulation space-exploration swarm ucf

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:

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.

.. 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

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

.. |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}}
}