Giter VIP home page Giter VIP logo

mrover-workspace's Introduction

MRover

This is the repository for all custom software written for the University of Michigan Mars Rover team (MRover). The repository is largely self-contained, with the MRover 2017-18 build system jarvis contained in the source tree.

Development

It is recommended that you use our Vagrant box. This will set up a virtual machine for development using the Ansible configurations that we have to set up the production base station and production onboard computer. To run it, clone this repository, then run the following commands in the directory provided.

$ vagrant up
$ vagrant ssh

If you would prefer not to use a virtual machine for development, you may use the Ansible configurations provided to configure a Ubuntu 16.04-based system. No other development environments will be supported.

Running the Software (Ubuntu only)

Begin by cloning this git repository:

$ git clone https://github.com/umrover/mrover-workspace.git
$ cd mrover-workspace

Next, force Jarvis to bootstrap itself:

$ ./jarvis

The output of the previous command will list all the buildable components in this repository. They have a one-to-one correspondence with the directories at the root of this repository.

Choose some components to build and build them:

$ ./jarvis build onboard/teleop
$ ./jarvis build base_station/gui
...

Once you have built the components, you can run them easily with jarvis exec. Note that the slashes are converted to underscores in the executable name.

$ ./jarvis exec onboard_teleop
$ ./jarvis exec base_station_gui
...

In the future, it will be easy to compile an entire subtree, such as onboard.

Jarvis In-depth Documentation

See here.

Contribution Workflow

Assumption: You have configured your SSH keys with GitHub. Additionally, you have a working knowledge of the Unix command line and have set up Git for your operating system.

Begin by forking this repository. This will give you your own workspace in which to make contributions.

Next, clone your fork:

$ git clone [email protected]:<your-github-username>/mrover-workspace.git
$ cd mrover-workspace

Add the official MRover repository as upstream:

$ git remote add upstream https://github.com/umrover/mrover-workspace.git

Now, you are ready to develop.

Before you make your changes, ensure that they still work by building the component you modified. Jarvis automatically tests and style-checks your code as part of a normal build, so if the system builds with your changes, you are ready to submit them.

Once you've made a change that you're ready to contribute, commit it and push it to your fork (called origin in git). Afterwards, open a pull request in the GitHub UI. This will be merged by an MRover Software Lead after a short review.

mrover-workspace's People

Contributors

adamcbrown avatar amverni avatar aswarner avatar brentwang23 avatar bwireman avatar calebhar12 avatar chenandr avatar davidjrwang avatar davidsmith166 avatar elgarber avatar estehouw avatar ianhrobinson avatar janiman-umich avatar jcalestra avatar jeqyin avatar jtwhit avatar jubeemer avatar kurtovicum avatar maximhayes avatar miloath avatar moosingin3space avatar prabid avatar rayfok avatar raytitan avatar spenfarr avatar ynjason avatar zeroaska avatar

Watchers

 avatar

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.