Roboticist Toolkit - norlab-ulaval/Norlab_wiki GitHub Wiki

The goal of this page is to regroup the useful programming tools so that a new person from the lab who arrives without a robotic background can learn them in their downtime. The idea is to divide them into levels from essential to advanced tools.

Essential tools

These tools are used by everyone in the lab and are used in everybody's research with the robots.

Using the command line interface

To launch things in the robot, we use commands in a terminal. This tutorial will help you learn the basics. Terminal tutorial

ROS 2

Ros 2 is a middleware that is used to build the architecture of the robots. It is used to launch and coordinates the codes that are responsible for the different part of autonomous navigation. It is used to :

  1. Launch the sensors
  2. Launch the mapping/localization pipeline
  3. Launch the controller
  4. Launch the teach and repeat pipeline

The essential part to do is the Python tutorial in the Beginner sections of the tutorial pages. Tutorial link: Ros2 tutorial

image

Python

Python is the programming language used to develop:

  1. Ros2 nodes (unless more speed is required)
  2. Graphic (matplotlib.pyplot)
  3. Linear Algebra (numpy)
  4. Data analysis (pandas)
  5. Rotation and transformation scipy.spatial
  6. Signal processing and other advanced mathematical scipy

Pyenv

Pyenv is very useful to manage the Python version installed on your computer. It eases the process of selecting a Python version for a given project. pyenv documentation

Github

GitHub is used to deal with code versioning and development. GitHub has multiple tutorials for learning git. GitHub is one of the cloud-based service that host git. Git is the tool used for version control.

Code editor

Visual Studio Code is used by most of the students in the lab. You can download multiple extensions to improve your workflow:

  1. Python
  2. C, C++
  3. Remote - SSH
  4. Git graph
  5. Github copilot
  6. Docker
  7. Dev Containers
  8. Black formatter

Screen

Screen is a terminal multiplexer. We use it to start all the different ROS 2 nodes in different terminals on the robot itself. The biggest benefit is that even if the connection between the robot and the computer you use to connect to the robot dies, the node will continue to run in the screens on the robot.

Here is a tutorial for screen : Screen terminal

Mathematics

The mathematic that are used by everybody in the lab are presented in François' class percep3d. The class is only given in the summer (May to June). However, the github containing all the exercises and classes are in the following github. The idea is, if you want to do François' class not at spring, you clone the repo, do all the exercise locally and then, when the class start you can just upload what you did earlier in the year. To have feedback, you can ask Nicolas Samson, William Dubois, or Olivier Gamache.

Wiki

Don't hesitate to contribute to the Norlab's Wiki as you are now a new part of the Norlab and will someday write useful tutorials for the next students.

To contribute:

  1. Clone the wiki locally: $ git clone ssh://[email protected]/norlab-ulaval/Norlab_wiki.wiki.git
  2. Add files (images, PDFs, etc.) into the repository using this structure: <WIKI_PAGE_NAME>/<FILE_TYPE>/<FILE_NAME> Here is an example: New_Students/Images/example.png

👉 For more details, see the GitHub Wiki Guide, Markdown Cheatsheet and Markdown Tutorial.

⚠️ **GitHub.com Fallback** ⚠️