pointcloud2 can't receive
vehxianfish opened this issue · 17 comments
Thanks for your great job.I think the inter-processs comm is a wonderful feature to promote ros2 usage for industry.
when trying to subscriber sensor_msgs/msgs/point_cloud2
message,the subscirber node can't receive the message.but can receive string
type message when set set RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp
.
where the error comes from?
for example,don't support pointcloud2 message due to state type or need to write a protobuf by hand?
if so or not,what is the correct procedure?
Hi @vehxianfish. Thank you for your nice feedback. The current rmw is of type dynamic type support
and so supporting any kind of ROS messages (even not that fast like a static type support that we plan to implement).
I just created 4 sample nodes for you for PointCloud2
and string
messages. They work properly on my 10 machine with rmw_ecal_dynamic_cpp
but also with the standard ones. Can you please try to run that ones and give some more detailed feedback regarding your setup (OS, ROS distro ...) ?
One more question, which serialization method do you have enabled, custom or protobuf? If its protobuf could you try using custom one and letting us know of results?
@schilasky
thanks!! I try it,and reply to you as soon as possible
Hi @schilasky .I just tested your repo code in my computer.
the problem is same as before:
when I don't use
xu@xu:~$ RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp ros2 run subscriber_pointcloud2
subscriber_pointcloud2`,the subscriber received meesage succeed.as follows:
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
[INFO] [pointcloud_subscriber]: Received a message
^C[INFO] [rclcpp]: signal_handler(signal_value=2) ```
but if I add rmw param to command in terminal.
`xu@xu:~$ RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp ros2 run subscriber_pointcloud2 subscriber_pointcloud2`
the subcriber is so silent that terminal has no output.
Results is tested on two computer:
* ubuntu 20.04,ros:foxy
* ubuntu18.04,dashing
In the previous two cases,I can't get the the results in terminal with 'RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp' param
One more question, which serialization method do you have enabled, custom or protobuf? If its protobuf could you try using custom one and letting us know of results?
In the latest release there is no more protobuf serialization, but yes maybe he testet an older one.
@vehxianfish I assume that you installed eCAL middleware before you start using the rmw, did you ? Which version ? Is there any kind of firewall activated ?
eCAL is shipped with lots of demo test applications running with 'eCAL only'. Can you please start such an example (ecal_sample_person_snd, ecal_sample_person_rec) like described in the eCAL documentation ? You can btw. start the eCAL Monitor ecal_mon_gui every time to check what's going on in the background.
@rex-schilasky ,Thank you for your prompt reply.
I just tested and use ecal_mon_gui
Monitor to check it.
example (ecal_sample_person_snd, ecal_sample_person_rec) can work ,and monitor view the person subscriber 、persion publisher
.
I also test the pointcloud2 ros2samples(publisher and subscriber
) provided by schilasky.It also works.monitor can view two node subscriber and publisher
.
I think the failure reason is maybe the published pointcloud2 topic due to topic provided by ros1 recorded bag .
So when I use command 'RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp ros2 bag play -s rosbag_v2 test.bag',it dose not work.and error occurs:
[ERROR] [rosbag2]: Requested converter for format 'custom' does not exist
[ERROR] [rosbag2_transport]: Failed to play: Could not find converter for format custom
I believe that the reason is ros1 recorded bag.
so I use the ros1_bridge ros2 run ros1_bridge dynamic_bridge
and it also not work.and it only work when use $ros2 bag play -s rosbag_v2 test.bag $xu@xu:~$ros2 run subscriber_pointcloud2 subscriber_pointcloud2
without RMW_IMPLEMENTATION=rmw_ecal_dynamic_cpp
.
In other words,It's be ok when not use ecal rmw.
so the failure reason is pointcloud2 recorded by ros1?
if so,how can I solve it ?
hi,anyone has solution.thank you!
Hi @vehxianfish, is there any chance to forward me the ROS1 rosbag PointCloud recording ?
@schilasky ,of course.I will give you tomorrow,By what way shall I send it to you!
Can you upload your files here https://github.com/schilasky/ros_bag_files ?
helpful hint as well: there is this hosted ROSBAG available from Cruise's tool https://webviz.io that they use for their demo:
https://webviz.io/app/?demo=&seek-to=1490150282873
Can you upload your files here https://github.com/schilasky/ros_bag_files ?
yes,but how can I push my files?can you help me ? thank you.
it view upload are disabled
helpful hint as well: there is this hosted ROSBAG available from Cruise's tool https://webviz.io that they use for their demo:
https://webviz.io/app/?demo=&seek-to=1490150282873
emmm.thank you!
this bag is recorded by ros1?.and have tested by rmw_ecal?
Can you upload your files here https://github.com/schilasky/ros_bag_files ?
yes,but how can I push my files?can you help me ? thank you.
it view
upload are disabled
Hi, you need to git clone the repository on your machine, git add your rosbag file, commit and push it back. It's kind of missusing GitHub for exchanging binary files :)
this bag is recorded by ros1?.and have tested by rmw_ecal?
yes i believe its recorded using some ROS1 distro. no i havent tested it yet with rmw_ecal.
Closing due to inactivity.