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

Topic Not Visible error

未關閉
#209 7 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
C++
星號
201
分支
111
平均合併
1 天 6 小時
30 天內合併 PR
10

描述

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

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

首先,按照文件為使用序列傳輸的 ESP32 重現 micro_ros_setup create、build、flash 和 agent 命令。將 micro-ROS Agent 的輸出與 ros2 topic echo /microROS/ping 以及報告中預期的訊息進行比較;當能夠發現 ping 主題並發佈預期訊息時,即表示完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
arduino, cpp, ubuntu
領域
distributed-systems, embedded-iot, robotics
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。