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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions