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.
The nova repository encapsulates:
├ 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.
Please follow this notion guide for a detailed guide if you're on the team.
In general:
- Clone the repository
git clone https://github.com/MonashNovaRover/nova.git
- Build the nova workspace
nix-build ./nixfiles -A pkgs.ros.nova-workspace
- 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/launchfor more details, see the launch overview file above. - Aliases for common commands are defined here.
- There are also WIP launch scripts under
We loosely follow the conventional commit standards. In particular:
- Create a branch following standard naming conventions such as
feat/,fix/, etc. - Commit regularly
- When you are ready to make a PR, rebase off of
masterfirst. Then make the PR. - Post the PR details in #software-pull-requests on Slack.