micro-ROS / micro-ROS/micro_ros_platformio

Micro-ROS timer not working on my esp32 board/toolchain

Aperta
#120 15 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Python
Stelle
334
Fork
111
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Hey! I have some issues getting the micro-ROS timers working on my ESP32, from the micro-ROS publisher example for platformIO: [https://github.com/micro-ROS/micro_ros_platformio/tree/main/examples/micro-ros_publisher](https://github.com/micro-ROS/micro_ros_platformio/tree/main/examples/micro-ros_publisher).

I understand that the supported boards for ESP32 are the `esp32dev` with the `espressif32` platform. Unfortunately, due to the drivers for the servos I am trying to run, I am forced to configure my platformIO environment with the `nodemcu-32s` board and the `espressif32@2.0.0` platform (I am unable to read or write to the bus servos without this). Hence, my environment setup in my platformio.ini file is the following:

```
[env:nodemcu-32s]
platform = espressif32@2.0.0
board = nodemcu-32s
framework = arduino
monitor_speed = 115200
lib_deps =
madhephaestus/lx16a-servo@^0.9.3
https://github.com/micro-ROS/micro_ros_platformio
board_microros_distro = humble
board_microros_transport = serial
```

when it should be:
```
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps =
madhephaestus/lx16a-servo@^0.9.3
https://github.com/micro-ROS/micro_ros_platformio
board_microros_distro = humble
board_microros_transport = serial
```

I intend to use the timers to publish the servo positions at a set rate.

- Hardware description: ESP32dev board (ESP32 devkitC), Ubuntu 22.04 on WSL
- Installation type: ROS2 Humble Hawksbill installed using [https://docs.ros.org/en/humble/Installation.html](https://docs.ros.org/en/humble/Installation.html) and microROS installed as per [https://micro.ros.org/docs/tutorials/core/teensy_with_arduino/](https://micro.ros.org/docs/tutorials/core/teensy_with_arduino/).
- Version or commit hash: humble

I have been able to create regular publishers and subscribers that work, but I am unable to use the timers. When I run the ros agent with the platformIO setup as first shown, the timer publisher topic appears, but does not publish (it never enters the timer callback). However when I run the micro-ros agent with the environment set up as in the second instance, the publisher topic both appears and contents are published to the topic.

It appears as though it is an issue with the board setting i.e. `board = nodemcu-32s` or `board = esp32dev` in the .ini file, since when I alter the platform, without altering the board setting, the publisher still does not give the expected outcome. However, I am unable to use `board = esp32dev` since the toolchain/platform I require (espressif32@2.0.0) is not available for this board.

Is there something I can perhaps change in the header files, or at a lower level to get timer functionality working on the older board and platform?

Help would be greatly appreciated.

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.

Direzione di ricerca

Inizia con l'esempio examples/micro-ros_publisher e confronta i due ambienti platformio.ini descritti nell'issue. Riproduci il comportamento del timer con la scheda nodemcu-32s e espressif32@2.0.0, quindi determina se viene eseguito il callback del timer; il lavoro è completato quando i timer pubblicano come con la configurazione esp32dev.

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

Valutazione

Stack tecnologico
arduino
Ambito
embedded-iot, robotics
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.