Skip to content

Latest commit

 

History

6,568 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monash Nova Rover logo


Monash Nova Rover

Software for Monash Nova Rover's lunar and martian analogue rover.

nova is the set of packages that operate on-rover and in the base station for the Monash Nova Rover student team. It is a collection of mostly ROS2 packages that we use and develop for the ARCh and URC competitions. It is installed using the Nix package manager, which is managed through nixfiles.

Project Structure

The nova repository encapsulates:

  • nixfiles
    • Describes how the source code is built through nix.
  • src
    • Contains the code for all software for both on rover and base station.
    • rover
      • All the source code for rover control and functionality.
    • nova-gui
      • A web based graphical user interface for the base station.
    • cameras2
      • Camera discovery and streaming services between rover and base station.
├ nixfiles             # Package manager
└ src                  # Source code
  ├ other              # Miscellaneous non-ros software
  └ ros                # The main folder containing all of our ROS2 software
    ├ cameras2         # Custom camera stack
    ├ nova-gui         # Graphical user interface for operators
    └ rover            # Code for our autonomous system, robotic arm, drive and other payload controls.

Development

Please follow this notion guide for a detailed guide if you're on the team.

In general:

  1. Clone the repository
    git clone https://github.com/MonashNovaRover/nova.git
  2. Build the nova workspace
    nix-build ./nixfiles -A pkgs.ros.nova-workspace
  3. To run the different payloads and systems look in the relevant directory, or look at the launch overview.
    • There are also WIP launch scripts under nixfiles/home/macros/launch for more details, see the launch overview file above.
    • Aliases for common commands are defined here.

Contributing

We loosely follow the conventional commit standards. In particular:

  1. Create a branch following standard naming conventions such as feat/, fix/, etc.
  2. Commit regularly
  3. When you are ready to make a PR, rebase off of master first. Then make the PR.
  4. Post the PR details in #software-pull-requests on Slack.

About

The Monash Nova Rover mono-repo

Resources

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages