Skip to content

Real Robot Labs

Tom Howard edited this page May 12, 2022 · 21 revisions

Working with the Real TurtleBot3 Waffles

Read this page IN FULL before you do anything else!

This section of the Wiki is here to help you apply your simulation-based ROS knowledge to our Real TurtleBot3 Waffle Robots!

Key Links

Handling the Robots

You'll be very familiar with the simulated version of our TurtleBot3 Waffle robots by now, but the real ones are even better! You may recall the overview of the robots from the Home Page, but here is the figure again, to remind you what the real ones look like:

As you can see, the robots have lots of exposed sensors and electronics and so you must take great care when handling them to avoid the robots becoming damaged in any way. When handling a robot, always hold it by either the black waffle layers, or the vertical support pillars.

Do not pick the robot up or carry it by the camera or LiDAR sensor! These are delicate devices that could be easily damaged!

A lot of the electronics are housed on the middle waffle layer. Try not to touch any of the circuit boards, and take care not to pull on any of the cabling or try to remove or rehouse any of the connections. If you have any concerns with any of the electronics or cabling, if something has come loose, or if your robot doesn't seem to be working properly then ask a member of the teaching team to have a look for you.

The robots will be provided to you with a battery already installed and ready to go. Don't try to disconnect or remove the battery yourselves! The robot will beep when the battery is low, and if this happens ask a member of the team to get you a replacement (we have plenty).

Local vs. Remote Deployment

There are two options when working with the real robots:

  1. "Local" Deployment: The robot has an Up Squared Single Board Computer on-board, which runs Linux and ROS. We can therefore create ROS packages and nodes directly on the robot's filesystem and execute them on the robot itself, i.e. executing them "locally".
  2. "Remote" Deployment: ROS is network-based and can work over a WiFi connection, so we can very easily add additional external ("remote") devices into our ROS network (e.g. a laptop computer), create ROS packages and Nodes, and execute these on the remote device to invoke changes to a robot connected to the same ROS network.

To start with, we'll explore how to get the robots working and how to deploy ROS packages and nodes 'locally'. Read on and we'll get to this part shortly.

Eventually though, you'll want to do some more advanced things, for which you'll want to take advantage of the 'ROS visualisation tools' such as RViz and rqt_image_view. We'll need an external computer (with a display!) to do this though, so we have a fleet of pre-configured Robot Laptops in the lab that are set up to allow you to do this...

The Robot Laptops

Much like the WSL-ROS environment, our Robot Laptops (and Robots) run Ubuntu 20.04 and ROS Noetic.

On the laptops there is a "student" user account that you should use when working in the lab. The laptop should log you into this user account automatically on startup, but we will provide you with the account password as well, during the lab sessions, should you need it.

WiFi

The Robots and Laptops connect to a dedicated wireless network running in the Diamond called 'DIA-LAB'. There are a few things that you need to know about this:

  • Laptops must be connected to the DIA-LAB network in order to establish a ROS network between them and the robots.
  • Laptops do not have internet access when connected to DIA-LAB.
  • You'll need to connect the laptop to eduroam (or use a Computer Room 3 workstation) to access any external resources (such as this Wiki).

Credentials for DIA-LAB and eduroam have already been set on the laptops, allowing you to connect to either network straight away, but speak to a member of the teaching team if you are having any issues.

Available IDE

Visual Studio Code is installed on the laptops for you to use when writing/editing your Python ROS nodes. Launch VS Code from any terminal by simply typing code, or you could also launch it by clicking the icon in the favourites bar on the left-hand-side of the screen:

Working with the Robots

No catkin build!!

There is one key difference when working on the robots!

So far (in WSL-ROS), we've used catkin build to build our ROS packages, but this tool isn't installed on the robots! Instead, you'll need to use catkin_make.

In order for this to work however, you must be located in the root of the Catkin Workspace.

You'll therefore need to use the following combo-command to make this work:

$ cd ~/catkin_ws && catkin_make

It's always worth re-sourcing the environment after this:

$ source ~/.bashrc

(or using our src alias)

Safe Shutdown

The robots run an operating system (Ubuntu 20.04), so it's always good practice to shut this down properly when you're done working with the robot, rather than simply pulling the power.

  1. First, close down any active processes that are running on the robot by checking through any active ROBOT terminals and stopping any processes that are running using Ctrl+C.

  2. Then, shut down the robot by entering the following command in an ssh session running on the robot:

     $ off
    

    Enter the password when asked then wait for the "Connection to dia-waffleX closed" message.

Real Robot Lab Instructions:
[Next] 'Local' Deployment →

Clone this wiki locally