关于订阅话题/robot_description后,立马返回相应信息的实现问题
-
各位,目前在学习ROS2的过程中,发现了一个感觉有点超越目前理解的问题。
操作步骤如下
1.打开了gazebo的例程ros2 launch gazebo_ros2_control_demos diff_drive.launch.py
2.查看话题
yong@yong-ubuntu:~$ ros2 topic list /clock /diff_drive_base_controller/cmd_vel_unstamped /diff_drive_base_controller/odom /diff_drive_base_controller/transition_event /dynamic_joint_states /joint_state_broadcaster/transition_event /joint_states /parameter_events /performance_metrics /robot_description /rosout /tf /tf_static
3.订阅话题
yong@yong-ubuntu:~$ ros2 topic echo /robot_description data: <?xml version="1.0" ?><robot name="diff_drive"><!-- Base Link --><link name="chassis"><collision><origin rpy="0 0 0" xyz="-0.151... ---
可以看到,在订阅话题后,立马收到了话题的响应,获取到了信息。
一开始我以为是话题发布者通过 get_subscription_count() 不断获取实时的订阅者数量,当发现订阅者数量发生变化时,发布一次话题(广播)。
然而,当我保持此次订阅,并重新创建另外一个订阅时,另外新创建的订阅会收到信息,这是正常的。但是原来打开的那个订阅,并没有收到新的信息。
所以,我想咨询一下,这个 /robot_description 话题是如何做到:
a.在订阅者订阅时立马发送一次信息给订阅者。
b.而且还是独立发送的。 -
-
-
3 312780179 将这个主题转为问答主题,在
-
3 312780179 将这个主题标记为已解决,在