UBC-Snowbots / RoverFlake

New repository for UBC Rover
5 stars 1 forks source link

RoverFlake - ROS 1 (Noetic) / Ubuntu 20.04

Our new, ROS 1 Noetic repository.
Our ROS2 Humble/Foxy repository is RoverFlake2 Our Firmware repository is FirmFlake Make sure to clone reccursively git clone https://github.com/UBC-Snowbots/RoverFlake.git --recursive We are using branches only, you are free to make a fork if you are experienced with git, but using git with 1 remote is going to be easier. We reccommend using gitt CLI if you have experience with it. We reccomend the git GUI from VS code if you havent used git before to pull/push code and manage commits (easiest to use git CLI to set up repo)

git remote -v should return:

origin https://github.com/UBC-Snowbots/RoverFlake.git (fetch)

origin https://github.com/UBC-Snowbots/RoverFlake.git (push)

To run or build any of the ROS code, you will need to set up an ubuntu enviroment. To see how, read the "setup_ubuntu.md" in "resources" (https://github.com/UBC-Snowbots/RoverFlake/blob/fce38688cf4b68fb9d10681cf8c75e355d8a5337/resources/setup_ubuntu.md)

CIRC Competition Rules: https://circ.cstag.ca/2023/tasks/

Tips for New Members

Tutorials and advice for new members.

Terminal

First of all, if you're new to the Ubuntu command line: it is primarily used over the graphical user interface as it allows you to do more.

Github

In case you're new to GitHub, get started with this tutorial

Pretty cool right? Now you're wondering how you can use GitHub from the terminal/command line, it's called Git

Workflow

Now you're wondering how we develop our software, the first place to start is understanding how our workflow works. We use the Forking Workflow, which you can learn more about under Github Conventions in README.md (located in the same directory you opened this readme from) and other important information you should know. If you have questions, you may find your answers over there.

C++

This is the language we use to develop most of our software, so if you are new with C++, understand the fundamentals from this tutorial, but there are much more resources online as well.

ROS

By now you understand the basics of ROS, but to learn more about it, you can complete the intermediate tutorials or brush up on the basics if you need to here

General Advice

Rarely will your Github issues contain all the information that you need to resolve them. Using google to search for that missing piece you need is sometimes useful (think like an optimist when you're understanding/interpreting your project/issue: "If only I knew how to do...", then search "how to do..."), or of course don't hesitate to ask for help, clarification, or just more information from any of the software leads.

Remember it is much better to get help when you're stuck than to waste time trying to figure out what's wrong. This way, you're more or less continuously progressing, and as a whole, we develop efficiently and our software stack progresses.

Conventions

Github Conventions

Pull Requests

Below are some notes we would like to highlight about pull requests:

Coding Conventions

Coordinate Systems

Creating a new node

Creating a new simple node

Launch files

Testing

GTest

Rostest

Simulating with Gazebo

Arduino Development

Intel Realsense

Intel Realsense is a sensor that captures a 3D depth map of the environment in front of the sensor. This 3D depth map is called a point cloud, which is essentially just a list (vector in c++) that contains a bunch of points, where each point contains the x, y, and z coordinates, as well as a color value associated to it.

Debugging Tips