micro-ROS / micro-ROS/micro_ros_setup

Does this have support for ESP32 ? For Zephyr ?

Ouverte
#797 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Shell
Étoiles
509
Forks
183
Merge moyen
22 h 26 min
PR mergées (30 j)
7

Description

## ESP32 - Zephyr

- Hardware description: ESP32_devkitc_wroom
- RTOS: Zephyr
- Installation type: micro_ros_setup
- Version of micro-ROS used: humble

I had been following this tutorial: [](https://micro.ros.org/docs/tutorials/core/first_application_rtos/zephyr/)
The building and rest kept failing at first and I dug in a lil bit and found the reason was that the sdk was older version which did not have xtensa needed gcc for the esp32. I changed it to 0.16.8 added esp32 to supported platforms. and now while building the firmware as per the tutorial as in using ros2 run micro_ros_setup build_firmware.sh keep getting this error below

```
Summary: 67 packages finished [1min 45s]
59 packages had stderr output: action_msgs actionlib_msgs builtin_interfaces common_interfaces composition_interfaces diagnostic_msgs example_interfaces geometry_msgs libyaml_vendor lifecycle_msgs micro_ros_msgs micro_ros_utilities microcdr microxrcedds_client nav_msgs rcl rcl_action rcl_interfaces rcl_lifecycle rcl_logging_interface rcl_logging_noop rclc rclc_lifecycle rclc_parameter rcutils rmw rmw_implementation rmw_implementation_cmake rmw_microxrcedds rosgraph_msgs rosidl_adapter rosidl_cmake rosidl_default_generators rosidl_default_runtime rosidl_generator_c rosidl_generator_dds_idl rosidl_parser rosidl_runtime_c rosidl_typesupport_c rosidl_typesupport_interface rosidl_typesupport_introspection_c rosidl_typesupport_introspection_tests rosidl_typesupport_microxrcedds_c rosidl_typesupport_microxrcedds_c_tests rosidl_typesupport_microxrcedds_test_msg sensor_msgs shape_msgs statistics_msgs std_msgs std_srvs stereo_msgs test_interface_files test_msgs test_rmw_implementation test_tracetools tracetools trajectory_msgs unique_identifier_msgs visualization_msgs
[ 15%] No install step for 'microroslib_project'
[ 16%] Completed 'microroslib_project'
[ 16%] Built target microroslib_project
[ 16%] Built target zephyr_generated_headers
[ 16%] Creating directories for 'EspIdfBootloader'
[ 17%] No download step for 'EspIdfBootloader'
[ 18%] No update step for 'EspIdfBootloader'
[ 19%] No patch step for 'EspIdfBootloader'
[ 19%] Performing configure step for 'EspIdfBootloader'
-- Found Git: /usr/bin/git (found version "2.34.1")
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- The ASM compiler identification is unknown
-- Found assembler: xtensa-esp32-elf-gcc
CMake Error at /microros_ws/firmware/zephyrproject/modules/hal/espressif/tools/cmake/project.cmake:307 (__project):
The CMAKE_C_COMPILER:

xtensa-esp32-elf-gcc

is not a full path and was not found in the PATH.

Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.
Call Stack (most recent call first):
CMakeLists.txt:27 (project)

CMake Error at /microros_ws/firmware/zephyrproject/modules/hal/espressif/tools/cmake/project.cmake:307 (__project):
The CMAKE_CXX_COMPILER:

xtensa-esp32-elf-g++

is not a full path and was not found in the PATH.

Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.
Call Stack (most recent call first):
CMakeLists.txt:27 (project)

CMake Error at /microros_ws/firmware/zephyrproject/modules/hal/espressif/tools/cmake/project.cmake:307 (__project):
The CMAKE_ASM_COMPILER:

xtensa-esp32-elf-gcc

is not a full path and was not found in the PATH.

Tell CMake where to find the compiler by setting either the environment
variable "ASM" or the CMake cache entry CMAKE_ASM_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.
Call Stack (most recent call first):
CMakeLists.txt:27 (project)

-- Warning: Did not find file Compiler/-ASM
-- Configuring incomplete, errors occurred!
See also "/microros_ws/firmware/build/esp-idf/build/bootloader/CMakeFiles/CMakeOutput.log".
See also "/microros_ws/firmware/build/esp-idf/build/bootloader/CMakeFiles/CMakeError.log".
gmake[2]: *** [zephyr/boards/xtensa/esp32/CMakeFiles/EspIdfBootloader.dir/build.make:92: esp-idf/src/EspIdfBootloader-stamp/EspIdfBootloader-configure] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:2806: zephyr/boards/xtensa/esp32/CMakeFiles/EspIdfBootloader.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
FATAL ERROR: command exited with status 2: /usr/bin/cmake --build /microros_ws/firmware/build
[ros2run]: Process exited with failure 2
```

Now i tried setting the path in environment variable like export CXX=/microros_ws/firmware/zephyr-sdk/xtensa-espressif_esp32_zephyr-elf/bin/xtensa-espressif_esp32_zephyr-elf-g++
export CC=/microros_ws/firmware/zephyr-sdk/xtensa-espressif_esp32_zephyr-elf/bin/xtensa-espressif_esp32_zephyr-elf-gcc
still the same error happens.
Also one more thing I had hardcoded the CROSS_COMPILE path as `set(CROSS_COMPILE "/microros_ws/firmware/zephyr-sdk/xtensa-espressif_esp32_zephyr-elf/bin/xtensa-espressif_esp32_zephyr-elf-" CACHE STRING "Cross compiler prefix" FORCE) `in _/microros_ws/firmware/zephyrproject/zephyr/cmake/compiler/gcc/target.cmake_ This was done because before the path was coming out wrong.

Any ideas on how to solve this ? Or is there any other way to implement MicroROS on ESP32 using Zephyr ?

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par build_firmware.sh et la configuration CMake ESP32/Zephyr affichée dans l’erreur, en particulier modules/hal/espressif/tools/cmake/project.cmake et zephyr/cmake/compiler/gcc/target.cmake. Reproduisez l’échec et examinez comment le préfixe du compilateur et PATH sont sélectionnés. La tâche est terminée lorsque la compilation documentée du firmware micro-ROS Zephyr se termine pour la cible ESP32_devkitc_wroom, ou lorsque l’issue est circonscrite à une configuration non prise en charge.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cmake, shell
Domaine
build-system, embedded-iot
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.