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:
- geometric_shapes
- navigation
- navigation_msgs
- robot_pose_ekf
- 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