Differences between revisions 44 and 47 (spanning 3 versions)
Revision 44 as of 2016-03-24 12:13:03
Size: 4241
Editor: ?BenediktWildenhain
Comment: fixed CI links
Revision 47 as of 2022-01-28 10:11:51
Size: 2668
Editor: ?LeopoldPalomo
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Installation instruction to install ROS on Debian. Robot Operating System (ROS or ros) is an open-source robotics middleware suite. Although ROS is not an operating system but a collection of software frameworks for robot software development, it provides services designed for a heterogeneous computer cluster such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management [[[https://en.wikipedia.org/wiki/Robot_Operating_System| Wikipedia]]. ROS has two main versions: ROS1 and ROS2.
Line 3: Line 3:
[[DebianScience/Robotics/ROS/Todo|TODO]]

[[DebianScience/Robotics/ROS/Development|How to help]]

[[DebianScience/Robotics/ROS/Motivation|Motivation]]

[[DebianScience/Robotics/ROS/Packages|Status of Packages]]

[[https://anonscm.debian.org/cgit/debian-science/packages/ros|source repos]]

[[http://build.osrfoundation.org/job/ros_debian_science-ci-default-jessie-amd64/|continuous integration Debian Jessie]]
[[http://build.osrfoundation.org/job/ros_debian_science-ci-default-sid-amd64/|continuous integration Debian Sid]]
[[http://build.osrfoundation.org/job/ros_debian_science-ci-default-trusty-amd64/|continuous integration Ubuntu Trusty]]

=== Repos (containing ROS core and more) ===

{{{#!wiki solid/blue
We have changed the version scheme in our binary repos. If you installed ROS before 20150929 please downgrade all packages to the current versions.
}}}

We have a repo (jessie-robotics and the packages not uploaded to unstable) kindly hosted by Institute of Industrial and Control Engineering
at UPC in sir.upc.edu. This repo has the packages signed by 63DE76AC0B6779BF. To use it is recommended to add its key:

{{{#!highlight bash
sudo apt-key adv --keyserver sks-keyservers.net --recv-keys 63DE76AC0B6779BF
or
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 63DE76AC0B6779BF
}}}

to use with

Debian Stretch/Sid:

Packages are upload to official Debian distribution. Packages not yet uploaded could be obtained in platform amd64 at sir.upc.edu:

{{{#!highlight bash
sudo sh -c 'echo "deb http://sir.upc.edu/debian-robotics unstable main" > /etc/apt/sources.list.d/debian-robotics.list'
}}}
ROS is released as distributions, also called “distros”, with more than one ROS distribution supported at a time. Check upstream [[ http://www.ros.org | web ]] for more information. This framework consists of about 1600 packages or projects that give a myriad of benefits for those of us who work in the field of robotics.
Line 43: Line 6:
Debian Jessie (amd64): == ROS1 installation ==
Line 45: Line 8:
We have backported all the officially packages in the Debian distribution plus the missing ones not yet uploaded. We have built packages for amd64, i386 and armhf. If you want to install ROS1 in a Debian box you have a few options. The official [[http://wiki.ros.org/noetic/Installation|ROS page]] shows that the platforms supported are:
Line 47: Line 10:
{{{#!highlight bash
sudo sh -c 'echo "deb http://sir.upc.edu/debian-robotics jessie-robotics main" > /etc/apt/sources.list.d/debian-robotics.list'
}}}
 * Ubuntu Focal amd64 armhf arm64
 * Debian Buster amd64 arm64
Line 51: Line 13:
The rest of the platforms are experimental.
Line 52: Line 15:
Ubuntu Trusty: The packages they provide are self-generated and do not feet most the rules of the Debian project. Each package, for [[ https://github.com/ros-visualization/qt_gui_core/tree/melodic-devel/qt_gui |example]], contains a package.xml file that among other things, it contains what its dependencies are for, to build and to run the package. Upstream provides a tool [[ http://wiki.ros.org/bloom | python3-bloom ]] , that it is in the [[ https://packages.debian.org/bullseye/python3-bloom | archive]] which generates a debian directory with necessary files to run debuild from that debian directory. It's a rudimentary package that for example, provides the *.pyc files!!.
Line 54: Line 17:
We have some packages from amd64, i386 and armhf for Ubuntu Trusty at launchpad. If you are running Debian Buster that is a possible option. Another option is to use the [[ https://wiki.debian.org/DebianScience/Robotics/ROS/DebianPackages | native packages ]] and complete the rest as is mentioned [[ https://wiki.debian.org/DebianScience/Robotics/ROS/OnBuster | here ]]. In case you are running Bullseye or Testing/Unstable you cannot use Upstream packages. You have these options:
Line 56: Line 19:
[[https://launchpad.net/~deb-rob/+archive/ubuntu/ros-trusty|Ubuntu Trusty]]:
{{{#!highlight bash
sudo add-apt-repository ppa:deb-rob/ros-trusty
}}}
 * [[ http://wiki.ros.org/noetic/Installation/Source | Install from sources.]]
 * Run an almost complete set of the main core packaged in Debian [[https://wiki.debian.org/DebianScience/Robotics/ROS/DebianPackages ]].
 * Use [[ | Debian for Robotics packages ]] and [[https://salsa.debian.org/robotics-team/ros4debian | ros4debian ]] to have an almost complete installation.
Line 61: Line 23:
=== Compile the rest of desktop-full ===

In Debian Unstable all the dependencies are there. For Jessie, we had to backported some libraries to have the same version than Unstable:

 * assimp
 * log4cxx
 * gazebo (6.5)
 * orocos-kdl
 * collada-dom
 * ompl
 * fcl
 * ignition-math2
 * sdformat

Installing the needed packages:

{{{#!highlight bash
sudo apt-get update
sudo apt-get install ros-desktop-full-dev libros-filters-plugins-dev
}}}

Compile the rest. First download the list of missing packages: [[attachment:jade-debian-desktop-full-missing-packages_20160216.rosinstall]]

{{{#!highlight bash
mkdir ~/ros
cd ~/ros
wstool init -j8 src jade-debian-desktop-full-missing-packages_20160216.rosinstall
catkin_make_isolated --install
}}}

To use the local ROS workspace:
{{{#!highlight bash
echo "source ~/ros/install_isolated/setup.bash" >> ~/.bashrc
source ~/ros/install_isolated/setup.bash
}}}

and after, you can create you catkin_ws and use catkin_make with you own
workspaces.


=== Notes for the jessie-robotics repo ===

Our target has been always ros-full-desktop but we have package some interesting packages like ros-realtime-tools, ros-control-toolbox, ros-ros-control. There are users that are using this repo for armhf. If you are one of them, and you are using packages from https://rcn-ee.com , be careful because you can have a collision between packages. Our recommendation is by now is to make pinning from packages hosted in sir.upc.edu over rcn-ee.com. To do that:

{{{#!highlight bash
sudo sh -c 'cat > /etc/apt/preferences.d/jesse-robotics-700 <<EOL
# prefer jessie-robotics stream over rcn-ee jessie which would be default prio (500)

Package: *
Pin: release a=jessie-robotics
Pin-Priority: 700
EOL'
}}}


Please, tell us is all if you are using the packages by the debian-science list of a mail directly to the Uploaders of the ros packages.
== ROS2 installation ==

Robot Operating System (ROS or ros) is an open-source robotics middleware suite. Although ROS is not an operating system but a collection of software frameworks for robot software development, it provides services designed for a heterogeneous computer cluster such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management ?Wikipedia. ROS has two main versions: ROS1 and ROS2.

ROS is released as distributions, also called “distros”, with more than one ROS distribution supported at a time. Check upstream web for more information. This framework consists of about 1600 packages or projects that give a myriad of benefits for those of us who work in the field of robotics.

ROS1 installation

If you want to install ROS1 in a Debian box you have a few options. The official ROS page shows that the platforms supported are:

  • Ubuntu Focal amd64 armhf arm64
  • Debian Buster amd64 arm64

The rest of the platforms are experimental.

The packages they provide are self-generated and do not feet most the rules of the Debian project. Each package, for example, contains a package.xml file that among other things, it contains what its dependencies are for, to build and to run the package. Upstream provides a tool python3-bloom , that it is in the archive which generates a debian directory with necessary files to run debuild from that debian directory. It's a rudimentary package that for example, provides the *.pyc files!!.

If you are running Debian Buster that is a possible option. Another option is to use the native packages and complete the rest as is mentioned here. In case you are running Bullseye or Testing/Unstable you cannot use Upstream packages. You have these options:

ROS2 installation