micro-ROS / micro-ROS/micro_ros_setup

Error building micro-ROS component on Raspberry Pi 4 with ESP32

未关闭
#622 7 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Shell
星标
509
派生
183
平均合并
22 小时 26 分钟
30 天内合并 PR
7

描述

## Issue template

- Hardware description:
- Raspberry Pi 4
- esp32 WROOM

- RTOS: freertos on esp32
- Installation type: tried `micro_ros_setup` but got error (mentioned below). Tried installing ESP-IDF directly and then using [micro-ROS component for ESP-IDF](https://github.com/micro-ROS/micro_ros_espidf_component). (More errors mentioned below)
- Version or commit hash:
- installed ROS 2 `humble` on Rapsberry Pi
- ESP-IDF (v5.0)

## Description

I first tried installing `micro_ros_setup`. The [build process](https://github.com/micro-ROS/micro_ros_setup/blob/humble/README.md#building
) was okay but when [creating micro-ROS firmware](https://github.com/micro-ROS/micro_ros_setup/blob/humble/README.md#creating-micro-ros-firmware) by running the following command,
```
ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32
```
I get the following error
```
Installing ESP-IDF tools
Installing tools: xtensa-esp32-elf, xtensa-esp32s2-elf, esp32ulp-elf, esp32s2ulp-elf, openocd-esp32
ERROR: tool xtensa-esp32-elf does not have versions compatible with platform linux-arm64
[ros2run]: Process exited with failure 1
```
It seems like `micro_ros_setup` is not compatible with raspberry pi 4.

So instead, I installed the ESP-IDF following this [link](https://docs.espressif.com/projects/esp-idf/en/release-v5.0/esp32/get-started/linux-macos-setup.html). I was able to flash the `hello_world` example. The version I installed was v5.0 since it states that `micro-ROS component has been tested in ESP-IDF v4.3, v4.4, and v5.0 with ESP32` shown [here](https://github.com/micro-ROS/micro_ros_espidf_component).
```
ubuntu@ubuntu:~$ idf.py --version
ESP-IDF v5.0.1-397-g3050ea656f
```
I wanted to ask
1. Can `micro_ros_setup` work for raspberry pi 4? Or is it not compatible for linux-arm64?
2. I think the `Example` section can be elaborated. In the example shown [here](https://github.com/micro-ROS/micro_ros_espidf_component/#example), why isn't `components` directory created under the `int32_publisher` directory? Under the `Usage` [section](https://github.com/micro-ROS/micro_ros_espidf_component/#usage), it states to clone the repo directly in the components folder. Please correct me if I'm wrong.

I copied the `int32_publisher` example from the `micro_ros_espidf_component`([link](https://github.com/micro-ROS/micro_ros_espidf_component)) into the home directory, created a components directory instead `int32_publisher` directory and then git cloned `micro_ros_espidf_component` inside it.
```
ubuntu@ubuntu:~/int32_publisher/components$ ls
micro_ros_espidf_component
```
Running `idf.py build` command inside the `int32_publisher` directory, generates the error below
```
MakeFiles/__idf_main.dir/main.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj -c ../main/main.c
../main/main.c:10:10: fatal error: uros_network_interfaces.h: No such file or directory
10 | #include
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
[844/851] Building C object esp-idf/wifi_provisioning/CMakeFiles/__idf_wifi_provisioning.dir/src/scheme_softap.c.objninja: build stopped: subcommand failed.
HINT: Please make sure that the header name is correct. Also please check if you've specified all component dependencies with 'idf_component_register(REQUIRES ...)'. If the component is not present then it should be added by the IDF Component Manager. For more information run 'idf.py docs -sp api-guides/build-system.html'.
Also, please check if the header file has been removed, renamed or relocated - refer to the migration guide for more information.
ninja failed with exit code 1, output of the command is in the /home/ubuntu/int32_publisher/build/log/idf_py_stderr_output_651110 and /home/ubuntu/int32_publisher/build/log/idf_py_stdout_output_651110
```
I googled this error but didn't get anything helpful.

贡献指南

打开贡献指南

调研方向

先从 micro_ros_setup README 中的固件创建步骤以及在 linux-arm64 上执行的 create_firmware_ws.sh 命令开始。然后检查 micro_ros_espidf_component 示例、其 components 布局、main/main.c,以及针对缺少 uros_network_interfaces.h 而报告的构建日志。完成的标准是已验证 Raspberry Pi 兼容性和示例布局,并解决文档或构建问题。

由索引模型根据 Issue 内容生成。

评估

技术栈
linux, raspberry-pi, shell
领域
build-system, embedded-iot
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。