Coder Social home page Coder Social logo

flaspaceinst / ez-rassor Goto Github PK

View Code? Open in Web Editor NEW
57.0 19.0 17.0 182 MB

An inexpensive, autonomous, regolith-mining robot

Shell 10.15% JavaScript 6.68% CMake 1.83% Python 81.29% Dockerfile 0.05%
nasa dust-to-thrust fsi autonomy robotics computer-vison space-exploration lunar-rover martian-rover ros

ez-rassor's Introduction

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

ez-rassor's People

Contributors

blicogam avatar brainfreezefl avatar camilozano avatar cloudy avatar conroymp avatar csharpron avatar danielzgsilva avatar dbsimoes avatar gonzalezl avatar hansuto avatar harrisonwblack avatar hungjn avatar jalbury avatar jhacker997 avatar mjimenez01 avatar scottcarl avatar shintoo avatar tduncan13 avatar wchinny avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ez-rassor's Issues

Creating On-Board Network

Using the hardware to create a Wi-Fi access point for the mobile devices, and desktops to be able to connect. This would allow the Pi to communicate to an endpoint without relying on a central Wi-Fi network.

add --ros and subscripts?

first argument will be the particular graph to run

maybe store them in scripts/graphs

e.g.

scripts/graphs/ezrc.sh

ezrc:
rosrun blah blah blah

fix dependency issue with --install ros

Hey Tiger, I ran the
./ezrassor.sh --install ros
command and got an error about unmet dependencies.

The error pointed to the fact that there were dependencies with ros-kinetic-desktop that would not be installed.

To fix, I ran
sudo apt install ros-kinetic-desktop
and then your install script and it worked!

Fix camera issue in the widget

The camera feed size is compressed and needs to be fixed. This is especially apparent when viewing the feed in a New Window, where the object then displays correctly.

Fix robot model for Gazebo

We have a working robot model but the wheels and drums are not spinning correctly. It needs to be fixed to provide basic movement.

Add missing dependencies to ezrassor.sh

For AI:
sudo apt install libsuitesparse-dev libqglviewer-dev-qt4 ros-kinetic-libg2o ros-kinetic-opencv3
sudo ln -s /usr/lib/x86_64-linux-gnu/libQGLViewer-qt4.so /usr/lib/x86_64-linux-gnu/libQGLViewer.so
sudo apt-get install ros-kinetic-ros-control ros-kinetic-ros-controllers

For ROS joy:
sudo apt install ros-kinetic-joy
sudo jstest /dev/input/js1
sudo chmod a+rw /dev/input/js1

Add IMU and Encoder sensors to Gazebo Robot model.

In order for the EZ-RASSOR to navigate the environment we are going to need sensors that will allow us to localize it in 3D space. The cameras will work to observe the environment and obstacles, as well as create the point cloud, but we need to know where we are on the map in order to plan paths for target locations. The IMU and Encoder data will help with that.

add --workspace

no args will cd to workspace. Any args after will execute in workspace.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.