====== TortugaBot ROS 1 Noetic on Ubuntu 20.04 ======
This page has been moved from [[software:tortugabot|TortugaBot]] in Dec 22.
For ROS 2, go to the [[software:tortugabot_ros2|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 ====
* [[https://releases.ubuntu.com/focal/|Ubuntu 20.04 (focal fossa)]]
* Hit F12 to reach the boot menu, and select the USB pen drive.
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 ====
* [[http://wiki.ros.org/noetic/Installation/Ubuntu|ROS Noetic]]
==== 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.
{{:software:hokuyo_setup.png?800|}}
==== DS3 Controller Bluetooth Setup ====
The controller can be set up via cable-pairing.
- Enable Bluetooth on the laptop and keep the Bluetooth settings open.
- Connect the controller via Mini-USB with the laptop
- On the controller, the four red light should now blink.
- A popup will ask for permission to pair. Accept.
- Unplug the controller
- Press the PS button between Start and Select
- LED 1 should now continuously glow on the controller
- 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
* [[https://github.com/code-iai/roboclaw_ros|Roboclaw node]]
* [[https://github.com/code-iai/tortugabot|Tortugabot Bringup]]
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 |