ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Not an answer as this won't fix your problem but will provide context on why it is failing.

ROS Kinetic doesn't have any binary packages for Debian Stretch (and you are using Raspbian 9 Stretch), this is why rosdep cannot resolve them. There is no version of ROS providing packages for Raspbian 32bits so you need to either build ROS from source or use images built by someone.

Usually to get the sources of the missing packages to compile, I would use the tool rosinstall_generator. Unfortunately in your case the create_autonomy package has not been released for Kinetic or any other distro so the tool cannot find it.

Not an answer as this won't fix your problem but will provide context on why it is failing.

ROS Kinetic doesn't have any binary packages for Debian Stretch (and you are using Raspbian 9 Stretch), this is why rosdep cannot resolve them. There is no version of ROS providing packages for Raspbian 32bits so you need to either build ROS from source or use images built by someone.

Usually to get the sources of the missing packages to compile, I would use the tool rosinstall_generator. Unfortunately in your case the create_autonomy package has not been released for Kinetic or any other distro so the tool cannot find it.

Edit:

Disclaimer:

  • Hacky way to solve the problem
  • Not tested for this issue, but I tried something similar on a RaspberryPi 2 running Raspbian 10 and ROS Melodic and it worked

The idea is to:

  1. trick rosdep into giving us a list of apt-get install ros-kinetic-... commands for your dependencies
  2. convert them into ROS package names [...] apt-get install ros-kinetic-my-package -> my_package
  3. pass that list of packages to rosinstall_generator to get the list of repos to build from source
  4. clone them
  5. install any missing system dependency
  6. build the ROS packages

Setup:

source <YOUR_ROS_INSTALLATION>/setup.bash
mkdir -p ~/create_autonomy_ws/src && cd ~/create_autonomy_ws/src
git clone https://github.com/AutonomyLab/create_autonomy 
mkdir -p ~/create_autonomy_dependencies_ws/src
cd ~/create_autonomy_ws/

(1) While Debian didnt seen any armhf packages, some other distros did e.g. Ubuntu Xenial. We will use --os ubuntu:xenial and also --simulate for rosdep to just give us the list of install commands.

rosdep install --from-paths src --ignore-src --rosdistro kinetic -y --os=ubuntu:xenial --simulate

We will keep only the lines with "ros-kinetic" in them and store them in a temporary file

rosdep install --from-paths src --ignore-src --rosdistro kinetic -y --os=ubuntu:xenial --simulate | grep ros-kinetic > rosdep_output

(2) convert [...] apt-get installros-kinetic-my-packagetomy_package`

To convert we want to keep everything after ros-kinetic- (here my-package) and then convert - to _

sed -e 's#.*ros-kinetic-\(\)#\1#' rosdep_output | sed 's/-/_/g' > pkg_list

(3)

rosinstall_generator `cat pkg_list` --deps --tar --exclude RPP --rosdistro kinetic > ~/create_autonomy_dependencies_ws/deps_to_build.rosinstall

(4)

cd ~/create_autonomy_dependencies_ws/
wstool init -j4 src deps_to_build.rosinstall

(5)

rosdep install --from-paths src --ignore-src --rosdistro kinetic -y

(6)

catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release -DCATKIN_ENABLE_TESTING=OFF -j2

(7) source the resulting workspace

source ~/create_autonomy_dependencies_ws/install_isolated/setup.bash

(8) build the create_autonomy workspace

cd ~/create_autonomy_ws/
catkin_make install

(9) delete temp files

rm ~/create_autonomy_dependencies_ws/deps_to_build.rosinstall ~/create_autonomy_ws/rosdep_output ~/create_autonomy_ws/pkg_list