Skip to content

ICE9-Robotics/ROS-for-Steam-Deck-OLED

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 

Repository files navigation

Table of Contents

foxglove_on_steamdeck.jpeg

ROS-for-Steam-Deck-OLED

All we know about using Steam Deck OLED (SDO) for ROS.

Native Ubuntu installation

OLED does not support Ubuntu, at least none of the LTS versions from 16.04 to 22.04. After unsuccessful attempts of installing Ubuntu on SDO, we resolve to relying on the original SteamOS which is a modified Arch Linux system.

Prepare SteamOS

  1. Set a root password
passwd
  1. Disable read only file system
steamos-readonly disable
  1. Configue pacman
sudo pacman-key --init
sudo pacman-key --populate archlinux
  1. Trust all signiture This is a dangerous move but it seems there is no other way around (I am not an expert in Linux though). Without trust all package signitures, you can't use pacman to install anything. Just be careful with what you are installing.

This can be done by setting SigLevel to TrustAll in /etc/pacman.conf.

sudo sed 's/SigLevel.*/SigLevel = TrustAll/g;' /etc/pacman.conf
  1. (optional) Install VS code
sudo pacman -Sy code
  1. (optional) Install Yay The latest Yay (12.3.5 at the time of writing) does not work with SteamOS. Instead, we can use 12.3.1.
git clone https://aur.archlinux.org/yay.git
cd yay
git checkout 17f4503492f5070ebcca58743144773c89099dff
git show -s --format=%s HEAD # make sure it says 12.3.1
makepkg -si
  1. (optional) Boot straight into desktop
/usr/bin/steamos-session-select plasma-wayland-persistent

To reverse it

/usr/bin/steamos-session-select gamescope

ROS and ROS2

You have at least two options to run ROS/ROS2 on SteamOS: 1. a native installation and 2. a stack envrionment using conda. We prefer the second approach as it is safe and flexible.

1. Native installation

Warning: your milage may vary, especially after Arch linux and/or SteamOS update.

We have successfully installed ROS2 humble using yay:

yay ros2-humble -S

We have not had success with ROS1 noetic however.

2. Robostack

Robostack is a bundling of ROS packages for various operating system using the conda package manager. It provides an easy approach to install ROS on non-natively supported OS, including SteamOS. Currently Robostack only support ROS1 noetic and ROS2 humble. Details can be found on their website.

First we need to install miniconda

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh

Next, you can follow the steps on Robostack/GettingStarted. For sake of completion, I have included an example of installing ROS Noetic.

  1. Install mamba
conda install mamba -c conda-forge
  1. Create and configure a ROS environment
mamba create -n noetic_env
mamba activate noetic_env

# this adds the conda-forge channel to the new created environment configuration 
conda config --env --add channels conda-forge
# and the robostack channel
conda config --env --add channels robostack-staging
# remove the defaults channel just in case, this might return an error if it is not in the list which is ok
conda config --env --remove channels defaults
  1. Install ROS noetic
mamba install ros-noetic-desktop
  1. Re-activate the environment to initialise ROS.
mamba deactivate
mamba activate noetic_env

That's it.

Using Robostack ROS

You need to first activate the envrionment.

mamba activate noetic_env

After this, you can source your workspace, export ROS_MASTER_URI etc., and use ROS commands as if you were using Ubuntu, e.g. roscore, roslaunch, etc. Graphics interfaces such as rviz and rqt also work well.

ROS packages

There are a limited number of packages that can be directly installed. You can find a list of packages on their website, e.g. Available Packages/ROS1 Noetic. Note that new packages will be added over time.

To install packages:

mamba install ros-noetic-velodyne

To update:

mamba update --all

You can also use catkin_make to build and install any unlisted packages like what you do in Ubuntu.

Foxglove Studio

Foxglove Studio is a visulisation tool that can be used instead of RVIZ and with the added benefit of not requiring any ROS installation or envrionment. Unless you plan to use the software in a large team with a lot of teamwise co-operation, it is free-of-charge.

The latest Foxglove package, at the time of writing, is outdated. To install the latest version (2.0.1):

mkdir foxglove-studio-bin
cd foxglove-studio-bin
wget https://raw.githubusercontent.com/ICE9-Robotics/ROS-for-Steam-Deck-OLED/main/files/pkgbuild_foxglove -O PKGBUILD
makepkg -si

Table of contents generated with markdown-toc

About

All we know about using Steam Deck OLED for ROS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published