- Make sure that PX4 simulator is publishing messages with the same DomainID that you are using in MATLAB.
- Make sure that simulator and the host machine where you are launching the MATLAB are in same subnet. Otherwise you may need to use DEFAULT_FASTRTPS.xml file to establish communication at both ends. Refer to ROS Communication Outside Subnet for more details.
- You don't need 'rosinit' in your script as it is required launch the ROS master in ROS1 and it is not related to ROS2.
- Make sure that publisher is publishing messages regularly. You can use "ros2 topic echo /fmu/out/sensor_combined' on your simulator to know the data being published by the publisher.
Ros2subscriber/receive Subscriber did not receive any messages and timed out.
15 次查看(过去 30 天)
显示 更早的评论
Hello,
I am attempting to subcribe nodes on matlab to PX4 Autopilot topics. I am running PX4 software in the loop flying a simulated quadcopter, I can echo the ROS2 topics in linux terminal, so there is data being published. However when I attempt to subscribe using MATLAB I do not recieve any data. I am not sure what the issue is as I have almost completely followed examples where /chatter is the topic.
rosinit;
setenv("ROS_DOMAIN_ID","101");%I need this to not conflict with other ROS2
%networks/shouldn't be a problem because matlab can see the topics with ros2 topic list
node1 = ros2node('matlab');
node2 = ros2subscriber(node1,'/fmu/out/sensor_combined');
msg = receive(node2,10)
>> ros2sub
Error using ros2subscriber/receive
Subscriber did not receive any messages and timed out.
Error in ros2sub (line 7)
msg = receive(node2,10)
3 个评论
采纳的回答
Jagadeesh Konakalla
2023-6-12
It turns out that the issue is that default ROS subscribers are incompatible with PX4 publishers due to their different QoS settings. To fix the problem I used this MATLAB documentation: https://www.mathworks.com/help/ros/ug/manage-quality-of-service-policies-in-ros2.html
0 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!