micro-ROS / micro-ROS/micro_ros_setup

Does this have support for ESP32 ? For Zephyr ?

Đang mở
#797 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
Shell
Star
509
Fork
183
Merge trung bình
22 giờ 26 phút
Pull request đã merge (30 ngày)
7

Mô tả

## 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 ?

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu với build_firmware.sh và cấu hình CMake ESP32/Zephyr được hiển thị trong lỗi, đặc biệt là modules/hal/espressif/tools/cmake/project.cmake và zephyr/cmake/compiler/gcc/target.cmake. Tái hiện lỗi và kiểm tra cách tiền tố trình biên dịch và PATH được lựa chọn. Được xem là hoàn tất khi quá trình build firmware micro-ROS Zephyr theo tài liệu hoàn thành cho target ESP32_devkitc_wroom, hoặc khi issue được thu hẹp thành một cấu hình không được hỗ trợ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cmake, shell
Lĩnh vực
build-system, embedded-iot
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.