rclc icon indicating copy to clipboard operation
rclc copied to clipboard

[rclc_lifecycle, galactic] running example_lifecycle_node failed.

Open ZhenshengLee opened this issue 2 years ago • 13 comments

Issue template

  • Hardware description: host
  • RTOS: Ubuntu 20.04
  • Installation type: apt
  • Version or commit hash: galactic

Steps to reproduce the issue

# t1
source /opt/ros/galactic/setup.bash
zs@zs-3630:~/zs_ws/ros2_mcu$ ros2 run rclc_examples example_lifecycle_node 
creating lifecycle node...
registering lifecycle services...
registering callbacks...

# t2
zs@zs-3630:~/zs_ws/ros2_mcu$ ros2 service call /rclc/lifecycle_node/get_state lifecycle_msgs/srv/GetState 
requester: making request: lifecycle_msgs.srv.GetState_Request()

zs@zs-3630:~/zs_ws/ros2_mcu$ ros2 service call /rclc/lifecycle_node/get_state lifecycle_msgs/srv/GetState 
waiting for service to become available...

Expected behavior

ros service call can get result

Actual behavior

  1. first service call cannot get result and stuck
  2. example_lifecycle_node process exit after the service call

Additional information

using rmw_fastrtps_cpp

EDIT: I add export RMW_IMPLEMENTATION=rmw_fastrtps_cpp in my .bashrc

@pablogs9

ZhenshengLee avatar Mar 15 '22 09:03 ZhenshengLee

@JanStaschulat any idea?

pablogs9 avatar Mar 15 '22 12:03 pablogs9

@ZhenshengLee Are you configuring fastrtps as the DDS middlware in all terminals? export RMW_IMPLEMENTATION=rmw_fastrtps_cpp

JanStaschulat avatar Mar 15 '22 12:03 JanStaschulat

@ZhenshengLee Are you configuring fastrtps as the DDS middlware in all terminals? export RMW_IMPLEMENTATION=rmw_fastrtps_cpp

Yes.

Additional information

using rmw_fastrtps_cpp

ZhenshengLee avatar Mar 15 '22 12:03 ZhenshengLee

@norro any suggestions?

JanStaschulat avatar Mar 15 '22 12:03 JanStaschulat

@ZhenshengLee "example_lifecycle_node process exit after the service call" any error messages?

JanStaschulat avatar Mar 15 '22 12:03 JanStaschulat

I also tested in microxrcedds with microROS-Agent (in host elmulator, not mcu)

the code is in https://github.com/ZhenshengLee/ros2_mcu/blob/master/app_ws/src/lifecycle_node/app.c

# t1
zs@zs-3630:~/zs_ws/ros2_mcu/agent_ws$ ros2 run micro_ros_agent micro_ros_agent udp4 -p 8888 -v6
[1647347961.593643] info     | UDPv4AgentLinux.cpp | init                     | running...             | port: 8888
[1647347961.593810] info     | Root.cpp           | set_verbose_level        | logger setup           | verbose_level: 6
[1647347972.899694] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x00000000, len: 24, data: 
0000: 80 00 00 00 00 01 10 00 58 52 43 45 01 00 01 0F 51 73 E2 2A 81 00 FC 01
[1647347972.899818] info     | Root.cpp           | create_client            | create                 | client_key: 0x5173E22A, session_id: 0x81
[1647347972.899863] info     | SessionManager.hpp | establish_session        | session established    | client_key: 0x5173E22A, address: 127.0.0.1:39844
[1647347972.899957] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 19, data: 
0000: 81 00 00 00 04 01 0B 00 00 00 58 52 43 45 01 00 01 0F 00
[1647347972.900114] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 52, data: 
0000: 81 80 00 00 01 07 2C 00 00 0A 00 01 01 03 00 00 1D 00 00 00 00 01 00 00 15 00 00 00 2F 72 63 6C
0020: 63 2F 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65 00 00 00 00
[1647347972.908097] info     | ProxyClient.cpp    | create_participant       | participant created    | client_key: 0x5173E22A, participant_id: 0x000(1)
[1647347972.908154] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 00 00 05 01 06 00 00 0A 00 01 00 00
[1647347972.908170] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 01 00 00 00 80
[1647347972.908251] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 01 00 00 00 80
[1647347972.908446] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 120, data: 
0000: 81 80 01 00 01 07 6E 00 00 0B 00 02 02 03 00 00 60 00 00 00 28 00 00 00 72 74 2F 72 63 6C 63 2F
0020: 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65 2F 74 72 61 6E 73 69 74 69 6F 6E 5F 65 76 65 6E 74 00
0040: 00 01 00 00 2C 00 00 00 6C 69 66 65 63 79 63 6C 65 5F 6D 73 67 73 3A 3A 6D 73 67 3A 3A 64 64 73
0060: 5F 3A 3A 54 72 61 6E 73 69 74 69 6F 6E 45 76 65 6E 74 5F 00 00 01 00 00
[1647347972.908515] info     | ProxyClient.cpp    | create_topic             | topic created          | client_key: 0x5173E22A, topic_id: 0x000(2), participant_id: 0x000(1)
[1647347972.908542] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 01 00 05 01 06 00 00 0B 00 02 00 00
[1647347972.908552] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 02 00 00 00 80
[1647347972.908598] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 02 00 00 00 80
[1647347972.908612] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 24, data: 
0000: 81 80 02 00 01 07 10 00 00 0C 00 03 03 03 00 00 02 00 00 00 00 00 00 01
[1647347972.908657] info     | ProxyClient.cpp    | create_publisher         | publisher created      | client_key: 0x5173E22A, publisher_id: 0x000(3), participant_id: 0x000(1)
[1647347972.908679] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 02 00 05 01 06 00 00 0C 00 03 00 00
[1647347972.908686] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 03 00 00 00 80
[1647347972.908697] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 03 00 00 00 80
[1647347972.908711] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 36, data: 
0000: 81 80 03 00 01 07 1C 00 00 0D 00 05 05 03 00 00 0E 00 00 00 00 02 01 00 03 00 01 00 0A 00 00 00
0020: 00 00 00 03
[1647347972.908870] info     | ProxyClient.cpp    | create_datawriter        | datawriter created     | client_key: 0x5173E22A, datawriter_id: 0x000(5), publisher_id: 0x000(3)
[1647347972.908900] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 03 00 05 01 06 00 00 0D 00 05 00 00
[1647347972.908913] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 04 00 00 00 80
[1647347972.908918] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 04 00 00 00 80
[1647347972.908961] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 264, data: 
0000: 81 80 04 00 01 07 FF 00 00 0E 00 08 08 03 00 00 F1 00 00 00 22 00 00 00 2F 72 63 6C 63 2F 6C 69
0020: 66 65 63 79 63 6C 65 5F 6E 6F 64 65 2F 63 68 61 6E 67 65 5F 73 74 61 74 65 00 00 00 30 00 00 00
0040: 6C 69 66 65 63 79 63 6C 65 5F 6D 73 67 73 3A 3A 73 72 76 3A 3A 64 64 73 5F 3A 3A 43 68 61 6E 67
0060: 65 53 74 61 74 65 5F 52 65 71 75 65 73 74 5F 00 31 00 00 00 6C 69 66 65 63 79 63 6C 65 5F 6D 73
0080: 67 73 3A 3A 73 72 76 3A 3A 64 64 73 5F 3A 3A 43 68 61 6E 67 65 53 74 61 74 65 5F 52 65 73 70 6F
00A0: 6E 73 65 5F 00 01 00 00 2B 00 00 00 72 71 2F 72 63 6C 63 2F 6C 69 66 65 63 79 63 6C 65 5F 6E 6F
00C0: 64 65 2F 63 68 61 6E 67 65 5F 73 74 61 74 65 52 65 71 75 65 73 74 00 01 29 00 00 00 72 72 2F 72
00E0: 63 6C 63 2F 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65 2F 63 68 61 6E 67 65 5F 73 74 61 74 65 52
0100: 65 70 6C 79 00 00 01 00
[1647347972.909252] info     | ProxyClient.cpp    | create_replier           | replier created        | client_key: 0x5173E22A, requester_id: 0x000(7), participant_id: 0x000(1)
[1647347972.909279] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 04 00 05 01 06 00 00 0E 00 08 00 00
[1647347972.909291] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 05 00 00 00 80
[1647347972.909327] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 05 00 00 00 80
[1647347972.909345] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 272, data: 
0000: 81 80 05 00 08 01 10 00 00 0F 00 08 80 00 00 01 FF FF 00 00 00 00 00 00 01 07 F4 00 00 10 00 18
0020: 08 03 66 65 E6 00 00 00 1F 00 00 00 2F 72 63 6C 63 2F 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65
0040: 2F 67 65 74 5F 73 74 61 74 65 00 00 2D 00 00 00 6C 69 66 65 63 79 63 6C 65 5F 6D 73 67 73 3A 3A
0060: 73 72 76 3A 3A 64 64 73 5F 3A 3A 47 65 74 53 74 61 74 65 5F 52 65 71 75 65 73 74 5F 00 00 00 00
0080: 2E 00 00 00 6C 69 66 65 63 79 63 6C 65 5F 6D 73 67 73 3A 3A 73 72 76 3A 3A 64 64 73 5F 3A 3A 47
00A0: 65 74 53 74 61 74 65 5F 52 65 73 70 6F 6E 73 65 5F 00 01 00 28 00 00 00 72 71 2F 72 63 6C 63 2F
00C0: 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65 2F 67 65 74 5F 73 74 61 74 65 52 65 71 75 65 73 74 00
00E0: 01 7F 00 00 26 00 00 00 72 72 2F 72 63 6C 63 2F 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65 2F 67
0100: 65 74 5F 73 74 61 74 65 52 65 70 6C 79 00 00 01
[1647347972.909588] info     | ProxyClient.cpp    | create_replier           | replier created        | client_key: 0x5173E22A, requester_id: 0x001(7), participant_id: 0x000(1)
[1647347972.909616] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 05 00 05 01 06 00 00 10 00 18 00 00
[1647347972.909626] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 06 00 00 00 80
[1647347972.909667] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 06 00 00 00 80
[1647347972.909692] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 324, data: 
0000: 81 80 06 00 08 01 10 00 00 11 00 18 80 00 00 01 FF FF 00 00 00 00 00 00 01 07 27 01 00 12 00 28
0020: 08 03 00 00 19 01 00 00 2A 00 00 00 2F 72 63 6C 63 2F 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65
0040: 2F 67 65 74 5F 61 76 61 69 6C 61 62 6C 65 5F 73 74 61 74 65 73 00 73 D1 37 00 00 00 6C 69 66 65
0060: 63 79 63 6C 65 5F 6D 73 67 73 3A 3A 73 72 76 3A 3A 64 64 73 5F 3A 3A 47 65 74 41 76 61 69 6C 61
0080: 62 6C 65 53 74 61 74 65 73 5F 52 65 71 75 65 73 74 5F 00 00 38 00 00 00 6C 69 66 65 63 79 63 6C
00A0: 65 5F 6D 73 67 73 3A 3A 73 72 76 3A 3A 64 64 73 5F 3A 3A 47 65 74 41 76 61 69 6C 61 62 6C 65 53
00C0: 74 61 74 65 73 5F 52 65 73 70 6F 6E 73 65 5F 00 01 7F 00 00 33 00 00 00 72 71 2F 72 63 6C 63 2F
00E0: 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65 2F 67 65 74 5F 61 76 61 69 6C 61 62 6C 65 5F 73 74 61
0100: 74 65 73 52 65 71 75 65 73 74 00 01 31 00 00 00 72 72 2F 72 63 6C 63 2F 6C 69 66 65 63 79 63 6C
0120: 65 5F 6E 6F 64 65 2F 67 65 74 5F 61 76 61 69 6C 61 62 6C 65 5F 73 74 61 74 65 73 52 65 70 6C 79
0140: 00 00 01 00
[1647347972.909919] info     | ProxyClient.cpp    | create_replier           | replier created        | client_key: 0x5173E22A, requester_id: 0x002(7), participant_id: 0x000(1)
[1647347972.909939] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 06 00 05 01 06 00 00 12 00 28 00 00
[1647347972.909947] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 07 00 00 00 80
[1647347972.909990] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 07 00 00 00 80
[1647347972.910015] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 348, data: 
0000: 81 80 07 00 08 01 10 00 00 13 00 28 80 00 00 01 FF FF 00 00 00 00 00 00 01 07 40 01 00 14 00 38
0020: 08 03 00 03 32 01 00 00 2F 00 00 00 2F 72 63 6C 63 2F 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65
0040: 2F 67 65 74 5F 61 76 61 69 6C 61 62 6C 65 5F 74 72 61 6E 73 69 74 69 6F 6E 73 00 00 3C 00 00 00
0060: 6C 69 66 65 63 79 63 6C 65 5F 6D 73 67 73 3A 3A 73 72 76 3A 3A 64 64 73 5F 3A 3A 47 65 74 41 76
0080: 61 69 6C 61 62 6C 65 54 72 61 6E 73 69 74 69 6F 6E 73 5F 52 65 71 75 65 73 74 5F 00 3D 00 00 00
00A0: 6C 69 66 65 63 79 63 6C 65 5F 6D 73 67 73 3A 3A 73 72 76 3A 3A 64 64 73 5F 3A 3A 47 65 74 41 76
00C0: 61 69 6C 61 62 6C 65 54 72 61 6E 73 69 74 69 6F 6E 73 5F 52 65 73 70 6F 6E 73 65 5F 00 01 FF FF
00E0: 38 00 00 00 72 71 2F 72 63 6C 63 2F 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65 2F 67 65 74 5F 61
0100: 76 61 69 6C 61 62 6C 65 5F 74 72 61 6E 73 69 74 69 6F 6E 73 52 65 71 75 65 73 74 00 01 FE C9 67
0120: 36 00 00 00 72 72 2F 72 63 6C 63 2F 6C 69 66 65 63 79 63 6C 65 5F 6E 6F 64 65 2F 67 65 74 5F 61
0140: 76 61 69 6C 61 62 6C 65 5F 74 72 61 6E 73 69 74 69 6F 6E 73 52 65 70 6C 79 00 00 01
[1647347972.910266] info     | ProxyClient.cpp    | create_replier           | replier created        | client_key: 0x5173E22A, requester_id: 0x003(7), participant_id: 0x000(1)
[1647347972.910291] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 07 00 05 01 06 00 00 14 00 38 00 00
[1647347972.910299] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 08 00 00 00 80
[1647347972.910351] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 08 00 00 00 80
[1647347972.910366] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 44, data: 
0000: 81 80 08 00 08 01 10 00 00 15 00 38 80 00 00 01 FF FF 00 00 00 00 00 00 08 01 10 00 00 16 00 38
0020: 00 00 00 01 00 00 00 00 00 00 00 00
[1647347972.910490] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 09 00 00 00 80
[1647347973.911125] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 12, data: 
0000: 81 80 09 00 03 01 04 00 00 17 00 38
[1647347973.912210] debug    | ProxyClient.cpp    | delete_object_unlock     | object deleted         | client_key: 0x5173E22A, object_id: 0x0003
[1647347973.912409] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 08 00 05 01 06 00 00 17 00 38 00 00
[1647347973.912467] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0A 00 00 00 80
[1647347973.912550] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 09 00 00 00 80
[1647347973.912597] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 24, data: 
0000: 81 80 0A 00 08 01 10 00 00 18 00 28 00 00 00 01 00 00 00 00 00 00 00 00
[1647347974.011960] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0B 00 00 00 80
[1647347974.913199] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 12, data: 
0000: 81 80 0B 00 03 01 04 00 00 19 00 28
[1647347974.913813] debug    | ProxyClient.cpp    | delete_object_unlock     | object deleted         | client_key: 0x5173E22A, object_id: 0x0002
[1647347974.913990] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 09 00 05 01 06 00 00 19 00 28 00 00
[1647347974.914046] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0C 00 00 00 80
[1647347974.914122] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0A 00 00 00 80
[1647347974.914168] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 24, data: 
0000: 81 80 0C 00 08 01 10 00 00 1A 00 18 00 00 00 01 00 00 00 00 00 00 00 00
[1647347975.013118] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0D 00 00 00 80
[1647347975.915317] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 12, data: 
0000: 81 80 0D 00 03 01 04 00 00 1B 00 18
[1647347975.915925] debug    | ProxyClient.cpp    | delete_object_unlock     | object deleted         | client_key: 0x5173E22A, object_id: 0x0001
[1647347975.916146] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 0A 00 05 01 06 00 00 1B 00 18 00 00
[1647347975.916205] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0E 00 00 00 80
[1647347975.916294] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0B 00 00 00 80
[1647347975.916342] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 24, data: 
0000: 81 80 0E 00 08 01 10 00 00 1C 00 08 00 00 00 01 00 00 00 00 00 00 00 00
[1647347976.015670] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0F 00 00 00 80
[1647347976.917920] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 12, data: 
0000: 81 80 0F 00 03 01 04 00 00 1D 00 08
[1647347976.918712] debug    | ProxyClient.cpp    | delete_object_unlock     | object deleted         | client_key: 0x5173E22A, object_id: 0x0000
[1647347976.918905] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 0B 00 05 01 06 00 00 1D 00 08 00 00
[1647347976.918966] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 10 00 00 00 80
[1647347976.919085] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0C 00 00 00 80
[1647347976.919155] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 12, data: 
0000: 81 80 10 00 03 01 04 00 00 1E 00 02
[1647347976.919239] debug    | ProxyClient.cpp    | delete_object_unlock     | object deleted         | client_key: 0x5173E22A, object_id: 0x0000
[1647347976.919396] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 0C 00 05 01 06 00 00 1E 00 02 00 00
[1647347976.919474] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 11 00 00 00 80
[1647347976.919560] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0D 00 00 00 80
[1647347976.919645] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 20, data: 
0000: 81 80 11 00 03 01 04 00 00 1F 00 05 03 01 04 00 00 20 00 03
[1647347976.919933] debug    | ProxyClient.cpp    | delete_object_unlock     | object deleted         | client_key: 0x5173E22A, object_id: 0x0000
[1647347976.920008] debug    | ProxyClient.cpp    | delete_object_unlock     | object deleted         | client_key: 0x5173E22A, object_id: 0x0000
[1647347976.920081] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 0D 00 05 01 06 00 00 1F 00 05 00 00
[1647347976.920160] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 14, data: 
0000: 81 80 0E 00 05 01 06 00 00 20 00 03 00 00
[1647347976.920204] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0E 00 00 00 80
[1647347976.920213] debug    | UDPv4AgentLinux.cpp | send_message             | [** <<UDP>> **]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 12 00 00 00 80
[1647347976.920298] debug    | UDPv4AgentLinux.cpp | recv_message             | [==>> UDP <<==]        | client_key: 0x5173E22A, len: 13, data: 
0000: 81 00 00 00 0A 01 05 00 0F 00 00 00 80

# t2
zs@zs-3630:~/zs_ws/ros2_mcu/app_ws$ export RMW_IMPLEMENTATION=rmw_microxrcedds
zs@zs-3630:~/zs_ws/ros2_mcu/app_ws$ ros2 run micro_ros_lifecycle_node lifecycle_node 
creating lifecycle node...
[ERROR] [1647345731.603793383] []: Unable to initialize state machine: error not set, at /tmp/binarydeb/ros-galactic-rcl-3.1.2/src/rcl/service.c:122
Error in creating lifecycle node.

ZhenshengLee avatar Mar 15 '22 12:03 ZhenshengLee

@ZhenshengLee "example_lifecycle_node process exit after the service call" any error messages?

No, there is no extra output in terminal.

# t1
source /opt/ros/galactic/setup.bash
zs@zs-3630:~/zs_ws/ros2_mcu$ ros2 run rclc_examples example_lifecycle_node 
creating lifecycle node...
registering lifecycle services...
registering callbacks...

ZhenshengLee avatar Mar 15 '22 12:03 ZhenshengLee

in terminal t1 you don't set fastrtps as DDS middleware.

If you want to use micro-ros, after source /opt/ros/galactic/setup.bash

you need also ...

export RMW_IMPLEMENTATION=rmw_fastrtps_cpp

JanStaschulat avatar Mar 15 '22 12:03 JanStaschulat

in terminal t1 you don't set fastrtps as DDS middleware.

actually I add export RMW_IMPLEMENTATION=rmw_fastrtps_cpp in my .bashrc

@JanStaschulat

image

ZhenshengLee avatar Mar 15 '22 13:03 ZhenshengLee

Related https://github.com/micro-ROS/micro-ROS-demos/issues/56

pablogs9 avatar Mar 15 '22 13:03 pablogs9

the core stack of debugging https://github.com/ZhenshengLee/ros2_mcu/blob/master/app_ws/src/lifecycle_node/app.c

after

ros2 service call /rclc/lifecycle_node/get_state lifecycle_msgs/srv/GetState 

the stack is

librclc_lifecycle.so!rclc_lifecycle_get_state_callback (Unknown Source:0)
librclc.so![Unknown/Just-In-Time compiled code] (Unknown Source:0)
librclc.so!rclc_executor_spin_some (Unknown Source:0)
librclc.so!rclc_executor_spin (Unknown Source:0)
main(int argc, const char ** argv) (/home/zs/zs_ws/ros2_mcu/app_ws/src/lifecycle_node/app.c:115)

ZhenshengLee avatar Mar 16 '22 01:03 ZhenshengLee

@ZhenshengLee, which code are you executing? In your app there is a printf before calling spin. But I don't see that output in your terminal.

JanStaschulat avatar Mar 16 '22 09:03 JanStaschulat

@ZhenshengLee, which code are you executing? In your app there is a printf before calling spin. But I don't see that output in your terminal.

  1. this issue is about codes from rclc_lifecycle galactic release via apt installation
  2. in order to debug, I created https://github.com/ZhenshengLee/ros2_mcu/blob/master/app_ws/src/lifecycle_node/app.c and compile it in debug mode, and add a printf before calling spin. but this app.c is pretty similar with what in https://github.com/ros2/rclc/blob/master/rclc_examples/src/example_lifecycle_node.c
  3. the call stack is from https://github.com/ZhenshengLee/ros2_mcu/blob/master/app_ws/src/lifecycle_node/app.c because I debug this program in my personally maintained repo.

ZhenshengLee avatar Mar 16 '22 10:03 ZhenshengLee

Galactic is EOL.

JanStaschulat avatar Feb 03 '23 08:02 JanStaschulat