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/ubuntu: add Docker workspace ros/ubuntu to build an image with ROS 1 + orocos_toolchain + rtt_ros_integration #4

Open
wants to merge 1 commit into
base: feature/preinstall-rtt-ros2-integration-and-common-interfaces
Choose a base branch
from

Conversation

meyerj
Copy link
Member

@meyerj meyerj commented Jul 24, 2020

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:

…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
Copy link

@spd-intermodalics spd-intermodalics left a 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 \

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).

Suggested change
&& 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
Copy link

@spd-intermodalics spd-intermodalics Aug 6, 2020

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:

Suggested change
version: ros2
version: toolchain-2.9

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.

Copy link
Member Author

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.

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 this pull request may close these issues.

2 participants