Ubuntu installation
In order to run the public simulation of TIAGo OMNI Base it is preferable to get a fresh installation of Ubuntu 18.04.2 LTS as follows
- wget http://releases.ubuntu.com/18.04/ubuntu-18.04.2-desktop-amd64.iso 
Use this ISO to install a fresh Ubuntu OS in your development computer. Afterwards, you can proceed installing ROS as explained in the next section.
ROS installation
Set up ROS packages sources
In order to install the required ROS packages for running TIAGo OMNI Base simulation first, as explained in ROS Melodic installation, it is required to include packages.ros.org in the debian sources:
- sudo apt update sudo apt install lsb-release # if you haven't already installed lsb-release sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 
The set up the required keys to access the debian sources:
- sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 
In case of getting a gpg: keyserver timed out error try the following:
- sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 
ROS packages installation
install use the following instruction
- sudo apt-get update sudo apt-get install git python-rosinstall ros-melodic-desktop-full python-catkin-tools ros-melodic-joint-state-controller ros-melodic-twist-mux ros-melodic-ompl ros-melodic-controller-manager ros-melodic-joy ros-melodic-joy-teleop ros-melodic-teleop-tools ros-melodic-control-toolbox ros-melodic-sound-play ros-melodic-navigation ros-melodic-eband-local-planner ros-melodic-depthimage-to-laserscan ros-melodic-openslam-gmapping ros-melodic-gmapping ros-melodic-moveit-commander wget 
Append the following command to ~/.bashrc to allow any console to use the catkin commands
- source /opt/ros/melodic/setup.bash 
Source-based installation
Currently, source-based installation is provided.
These instructions assume that you are comfortable with ROS and the catkin build system. Please familiarize yourself using the ROS and catkin tutorials.
First of all open a terminal and create an empty workspace:
- mkdir ~/omni_base_public_ws cd ~/omni_base_public_ws 
Then run the following instruction in order to download the common_public-melodic.rosinstall, omni_base_public-melodic.rosinstall and clone all the required repositories within the workspace:
- wget https://raw.githubusercontent.com/pal-robotics/pal_mobile_base_docker/melodic-devel/common_public-melodic.rosinstall wget https://raw.githubusercontent.com/pal-robotics/omni_base_tutorials/melodic-devel/omni_base_public-melodic.rosinstall rosinstall src /opt/ros/melodic common_public-melodic.rosinstall rosinstall src /opt/ros/melodic omni_base_public-melodic.rosinstall 
Then run this command to make sure that all dependencies are installed.
- sudo rosdep init rosdep update 
Then you may run the following instruction to make sure that all dependencies referenced in the workspace are installed
- rosdep install -y --from-paths src --ignore-src --rosdistro melodic --skip-keys "pal_gazebo_plugins speed_limit_node sensor_to_cloud pmb2_rgbd_sensors pal_vo_server pal_karto pal_usb_utils pal_local_planner pal_filters hokuyo_node rrbot_launch robot_pose pal_pcl pal-orbbec-openni2 slam_toolbox omni_drive_controller pal_loc_measure pal_map_manager" 
Then, you may proceed building the workspace:
- source /opt/ros/melodic/setup.bash catkin build -DCATKIN_ENABLE_TESTING=0 -j $(expr `nproc` / 2) 
Once you compiled all packages and source the environment (source ~/tiago_omni_base_public_ws/devel/setup.bash) and it's all ready to go.
