Skip to content

H Pointcloud from GPS

Ernő Horváth edited this page Jan 12, 2023 · 8 revisions

img

Használjuk ezt a repot: https://github.com/lucasw/transform_point_cloud

transform_point_cloud_py.py
A topic-ot nevezzük át arra amelyik szenzornak az adatait szeretnénk használni, érdemes lehet az Autoware points_concat node-ját használni hogy az autó körül több környezeti elem látszódjon. (ez az autoware-es lépés kihagyható csak csak egyetlen LIDAR-ból dolgozunk)

self.sub = rospy.Subscriber("left_os1/os1_cloud_node/points", PointCloud2, self.point_cloud_callback, queue_size=10)

target_frame paraméter lehet a map_gyor_0 vagy a map_zala_0
source_frame paraméter alapesetben az adott szenzor frame-je, amennyiben a points_concat node-ot használunk ezt meg kell változtatni a launch fáljban megadott frame-re.

<?xml version="1.0"?>
<launch>

  <node name="transform_point_cloudpy" pkg="transform_point_cloud"
      type="transform_point_cloud_py.py"
      output="screen" >
    <!--<param name="target_frame" value="map_gyor_0" /> -->
    <param name="target_frame" value="map_zala_0" />
    <param name="source_frame" value="left_os1/os1_sensor" />
    <param name="offset_lookup_time" value="0.0" />
  </node>

  <node name="rviz" pkg="rviz" type="rviz"
      args="-d $(find transform_point_cloud)/config/pc3.rviz"
      required="true"
      output="screen">
  </node>

  <node name="rqt" pkg="rqt_gui" type="rqt_gui"
      args="--perspective-file $(find transform_point_cloud)/config/lookup.perspective"
      required="true"
      output="screen">
  </node>

</launch>

Ahhoz, hogy .pcd formátumban mentsük el az aktuális pontfelhőt futtasuk a következő parancsot,ez az aktuális mappába fogja menteni a .pcd fájlokat:

rosrun pcl_ros pointcloud_to_pcd input:=/point_cloud_transformed

A mentett fájlokat ezzel a parancsal tudjuk egy .pcd fájlba összesíteni

pcl_concatenate_points_pcd *pcd

Hasznos lehet egy voxel grid alapú filterezést lefutattni hogyha kezelhető méretű pontfelhőt szereténk (~100000000 db pontnál 0.25 leaf size-al lefutatott szűrés már könnyen kezelhető eredményt adott)

pcl_voxel_grid output.pcd filtered01.pcd -leaf 0.01

Ha Autoware-es Vector Map Builder-el szeretnénk megnyitni a készített .pcd-t akkor szükség lehet arra hogy átkonvertáljuk (tömörített Bináris fájlokat nem támogat a web-es szerkesztő) ezt a CloudComapre programmal is lehet megtenni, a CloudCompare-ben elég csak elmenteni a fájlt vagy felülírni az eredeti fájlt

rosrun pcl_ros pcd_to_pointcloud 1601641897667842.pcd _frame_id:=map_zala_0 _interval:=2.0
<launch>
    <node pkg="pcl_ros" type="pcd_to_pointcloud" name="spawn_pcd_to_pcl" output="screen" args ="/mnt/c/bag/pcd_zala/filtered01.pcd 2.0" >
    <param name="frame_id" value="/map_zala_0" />
    <!--<remap from="cloud_pcd" to="cloud_in" />-->
    </node>
</launch>
map_gyor_0 = 697237.0 5285644.0 
map_zala_0 = 639770.0 5195040.0 

Megjelenítés

Toolok a megjelenítéshez: https://github.com/szenergy/awesome-lidar#others (CloudCompare, Blender stb)

cloudcompare

<launch>
    <node pkg="pcl_ros" type="pcd_to_pointcloud" name="spawn_pcd_to_pcl" output="screen" args ="/mnt/c/bag/pcd_zala/egesz_palya_lexus1.pcd" >
    <param name="frame_id" value="/map" />
    <param name="latch" value="true" />
    <!--
    <remap from="cloud_pcd" to="cloud_in" />-->
    </node>
    <node args="697237.0 5285644.0 0.0 0.0 0.0 0.0 map map_gyor_0 50" name="gyor0_tf_publisher" pkg="tf" type="static_transform_publisher"/>
    <node args="639770.0 5195040.0 0.0 0.0 0.0 0.0 map map_zala_0 50" name="zala0_tf_publisher" pkg="tf" type="static_transform_publisher"/>
</launch>
Clone this wiki locally