-
Notifications
You must be signed in to change notification settings - Fork 0
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/ubuntu: add Docker workspace ros/ubuntu to build an image with ROS 1 + orocos_toolchain + rtt_ros_integration #4
base: feature/preinstall-rtt-ros2-integration-and-common-interfaces
Are you sure you want to change the base?
Conversation
…S 1 + orocos_toolchain + rtt_ros_integration The Dockerfile and other files are almost an exact copy of the files in ros2/ubuntu, with the following exceptions: - use catkin_make_isolated instead of colcon as a build tool - build rtt_ros_integration in the overlay workspace instead of rtt_ros2_integration and rtt_ros2_common_interfaces - install python-vcstool because it is not preinstalled in OSRF' docker images
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this alternative to PR #1. I think it is good and more homogeneous doing it this way.
However, it still needs to fix the python-vcstool
dependency.
In the related comment, there is a suggestion to fix this.
Also, when compiling for ROS noetic
, the package typelib
fails to compile, reporting:
/build/src/orocos_toolchain/typelib/bindings/ruby/ext/memory.cc:34:5: error: invalid conversion from ‘int (*)(...)’ to ‘int (*)(st_data_t, st_data_t)’ {aka ‘int (*)(long unsigned int, long unsigned int)’} [-fpermissive]
34 | (int (*)(...))memory_table_compare,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| int (*)(...)
/build/src/orocos_toolchain/typelib/bindings/ruby/ext/memory.cc:35:5: error: invalid conversion from ‘st_index_t (*)(...)’ {aka ‘long unsigned int (*)(...)’} to ‘st_index_t (*)(st_data_t)’ {aka ‘long unsigned int (*)(long unsigned int)’} [-fpermissive]
35 | (st_index_t (*)(...))memory_table_hash
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| st_index_t (*)(...) {aka long unsigned int (*)(...)}
from the ruby bindings memory module introduced in PR# 126. I referred to it in issue 130
It is not related with this PR, but the docker image fails to compile, preventing support for noetic
.
|
||
# install python-vcstool used to clone repositories below | ||
RUN apt-get update \ | ||
&& apt-get install -y python-vcstool \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In Ubuntu focal
, the package python-vcstool
doesn't exist, since python3 is the default version (python3-vcstool
). This impedes Ubuntu focal
ROS noetic
to be built. Also, git
is missing in noetic
OSRF (core, base).
&& apt-get install -y python-vcstool \ | |
&& if [ $(lsb_release -cs) = "focal" ] ; then VCS_PKGS="python3-vcstool git" ; else VCS_PKGS="python-vcstool" ; fi \ | |
&& apt-get install -y ${VCS_PKGS} \ |
orocos_toolchain: | ||
type: git | ||
url: https://github.com/orocos-toolchain/orocos_toolchain.git | ||
version: ros2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the version for ros2, I guess:
version: ros2 | |
version: toolchain-2.9 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, the branch toolchain-2.9
contains a bug that prevents from building when using focal
and noetic
, referred to in this issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For now it was intentional to use the ros2
branch. It is actually not specific to ROS 2, but has patches that have been applied while working on the ROS 2 integration and that still need to be submitted as individual pull requests to master
. It also disables the build of other toolchain packages than RTT and OCL, for exactly the reasons you mentioned.
Once that is done and all required patches and also branch toolchain-2.9
itself has been merged back into master
, we can switch back to the default branch HEAD
here, too.
An alternative to #1, following the approach proposed in #3. At the moment the
overlays.repo
file does not have rtt_geometry.Like with #3, it is unlikely that the resources of the builders of Docker Hub are sufficient to compile the typekits, so likely we have to switch to Travis or GitHub actions for automated builds.
The
Dockerfile
and other files are almost an exact copy of the files in ros2/ubuntu, with the following exceptions:python-vcstool
because it is not preinstalled in OSRF' docker images