Skip to content

Installation for ROS Noetic

Martin Pecka edited this page Dec 9, 2024 · 3 revisions

This is a WIP tutorial. If you face issues, please report them.

Installing Linux and SubT from Scratch on Ubuntu 20.04 & ROS Noetic

Install Ubuntu 20.04 LTS

Install Graphics Drives:

sudo ubuntu-drivers autoinstall

Install Simulator

sudo apt-get update && sudo apt-get install lsb-release wget

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null

sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg

sudo apt-get update

sudo apt-get -y install build-essential cmake libusb-dev libccd-dev libfcl-dev pkg-config python3 ignition-fortress ros-noetic-desktop \\
ros-noetic-tf2-sensor-msgs ros-noetic-robot-localization ros-noetic-ros-control ros-noetic-control-toolbox ros-noetic-twist-mux ros-noetic-joy \\
python3-vcstool python3-colcon-common-extensions git python3-rosdep ros-noetic-image-transport-plugins ros-noetic-pcl-ros pcl-tools libpcl-conversions-dev python3-catkin-tools

sudo apt-get upgrade

sudo rosdep init && rosdep update

Setup the workspace

mkdir -p ~/subt_ws/src && cd ~/subt_ws/src

git clone https://github.com/osrf/subt -b fortress-noetic

git clone https://github.com/ignitionrobotics/ros_ign -b noetic

git clone -n --depth=1 –filter=tree:0 https://github.com/ethz-asl/rotors_simulator && cd rotors_simulator && git sparse-checkout set --no-cone rotors_control && git checkout && cd ..

git clone https://github.com/ethz-asl/mav_comm

Fix tracked vehicles and wheel slip

git clone https://github.com/gazebo-forks/dart -b release-6.10

mkdir dart/build

cd dart/build

sudo apt install coinor-libipopt-dev libnlopt-cxx-dev

cmake .. -DCMAKE_INSTALL_PREFIX=/opt/dart6.10 -DCMAKE_BUILD_TYPE=Release

make -j12 && sudo make -j12 install

cd ../..

git clone https://github.com/gazebosim/gz-physics -b ign-physics5

mkdir gz-physics/build

cd gz-physics/build

CMAKE_PREFIX_PATH=/opt/dart6.10/share/dart/cmake:$CMAKE_PREFIX_PATH cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ign-physics5 -DCMAKE_BUILD_TYPE=RelWithDebInfo

make -j12 && sudo make -j12 install

# Now this is ugly hack but there is no way to convince gz::common::SystemPaths to prefer a custom engine named the same as a    preinstalled one.

sudo ln -sf /opt/ign-physics5/lib/ign-physics-5/engine-plugins/libignition-physics-dartsim-plugin.so /usr/lib/x86_64-linux-gnu/ign-physics-5/engine-plugins/libignition-physics-dartsim-plugin.so

echo 'export LD_LIBRARY_PATH=/opt/ign-physics5/lib:/opt/dart6.10/lib:$LD_LIBRARY_PATH' >> ~/.bashrc

**After -- **

# Source ROS distro's setup.bash**

source /opt/ros/noetic/setup.bash

# Build and install into workspace

 cd ~/subt_ws/

 export IGNITION_VERSION=fortress

 rosdep install --from-paths src --ignore-src -r

 catkin init

 catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

 catkin config --install --extend /opt/ros/noetic

 catkin build

Rest of Simulator

Fuel Files

Create model cache symlink from the new address of Fuel server to the old one:

mkdir -p ~/.ignition/fuel
rm -rf ~/.ignition/fuel/fuel.ignitionrobotics.org
ln -s ~/.ignition/fuel/fuel.gazebosim.org ~/.ignition/fuel/fuel.ignitionrobotics.org

Downloaded using

ign fuel download -v 4 -j 8 --type model -u "https://fuel.gazebosim.org/OpenRobotics/collections/SubT Tech Repo"

**Solving the error: **

../src/intel/isl/isl.c:2105: FINISHME:
../src/intel/isl/isl.c:isl_surf_supports_ccs: CCS for 3D textures is disabled, but a workaround is available.

.

# Update Mesa driver

# sudo add-apt-repository ppa:kisak/turtle

# sudo apt dist-upgrade

Upgrade kernel to get newest Intel GPU drivers (doesn't work with nvidia GPUs)

cd ~

git clone https://github.com/peci1/kumk/ -b devel

sudo kumk/kumk install 6.8.7 # or any other recently released kernel version; do not use 'latest' -- it doesn't work anymore

reboot and look into dmesg to see if you're not missing some firmware... if you do, download it from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 into folder /lib/firmware/i915/

Clone this wiki locally