Skip to content

Missing the navigation when using kmall_to_ros_bag.py  #18

@Kurtaja

Description

@Kurtaja

Hi, I'm trying to use the kmall_to_ros_bag.py script with the aim to obtain a point cloud file from it. This is how I call the script
'python kmall_to_ros_bag.py -o myBagFile.bag myKmFile.kmall'
, which creates the 'myBagFile.bag' file ok. Then I convert it to a pcd file with this script,
"
import rosbag
import sensor_msgs.point_cloud2 as pc2
import numpy as np
import open3d as o3d

def bag_to_pcd(bag_file, topic, output_pcd_file):
accumulated_points = []

with rosbag.Bag(bag_file, 'r') as bag:
    for _, msg, _ in bag.read_messages(topics=[topic]):
        pc_data = pc2.read_points(msg, field_names=("x", "y", "z"), skip_nans=True)
        pc_np = np.array(list(pc_data))
        pc_xyz = pc_np[:, :3]
        accumulated_points.append(pc_xyz)

# Concatenate all points
if accumulated_points:
    all_points = np.concatenate(accumulated_points, axis=0)
    point_cloud = o3d.geometry.PointCloud()
    point_cloud.points = o3d.utility.Vector3dVector(all_points)
    o3d.io.write_point_cloud(output_pcd_file, point_cloud)

if name == "main":
bag_file = "myBagFile.bag"
topic = "mbes/pings"
output_pcd_file = "myPclFile.pcd"

bag_to_pcd(bag_file, topic, output_pcd_file)

"
, which also makes the 'myPclFile.pcd' file ok. However, when displaying the pcd file in a point cloud viewer, all the scans end up in the same spot, as if the vessel was not moving (which it is). I'm sure there must be a dead simple detail that I'm missing, but I'm not able to figure how. Do you have the possibility to show me how I can make sure that I get the navigation, attitudes as well as compensation for svp into the exported files?
Kind regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions