I am getting the following error trying to read a Rosbag file. Following another questions I have increased the Java heap memory.
I have created a request to Mathworks, but probably the comunity could help also.
I appreciate you help.
Steps to replicate de error.
>> bag = rosbag('/rosbag_file.bag');
>> bagbag = BagSelection with properties: FilePath: '/rosbag_file.bag' StartTime: 1.583866799690000e+09 EndTime: 1.583868599470000e+09 NumMessages: 1140612 AvailableTopics: [5×3 table] AvailableFrames: {0×1 cell} MessageList: [1140612×4 table]
>> bag.AvailableTopics
ans = 5×3 table NumMessages MessageType MessageDefinition /odo 131474 nav_msgs/Odometry {' uint32 S [...] /Rpm 323514 std_msgs/Float64 {0×0 char [...] /flag 323514 std_msgs/Bool {0×0 char [...] /pose 323514 nav_msgs/Odometry {' uint32 S [...] /gps 12862 gps_common/GPSFix {' uint32 S [...]
Error when reading a subset:
>>bag2 = select(bag,'Time',[bag.StartTime bag.StartTime + 1],'Topic','/odo');>>readMessages(bag2);Error using ros.BagSelection/deserializeMessages (line 641)Java exception occurred:java.lang.IndexOutOfBoundsException: Invalid combined index of 1684630641, maximum is 19960408 at org.jboss.netty.buffer.SlicedChannelBuffer.<init>(SlicedChannelBuffer.java:46) at org.jboss.netty.buffer.HeapChannelBuffer.slice(HeapChannelBuffer.java:200) at org.jboss.netty.buffer.AbstractChannelBuffer.readSlice(AbstractChannelBuffer.java:323) at org.ros.internal.message.field.PrimitiveFieldType$14.deserialize(PrimitiveFieldType.java:599) at org.ros.internal.message.field.PrimitiveFieldType$14.deserialize(PrimitiveFieldType.java:565) at org.ros.internal.message.field.ValueField.deserialize(ValueField.java:68) at org.ros.internal.message.DefaultMessageDeserializer.deserialize(DefaultMessageDeserializer.java:45) at org.ros.internal.message.field.MessageFieldType.deserialize(MessageFieldType.java:111) at org.ros.internal.message.field.MessageFieldType.deserialize(MessageFieldType.java:38) at org.ros.internal.message.field.ValueField.deserialize(ValueField.java:68) at org.ros.internal.message.DefaultMessageDeserializer.deserialize(DefaultMessageDeserializer.java:45)Error in ros.BagSelection/readMessages (line 278) msgs = obj.deserializeMessages(obj.MessageList, rows);
Best Answer