Turtlebot3 : ROS Based Mobile Robot

Configuring the Turtlebot3


1. The Raspberry-PI 3B board available with the Turtlebot3 has to be installed with some Linux based Operating System (OS).


2. I tried to install all the following OS but with no success (as given on the Turtlebot3 website):

Download TurtleBot3 SBC Image

       Download the correct image file for your hardware and ROS version.

       Melodic version images are created based on Ubuntu 18.04.

a.    Raspberry Pi 3B+ ROS1 Melodic image(Ubuntu 18.04 based)

SHA256 : 312e1a5ad78447b901ae401ba31b2aaf94c1c760bdcafc60e2312df14e342640

b.    Raspberry Pi 4B (2GB or 4GB) ROS1 Melodic image(Raspberry Pi OS based)

SHA256 : 73546c63d3056bfc5538acc187f54dab6c1601096df320e60e0842bcb1b03d34

 


3. I downloaded  Raspbian OS with Raspberry PI Imager (https://www.raspberrypi.org/software/) to prepare the Memory Card but all my efforts went in vain.  I downloaded the Raspbian OS from Raspberry website and tried to prepare the boot device (i.e. memory card). I was able to boot my system i.e. Raspberry board (connected with mouse, keyboard, Screen connected with HDMI cable) with the OS shown below. Unfortunately I was unable to install ROS Melodic or any ROS version into it.

  

4. I also installed Ubuntu Mate (https://ubuntu-mate.org/) into the Pi Board. Subsequently I tried to compile ROS Melodic from source, but no success.


5. Finally I installed OS provided by  Ubiquity Robotics (https://www.ubiquityrobotics.com/raspberry-pi-images/)  which has pre installed ROS Kinetic with it. Alhumdullillah this option worked for me. ROS Kinetic could not be installed initially due to the outdated keys. The keys have to be updated. (Please refer to https://answers.ros.org/question/325039/apt-update-fails-cannot-install-pkgs-key-not-working/)



6. When the Ubiquity Robotics OS come up, it is connected with its default WiFi. On a Pi3, the image comes up as a Wifi access point. The SSID is ubiquityrobotXXXX where XXXX is part of the MAC address. The wifi password is robotseverywhere. If you connect up a keyboard and mouse enter the password ubuntu at the prompt.  (https://www.ubiquityrobotics.com/raspberry-pi-images/).


7.   Once Pi Board is connected to default WiFi, it is possible to log into the Pi with ssh ubuntu@10.42.0.1 with a password of ubuntu. First we have to connect our remote PC to the WiFi of the Pi Board. When the Remote PC is connected  to ubiquityrobotXXXX WiFi, from the remote PC we can login to the Pi Board using  SSH service. The next step, is to change the default WiFi of Pi Board to our local WiFi.   


8.   One of major problems is that when the Turtlebot3 starts, it must be connected to the local WiFi network. We have to change the default setting of the Ubiquity Robotics OS installed on Pi Board. The procedure is given in detail on the webpage (https://learn.ubiquityrobotics.com/connect_network)


9. When the local WiFi is successfully added as the default using command : sudo pifi add MyNetwork password  and sudo reboot. When the next time the Pi Board starts it will be connected to the local WiFi.


10. The Single Board Computer (SBC) on Turtlebot3 is  connected  with Pi Board. All the drivers were installed successfully on SBC by issuing command using SSH (from the remote PC). I tested the SBC with the Push Button 1 and 2 i.e manual testing. Manual testing was perfect. Pi Board on Turtlebot3 is running.


11. After all these steps, I was faced with a dilemma. I have two different versions of ROS running. Ubiquity Robotics OS installed with ROS Kinetic weheras the remote PC i.e. my laptop was running Ubuntu 18.04 with ROS Melodic. ROS Master was running in my laptop. Although I was able to see all the topics published but I was unable to move the Turtlebot3 using teleopeartion commands as described  on the webpage

 (https://emanual.robotis.com/docs/en/platform/turtlebot3/basic_operation/)


12. Start roscore on the remote PC i.e. ROS Master. 

a) On Remote PC:

b) On Pi Board of Turtlebot3 using SSH from Remote PC: (ssh ubuntu@192.168.100.58, password 'ubuntu')