Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Hello Mathieu,
I have a strange issue playing a bag file. As the bag plays i get the following error: [FATAL] (2021-05-01 17:02:36.601) MsgConversion.cpp:2198::convertScan3dMsg() Condition (scan3dMsg.data.size() == scan3dMsg.row_step*scan3dMsg.height) not met! [data=314314 row_step=0 height=1] terminate called after throwing an instance of 'UException' what(): [FATAL] (2021-05-01 17:02:36.601) MsgConversion.cpp:2198::convertScan3dMsg() Condition (scan3dMsg.data.size() == scan3dMsg.row_step*scan3dMsg.height) not met! [data=314314 row_step=0 height=1] The thing is that I didn't have this problem before with this bag file, any ideas ? Please help, I can not find any relevant info! Thanks in advance. |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Administrator
|
This post was updated on Aug 19, 2021; 2:52pm.
Hi Mikor,
It looks like your PointCloud2 msg has missing "row_step". This assert has been added recently to avoid strange seg faults down the line when converting PointCloud2 (example here). Depending on the filtering algorithm used, row_step may not be used, so it is why the bag may have worked before without that check. You may filter that bag to fix the row_step. A script similar to this could be used to modify your PointCloud2 topic. cheers, Mathieu |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Hi Mathieu,
Thanks for the fast answer! It seems that every bag I recorded with the topics coming from the velodyne_pointcloud package have "row_step" set to 0, I do not know if I can change that in order to publish it the suitable value but thanks again!! |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Administrator
|
It looks like it should set row_step here: https://github.com/ros-drivers/velodyne/blob/7c2f199f552ecb9f58a3c30734681042b1b99f82/velodyne_pointcloud/include/velodyne_pointcloud/datacontainerbase.h#L70, if init_width and offset are not null.
You may check why velodyne_pointcloud is publishing row_step=0. Another patch could be to comment the assert in rtabmap code if you built from source, though I would prefer fixing the problem upstream. To recover your rosbag without changing rtabmap code, use the rosbag api like in my example to fix the row_step. The row_step is simply width*point_step (assuming point_step is not null too). cheers |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Administrator
|
If someone has the same error, make sure you have this commit on velodyne package: https://github.com/ros-drivers/velodyne/commit/3817b357df0033ff1faa67578217e6494ff47cb9
|
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
In reply to this post by matlabbe
i have checked all the line mentioned about assert, in all the cpp files, they were the same as the one which you mentioned(the lines which should be added)
|
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
In reply to this post by matlabbe
Dear Mattieu,
the velodyne pakage that i use is thios one: velodyne.gz this package is for ROS1 that unfortunately shows the error of row_step=0. I cannnot fine a velodyne package properly for ROS1. would you please help me? thanks |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Administrator
|
Please use references to github, in a zip we cannot know what is the reveision version of the package. The master branch of https://github.com/ros-drivers/velodyne is ROS1, not sure which velodyne repo you are using.
|
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Dear Mattieu,
I dowinloaded the one that you mentioned in github. and put it inside the robot and did catkin_make. then i started recording data, but again it shows row_step=0. I am working with Velodyne LiDAR’s ULTRA Puck VLP-32C. Ros kinetic, 16.04 Python 2.7.12 |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Administrator
|
I would suggest to add some ROS_ERROR around where the row_step should be set like in the patch, and see what are the values you get.
https://github.com/ros-drivers/velodyne/commit/3817b357df0033ff1faa67578217e6494ff47cb9#diff-e80f6e84dc02198e8db25fbfd453facf144d51b5ab16131d04648d51f30dfee3R122 I cannot help more for that, the line is there... |
Loading... |
Reply to author |
Edit post |
Move post |
Delete this post |
Delete this post and replies |
Change post date |
Print post |
Permalink |
Raw mail |
Dear Mattieu,
finally it worked. although I have did a number of times (modifying row_step file) and put it inside the robot. yesterday, one more time i tested it again, and hopefully it worked. thanks a lot for your patience and kind support Masoumeh |
Free forum by Nabble | Edit this page |