Table of Contents

TortugaBot ROS 1 Noetic on Ubuntu 20.04

This page has been moved from TortugaBot in Dec 22.

For ROS 2, go to the ROS2 Jazzy on Ubuntu 24.04 Install.

Those little robots look like a hamburger, or an autonomous vacuum cleaner. It drives on four wheels, of which the left and right are motorized and controlled via RoboClaw, and it's using a Hukuyo LIDAR for orientation.

Setup

User lispcourse

Passwd 10293847

This is the setup for the laptop that sits and stays on the Turtlebot. Each Turtle has a number, corresponding to a specific laptop, charger cable and a PlayStation DS3 remote joy controller. A pair of lithium-ion batteries provide power to the LIDAR, wheel motors and RoboClaw. The Laptop is attached via LAN to the Hukuyo and via USB to the RoboClaw controller. The DS3 controller is paired with the Laptop for teleoperation.

Ubuntu install and Grub

These e485 laptops have some weird hardware. When booting into Ubuntu, the GRUB needs some extra parameters. Get into the GRUB menu on boot by hitting the ESC key before Ubuntu would launch. When the GRUN terminal is showing, type normal, hit RET (and sometimes ESC) to get back to the normal menu. When installing Ubuntu, select Ubuntu and hit e to edit the GRUB parameters on boot. Look for the variable GRUB_CMDLINE_LINUX_DEFAULT and add

ivrs_ioapic[32]=00:14.0 spec_store_bypass_disable=prctl

Then install Ubuntu. After that is done and Ubuntu boots from the disk instead of the USB drive, go into the GRUB menu again and add the parameters to the line that contains quiet splash and the end. Now that Ubuntu is booted up, edit the file /etc/default/grub with root rights and add these parameters to the GRUB_CMDLINE_LINUX_DEFAULT variable. Finally, update your GRUB config to make these parameters permanent with

sudo update-grub

Install ROS

Tortugabot WiFi setup

Use the network 'tortugabot' to get internet and a local WiFi. Ask a colleague for the password. The WiFi is available nearby the robot labs.

Hokuyo LAN Config

When connecting the Hokuyo laser sensor via LAN, the connection must be configured manually. This way, the laptop can directly communicate with the LIDAR. Connect the Battery to the Tortugabot to give power to the Hokuyo LIDAR, then connect it via LAN to this laptop. Open Wired Settings and configure the profile. Set IPv4 to Manual and give it an IP and Submask.

DS3 Controller Bluetooth Setup

The controller can be set up via cable-pairing.

  1. Enable Bluetooth on the laptop and keep the Bluetooth settings open.
  2. Connect the controller via Mini-USB with the laptop
  3. On the controller, the four red light should now blink.
  4. A popup will ask for permission to pair. Accept.
  5. Unplug the controller
  6. Press the PS button between Start and Select
  7. LED 1 should now continuously glow on the controller
  8. Bluetooth settings show the paired DS3 controller.

Roboclaw connection permission

Roboclaw complains that you don't have the permission to open 'ttyACM0'. The connection to Roboclaw is only permitted for users who are in the 'dialout' group. Add your user like this:

sudo adduser $USER dialout

Then reboot your PC.

IP Setup

The laptop will sit on the Turtle and drive around. The laptop runs the ROS_MASTER and gets its commands from another machine, that is in the same WiFi network. To set up the IP right, set it to the IP from the WiFi you want to use it in.

Get your current IP from the correct interface, the one that's connected to the WiFi.

ip a
# This goes into the .bashrc
export ROS_IP='192.168.101.123'  # replace this with your IP
export ROS_MASTER_URI="http://$ROS_IP:11311"
export ROS_HOSTNAME=$ROS_IP

Workspace Setup

Create a workspace in the home folder and and the repositories for the Roboclaw and Tortugabot to it.

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src/
git clone --branch noetic https://github.com/code-iai/roboclaw_ros.git
git clone https://github.com/code-iai/tortugabot.git
cd ..
rosdep install --from-paths --ignore-src src/
catkin_make
source devel/setup.bash

Put that last line into ~/.bashrc

echo "source ~/ros_ws/devel/setup.bash" >> ~/.bashrc

For the RoboClaw driver we need an additional package:

sudo apt install python3-serial python-is-python3

To launch the drivers for base, teleoperation and LIDAR, use the launchfile in tortugabot_bringup

roslaunch tortugabot_bringup base_and_joy_and_laser.launch 

For localization we use Adaptive Monte Carlo Localization. It also launches the map server.

roslaunch tortugabot_bringup amcl.launch

When it all works, check out the map, laser scan and TF in RViz.

Foreign control

Install and use a move-base action server.

sudo apt install ros-noetic-move-base ros-noetic-dwa-local-planner
roslaunch tortugabot_bringup move_base.launch

With the base + joy + laser, AMCL and the move_base action server running, you can send 2D Nav Goals via RViz.

Inventory List

All parts are in the 1st floor kitchen lab.

Item Details
Tortugabot Robot 1-6 1 has no LIDAR, 2 has inverted motors, 6 has Roboclaw issues
Tortugabot Laptops 1-6 last charged: 10.02.23. Laptop 6 in use by Arthur, Bundle 4 is in use by Philip (Pkehr@uni-bremen.de)
Laptops 1-5 have Ubuntu 20 + 24 dual-boot, 5 also has 22
Laptop Charger Cables 2-6 Cable for 1 has Michael B.
PS3 controller 1-5 Controller for 6 missing
Mini USB cable x5
LiPo Battery x3 last charged: 10.02.23
LiPo Charger
LiHD Battery x3 last charged: 10.02.23
LiHD Charger
Power plug extension 6-slot x4
Access Point Get the access point from IT