Error building micro-ROS component on Raspberry Pi 4 with ESP32
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- linux, raspberry-pi, shell
- Domain
- build-system, embedded-iot
Research direction
Start with the micro_ros_setup README's firmware-creation steps and the create_firmware_ws.sh command on linux-arm64. Then inspect the micro_ros_espidf_component example, its components layout, main/main.c, and the reported build logs for the missing uros_network_interfaces.h. Done means the Raspberry Pi compatibility and example layout are verified and the documentation or build issue is addressed.
Written by the indexing model from the issue text.
Description
Issue template
-
Hardware description:
- Raspberry Pi 4
- esp32 WROOM
-
RTOS: freertos on esp32
-
Installation type: tried
micro_ros_setupbut got error (mentioned below). Tried installing ESP-IDF directly and then using micro-ROS component for ESP-IDF. (More errors mentioned below) -
Version or commit hash:
- installed ROS 2
humbleon Rapsberry Pi - ESP-IDF (v5.0)
- installed ROS 2
Description
I first tried installing micro_ros_setup. The build process was okay but when 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. 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.
ubuntu@ubuntu:~$ idf.py --version
ESP-IDF v5.0.1-397-g3050ea656f
I wanted to ask
-
Can
micro_ros_setupwork for raspberry pi 4? Or is it not compatible for linux-arm64? -
I think the
Examplesection can be elaborated. In the example shown here, why isn'tcomponentsdirectory created under theint32_publisherdirectory? Under theUsagesection, it states to clone the repo directly in the components folder. Please correct me if I'm wrong.I copied the
int32_publisherexample from themicro_ros_espidf_component(link) into the home directory, created a components directory insteadint32_publisherdirectory and then git clonedmicro_ros_espidf_componentinside it.ubuntu@ubuntu:~/int32_publisher/components$ ls micro_ros_espidf_componentRunning
idf.py buildcommand inside theint32_publisherdirectory, generates the error belowMakeFiles/__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 <uros_network_interfaces.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ 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_651110I googled this error but didn't get anything helpful.
- Dominant language
- Shell
- Stars
- 509
- Forks
- 183
- Avg merge
- 22h 26m
- Merged PRs (30d)
- 7
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from micro-ROS/micro_ros_setup
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
micro-ROS/micro_ros_setup#814 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 42/100
micro-ROS/micro_ros_setup#809 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
micro-ROS/micro_ros_setup#808 · 2 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 20/100
micro-ROS/micro_ros_setup#806 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 20/100
micro-ROS/micro_ros_setup#803 ·
All issues in micro-ROS/micro_ros_setup
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
danielmiessler/LifeOS#2218 ·
-
docs(agents): strengthen the no-backslash-escaped-backticks rule with an issue-creation example Open
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
package-update
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
oSoWoSo/vOid_Community_repOsitory#148 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
chore
Difficulty 1/5 Under an hour Newbie friendliness 91/100
alunduil/alunduil-chezmoi#792 ·