micro-ROS / micro-ROS/micro-ROS-Agent

Topic Not Visible error

Offen
#209 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
C++
Sterne
201
Forks
111
Ø Merge
1 T. 6 Std.
Gemergte PRs (30 T.)
10

Beschreibung

Issue template

  • Hardware description: ESP32-WROVER-E
  • RTOS: ROS2 Humble
  • Installation type: micro_ros_setup
  • Version or commit hash: Ubuntu 22.04.3 LTS, Arduino 1.8.19
Steps to reproduce the issue

Source the ROS 2 installation

source /opt/ros/$ROS_DISTRO/setup.bash

Create a workspace and download the micro-ROS tools

mkdir microros_ws
cd microros_ws
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup

Update dependencies using rosdep

sudo apt update && rosdep update
rosdep install --from-paths src --ignore-src -y

Install pip

sudo apt-get install python3-pip

Build micro-ROS tools and source them

colcon build
source install/local_setup.bash

Create step

ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32

Configure step with ping_pong app and serial transport

ros2 run micro_ros_setup configure_firmware.sh ping_pong --transport serial

I followed all these steps no issues till now

Build step

ros2 run micro_ros_setup build_firmware.sh

when i executed command in between it shows as "colcon build stderr output"
later it will complete the execution without any error 100% build target app.

Flash step

ros2 run micro_ros_setup flash_firmware.sh

Download micro-ROS-Agent packages

ros2 run micro_ros_setup create_agent_ws.sh

Build step

ros2 run micro_ros_setup build_agent.sh

while executing this line it gives

$ ros2 run micro_ros_setup build_agent.sh
source install/local_setup.bash
Building micro-ROS Agent
Starting >>> micro_ros_msgs
Finished <<< micro_ros_msgs [6.49s]
Starting >>> micro_ros_agent
[Processing: micro_ros_agent]
--- stderr: micro_ros_agent
Cloning into 'xrceagent'...
Switched to a new branch 'ros2'
HEAD is now at 2cbbc4a Fix deserialization endianness (#336)
CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
The package name passed to find_package_handle_standard_args (tinyxml2)
does not match the name of the calling package (TinyXML2). This can lead
to problems in calling code that expects find_package result variables
(e.g., _FOUND) to follow a certain pattern.
Call Stack (most recent call first):
cmake/modules/FindTinyXML2.cmake:40 (find_package_handle_standard_args)
/opt/ros/humble/share/fastrtps/cmake/fastrtps-config.cmake:51 (find_package)
CMakeLists.txt:153 (find_package)
This warning is for project developers. Use -Wno-dev to suppress it.


Finished <<< micro_ros_agent [53.1s]

Summary: 2 packages finished [1min 1s]
1 package had stderr output: micro_ros_agent

source install/local_setup.bash

Run a micro-ROS agent

$ ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_8484ebb7cd24ec11ad45dd31b659684c-if00-port0
executes correctly

[1697617695.989983] info | TermiosAgentLinux.cpp | init | running... | fd: 3
[1697617695.990224] info | Root.cpp | set_verbose_level | logger setup | verbose_level: 4
[1697617697.966921] info | Root.cpp | create_client | create | client_key: 0x78DB3FD8, session_id: 0x81
[1697617697.967054] info | SessionManager.hpp | establish_session | session established | client_key: 0x78DB3FD8, address: 0
[1697617697.994969] info | ProxyClient.cpp | create_participant | participant created | client_key: 0x78DB3FD8, participant_id: 0x000(1)
[1697617698.013419] info | ProxyClient.cpp | create_topic | topic created | client_key: 0x78DB3FD8, topic_id: 0x000(2), participant_id: 0x000(1)
[1697617698.026173] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0x78DB3FD8, publisher_id: 0x000(3), participant_id: 0x000(1)
[1697617698.039648] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0x78DB3FD8, datawriter_id: 0x000(5), publisher_id: 0x000(3)
[1697617698.057389] info | ProxyClient.cpp | create_topic | topic created | client_key: 0x78DB3FD8, topic_id: 0x001(2), participant_id: 0x000(1)
[1697617698.069736] info | ProxyClient.cpp | create_publisher | publisher created | client_key: 0x78DB3FD8, publisher_id: 0x001(3), participant_id: 0x000(1)
[1697617698.083964] info | ProxyClient.cpp | create_datawriter | datawriter created | client_key: 0x78DB3FD8, datawriter_id: 0x001(5), publisher_id: 0x001(3)
[1697617698.101279] info | ProxyClient.cpp | create_topic | topic created | client_key: 0x78DB3FD8, topic_id: 0x002(2), participant_id: 0x000(1)
[1697617698.114001] info | ProxyClient.cpp | create_subscriber | subscriber created | client_key: 0x78DB3FD8, subscriber_id: 0x000(4), participant_id: 0x000(1)
[1697617698.128575] info | ProxyClient.cpp | create_datareader | datareader created | client_key: 0x78DB3FD8, datareader_id: 0x000(6), subscriber_id: 0x000(4)
[1697617698.148276] info | ProxyClient.cpp | create_topic | topic created | client_key: 0x78DB3FD8, topic_id: 0x003(2), participant_id: 0x000(1)
[1697617698.160762] info | ProxyClient.cpp | create_subscriber | subscriber created | client_key: 0x78DB3FD8, subscriber_id: 0x001(4), participant_id: 0x000(1)
[1697617698.175174] info | ProxyClient.cpp | create_datareader | datareader created | client_key: 0x78DB3FD8, datareader_id: 0x001(6), subscriber_id: 0x001(4)

In another terminal if i run
source /opt/ros/$ROS_DISTRO/setup.bash

Subscribe to micro-ROS ping topic

ros2 topic echo /microROS/ping

ros2 topic echo /microROS/ping
WARNING: topic [/microROS/ping] does not appear to be published yet
Could not determine the type for the passed topic

I have gone through Domail ID and set it to even 0 then also i am getting the same result.
I even refered this and other links regarding the same https://github.com/micro-ROS/micro_ros_arduino/issues/21

This line also gets exicuited correctly code gets uploaded to the board.

Expected behavior

You should see the topic messages published by the Ping Pong node every 5 seconds:

user@user:~$ ros2 topic echo /microROS/ping
stamp:
sec: 20
nanosec: 867000000
frame_id: '1344887256_1085377743'

stamp:
sec: 25
nanosec: 942000000
frame_id: '730417256_1085377743'
ros2 run micro_ros_setup create_firmware_ws.sh freertos esp32

Actual behavior

WARNING: topic [/microROS/ping] does not appear to be published yet
Could not determine the type for the passed topic

Additional information

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die dokumentierten micro_ros_setup create-, build-, flash- und agent-Befehle für den ESP32 mit serieller Übertragung auszuführen. Vergleiche die Ausgabe des micro-ROS Agent mit ros2 topic echo /microROS/ping und den angegebenen erwarteten Nachrichten; abgeschlossen ist die Aufgabe, wenn das Ping-Topic erkannt werden kann und die erwarteten Nachrichten veröffentlicht.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
arduino, cpp, ubuntu
Bereich
distributed-systems, embedded-iot, robotics
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.