Skip to content

Support for ROS2 Crystal #60

@ruffsl

Description

@ruffsl

While following along with the readme, I encountered some build issues when building from ROS2 Crystal. @esteve , perhaps you might see the IDL issue generated from the following example Dockerfiles? I'd like to eventually get to making a dockerfile to build android apk for ROS2 with.

Dockerfile

Details
FROM ros:crystal-ros-base-bionic

# install ros build tools
RUN apt-get update && apt-get install -y \
      default-jdk \
      gradle \
      python3-colcon-common-extensions && \
    rm -rf /var/lib/apt/lists/*

# clone ros package repo
ENV ROS_WS /opt/ros_ws
RUN mkdir -p $ROS_WS/src
WORKDIR $ROS_WS
RUN git -C src clone \
      https://github.com/esteve/ament_java.git
RUN git -C src clone \
      https://github.com/esteve/ros2_java.git
RUN git -C src clone \
      https://github.com/esteve/ros2_java_examples.git

# install ros package dependencies
RUN apt-get update && \
    rosdep update && \
    rosdep install -y \
      --from-paths \
        src/ \
      --ignore-src && \
    rm -rf /var/lib/apt/lists/*

# build ros package source
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
    colcon build \
      --cmake-args \
        -DCMAKE_BUILD_TYPE=Release

# source ros package from entrypoint
RUN sed --in-place --expression \
      '$isource "$ROS_WS/install/setup.bash"' \
      /ros_entrypoint.sh

# run ros package launch file
CMD ["ros2", "run", "rcljava_examples", "publisher_lambda"]

Build output:

Details
$ docker build .
Sending build context to Docker daemon  3.072kB
Step 1/9 : FROM ros:crystal-ros-base-bionic
 ---> f7af64b98e6e
Step 2/9 : RUN apt-get update && apt-get install -y       default-jdk       gradle       python3-colcon-common-extensions &&     rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> e32cdb65afc8
Step 3/9 : ENV ROS_WS /opt/ros_ws
 ---> Using cache
 ---> 2aac0bf2ddcd
Step 4/9 : RUN mkdir -p $ROS_WS/src
 ---> Using cache
 ---> 61287981f7f6
Step 5/9 : WORKDIR $ROS_WS
 ---> Using cache
 ---> 490312830e21
Step 6/9 : RUN git -C src clone       https://github.com/esteve/ament_java.git
 ---> Using cache
 ---> 1c36ba2d99b5
Step 7/9 : RUN git -C src clone       https://github.com/esteve/ros2_java.git
 ---> Using cache
 ---> 2cd7c01c5bca
Step 8/9 : RUN . /opt/ros/$ROS_DISTRO/setup.sh &&     colcon build       --cmake-args         -DCMAKE_BUILD_TYPE=Release
 ---> Running in 2a007e373d4b
Starting >>> ament_java_resources
Finished <<< ament_java_resources [0.52s]
Starting >>> ament_build_type_gradle
Finished <<< ament_build_type_gradle [0.59s]
Starting >>> ament_cmake_export_jars
Starting >>> ament_cmake_export_jni_libraries
Finished <<< ament_cmake_export_jars [0.49s]
Starting >>> rcljava_common
Finished <<< ament_cmake_export_jni_libraries [0.51s]
Finished <<< rcljava_common [3.43s]
--- stderr: rcljava_common
warning: [options] bootstrap class path not set in conjunction with -source 6
warning: [options] source value 6 is obsolete and will be removed in a future release
warning: [options] target value 1.6 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
4 warnings
---
Starting >>> rosidl_generator_java
--- stderr: rosidl_generator_java
CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgConstantsfastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgBoolfastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgBytefastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgUint8fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgPrimitivesfastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgFloat64fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgInt16fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgCharfastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgFloat32fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgInt32fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgInt8fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgInt64fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgVariousfastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgUint16fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgNestedfastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgEmptyfastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgUint32fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgStringsfastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


CMake Error at cmake/rosidl_generator_java_generate_interfaces.cmake:251 (add_dependencies):
  The dependency target
  "rosidl_generator_java__rosidl_typesupport_fastrtps_c" of target
  "msgUint64fastrtps_c" does not exist.
Call Stack (most recent call first):
  /opt/ros/crystal/share/ament_cmake_core/cmake/core/ament_execute_extensions.cmake:38 (include)
  /opt/ros/crystal/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:280 (ament_execute_extensions)
  CMakeLists.txt:73 (rosidl_generate_interfaces)


---
Failed   <<< rosidl_generator_java	[ Exited with code 1 ]

Summary: 5 packages finished [8.00s]
  1 package failed: rosidl_generator_java
  2 packages had stderr output: rcljava_common rosidl_generator_java
  1 package not processed
The command '/bin/sh -c . /opt/ros/$ROS_DISTRO/setup.sh &&     colcon build       --cmake-args         -DCMAKE_BUILD_TYPE=Release' returned a non-zero code: 1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions