-
Notifications
You must be signed in to change notification settings - Fork 170
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
Update ROS1 images to include tools in ROS2 images #370
Comments
AFAIK this is explicitly not a goal. Changing the recommended way of building packages in ROS 1 has been avoided for years, this is why all the official tutorials still recommend to use There can be a tutorial on "how to build ROS1 workspaces with colcon" but IMO it doesn't justify including it in the default docker images or recommending its' use.
I don't think this is true. |
I feel like it was more the case that colcon didn't have feature parity with catkin for years before.
Could you specify where this is still the case using colcon with ROS1 melodic packages? I haven't encountered anything for melodic yet. Also, such could've be said even for catkin years after rosbuild.
This is what I tried: FROM ros:melodic
RUN apt-get update && apt-get install --no-install-recommends -y \
git \
python3-colcon-common-extensions \
python3-colcon-mixin \
python3-rosdep \
python3-vcstool \
&& rm -rf /var/lib/apt/lists/*
RUN colcon mixin add default \
https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml && \
colcon mixin update && \
colcon metadata add default \
https://raw.githubusercontent.com/colcon/colcon-metadata-repository/master/index.yaml && \
colcon metadata update Build output:
Looks like it was the python3 versions of rosdep was conflicting with the python2 version. |
Several companies deploying fleets of robots in various contexts have been using catkin_tools for years. Many tutorials and resources use it even though it is not the recommended ROS 1 build tool. I'm not advocating for using one or the other, my point is more that it seems pretty subjective and inconsistent with all the online material and the default workflow advertised for ROS 1. Ultimately, the decision to change the default build tool and workflow for ROS 1 should be OSRF's and if/when it happens it should be reflected in the docker images. Not the other way around IMO.
Yeah this is unrelated to colcon. ros-infrastructure/rosdep#618
That logic is build tool independant except the building bit. You can find similar logic in multiple CI systems like ros2ci or industrial_ci. Industrial CI use the same logic for everything but building and just use a different build tool based on the ROS version. Maybe some inspiration / consolidation can result from that work?
Are there some user requests for adding colcon to the ROS 1 images ? Or is it hypothetical? |
Indeed we're trying to be as little disruptive to the established workflows. With ROS 1 sunsetting in the forseeable future reworking all the tutorials and documentation to use a new tool is not something that I think we should consider. As @mikaelarguedas we would have liked to have done it for catkin-tools previously but the considerable switching cost was too high. And a switch to colcon will similarly be very expensive in terms of confusion, questions, support, and disruption of existing users. It's certainly possible for power users to use them together we just don't want to have that as a recommended pattern that we're supporting for the community. |
I've gotten to a nice minimal recipe for building arbitrary ros2 packages in Dockerfiles, provided the rosdistro dependencies in the
package.xml
are correctly specified and that.repo
files for any necessary underlays are given. It'd be nice if the ROS1 images where updated to include the same colcon and mixin tooling so that folks would have a more consistent experience when using either.Example:
https://github.com/ruffsl/pose_graph_tools/blob/f247e1927551ebffc036d6abd7d3d34237bf2edf/Dockerfile
Basically just updating the ROS1 templates to include:
docker_images/ros/eloquent/ubuntu/bionic/ros-core/Dockerfile
Lines 23 to 30 in 14872ed
docker_images/ros/eloquent/ubuntu/bionic/ros-core/Dockerfile
Lines 41 to 47 in 14872ed
However, colcon doesn't seem to be available from the ros1 apt repo. Suggestions?
The text was updated successfully, but these errors were encountered: