Skip to content
Marc Hanheide edited this page Feb 1, 2023 · 26 revisions

Some general recommendations and rules for the workshop engagement

  1. Be active, seek support: both within your team of peers and the delivery team. We are here to help you. If you don't ask, we don't know what you may be struggling with! Use the helpdesk pro-actively!
  2. Keep notes and code: Everything that you got working, you want to make sure you can find again. Keep a log of the command lines that you use regularly, put them in a text file that you store online and have always at hand, etc. Best practice is to keep all your code at the end of the session in a code repository (GitHub, GitLab, bitbucket, you name it) so that you can just check it out at another location/PC or even at home at any time needed. You will find that we share all relevant code fragments also on GitHub with you (https://github.com/LCAS/teaching/tree/lcas_melodic/cmp3103m-code-fragments/scripts). If you just want to keep some notes and code fragments yourself, https://gist.github.com/ is a good place, for instance. Be an actual computer scientist/software developer and don't put code or command line notes in Word or Google Docs etc! Simply, don't ;-)
  3. If things are not working immediately, don't give up: Seek help, and once it works, make sure you make a note of what you did to make it work. There are no stupid questions! But asking the same thing again and again because you didn't write it down is a bit stupid ;-)
  4. Google yourself: We are working with Python in ROS and ROS2. This is probably the most widely used combination for doing robotics these days. There is a huge community out there that have answered most questions already. As level 3 students you are expected to be able to solve problems and seek solutions yourself. You will always find us very willing to help you, but isn't it much more rewarding to find a solution yourself?

This week: Getting to know your simulation

This week, we'll look at simulation and setting up our computers and working environments.

Getting your virtual desktop up and running

First, let's set up the environment we'll be working in

  1. boot your computer as instructed by the delivery team. On the lab PCs, we shall boot into Linux to run our Docker container in:
    • To use Linux on the lab PCs, start the computer and press [F12] until you can select "Ubuntu" to boot into
    • on Windows (if you have your own computer), make sure you install and start "Docker Desktop" (see next step)
  2. Read and follow the instruction on the Using the Docker Image#getting-the-docker-compose-file page. You may install this also on your own computer if you want.
  3. After the step above, you should have access to the "L-CAS virtual Docker Desktop" in your browser. This is a conainterised desktop based on Ubuntu 22.04. So, from now one, everything you do will be in that virtual desktop in your browser (It often helps to make the browser full-screen)

Getting to know the virtual desktop

Work now in your virtual desktop.

  1. Open a terminal, you'll mostly be using commands in the terminal. Hints:
    • [Ctrl-C] will stop a currently running command
    • [Tab] is very useful to auto-complete a command
    • [Up] and [Down] allow you to browse the history of previously typed commands
    • (for Linux newbies:) get used to work with the terminal in Linux: a good starting point is the official tutorial for beginners. Please skip the bit about adding a new user.
  2. Try our simulation following this first turtlebot tutorial. Get some very basic ROS commands going: read tutorials 1-6 ("1.1 Beginner Level") from the official ROS2 tutorials as a good starting point. (BTW, You are using ROS2 humble). First, focus on "understanding nodes" and "understanding topics". You don't need to do the tasks, but read them.
  3. find out about two important ROS2 commands, namely ros2 topic and ros2 node. Find out what topics exist when you have the simulation up and running, and also how many ROS nodes are running on your system
  4. What do you think about how you could read the odometry from your robot? Find a way to print the odometry of the simulated robot on the screen when moving it around.

Main Learning Objectives for today

  • Have the simulation up and running, and being able to interact with it.
  • Understand the command line tools ros2 topic and ros2 node to
    • list all "topics"
    • list all "nodes"
    • display the robot's "odometry"

Additional Tasks

  1. Optional: How do you think you could command the robot to move using the topics?
  2. Optional: run rviz2 and explore the different visualisation widgets (e.g. try to display the robot camera stream and the Laser scanner data)
  3. Optional: familiarise yourself with the programming environment Microsoft Visual Studio Code (VSCode), which we recommend for programming in ROS and Python. You can launch it either using the command code on the command line, or from the "start" menu.
  4. Optional: Explore the module's GitHub repository to better understand the structure of the implementation. Focus on the uol_turtlebot_simulator package.

Clone this wiki locally