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.
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.
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
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.
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
EZ-RASSOR 2.0 (Swarm Control & Management) Team
EZ-RASSOR 3.0 (Swarm Build Pad) Team
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}}
}