Exporting PCD file using rtbamap-export

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Exporting PCD file using rtbamap-export

dinossht
Is there a convenient way to export pcd file using rtbamap-export in similar fashion as rtbamap -databaseViewer does?
Reply | Threaded
Open this post in threaded view
|

Re: Exporting PCD file using rtbamap-export

matlabbe
Administrator
Most options from the UI are available from rtabmap-export. See the usage description:
$ rtabmap-export 

Usage:
rtabmap-export [options] database.db
Options:
    --output ""           Output name (default: name of the database is used).
    --output_dir ""       Output directory (default: same directory than the database).
    --ascii               Export PLY in ascii format.
    --las                 Export cloud in LAS instead of PLY (PDAL dependency required).
    --mesh                Create a mesh.
    --texture             Create a mesh with texture.
    --texture_size  #     Texture size 1024, 2048, 4096, 8192, 16384 (default 8192).
    --texture_count #     Maximum textures generated (default 1). Ignored by --multiband option (adjust --multiband_contrib instead).
    --texture_range #     Maximum camera range for texturing a polygon (default 0 meters: no limit).
    --texture_angle #     Maximum camera angle for texturing a polygon (default 0 deg: no limit).
    --texture_depth_error # Maximum depth error between reprojected mesh and depth image to texture a face (-1=disabled, 0=edge length is used, default=0).
    --texture_roi_ratios "# # # #" Region of interest from images to texture or to color scans. Format is "left right top bottom" (e.g. "0 0 0 0.1" means 10% of the image bottom not used).
    --texture_d2c         Distance to camera policy.
    --texture_blur #      Motion blur threshold (default 0: disabled). Below this threshold, the image is considered blurred. 0 means disabled. 50 can be good default.
    --cam_projection      Camera projection on assembled cloud and export node ID on each point (in PointSourceId field).
    --cam_projection_keep_all  Keep not colored points from cameras (node ID will be 0 and color will be red).
    --cam_projection_decimation  Decimate images before projecting the points.
    --cam_projection_mask ""  File path for a mask. Format should be 8-bits grayscale. The mask should cover all cameras in case multi-camera is used and have the same resolution.
    --poses               Export optimized poses of the robot frame (e.g., base_link).
    --poses_camera        Export optimized poses of the camera frame (e.g., optical frame).
    --poses_scan          Export optimized poses of the scan frame.
    --poses_format #      Format used for exported poses (default is 11):
                              0=Raw 3x4 transformation matrix (r11 r12 r13 tx r21 r22 r23 ty r31 r32 r33 tz)
                              1=RGBD-SLAM (in motion capture coordinate frame)
                              2=KITTI (same as raw but in optical frame)
                              3=TORO
                              4=g2o
                              10=RGBD-SLAM in ROS coordinate frame (stamp x y z qx qy qz qw)
                              11=RGBD-SLAM in ROS coordinate frame + ID (stamp x y z qx qy qz qw id)
    --images              Export images with stamp as file name.
    --images_id           Export images with node id as file name.
    --ba                  Do global bundle adjustment before assembling the clouds.
    --gain          #     Gain compensation value (default 1, set 0 to disable).
    --gain_gray           Do gain estimation compensation on gray channel only (default RGB channels).
    --no_blending         Disable blending when texturing.
    --no_clean            Disable cleaning colorless polygons.
    --min_cluster   #     When meshing, filter clusters of polygons with size less than this threshold (default 200, -1 means keep only biggest contiguous surface).
    --low_gain      #     Low brightness gain 0-100 (default 0).
    --high_gain     #     High brightness gain 0-100 (default 10).
    --multiband               Enable multiband texturing (AliceVision dependency required).
    --multiband_downscale #   Downscaling reduce the texture quality but speed up the computation time (default 2).
    --multiband_contrib "# # # # "  Number of contributions per frequency band for the multi-band blending, should be 4 values! (default "1 5 10 0").
    --multiband_unwrap #      Method to unwrap input mesh: 0=basic (default, >600k faces, fast), 1=ABF (<=300k faces, generate 1 atlas), 2=LSCM (<=600k faces, optimize space).
    --multiband_fillholes     Fill Texture holes with plausible values.
    --multiband_padding #     Texture edge padding size in pixel (0-100) (default 5).
    --multiband_scorethr #    0 to disable filtering based on threshold to relative best score (0.0-1.0). (default 0.1).
    --multiband_anglethr #    0 to disable angle hard threshold filtering (0.0, 180.0) (default 90.0).
    --multiband_forcevisible  Triangle visibility is based on the union of vertices visibility.
    --poisson_depth #     Set Poisson depth for mesh reconstruction.
    --poisson_size  #     Set target polygon size when computing Poisson's depth for mesh reconstruction (default 0.03 m).
    --max_polygons  #     Maximum polygons when creating a mesh (default 300000, set 0 for no limit).
    --min_range     #     Minimum range of the created clouds (default 0 m).
    --max_range     #     Maximum range of the created clouds (default 4 m, 0 m with --scan).
    --decimation    #     Depth image decimation before creating the clouds (default 4, 1 with --scan).
    --voxel         #     Voxel size of the created clouds (default 0.01 m, 0 m with --scan).
    --ground_normals_up  #  Flip ground normals up if close to -z axis (default 0, 0=disabled, value should be >0 and <1, typical 0.9).
    --noise_radius  #     Noise filtering search radius (default 0, 0=disabled).
    --noise_k       #     Noise filtering minimum neighbors in search radius (default 5, 0=disabled).
    --prop_radius_factor #  Proportional radius filter factor (default 0, 0=disabled). Start tuning from 0.01.
    --prop_radius_scale  #  Proportional radius filter neighbor scale (default 2).
    --random_samples #    Number of output samples using a random filter (default 0, 0=disabled).
    --color_radius  #     Radius used to colorize polygons (default 0.05 m, 0 m with --scan). Set 0 for nearest color.
    --scan                Use laser scan for the point cloud.
    --save_in_db          Save resulting assembled point cloud or mesh in the database.
    --xmin #              Minimum range on X axis to keep nodes to export.
    --xmax #              Maximum range on X axis to keep nodes to export.
    --ymin #              Minimum range on Y axis to keep nodes to export.
    --ymax #              Maximum range on Y axis to keep nodes to export.
    --zmin #              Minimum range on Z axis to keep nodes to export.
    --zmax #              Maximum range on Z axis to keep nodes to export.
    --filter_ceiling #    Filter points over a custom height (default 0 m, 0=disabled).
    --filter_floor #      Filter points below a custom height (default 0 m, 0=disabled).

RTAB-Map options:
   --help                         Show usage.
   --version                      Show version of rtabmap and its dependencies.
   --params                       Show all parameters with their default value and description. 
                                  If a database path is set as last argument, the parameters in the 
                                  database will be shown in INI format.
   --"parameter name" "value"     Overwrite a specific RTAB-Map's parameter :
                                    --SURF/HessianThreshold 150
                                   For parameters in table format, add ',' between values :
                                    --Kp/RoiRatios 0,0,0.1,0
Logger options:
   --nolog              Disable logger
   --logconsole         Set logger console type
   --logfile "path"     Set logger file type
   --logfilea "path"    Set logger file type with appending mode if the file already exists
   --udebug             Set logger level to debug
   --uinfo              Set logger level to info
   --uwarn              Set logger level to warn
   --uerror             Set logger level to error
   --logtime "bool"     Print time when logging
   --logwhere "bool"    Print where when logging
   --logthread "bool"   Print thread id when logging

If you find a satisfactory combination of parameters from DatabaseViewer and you are not sure what are the corresponding options here, I could help you.
Reply | Threaded
Open this post in threaded view
|

Re: Exporting PCD file using rtbamap-export

dinossht
Figured out I could use pcl_ply2pcd -format 0 /root/.ros/rtabmap_cloud.ply /root/.ros/rtabmap_cloud.pcd to convert from ply to pcd file. I can not seem to see this option directly in rtabmap-export usage.
Reply | Threaded
Open this post in threaded view
|

Re: Exporting PCD file using rtbamap-export

matlabbe
Administrator
Oh sorry, I read too fast. rtabmap-export only exports in PLY, LAS or OBJ. Using pcl_ply2pcd should indeed work.
Reply | Threaded
Open this post in threaded view
|

Re: Exporting PCD file using rtbamap-export

dinossht
Yes, thank you.