Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ros-kinetic-* does not work with the navio-buster image #4

Closed
acxz opened this issue Mar 12, 2020 · 21 comments
Closed

ros-kinetic-* does not work with the navio-buster image #4

acxz opened this issue Mar 12, 2020 · 21 comments

Comments

@acxz
Copy link

acxz commented Mar 12, 2020

Hello emlid, just want to preface this by saying, you guys have a great product, and I really love what you guys are doing!

That being said, I decided to try out the navio-buster image instead of the navio-stretch image as recommended by the documentation here https://github.com/emlid/emlid-docs/blob/master/docs/autopilots/common/ardupilot/configuring-raspberry-pi.md

navio-buster comes preinstalled with ros-kinetic however, when trying to use ros-kinetic packages I ran into boost issues, particularly ros-kinetic packages are expecting an older version of boost (1.58) than the one shipped by buster (1.67). This means I cannot use the ROS stack as intended/advertised on the navio. (In actuality, I can't use it at all.)

Others have been facing this issue as well: See the emlid discourse, https://community.emlid.com/t/rpi4-libboost-1-67-error-run-custom-ros-nodes/18571

If you guys can upload a new image for navio-buster with ros-noetic instead of ros-kinetic, I believe the issue will be solved and the stack will be working as customers expect it to be. I think this is a pretty critical issue, so if you can resolve this quickly, it would be much appreciated.

Thank you!

@acxz
Copy link
Author

acxz commented Mar 19, 2020

@AlexanderDranitsa or @staroselskii or anyone else, if you can take a look at this issue it would be much appreciated.

@acxz
Copy link
Author

acxz commented Apr 1, 2020

@AlexanderDranitsa or @staroselskii can you guys take a look at this issue?

@staroselskii
Copy link
Contributor

@acxz Hello! Thank you for your report. Sorry for not getting back to you for so long. We'll take a closer look at the issue.

@acxz
Copy link
Author

acxz commented Apr 1, 2020

Thx for responding! I hope that we can fix this issue so ROS can work on the navio!

@acxz
Copy link
Author

acxz commented Apr 10, 2020

@staroselskii have you guys taken a closure look at this issue?

@acxz
Copy link
Author

acxz commented Apr 18, 2020

@staroselskii or @AlexanderDranitsa can guys comment back on this issue?

@acxz
Copy link
Author

acxz commented Apr 29, 2020

@staroselskii or @AlexanderDranitsa do you guys have the time to take a look at this?

@staroselskii
Copy link
Contributor

@acxz

Hi, I'm very sorry it's taken us so long to get back to you.

Thank you for your PRs. Do they fix the issue for you?

@acxz
Copy link
Author

acxz commented Apr 30, 2020

@staroselskii no problem I understand these are some rough times for all of us.

Yes, these PRs allow me to create an image with ros-melodic which is supported and ABI/API compatible with the Stretch releases.

@lucasgrelaud
Copy link

Hi all,
i've had issue to create the Navio2 image because of this ROs issue.
Even with the patch it gave me struggle.

After a little search on the ROS wiki , i've found that de developers recommend compiling ROS while using Raspbian buster (here).

I've manage to rework the ros substage to cross-compile and after a test it seems to work perfectly.
Here is the modified substage : 07-ros

@acxz
Copy link
Author

acxz commented May 4, 2020

Can you state/describe the issue you had with my PR? (Was it the key?)

Also in https://github.com/lucasgrelaud/pi-gen-drone/blob/develop/stage_navio/07-ros/01-packages
why did you not include ros-melodic-ros-base and ros-melodic-mavros as is in this repo.

Instead of forking from RPi-Distro can you try forking from this repo so that your changes can be easily added in and compared against?

@lucasgrelaud
Copy link

lucasgrelaud commented May 4, 2020

Definitly !

The key was updated to lastest as stated in the ROS installation doc for ubuntu :

  • Key : C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

The configuration for the repo was thee same as the one you've shared.

When I tried to install the two packages ros-melodic-ros-base and ros-melodic-mavros, I got this error :

The following packages have unmet dependencies:
 ros-melodic-mavros : Depends: libboost-filesystem1.65.1 but it is not installable
                      Depends: libboost-system1.65.1 but it is not installable
                      Depends: libboost-thread1.65.1 but it is not installable
                      Depends: libtinyxml2-6 (>= 5.0.0)
                      Depends: ros-melodic-diagnostic-msgs but it is not going to be installed
                      Depends: ros-melodic-diagnostic-updater but it is not going to be installed
                      Depends: ros-melodic-eigen-conversions but it is not going to be installed
                      Depends: ros-melodic-geographic-msgs but it is not going to be installed
                      Depends: ros-melodic-geometry-msgs but it is not going to be installed
                      Depends: ros-melodic-libmavconn but it is not going to be installed
                      Depends: ros-melodic-mavros-msgs but it is not going to be installed
                      Depends: ros-melodic-message-runtime but it is not going to be installed
                      Depends: ros-melodic-nav-msgs but it is not going to be installed
                      Depends: ros-melodic-pluginlib but it is not going to be installed
                      Depends: ros-melodic-rosconsole-bridge but it is not going to be installed
                      Depends: ros-melodic-roscpp but it is not going to be installed
                      Depends: ros-melodic-rospy but it is not going to be installed
                      Depends: ros-melodic-sensor-msgs but it is not going to be installed
                      Depends: ros-melodic-std-msgs but it is not going to be installed
                      Depends: ros-melodic-std-srvs but it is not going to be installed
                      Depends: ros-melodic-tf2-eigen but it is not going to be installed
                      Depends: ros-melodic-tf2-ros but it is not going to be installed
                      Depends: ros-melodic-trajectory-msgs but it is not going to be installed
 ros-melodic-ros-base : Depends: ros-melodic-actionlib but it is not going to be installed
                        Depends: ros-melodic-bond-core but it is not going to be installed
                        Depends: ros-melodic-dynamic-reconfigure but it is not going to be installed
                        Depends: ros-melodic-nodelet-core but it is not going to be installed
                        Depends: ros-melodic-ros-core but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

After a lookup on the Debian repos for buster (search here), I've found that the libboostlibraries are only available with the 1.67 version.

This means that, unfortunatly, we cannot use the ubuntu packages for raspbian.

Furthermore, the ros-melodic-ros-base and ros-melodic-mavros are not available in the buster [release repository](ros-melodic-ros-base and ros-melodic-mavros) of ROS.

So I got to the conclusion that in order to have a working ROS i nedded to compiled it from scratsh :/

I'll create a fork of the pi-gen-navio repo and create a merge request for my patch if you'd like.
The repo i linked on my first post is a side project where I try to merge the Navio stack and Open.HD.

@acxz
Copy link
Author

acxz commented Jun 5, 2020

@AlexanderDranitsa or @staroselskii if you guys can provide closure that would be great

@acxz
Copy link
Author

acxz commented Jun 12, 2020

@AlexanderDranitsa or @staroselskii would really appreciate a response

Also @lucasgrelaud now that ros-noetic is out, it is the recommend ros version to use with buster. I have accordingly updated my PRs. If you could test them out again that would be great. Note: I updated the ros.key file so that issue should be fixed.

@lucasgrelaud
Copy link

lucasgrelaud commented Jun 15, 2020

Hi @acxz ,

have you succeeded building the buster image ?

I seem to have issue installing python-rosdep2 :

Note, selecting 'python-rosdep2' instead of 'python-rosdep'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python-rosdep2 : Depends: python-catkin-pkg but it is not going to be installed
                  Depends: python-rosdistro but it is not going to be installed
                  Depends: python-rospkg but it is not going to be installed
 python-rosinstall : Depends: python-catkin-pkg but it is not going to be installed
                     Depends: python-rosdistro but it is not going to be installed
                     Depends: python-rospkg but it is not going to be installed
 ros-noetic-mavros : Depends: libboost-filesystem1.71.0 but it is not installable
                     Depends: libboost-thread1.71.0 but it is not installable
                     Depends: libgcc-s1 (>= 3.5) but it is not installable
                     Depends: libgeographic19 (>= 1.46) but it is not installable
                     Depends: libstdc++6 (>= 9) but 8.3.0-6+rpi1 is to be installed
                     Depends: ros-noetic-diagnostic-msgs but it is not going to be installed
                     Depends: ros-noetic-diagnostic-updater but it is not going to be installed
                     Depends: ros-noetic-eigen-conversions but it is not going to be installed
                     Depends: ros-noetic-geographic-msgs but it is not going to be installed
                     Depends: ros-noetic-geometry-msgs but it is not going to be installed
                     Depends: ros-noetic-libmavconn but it is not going to be installed
                     Depends: ros-noetic-mavros-msgs but it is not going to be installed
                     Depends: ros-noetic-message-runtime but it is not going to be installed
                     Depends: ros-noetic-nav-msgs but it is not going to be installed
                     Depends: ros-noetic-pluginlib but it is not going to be installed
                     Depends: ros-noetic-rosconsole-bridge but it is not going to be installed
                     Depends: ros-noetic-roscpp but it is not going to be installed
                     Depends: ros-noetic-rospy but it is not going to be installed
                     Depends: ros-noetic-sensor-msgs but it is not going to be installed
                     Depends: ros-noetic-std-msgs but it is not going to be installed
                     Depends: ros-noetic-std-srvs but it is not going to be installed
                     Depends: ros-noetic-tf2-eigen but it is not going to be installed
                     Depends: ros-noetic-tf2-ros but it is not going to be installed
                     Depends: ros-noetic-trajectory-msgs but it is not going to be installed
 ros-noetic-ros-base : Depends: ros-noetic-actionlib but it is not going to be installed
                       Depends: ros-noetic-bond-core but it is not going to be installed
                       Depends: ros-noetic-dynamic-reconfigure but it is not going to be installed
                       Depends: ros-noetic-nodelet-core but it is not going to be installed
                       Depends: ros-noetic-ros-core but it is not going to be installed
E: Unable to correct problems, you have held broken packages.	

I'll try to figure what's failing tonight and give you a fix if i find one.

@staroselskii
Copy link
Contributor

@acxz Thank you for your good work. Sorry, it's taking us so long to get back to you. I'm pretty sure we'll just merge your PRs after we have the time to test them. Unfortunately, I cannot give you an ETA on this one. Would you be willing to update your PR as per our git guidelines? If so we could get this done quickly for sure.

@acxz
Copy link
Author

acxz commented Jun 16, 2020

@lucasgrelaud thx for testing out the PR! Due to being away from my lab, haven't been able to test this PR as much as I would like esp with the change to noetic.

Would you be willing to update your PR as per our git guidelines?

@staroselskii I'm afraid I do not know what this specifically entails? Do I need to sign a CLA or squash my commits? Where can I find your git guidelines?

@lucasgrelaud
Copy link

Hi back !
So it took me a little bit more time to look at the issue thanks to my semester exams but i know now why the ROS install didn't work last time.

I've performed manually the install of ROS :

pi@raspberrypi:~ $ sudo apt install ros-noetic-ros-base
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ros-noetic-ros-base : Depends: ros-noetic-actionlib but it is not going to be installed
                       Depends: ros-noetic-bond-core but it is not going to be installed
                       Depends: ros-noetic-dynamic-reconfigure but it is not going to be installed
                       Depends: ros-noetic-nodelet-core but it is not going to be installed
                       Depends: ros-noetic-ros-core but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
pi@raspberrypi:~ $ sudo apt install ros-noetic-actionlib
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 ros-noetic-actionlib : Depends: libboost-thread1.71.0 but it is not installable
                        Depends: libgcc-s1 (>= 3.5) but it is not installable
                        Depends: ros-noetic-actionlib-msgs but it is not going to be installed
                        Depends: ros-noetic-message-runtime but it is not going to be installed
                        Depends: ros-noetic-roscpp but it is not going to be installed
                        Depends: ros-noetic-rospy but it is not going to be installed
                        Depends: ros-noetic-rostest but it is not going to be installed
                        Depends: ros-noetic-std-msgs but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

So basically the issue is the same as the one we had with the melodic release for Ubuntu bionic :
libboost does not have the same package-name nor release version in Ubuntu as it does in debian.

That is why it's messed up :/

The only solution for ROS1 may only be to install ROS (as stated in ROSberryPi ) from source as a result ....

@AlexanderDranitsa
Copy link
Contributor

@acxz @lucasgrelaud
Hello!
Sorry for the long response and thank you for the detailed feedback and proposed PRs. I'm keen to tell you we've updated the OS image.
Could you please try it and close this issue if it solves the problem?

@lucasgrelaud
Copy link

Ho nice!

I cannot test it for the two next week, however I'll try to build the image as soon as possible.

Thx in advance for your work guys !

@acxz
Copy link
Author

acxz commented Oct 13, 2020

Considering the latest commits already address this issue, I'll go ahead and close this. i.e. the buster image now ships with noetic as it should.

If we encounter any issues relating to the latest buster image, I'll open another issue for that specifically.

@acxz acxz closed this as completed Oct 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants