Setup
=====
Ubuntu Operating System
--------------------------------------
You will need a laptop that can boot `Ubuntu 22.04 `_. You can also choose to dual boot your current Windows computer,
i.e. have both Windows and Ubuntu installed on the same hard drive. It is recommended to have some knowledge of how operating systems are stored on the hard drive
before doing this.
.. warning:: Using a Virtual Machine is not recommended. The ROS 2 middleware relies on network communications for which a Virtual Machine must be correctly configured to allow.
If you're looking for a used computer, check out the `UF Surplus website `_.
For a more detailed instructions on installation, go to the :doc:`Installing Ubuntu page <./installingubuntu>`.
Common Issues
^^^^^^^^^^^^^
* Disable RST - Many manufacturers now put your storage into RAID mode instead of the standard AHCI mode. You can switch this in your BIOS, but there is a risk of bricking your Windows installation. We can install Ubuntu on a usb drive for you, you will need to have a minimum of a 128 GB drive.
* Disable Secure Boot - You can disable secure boot from your computers bios, should be under security or boot settings.
* Can't Boot into Bootable Drive - You've likely not created your bootable disk properly, if this problem persists, see the TA's, they have bootable drives available for use.
Python Installation and Required Packages
-----------------------------------------------------
For some of our packages you may require certain extra packages. This section will take you through all the required packages.
Please run the following commands first before doing anything else.
.. code-block:: bash
sudo apt update && sudo apt upgrade
First ensure python3 and pip are installed. This can be done through the following commands:
Python & pip
^^^^^^^^^^^^
.. code-block:: bash
sudo apt install python3
.. code-block:: bash
sudo apt install python3-pip
NumPy
^^^^^
You will also need NumPy for various things. They have arrays, array operations, etc. and are useful for efficient computing.
.. code-block:: bash
pip3 install numpy
UTM Converter
^^^^^^^^^^^^^
We use a python installed UTM converter to convert from the Latitude and Longitude coordinates that we get from the GPS to UTM Easting and Northing coordinates.
.. code-block:: bash
pip3 install utm
ROS 2 Installation and Configuration from Debian Packages
---------------------------------------------------------
These installation instructions are a direct copy from `ROS 2 Humble's installation page `_
To install ROS 2 through debian packages is quite simple, if you wish to install through binary packages or build from source you can find those instructions on the ROS 2 Humble documentation website.
.. warning:: If you install ROS 2 Humble through building from source, we will provide no support or help for any issues you run into. The issues can be so varied and it is difficult to be informed on all of them.
Setup Sources
^^^^^^^^^^^^^
You will need to add the ROS 2 apt repositories to your system. First ensure that the Ubuntu Universe repository is enabled:
.. code-block:: bash
sudo apt install software-properties-common
sudo add-apt-repository universe
Install curl (if it is not already installed):
.. code-block:: bash
sudo apt update && sudo apt install curl -y
Add the ros2-apt-source package:
.. code-block:: bash
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
sudo dpkg -i /tmp/ros2-apt-source.deb
Install ROS 2
^^^^^^^^^^^^^
Update your APT repository cache after setting up your repositories.
.. code-block:: bash
sudo apt update
ROS 2 packages are built on frequently updated Ubuntu systems. It is always recommended that you ensure your system is up to date before installing new packages.
.. code-block:: bash
sudo apt upgrade
Desktop Install: ROS, RViz, demos, tutorials.
.. code-block:: bash
sudo apt install ros-humble-desktop
Install Colcon.
.. code-block:: bash
sudo apt install python3-colcon-common-extensions
Install Ackermann messages:
.. code-block:: bash
sudo apt install ros-humble-ackermann-msgs
Configuring the terminal (Recommended)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you want ROS 2 to be sourced everytime you open a terminal, run the following command:
.. code-block:: bash
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc