Skip to content

An inexpensive, autonomous, regolith-mining robot

Notifications You must be signed in to change notification settings

RobertForristall/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

Next if you plan to use the paver arm rover model please clone the following git

git clone https://github.com/pal-robotics/gazebo_ros_link_attacher.git

And place the cloned folder inside EZ-RASSOR/Packages/Simulation directory

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

INSTALLATION FOR OBJECT DETECTION

In order for the object detection script to work, you may need to ensure you have certain python libraries installed properly. First you will need to upgrade pip before installing each library

pip install --upgrade pip

Next, make sure you uninstall tensorflow, numpy and/or opencv if you have already installed them, and reinstall them.

pip uninstall <library>
pip install <library>
#Example
pip uninstall tensorflow
pip install tensorflow

You will need to upgrade tensorflow to the current version to avoid errors when running the script.

pip install --upgrade tensorflow
pip install --upgrade --force-reinstall tensorflow

Finally, opencv requires that you have the frozen weights and the configuration file for the trained model in order to load and run the input image through it. You must install these two files for this to work.

Then make sure you move these files to the FSI-RE-RASSOR-Arm\packages\autonomy\ezrassor_arm_autonomous_control\source\ezrassor_arm_autonomous_control directory.

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 a single robot using the paver arm and controlled by an autonomous loop.
roslaunch ezrassor_launcher configurable_simulation.launch control_methods:=autonomy rover_model:=paver_arm

# 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

About

An inexpensive, autonomous, regolith-mining robot

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 80.1%
  • Shell 9.5%
  • JavaScript 8.4%
  • CMake 2.0%