Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

need to implement QoS feature for RELIABILITY, to observe msg by rqt #46

Open
takasehideki opened this issue Sep 13, 2023 · 1 comment

Comments

@takasehideki
Copy link
Member

takasehideki commented Sep 13, 2023

When we want to observe msg by rqt, the following log occurs and it cannot be observed on Topic Monitor.

$ rqt 
[WARN] [1694593985.541597582] [rqt_gui_py_node_1735161]: New publisher discovered on topic '/to_linux', offering incompatible QoS. No messages will be received from it. Last incompatible policy: RELIABILITY

Screenshot from 2023-09-13 17-36-33

This is because the default QoS policy for rqt (and rviz) is set to RELIABILITY, maybe from Galactic.
ros-visualization/rqt#187
https://answers.ros.org/question/358669/problem-to-read-topics-with-sensorqos-in-rviz-and-rqt/

So, we need to implement the feature to select QoS policy to RELIABLE, or set the default to RELIABLE. Fortunately, embeddedRTPS offers BEST_EFFORT and RELIABLE as selectable QoS policies.

@takasehideki
Copy link
Member Author

This may be realized by modifying the following line from false to true. In addition, this should be able to be configured as mros2 API.
https://github.com/mROS-base/mros2/blob/main/src/mros2.cpp#L157

code in embeddedRTPS:
https://github.com/mROS-base/embeddedRTPS/blob/de70e01959afdf218af8a227f054226f78806cdd/src/entities/Domain.cpp#L344-L353

However, I cannot confirm the operation on mros2-mbed by just modifying it to true, probably due to the configuration of rtps/config.h.

mros2-mbed start!
app name: echoback_string
Successfully connected to network
  IP Address: 192.168.11.2
[MROS2LIB] set IP address for RTPS communication
[MROS2LIB] mros2_init task start
mROS 2 initialization is completed

[MROS2LIB] create_node
[MROS2LIB] start creating participant
[MROS2LIB] successfully created participant
[MROS2LIB] create_publisher complete.
[MROS2LIB] create_subscription complete.


++ MbedOS Error Info ++
Error Status: 0x8003012D Code: 301 Module: 3
Error Message: sys_thread_new number error

Location: 0x8010AAF
Error Value: 0x6
Current Thread: mROS2Thread Id: 0x200141F0 Entry: 0x80050B1 StackSize: 0x1388 StackMem: 0x20014238 SP: 0x20015500 
For more info, visit: https://mbed.com/s/error?error=0x8003012D&tgt=NUCLEO_F767ZI
-- MbedOS Error Info --

= System will be rebooted due to a fatal error =
= Reboot count(=1) reached maximum, system will halt after rebooting =�

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant