Debian Jessie ROS Install - Dependencies issues
Hi everyone !
I want to use ROS on a BeagleBone Black, so I used a microSD card to launch Debian Jessie on it (since I have Debian Jessie on my laptop and ROS Kinetic is supposed to be working on that distribution/version). Thing is, I can't get the BeagleBone online + even when I try to install ROS Kinetic on my laptop (which has an internet connection ...) using the steps presented here , I can't manage because of dependencies issues.
Those issues are linked to the packages mentioned below (in French but it's the typical package depency issue, with the "impossible to correct the problems, problematic packages are in "keep in that state" mode" :
Les paquets suivants contiennent des dépendances non satisfaites :
ros-kinetic-desktop-full : Dépend: ros-kinetic-desktop mais ne sera pas installé
Dépend: ros-kinetic-perception mais ne sera pas installé
Dépend: ros-kinetic-simulators mais ne sera pas installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état ».
I'm quite desperate and thinking of installing Ubuntu in a virtual machine to try other installation guidelines ^^'.
Thanks !
EDIT
This edit answers the suggestion of @gvdhoorn in the comments of my first answer to this post. Thanks to the post you linked, I tried installing rtabmap_ros the way you suggested, and it seems I still have an issue. Here is the install log:
**user@bluponnerie:~$** cd catkin_ws/src/
**user@bluponnerie:~/catkin_ws/src$** git clone https://github.com/introlab/rtabmap_ros.git
Cloning into 'rtabmap_ros'...
remote: Counting objects: 5646, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 5646 (delta 11), reused 12 (delta 3), pack-reused 5617
Receiving objects: 100% (5646/5646), 3.74 MiB | 1.37 MiB/s, done.
Resolving deltas: 100% (4200/4200), done.
**user@bluponnerie:~/catkin_ws/src$** cd ..
**user@bluponnerie:~/catkin_ws$** rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index.yaml
Add distro "groovy"
Add distro "hydro"
Add distro "indigo"
Add distro "jade"
Add distro "kinetic"
Add distro "lunar"
updated cache in /home/user/.ros/rosdep/sources.cache
**user@bluponnerie:~/catkin_ws$** rosdep install --from-paths src/ --ignore-src --rosdistro lunar
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rtabmap_ros: No definition of [octomap_ros] for OS version []
**user@bluponnerie:~/catkin_ws$** rosdep install --from-paths src/ --ignore-src --rosdistro lunar -r
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rtabmap_ros: No definition of [octomap_ros] for OS version []
Continuing to install resolvable dependencies...
#All required rosdeps installed successfully
**user@bluponnerie:~/catkin_ws$**
It seems octo_map can't be installed anyway
EDIT 2
After trying to apply the patch suggested by @gvdhoorn (see comment to my answer) in /usr/lib/python2.7/dist-packages/rospkg :
sudo vim os_detect.py
user@bluponnerie:/usr/lib/python2.7/dist-packages/rospkg$ cd ~/catkin_ws/
user@bluponnerie:~/catkin_ws$ rosdep install --from-paths src/ --ignore-src --rosdistro lunar -r
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rtabmap_ros: Cannot locate rosdep definition for [rtabmap]
Continuing to install resolvable dependencies...
executing command [sudo -H apt-get install ros-lunar-costmap-2d]
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package ros-lunar-costmap-2d
ERROR: the following rosdeps failed to install
apt: command [sudo -H apt-get install ros-lunar-costmap-2d] failed
apt: Failed to detect successful installation of [ros-lunar-costmap-2d]
That seems strange since costmap_2d is on lunar according to the wiki. It doesn't work either with sudo apt install ros-lunar-costmap-2d
Asked by Blupon on 2016-07-18 11:46:36 UTC
Answers
Well, I must admit I just gave up, and recently moved to Debian 9 (Stretch) on which I installed ROS Lunar. Still, it's not very handy and I have to work on Ubuntu to work with the ROS packages I need (which aren't available on Lunar...yet ?).
Asked by Blupon on 2017-07-19 02:58:52 UTC
Comments
Building ROS pkgs from source for Lunar is really not too difficult in most cases, especially not if they've been released / made available for Kinetic. See #q252478 for the case where dependencies are available through apt
. For those that are not, add their source to your workspace. ..
Asked by gvdhoorn on 2017-07-19 03:02:57 UTC
.. run rosdep check --from-paths src --ignore-src
. To make rosdep
continue after encountering something that cannot be found, add -r
to the command line options.
After that, catkin_make
or catkin build
, source devel/setup.bash
and you should be able to use the pkg.
Asked by gvdhoorn on 2017-07-19 03:03:41 UTC
@gvdhoorn I tried your suggestion with rtabmap_ros on Debian 9/Lunar, see the EDIT of my initial post for the result. Anyway thanks !
Asked by Blupon on 2017-07-19 06:34:28 UTC
... for OS version []
this is a problem. rosdep
can't detect your OS for some reason. Irrespective of whether octomap_ros
is released on Jessie, rosdep
will not work correctly without fixing that.
What is the output of python /usr/lib/python2.7/dist-packages/rospkg/os_detect.py
?
Asked by gvdhoorn on 2017-07-19 06:43:45 UTC
OS Name: debian OS Version: 9.0 OS Codename:
Asked by Blupon on 2017-07-19 06:44:46 UTC
the issue was removed by sudo apt install ros-lunar-octomap-ros, but now I have it for another package. I'm going to try to solve the depencies by hand if there isn't too many of them :/
Asked by Blupon on 2017-07-19 06:51:04 UTC
Well .. that is exactly what rosdep
is supposed to do for you, so personally I'd prefer to fix that first, as it can trip up other things later on.
Asked by gvdhoorn on 2017-07-19 06:53:35 UTC
Ah, it looks like Stretch just isn't recognised yet by rospkg
: os_detect.py.
Asked by gvdhoorn on 2017-07-19 07:01:43 UTC
Could you apply this patch to /usr/lib/python2.7/dist-packages/rospkg/os_detect.py
to see if that fixes things?
Asked by gvdhoorn on 2017-07-19 07:02:15 UTC
done, see EDIT 2 of my initial post.
Asked by Blupon on 2017-07-19 07:12:07 UTC
costmap_2d
is released into lunar, but not for Stretch apparently. Click on the Jenkins Jobs entry under Package Links (to the right), then look at the status for binary debian stretch amd64
. I don't know why, but it appears that pkg isn't building correctly on the farm for Stretch.
Asked by gvdhoorn on 2017-07-19 07:15:07 UTC
I'm sorry you're running into all this trouble btw.
If you feel up to it, you could try to build costmap_2d
from source, but you might fall into a rabbit hole there.
Notice also that rtabmap
itself is not available as a binary pkg.
Asked by gvdhoorn on 2017-07-19 07:17:19 UTC
From the log it looks like not such a big issue (search for recipe for
).
Asked by gvdhoorn on 2017-07-19 07:18:49 UTC
And it looks like that has already been fixed, see ros-planning/navigation#578. So a from-source build in your workspace should be possible.
But then you're still stuck with rtabmap
itself.
Asked by gvdhoorn on 2017-07-19 07:20:38 UTC
So I would need to apply those changes by hand to costmap_2d CMakeLists.txt ? Well, I'm just going to fall back to Kinetic on another unit, I feel too lost now. Thanks for your dedicated help though :-)
Asked by Blupon on 2017-07-19 07:32:47 UTC
No not by hand, and that PR is basically the same as #578 that I linked, just 'more elegant'.
But as I said, it might lead to some other rabbit hole.
Asked by gvdhoorn on 2017-07-19 07:35:26 UTC
At least rospkg
now correctly identifies Debian Stretch, so future users should not run into the same problems with rosdep
any more. See ros-infrastructure/rospkg#118.
Asked by gvdhoorn on 2017-07-19 10:07:35 UTC
happy to have participated in a constructive conversation ^^. Thanks to you !
Asked by Blupon on 2017-07-19 10:10:48 UTC
Comments
So just to be clear: is this an installation problem on your laptop (ie: x86 or amd64), or on your BBB?
Asked by gvdhoorn on 2016-07-18 11:51:41 UTC
In case it is a problem on your BBB: see Incomplete packages for kinetic armhf jessie.
Asked by gvdhoorn on 2016-07-18 11:52:19 UTC
this post is more about my laptop, so Debian Jessie 8.5 amd64
Asked by Blupon on 2016-07-18 11:59:21 UTC