Git Product home page Git Product logo

uwa-ros2-workshop's Introduction

ROS2-workshop

Course Prerequisites

To complete this workshop please arrive with:

  • A basic understanding of Ubuntu Linux
  • A basic understanding of Python and/or C++
  • A laptop running either:
  • Please follow the installation instructions here
    • Ask a mentor if you get stuck, and we'll be happy to help
  • Access to the Internet (you'll need to download 1-2 GB)
    • Ask a mentor for Wi-Fi access details
  • Access to this GitHub repository (consider adding a SSH key)

Note: While any development environment can be used for this course, for beginners we recommend the free VSCode source code editor.

Contributions

This course material has been adapted from the ROS 1 course and has been developed by volunteers in their spare time. As you work through the workshop, please consider contributing any suggestions or edits back -- it's easy! Please fork the repository you want to update and do a “pull request“ (PR) when you're ready for us to review. For the full process, read up on “Git Flow” here. Otherwise let us know of any issues and we will try to get to it when we can.

Part 1: Workshop Summary

This workshop consists of four days focusing on getting familiar with the basics of ROS2 and applying it to a few scenarios. The workshop material is cloned from these repositories:

  • Tuesday: Starting from scratch - setting up the tools, running some simulation tools and peeling back the first layer of the ROS 2 environment.
  • Wednesday: Mobile Robots - Start by working on a simulated environment of a mobile robot and driving autonomously. Move on to the afternoon with real robots.
  • Thursday: Manipulation and vision - Running a simulated environment of the ur5e robots and then using opencv to process vision based information.
  • Friday: scripting tools and rosbags - capture real world information for reviewing and make basic scripts to auto start your solution.

Workspace Setup

Across these four days, you will incrementally build on your pass knowledge slowly building elements by yourself. Each day will bring different tasks so if you don't finish one day you can always complete it later.

Try to figure out how to create a `catkin` workspace yourself, otherwise, click here to for answer!
mkdir -p ~/workshop_ws/src  # Creates a workspace directory named workshop_ws.
cd ~/workshop_ws/src

Git Clone

For each day, clone the repository linked below into the src/ directory of the workspace workshop_ws.

Try to figure this out yourself first, otherwise, click here to for answer!

E.g. for the sensor-integration repository, you'd type:

cd ~/workshop_ws/src
git clone https://github.com/ros-workshop/sensor-integration.git

Or if you are using SSH keys:

cd ~/workshop_ws/src
git clone [email protected]:ros-workshop/sensor-integration.git

Colcon Build

Build and then source the workspace.

Try to figure this out yourself first, otherwise, click here to for answer!
  • Note: If this command fails, install catkin tools following the instructions [here][catkin-tools].

  • Tip: Source any workspaces you want to extend before running catkin build.

cd ~/workshop_ws
catkin build
source devel/setup.bash

Tuesday: Starting from scratch

Topics:

  • Work through the startcreatingrobots by John Vial found here
  • Explore Nodes and Topics from command line

Wednesday: Mobile Robot

Topics:

  • Creating a URDF

  • Visualising your robot

  • Fixing a broken URDF

  • Adding a sensor to a robot

  • Controlling a simulated robot

  • Detecting an obstacle and stopping the robot

  • Port your solution to Pioneer Robot and get it working

  • Creating a map using a lidar

  • Simultaneous Localisation and Mapping (SLAM)

  • Using nav2 for navigation

  • Finding an object by navigating around a map

Thursday: Manipulators and Vision

Topics:

  • Using a camera to detect Apriltags
  • Using a real camera with ROS
  • Camera calibration
  • Fusing lidar and camera/DNN data for person detection and localisation

Friday: Scripting and working on your own

Topics:

  • Creating a Moveit configuration package
  • Moving Your robot in rviz
  • Using the Moveit class in a node
  • Creating a OctoMap using a depth camera

Topics:

  • How to integrate multiple ROS nodes together

uwa-ros2-workshop's People

Contributors

kieranqb 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.