How many message types can be published to a topic?
I have seen that messages can be transfered to topics. Can we send only one type of msg type? or any number of message types?
ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
I have seen that messages can be transfered to topics. Can we send only one type of msg type? or any number of message types?
Topics are (in a way) strongly typed, so theoretically you can only send messages of a single type to them (namely, the type that was NodeHandle::advertise(..)
d.
Edit: just tested this with three rostopic
instances:
pub /chatter std_msgs/String "data: 'piet'" -r1
pub /chatter std_msgs/Int16 "data: 345" -r1
echo /chatter
Result: the last publisher "wins", so the topic type registered appears to be std_msgs/int16
. rostopic echo
also prints 345
.
The std_msgs/String
publisher prints this:
[/rostopic_15588_1537948069134] [WARN] [1537948151.558332]: Could not process inbound connection: topic types do not match: [std_msgs/Int16] vs. [std_msgs/String]{'message_definition': 'int16 data\n', 'callerid': '/rostopic_17009_1537948151282', 'tcp_nodelay': '0', 'md5sum': '8524586e34fbd7cb1c08c5f5f1ca0e57', 'topic': '/chatter', 'type': 'std_msgs/Int16'}
Summarising: you can advertise(..)
any type on a single topic, but the "last one" will "win" and connections between publishers and subscribers will error out as they expect a certain type but during handshaking they see another.
Note: rostopic
is Python, I've not tested C++ but the behaviour should be similar.
How many message types can be published to a topic? 1.
Asked: 2018-09-26 02:43:40 -0500
Seen: 2,978 times
Last updated: Sep 26 '18
How to extract feature points for EKF slam using 3d point cloud?
Unable to install keys for ROS Kinetic using Ubuntu 16.04
How to combine HectorSLAM and RGB-D camera data to achieve 3D mapping?
Build a grid map from pointcloud2
How do I solve the sklearn error
Segmentation fault (core dumped) depending on callback queue size?