micro-ROS / micro-ROS/micro_ros_setup

build firmware for android failed, "microcdr" is compatible with requested version "".

Abierto
#770 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Shell
Estrellas
509
Forks
183
Merge medio
22 h 26 min
PR fusionados (30 d)
7

Descripción

Issue template

  • Hardware description: arm64-v8a
  • RTOS: ubuntu 24.04, Noble LTS
  • Installation type: micro_ros_setup
  • Version or commit hash: ROS 2 Jazzy
Steps to reproduce the issue

On the host ubuntu machine, run:

export ANDROID_HOME=/media/work/walter/android/sdk/
export ANDROID_NDK=/media/work/walter/android/android-ndk-r26b/
export ANDROID_NATIVE_API_LEVEL=android-31
export ANDROID_ABI=arm64-v8a
source /opt/ros/jazzy/setup.bash
mkdir microros_ws && cd microros_ws
git clone -b jazzy https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup
rosdep update && rosdep install --from-paths src --ignore-src -y
colcon build
source install/local_setup.bash
ros2 run micro_ros_setup create_firmware_ws.sh android generic
ros2 run micro_ros_setup configure_firmware.sh
run micro_ros_setup build_firmware.sh /media/work/walter/android/android-ndk-r26b/build/cmake/android.toolchain.cmake
Expected behavior

micro_ros_setup is built correctly.

Actual behavior

Create firmware successfully. While building firmware, an error is raised when building the package micro_ros_demos_rclc(only this pkg is failed in total 50 pkgs):

Starting >>> micro_ros_demos_rclc
--- stderr: micro_ros_demos_rclc
CMake Error at /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package):
  Could not find a configuration file for package "microcdr" that is
  compatible with requested version "".

  The following configuration files were considered but not accepted:

    /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/microcdr/cmake/microcdrConfig.cmake, version: 2.0.1 (64bit)

Call Stack (most recent call first):
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/rosidl_typesupport_microxrcedds_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:13 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/rcl_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/rclConfig.cmake:41 (include)
  CMakeLists.txt:6 (find_package)


gmake[3]: *** [Makefile:267: cmake_check_build_system] Error 1
gmake[2]: *** [CMakeFiles/timer.dir/build.make:89: timer/src/timer-stamp/timer-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:686: CMakeFiles/timer.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
CMake Error at /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package):
  Could not find a configuration file for package "microcdr" that is
  compatible with requested version "".

  The following configuration files were considered but not accepted:

    /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/microcdr/cmake/microcdrConfig.cmake, version: 2.0.1 (64bit)

Call Stack (most recent call first):
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/rosidl_typesupport_microxrcedds_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:13 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/rcl_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/ament_cmakeCMake Error at /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install//cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package):
  Could not find a configuration file for package "microcshare/rcl/cmake/rclConfig.cmake:41 (include)
  CMakeLists.txt:6 (find_package)

dr" that is
  compatible with requested version "".

  The following configuration files were considered but not accepted:

    /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/microcdr/cmake/microcdrConfig.cmake, version: 2.0.1 (64bit)

Call Stack (most recent call first):
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/rosidl_typesupport_microxrcedds_cConfig.cmake:41 (include)
  /media/work/walter/Robo
tPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:13 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/rcl_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/rclConfig.cmake:41 (include)
  CMakeLists.txt:6 (find_package)


CMake Error at /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package):
  Could not find a configuration file for package "microcdr" that is
  compatible with requested version "".

  The following configuration files were considered but not accepted:

    /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/microcdr/cmake/microcdrConfig.cmake, version: 2.0.1 (64bit)

Call Stack (most recent call first):
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_microxrcedds_c/cmake/rosidl_typesupport_microxrcedds_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_c-extras.cmake:13 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rosidl_typesupport_c/cmake/rosidl_typesupport_cConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/builtin_interfaces/cmake/builtin_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl_interfaces/cmake/rcl_interfacesConfig.cmake:41 (include)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/ament_cmake_export_dependencies-extras.cmake:21 (find_package)
  /media/work/walter/RobotPet/micro-ros/microros_ws/firmware/mcu_ws/install/share/rcl/cmake/rclConfig.cmake:41 (include)
  CMakeLists.txt:6 (find_package)


gmake[3]: *** [Makefile:267: cmake_check_build_system] Error 1
gmake[3]: *** [Makefile:267: cmake_check_build_system] Error 1
gmake[2]: *** [CMakeFiles/fragmented_publication.dir/build.make:89: fragmented_publication/src/fragmented_publication-stamp/fragmented_publication-build] Error 2
gmake[2]: *** [CMakeFiles/publisher_count.dir/build.make:89: graph_introspection/publisher_count/src/publisher_count-stamp/publisher_count-build] Error 2
...
Failed   <<< micro_ros_demos_rclc [1.17s, exited with code 2]

Summary: 49 packages finished [30.7s]
  1 package failed: micro_ros_demos_rclc
  1 package had stderr output: micro_ros_demos_rclc
[ros2run]: Process exited with failure 2
Additional information

tried to specify the version of microcdr in CMakeLists.txt and rosidl_typesupport_microxrcedds_c_generate_interfaces.cmake of rosidl_typesupport_microxrcedds_c, still failed

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con los puntos de entrada create_firmware_ws.sh, configure_firmware.sh y build_firmware.sh de micro_ros_setup; después, inspecciona micro_ros_demos_rclc/CMakeLists.txt y los archivos CMake de rosidl_typesupport_microxrcedds_c a los que hace referencia. Reproduce la compilación para Android arm64-v8a con los comandos indicados en el issue y sigue el motivo por el que se rechaza microcdr version 2.0.1. Se considera terminado cuando la compilación del firmware completa los 50 paquetes sin el error de configuración de microcdr.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
android, cmake, shell
Área
build-system, embedded-iot
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.