0
$\begingroup$

Rosanswers logo

I have installed ROS Kinetic (ROS-Comm: (recommended) ROS package, build, and communication libraries. No GUI tools.) in Raspbian Stretch.

I have already built and run few ROS packages on Ubuntu successfully on my Robot. Now I need to migrate those packages to Raspbian Stretch based ROS. The ROS that I installed in Ubuntu is Melodic. So I might be getting some compatibility issues as I am running ROS Kinetic in Raspbian Stretch. So while I am using the

catkin_make_isolated --force-cmake

command, I constantly get errors like "Failed to process the package" for different packages like geometric_shapes, move_base_msgs, robot_pose_ekf and the list goes on. I think one of the reason might be that I have installed ROS-Comm that has no GUI Tools, but if that is the case then I do not know how to figure it out whether any particular package is linked to GUI or not.

As I am just a beginner, I am giving the names of the packages that are failing to be processed:

  1. geometric_shapes
  2. navigation
  3. navigation_msgs
  4. robot_pose_ekf
  5. rosserial

I am eagerly seeking some reference to work on ROS with Raspberry Pi, but I could not find any. If anyone can help me, I would be grateful.

Shaunak


Edit: Ok. I tried just copying the Packages (without compilation) to Raspberry Pi and compile them, but the errors remain. For example currently I am getting the following error text while processing the pacakge "tf2_msgs" during compilation:

 CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package):
  Could not find a package configuration file provided by "geometry_msgs"
  with any of the following names:

    geometry_msgsConfig.cmake
    geometry_msgs-config.cmake

  Add the installation prefix of "geometry_msgs" to CMAKE_PREFIX_PATH or set
  "geometry_msgs_DIR" to a directory containing one of the above files.  If
  "geometry_msgs" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  CMakeLists.txt:4 (find_package)


-- Could not find the required component 'geometry_msgs'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found.
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "geometry_msgs"
  with any of the following names:

    geometry_msgsConfig.cmake
    geometry_msgs-config.cmake

  Add the installation prefix of "geometry_msgs" to CMAKE_PREFIX_PATH or set
  "geometry_msgs_DIR" to a directory containing one of the above files.  If
  "geometry_msgs" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  CMakeLists.txt:4 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/pi/catkin_ws/build_isolated/tf2_msgs/CMakeFiles/CMakeOutput.log".
See also "/home/pi/catkin_ws/build_isolated/tf2_msgs/CMakeFiles/CMakeError.log".
<== Failed to process package 'tf2_msgs': 
  Command '['/home/pi/catkin_ws/devel_isolated/navigation/env.sh', 'cmake', '/home/pi/catkin_ws/src/geometry2/tf2_msgs', '-DCATKIN_DEVEL_PREFIX=/home/pi/catkin_ws/devel_isolated/tf2_msgs', '-DCMAKE_INSTALL_PREFIX=/home/pi/catkin_ws/install_isolated', '-G', 'Unix Makefiles']' returned non-zero exit status 1

Reproduce this error by running:
==> cd /home/pi/catkin_ws/build_isolated/tf2_msgs && /home/pi/catkin_ws/devel_isolated/navigation/env.sh cmake /home/pi/catkin_ws/src/geometry2/tf2_msgs -DCATKIN_DEVEL_PREFIX=/home/pi/catkin_ws/devel_isolated/tf2_msgs -DCMAKE_INSTALL_PREFIX=/home/pi/catkin_ws/install_isolated -G 'Unix Makefiles'

Command failed, exiting.

As I have just started with ROS on Raspbian Stretch, I need to know whether Raspbian Stretch has the compatibility with ROS or not. If yes, then I am quite amazed why it is not able even to build default packages. I have already built the "hello world" package successfully, so it concluded the ROS installation is valid.


Originally posted by Shaunak Vyas on ROS Answers with karma: 17 on 2018-09-20

Post score: 0


Original comments

Comment by gvdhoorn on 2018-09-20:\

I constantly get errors like "Failed to process the package"

this is too vague.

Please copy-paste a complete error message into your question text.

Use the edit button/link for that and please format using the Preformatted Text button (with 101010 on it).

Comment by gvdhoorn on 2018-09-20:
Also, what does this mean:

Now I need to migrate those packages to Raspbian Stretch based ROS.

exactly? Do you just want to build the same pkgs on your rpi, or are you attempting to copy compiled pkgs from your desktop pc to your rpi?

Comment by Shaunak Vyas on 2018-09-20:
I am attempting to copy compiled pkgs from desktop PC to RPi.

Comment by gvdhoorn on 2018-09-20:\

I am attempting to copy compiled pkgs from desktop PC to RPi.

then that is part of your problem.

You cannot do that.

Your PC and your RPi use different CPU architectures (most likely amd64 vs ARM). Binary artefacts cannot be copied. You'll have to compile them on the RPi or use a ..

Comment by gvdhoorn on 2018-09-20:
.. cross-compiler on your PC.

Comment by luk.mitka on 2018-09-21:
Above error means that geometry_msgs package probably is not installed or it cannot be found. Does rospack find geometry_msgs return path to package? If no you will need to install it before you can build your other packages.

Comment by Shaunak Vyas on 2018-09-21:
Ohh. Very True. I have have not installed the packages. Actually, when I installed ROS-Melodic in Ubuntu (PC), I got the packages as it was a full install.

Comment by Shaunak Vyas on 2018-09-21:
But in Raspbian Stretch, I have installed the recommended ROS-Comm: which is an ROS package that has build, and communication libraries and No GUI tools.

Comment by Shaunak Vyas on 2018-09-21:
How can I install any randomly required package in ROS now? The command git clone https://github.com/ros/geometry2.git get the package but the same compilation error remains.

Comment by gvdhoorn on 2018-09-21:
Please see #q252478 for the general procedure for how to build things from source.

On your RPi however, you might need to build more pkgs from source, as rosdep might not be able to install the required pkgs itself.

In that case, look at rosinstall_generator.

Comment by gvdhoorn on 2018-09-21:\

I have already built the "hello world" package successfully, so it concluded the ROS installation is valid

You cannot conclude that from your simple test.

Building pkgs is not a trivial process and it takes some skill. Please try to read up on it and make sure to take dependencies into account.

Comment by Boregard on 2018-09-22:
I used ubuntu mate 16.04 on raspberry and installed ros (desktop full) like a normal installation. Everything worked finde so far (got some tutorials running). Import for catkin compile are the following statements:

$ sudo swapoff -a $ catkin_make -j1

Comment by Shaunak Vyas on 2018-09-23:
I am using RPi 3B+ which does not support Ubuntu Mate. So I am switching to Xubuntu 16.04. Let's see where I end up. Does ROS get installed in Xubuntu the same way as it is installed in Ubuntu Mate?

Comment by Boregard on 2018-09-25:
I used the normal installation procedure for ubuntu mate - therefore I guess you can use the same way for Xubuntu. The only thing that was special on mate was the missing build-essentials. You can install them by:

sudo apt-get install build-essential -y

Just double check your Xubuntu

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

@gvdhoorn : Thank you for sharing #q252478. I followed the execution steps to install geometry2 package, but I am getting the following error:


pi@raspberrypi:~/catkin_ws $ rosdep install --from-paths src/ --ignore-src --rosdistro kinetic

ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: tf2_geometry_msgs: No definition of [orocos_kdl] for OS [debian] tf2_bullet: No definition of [geometry_msgs] for OS [debian] tf2_sensor_msgs: No definition of [geometry_msgs] for OS [debian] tf2_eigen: No definition of [geometry_msgs] for OS [debian] test_tf2: No definition of [tf] for OS [debian] tf2_ros: No definition of [geometry_msgs] for OS [debian] tf2: No definition of [geometry_msgs] for OS [debian] tf2_msgs: No definition of [geometry_msgs] for OS [debian] tf2_kdl: No definition of [orocos_kdl] for OS [debian]


So, I think I am running debian based Raspbian Stretch which is creating the issue. But Ubuntu is also based on debian. Still, should I switch to Xubuntu, Ubuntu Mate or Snappy Ubuntu Core? If yes, which one would be the best for ROS?


Originally posted by Shaunak Vyas with karma: 17 on 2018-09-22

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by Shaunak Vyas on 2018-09-23:
The Stretch seems not working well with ROS. I am switching to Xubuntu 16.04. Let's see where I end up. Does ROS get installed in Xubuntu the same way as it is installed in Ubuntu Mate?

Comment by Shaunak Vyas on 2018-09-25:
I have written RaspEx image to Pi 3B+ Memory Card (Reference: https://sourceforge.net/projects/raspex/) Now I am trying to install ROS on RaspEx. I am using this link for that: https://www.intorobotics.com/how-to-install-ros-kinetic-on-raspberry-pi-3-ubuntu-mate/ ........

Comment by Shaunak Vyas on 2018-09-25:
........because I could not find any link that can help me to install ROS on RaspEx. I kindly request to help as soon as possible because I am really stuck up in ROS on Raspberry Pi 3 B+.

Comment by Shaunak Vyas on 2018-09-25:
I do not know why but Raspberry Pi 3 B+ is turning out to be a headache for me due to its arm64 architecture which do not support the OS in which ROS can be fully functional.

Comment by Shaunak Vyas on 2018-09-28:
Finally I have successfully installed Xubuntu in Raspberry Pi and it resolved all the issues. The robot is fully functional now. I kindly request to close this ticket.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.