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

Aperta
#622 7 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
linux, raspberry-pi, shell

Direzione di ricerca

Inizia con i passaggi per la creazione del firmware nel README di micro_ros_setup e con il comando create_firmware_ws.sh su linux-arm64. Poi esamina l’esempio micro_ros_espidf_component, la disposizione dei suoi componenti, main/main.c e i log di build segnalati relativi all’assenza di uros_network_interfaces.h. Il lavoro è completato quando la compatibilità con Raspberry Pi e la disposizione dell’esempio sono state verificate e il problema di documentazione o di build è stato risolto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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. (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 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

  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, why isn't components directory created under the int32_publisher directory? Under the Usage section, 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) 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 <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_651110
    

    I googled this error but didn't get anything helpful.

Lingua principale
Shell
Stelle
509
Fork
183
Merge medio
22h 26m
PR unite (30g)
7

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di micro-ROS/micro_ros_setup

Tutte le issue di micro-ROS/micro_ros_setup

Issue simili

Altre issue su Shell/Bash

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.