** Used by  (102) **

  * [ ar_bounding_box ](/ar_bounding_box?distro=fuerte)
  * [ ar_track_alvar ](/ar_track_alvar?distro=fuerte)
  * [ art_observers ](/art_observers?distro=fuerte)
  * [ average_point_cloud_... ](/average_point_cloud_node?distro=fuerte)
  * [ base_local_planner ](/base_local_planner?distro=fuerte)
  * [ ccny_rgbd ](/ccny_rgbd?distro=fuerte)
  * [ chair_recognition ](/chair_recognition?distro=fuerte)
  * [ clearpath_kinect_dem... ](/clearpath_kinect_demo?distro=fuerte)
  * [ clearpath_tools ](/clearpath_tools?distro=fuerte)
  * [ cob_image_flip ](/cob_image_flip?distro=fuerte)
  * [ collider ](/collider?distro=fuerte)
  * [ costmap_2d ](/costmap_2d?distro=fuerte)
  * [ coverage_3d_arm_navi... ](/coverage_3d_arm_navigation?distro=fuerte)
  * [ coverage_3d_executiv... ](/coverage_3d_executive?distro=fuerte)
  * [ coverage_3d_planning... ](/coverage_3d_planning?distro=fuerte)
  * [ coverage_3d_tools ](/coverage_3d_tools?distro=fuerte)
  * [ depth_image_proc ](/depth_image_proc?distro=fuerte)
  * [ door_manipulation_to... ](/door_manipulation_tools?distro=fuerte)
  * [ door_perception ](/door_perception?distro=fuerte)
  * [ eddiebot_follower ](/eddiebot_follower?distro=fuerte)
  * [ eddiebot_follower-Re... ](/eddiebot_follower-RelWithDebInfo%40eddiebot_follower?distro=fuerte)
  * [ estimate_grasp_posit... ](/estimate_grasp_positions?distro=fuerte)
  * [ face_finder ](/face_finder?distro=fuerte)
  * [ gazebo_plugins ](/gazebo_plugins?distro=fuerte)
  * [ grasp_motion ](/grasp_motion?distro=fuerte)
  * [ ground_truth ](/ground_truth?distro=fuerte)
  * [ handeye_log ](/handeye_log?distro=fuerte)
  * [ hector_costmap ](/hector_costmap?distro=fuerte)
  * [ hector_elevation_map... ](/hector_elevation_mapping?distro=fuerte)
  * [ hector_gazebo_therma... ](/hector_gazebo_thermal_camera?distro=fuerte)
  * [ humanoid_localizatio... ](/humanoid_localization?distro=fuerte)
  * [ icr ](/icr?distro=fuerte)
  * [ image_cb_detector ](/image_cb_detector?distro=fuerte)
  * [ iri_apply_tof_calibr... ](/iri_apply_tof_calibration?distro=fuerte)
  * [ iri_bow_object_detec... ](/iri_bow_object_detector?distro=fuerte)
  * [ iri_bspline_navfn ](/iri_bspline_navfn?distro=fuerte)
  * [ iri_clothes_grasping... ](/iri_clothes_grasping_point?distro=fuerte)
  * [ iri_filter_jump_edge... ](/iri_filter_jump_edge?distro=fuerte)


  Package Summary

Released

Continuous Integration

Documented

PCL (Point Cloud Library) ROS interface stack. PCL-ROS is the preferred bridge
for 3D applications involving n-D Point Clouds and 3D geometry processing in
ROS.

  * Maintainer status: maintained
  * Maintainer: Paul Bovbel <paul AT bovbel DOT com>, Bill Morris <bill AT neautomation DOT com>
  * Author: Open Perception, Julius Kammerl <julius AT kammerl DOT de>, William Woodall <william AT osrfoundation DOT org>
  * License: BSD
  * Bug / feature tracker: [ https://github.com/ros-perception/perception_pcl/issues ](https://github.com/ros-perception/perception_pcl/issues)
  * Source: git [ https://github.com/ros-perception/perception_pcl.git ](https://github.com/ros-perception/perception_pcl) (branch: jade-devel)

_**[ perception_pcl ](/perception_pcl?distro=kinetic) ** : [ pcl_conversions
](/pcl_conversions?distro=kinetic) | [ pcl_msgs ](/pcl_msgs?distro=kinetic) |
pcl_ros _

**Package Links**

  * **[ Code API ](http://docs.ros.org/kinetic/api/pcl_ros/html) **
  * [ Tutorials ](/pcl_ros/Tutorials)
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:pcl_ros/page:1/)
  * [ Changelog ](http://docs.ros.org/en/kinetic/changelogs/pcl_ros/changelog.html)
  * [ Change List ](/perception_pcl/ChangeList)
  * [ Reviews ](/pcl_ros/Reviews)

** Dependencies  (18) **

  * [ catkin ](/catkin?distro=kinetic)
  * [ cmake_modules ](/cmake_modules?distro=kinetic)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=kinetic)
  * [ genmsg ](/genmsg?distro=kinetic)
  * [ message_filters ](/message_filters?distro=kinetic)
  * [ nodelet ](/nodelet?distro=kinetic)


](https://blog.medium.com/?source=post_page-----
70ba44beb443--------------------------------)


add a comment


The following demo showcases a robot navigating a Gazebo World generated by
this package.


This simulation uses a KINOVA Gen3 manipulator with a gripper attached.


coordinator = exampleHelperCoordinatorPickPlaceROSGazeboScene(robot,initialRobotJConfig, endEffectorFrame);


##  Introduction


  * [ binary ubuntu bionic armhf ](https://build.ros.org/view/Mbin_ubhf_uBhf/job/Mbin_ubhf_uBhf__pcl_ros__ubuntu_bionic_armhf__binary)
  * [ binary ubuntu bionic arm64 ](https://build.ros.org/view/Mbin_ubv8_uBv8/job/Mbin_ubv8_uBv8__pcl_ros__ubuntu_bionic_arm64__binary)
  * [ devel ubuntu bionic amd64 ](https://build.ros.org/view/Mdev/job/Mdev__perception_pcl__ubuntu_bionic_amd64)
  * [ doc ](https://build.ros.org/view/Mdoc/job/Mdoc__perception_pcl__ubuntu_bionic_amd64)


include <ros/ros.h>
       2


So, we can see the lidar models in Gazebo and point cloud data of theirs in
RViz. There are two different models which are VLP-16 and HDL-32E.


  ROS nodelets

` pcl_ros ` includes several [ PCL filters
](http://www.ros.org/wiki/pcl_ros/Filters) packaged as ROS nodelets. These
links provide details for using those interfaces:

  * [ Extract_Indices ](http://www.ros.org/wiki/pcl_ros/Tutorials/filters


](/about?autoplay=1&source=post_page-----
70ba44beb443--------------------------------)


You can’t perform that action at this time.


[ Notifications ](/login?return_to=%2FCyberAgentAILab%2Fpointcloud2gazebo)


© 1994-2024 The MathWorks, Inc.


The Point Cloud Library (PCL) is an open source library for 2D/3D image and
point cloud processing. It is a cross-platform library and written in C++
language. It has bindings in Python. It contains algorithms for filtering,
feature estimation, surface reconstruction, 3D registration, model fitting,
object recognition, and segmentation. Link: [ https://pointclouds.org/
](https://pointclouds.org/)


##  Related questions


python3 generate_world.py --input=data/cloud.ply


The planned paths are visualized in MATLAB along with the planning scene.


* [ Robotics and Autonomous Systems  ](../../overview/robotics-and-autonomous-systems.html?s_tid=hc_product_group_bc)


You will need to generate a 3D point cloud map. As an example, we have
prepared [ data/cloud.ply
](/CyberAgentAILab/pointcloud2gazebo/blob/main/data/cloud.ply) . This data was
generated using [ RTAB-Map ](https://apps.apple.com/td/app/rtab-map-3d-lidar-
scanner/id1564774365) .


##  Usage


[ ](https://github.com "GitHub") © 2024 GitHub, Inc.


[ none ](/questions/scope:all/sort:activity-desc/tags:none/page:1/) ×


[ Which part of rgbd_odometry uses most of computational power?
](/question/399366/which-part-of-rgbd_odometry-uses-most-of-computational-
power/)


[ Search syntax tips ](https://docs.github.com/search-github/github-code-
search/understanding-github-code-search-syntax)


  * [ laser_ortho_projecto... ](/laser_ortho_projector?distro=diamondback)
  * [ laser_scan_matcher ](/laser_scan_matcher?distro=diamondback)
  * [ laser_slam ](/laser_slam?distro=diamondback)
  * [ navfn ](/navfn?distro=diamondback)
  * [ octomap_server ](/octomap_server?distro=diamondback)
  * [ openni_camera ](/openni_camera?distro=diamondback)
  * [ openni_camera_unstab... ](/openni_camera_unstable?distro=diamondback)
  * [ pcl_tutorials ](/pcl_tutorials?distro=diamondback)
  * [ pcl_visualization ](/pcl_visualization?distro=diamondback)
  * [ pointcloud_to_lasers... ](/pointcloud_to_laserscan?distro=diamondback)
  * [ pr2_grasp_adjust ](/pr2_grasp_adjust?distro=diamondback)
  * [ pr2_tilt_laser_inter... ](/pr2_tilt_laser_interface?distro=diamondback)
  * [ rgbd_assembler ](/rgbd_assembler?distro=diamondback)
  * [ tabletop_object_dete... ](/tabletop_object_detector?distro=diamondback)
  * [ turtlebot_follower ](/turtlebot_follower?distro=diamondback)


[
![Tevhitkarsli](https://miro.medium.com/v2/resize:fill:144:144/1*xMGqW81kBOMUCwHzTK3Uxg.jpeg)
](/@tevhitkarsli?source=post_page-----
70ba44beb443--------------------------------)


Last updated: **Nov 28 '22**


  convert_pcd_to_image

Loads a PCD file, publishing it as a ROS image message five times a second.


_Join the conversation_


[ Report repository ](/contact/report-
content?content_url=https%3A%2F%2Fgithub.com%2FCyberAgentAILab%2Fpointcloud2gazebo&report=CyberAgentAILab+%28user%29)


This example identifies and recycles objects into two bins using a Kinova Gen3
manipulator. The example uses tools from five toolboxes:


[ ![Davies Ogunsina gravatar
image](/upfiles/avatars/Davies%20Ogunsina/resized/32/davies.jpg)
](/users/103873/davies-ogunsina/)


  Package Summary

Released

Continuous Integration:  24 / 25

  * Build history (last 5 of 11 builds):
  * [


The command for activating the gripper, ` exampleCommandActivateGripper ` ,
sends an action request to open and close the gripper implemented in Gazebo.
For example, to send a request to open the gripper, the following code is
used.


    % Shut down ros when the pick-and-place application is done
    rosshutdown;

    Shutting down global node /matlab_global_node_36341 with NodeURI http://192.168.17.1:59807/ and MasterURI http://192.168.17.130:11311.


Set up an end-to-end pick-and-place workflow for a robotic manipulator like
the Kinova® Gen3.


31  05-Jul-2022 20:44  25 / 25  ](https://build.ros.org//job/Mdev__perception_pcl__ubuntu_bionic_amd64/31/)
  * [


** Used by  (93) **

  * [ ar_kinect ](/ar_kinect?distro=groovy)
  * [ ar_track_alvar ](/ar_track_alvar?distro=groovy)
  * [ argos3d_p100 ](/argos3d_p100?distro=groovy)
  * [ arm_workspace_evalua... ](/arm_workspace_evaluator?distro=groovy)
  * [ art_observers ](/art_observers?distro=groovy)
  * [ autonomous_mapping ](/autonomous_mapping?distro=groovy)
  * [ base_local_planner ](/base_local_planner?distro=groovy)
  * [ blob3d ](/blob3d?distro=groovy)
  * [ ccny_rgbd ](/ccny_rgbd?distro=groovy)
  * [ clearpath_kinect_dem... ](/clearpath_kinect_demo?distro=groovy)
  * [ clearpath_tools ](/clearpath_tools?distro=groovy)
  * [ cob_image_flip ](/cob_image_flip?distro=groovy)
  * [ collider ](/collider?distro=groovy)
  * [ costmap_2d ](/costmap_2d?distro=groovy)
  * [ demo_lidar ](/demo_lidar?distro=groovy)
  * [ demo_rgbd ](/demo_rgbd?distro=groovy)
  * [ depth_image_proc ](/depth_image_proc?distro=groovy)
  * [ eddiebot_follower ](/eddiebot_follower?distro=groovy)
  * [ eddiebot_follower-Re... ](/eddiebot_follower-RelWithDebInfo%40eddiebot_follower?distro=groovy)
  * [ external_camera_loca... ](/external_camera_localizer?distro=groovy)
  * [ fovis_ros ](/fovis_ros?distro=groovy)
  * [ gazebo_plugins ](/gazebo_plugins?distro=groovy)
  * [ handle_detection ](/handle_detection?distro=groovy)
  * [ handle_detection2D ](/handle_detection2D?distro=groovy)
  * [ head_pose_estimation... ](/head_pose_estimation?distro=groovy)
  * [ hector_costmap ](/hector_costmap?distro=groovy)
  * [ hector_elevation_map... ](/hector_elevation_mapping?distro=groovy)
  * [ hector_thermal_self_... ](/hector_thermal_self_filter?distro=groovy)
  * [ hrl_kinematics ](/hrl_kinematics?distro=groovy)
  * [ humanoid_localizatio... ](/humanoid_localization?distro=groovy)
  * [ ias_drawer_executive... ](/ias_drawer_executive?distro=groovy)
  * [ image_algos ](/image_algos?distro=groovy)
  * [ image_cb_detector ](/image_cb_detector?distro=groovy)
  * [ image_view2 ](/image_view2?distro=groovy)
  * [ jsk_pcl_ros ](/jsk_pcl_ros?distro=groovy)
  * [ kinect_cleanup ](/kinect_cleanup?distro=groovy)
  * [ kobuki_bumper2pc ](/kobuki_bumper2pc?distro=groovy)


[ **3** watching ](/CyberAgentAILab/pointcloud2gazebo/watchers)


include <pcl_conversions/pcl_conversions.h>
       5
       6 typedef pcl::PointCloud<pcl::PointXYZ> PointCloud;
       7
       8 int main(int argc, char** argv)
       9 {
      10   ros::init (argc, argv, "pub_pcl");
      11   ros::NodeHandle nh;
      12   ros::Publisher pub = nh.advertise<PointCloud> ("points2", 1);
      13
      14   PointCloud::Ptr msg (new PointCloud);
      15   msg->header.frame_id = "some_tf_frame";
      16   msg->height = msg->width = 1;
      17   msg->points.push_back (pcl::PointXYZ(1.0, 2.0, 3.0));
      18
      19   ros::Rate loop_rate(4);
      20   while (nh.ok())
      21   {
      22     pcl_conversions::toPCL(ros::Time::now(), msg->header.stamp);
      23     pub.publish (*msg);
      24     ros::spinOnce ();
      25     loop_rate.sleep ();
      26   }
      27 }


[ generate_world.py
](/CyberAgentAILab/pointcloud2gazebo/blob/main/generate_world.py
"generate_world.py")


###  Start the Pick-and-Place Workflow


* United States


main


##  Languages


    initialRobotJConfig =  [3.5797   -0.6562   -1.2507   -0.7008    0.7303   -2.0500   -1.9053];
    endEffectorFrame = "gripper";


[ Branches  ](/CyberAgentAILab/pointcloud2gazebo/branches) [ Tags
](/CyberAgentAILab/pointcloud2gazebo/tags)


#  Saved searches


[ README.md ](/CyberAgentAILab/pointcloud2gazebo/blob/main/README.md
"README.md")


Readme


    Gripper closed...

    Now planning...
    Waiting until robot reaches the desired configuration

    Gripper open...

    Now planning...
    Waiting until robot reaches the desired configuration


    <buildtool_depend>catkin</buildtool_depend>

    <build_depend>roscpp</build_depend>
    <build_depend>rospy</build_depend>
    <build_depend>std_msgs</build_depend>
    <build_depend>pcl_conversions</build_depend>
    <build_depend>pcl_ros</build_depend>
    <build_depend>sensor_msgs</build_depend>
    <build_depend>libpcl-all-dev</build_depend>

    <build_export_depend>roscpp</build_export_depend>
    <build_export_depend>rospy</build_export_depend>
    <build_export_depend>std_msgs</build_export_depend>
    <build_export_depend>pcl_conversions</build_export_depend>
    <build_export_depend>pcl_ros</build_export_depend>
    <build_export_depend>sensor_msgs</build_export_depend>
    <build_export_depend>libpcl-all</build_export_depend>

    <exec_depend>roscpp</exec_depend>
    <exec_depend>rospy</exec_depend>
    <exec_depend>std_msgs</exec_depend>
    <exec_depend>pcl_conversions</exec_depend>
    <exec_depend>pcl_ros</exec_depend>
    <exec_depend>sensor_msgs</exec_depend>
    <exec_depend>libpcl-all</exec_depend>


* [ Pricing ](/pricing)


[ LICENSE ](/CyberAgentAILab/pointcloud2gazebo/blob/main/LICENSE "LICENSE")


  Usage

     $ rosrun pcl_ros convert_pcd_to_image <cloud.pcd>

Read the point cloud in <cloud.pcd> and publish it in ROS image messages at
5Hz.


No packages published


Point cloud misaligned with gazebo sensor plugin


edit


##  Stats


Terms


Clear


Main Content


* [ sensors ](/questions/scope:all/sort:activity-desc/tags:sensors/page:1/)


##  Requirements


    % Task 1: Build world
    exampleCommandBuildWorldROSGazeboScene(coordinator);

    Moving to scanning pose 1
    Searching for other config...
    Now planning...
    Waiting until robot reaches the desired configuration
    Capturing point cloud 1
    Getting camera pose 1
    Moving to scanning pose 2
    Now planning...
    Waiting until robot reaches the desired configuration
    Capturing point cloud 2
    Getting camera pose 2
    Moving to scanning pose 3
    Searching for other config...
    Now planning...
    Waiting until robot reaches the desired configuration
    Capturing point cloud 3
    Getting camera pose 3
    Moving to scanning pose 4
    Now planning...
    Waiting until robot reaches the desired configuration
    Capturing point cloud 4
    Getting camera pose 4
    Moving to scanning pose 5
    Now planning...
    Waiting until robot reaches the desired configuration
    Capturing point cloud 5
    Getting camera pose 5

    % Task 2: Move to home position
    exampleCommandMoveToTaskConfigROSGazeboScene(coordinator,coordinator.HomeRobotTaskConfig);


  * [ nodelet ](/nodelet?distro=indigo)
  * [ nodelet_topic_tools ](/nodelet_topic_tools?distro=indigo)
  * [ pcl_conversions ](/pcl_conversions?distro=indigo)
  * [ pcl_msgs ](/pcl_msgs?distro=indigo)
  * [ pluginlib ](/pluginlib?distro=indigo)
  * [ rosbag ](/rosbag?distro=indigo)
  * [ rosconsole ](/rosconsole?distro=indigo)
  * [ roscpp ](/roscpp?distro=indigo)
  * [ roslib ](/roslib?distro=indigo)
  * [ sensor_msgs ](/sensor_msgs?distro=indigo)
  * [ std_msgs ](/std_msgs?distro=indigo)
  * [ tf ](/tf?distro=indigo)

** Used by  (98) **

  * [ Hexagon_map ](/Hexagon_map?distro=indigo)
  * [ ar_track_alvar ](/ar_track_alvar?distro=indigo)
  * [ argos3d_p100 ](/argos3d_p100?distro=indigo)
  * [ asr_descriptor_surfa... ](/asr_descriptor_surface_based_recognition?distro=indigo)
  * [ asr_navfn ](/asr_navfn?distro=indigo)
  * [ base_local_planner ](/base_local_planner?distro=indigo)
  * [ basler_tof ](/basler_tof?distro=indigo)
  * [ bta_ros ](/bta_ros?distro=indigo)
  * [ bta_tof_driver ](/bta_tof_driver?distro=indigo)
  * [ bwi_scavenger ](/bwi_scavenger?distro=indigo)
  * [ camera_pose_calibrat... ](/camera_pose_calibration?distro=indigo)
  * [ carl_moveit ](/carl_moveit?distro=indigo)
  * [ cob_image_flip ](/cob_image_flip?distro=indigo)
  * [ cob_map_accessibilit... ](/cob_map_accessibility_analysis?distro=indigo)
  * [ cob_object_detection... ](/cob_object_detection_visualizer?distro=indigo)
  * [ cob_openni2_tracker ](/cob_openni2_tracker?distro=indigo)
  * [ cob_people_detection... ](/cob_people_detection?distro=indigo)
  * [ costmap_2d ](/costmap_2d?distro=indigo)
  * [ custom_landmark_2d ](/custom_landmark_2d?distro=indigo)
  * [ depth_sensor_pose ](/depth_sensor_pose?distro=indigo)
  * [ depthcloud_encoder ](/depthcloud_encoder?distro=indigo)
  * [ dlut_viso2_ros ](/dlut_viso2_ros?distro=indigo)
  * [ ekf_localization ](/ekf_localization?distro=indigo)
  * [ feature_tracker ](/feature_tracker?distro=indigo)
  * [ fetch_pbd_interactio... ](/fetch_pbd_interaction?distro=indigo)


For an implementation that uses Stateflow to schedule the tasks, see [ Pick-
and-Place Workflow Using Stateflow for MATLAB ](pick-and-place-workflow-using-
stateflow.html) .


  Page

  * Immutable Page
  * Comments
  * [ Info ](/action/info/pcl_ros?action=info)
  * [ Attachments ](/action/AttachFile/pcl_ros?action=AttachFile)
  * More Actions:  Raw Text  Print View  Render as Docbook  Delete Cache  \------------------------  Check Spelling  Like Pages  Local Site Map  \------------------------  Rename Page  Copy Page  Delete Page  \------------------------  My Pages  Subscribe User  \------------------------  Remove Spam  Revert to this revision  Package Pages  Sync Pages  \------------------------  CreatePdfDocument  Load  RawFile  Save  SlideShow


[ edit ](/questions/409868/edit/) [ retag ](/s/questions/409868/retag/) flag
offensive  [ close ](/questions/409868/close/) merge  delete


[ Rosbridge_suite not finding package after migration from ros2-web-bridge
](/question/404033/rosbridge_suite-not-finding-package-after-migration-from-
ros2-web-bridge/)


  Wiki

  * [ Distributions ](/Distributions)
  * [ ROS/Installation ](/ROS/Installation)
  * [ ROS/Tutorials ](/ROS/Tutorials)
  * [ RecentChanges ](/RecentChanges)
  * [ pcl_ros ](/pcl_ros)


    include_directories(${PCL_INCLUDE_DIRS})
    link_directories(${PCL_LIBRARY_DIRS})
    add_definitions(${PCL_DEFINITIONS})

    find_package(catkin REQUIRED COMPONENTS
            roscpp
            rospy
            std_msgs
            pcl_conversions
            pcl_ros
    )
    add_executable(SubscrivePointCloud2Message src/SubscribePointCloud2Message.cpp)
    target_link_libraries(SubscrivePointCloud2Message ${catkin_LIBRARIES})
    target_link_libraries(SubscrivePointCloud2Message ${PCL_LIBRARIES})


Teams


[ Sign in
](/login?return_to=https%3A%2F%2Fgithub.com%2FCyberAgentAILab%2Fpointcloud2gazebo)


* Start the ROS 1 network using ` rosinit ` .


Sort by »  [ oldest  ](/question/409868/point-cloud-misaligned-with-gazebo-
sensor-plugin/?sort=oldest#sort-top) [ newest  ](/question/409868/point-cloud-
misaligned-with-gazebo-sensor-plugin/?sort=latest#sort-top) [ most voted
](/question/409868/point-cloud-misaligned-with-gazebo-sensor-
plugin/?sort=votes#sort-top)


Jun 27, 2023


The pick-and-place workflow implemented in this example can be adapted to
different scenarios, planners, simulation platforms, and object detection
options. The example shown here uses RRT for planning and simulates the robot
in Gazebo using the Robot Operating System (ROS). For other pick-and-place
workflows, see:


[
![Tevhitkarsli](https://miro.medium.com/v2/resize:fill:88:88/1*xMGqW81kBOMUCwHzTK3Uxg.jpeg)
](/@tevhitkarsli?source=post_page-----
70ba44beb443--------------------------------)


[ Dockerfile ](/CyberAgentAILab/pointcloud2gazebo/blob/main/Dockerfile
"Dockerfile")


include <pcl_ros/point_cloud.h>
       3


The functions ` exampleCommandDetectParts ` and ` exampleCommandClassifyParts
` use the simulated end-effector depth camera feed from the robot to detect
the recyclable parts. Since a complete point cloud of the scene is available
from the **Build Environment** step, the iterative closest point (ICP)
registration algorithm implemented in [ ` pcregistericp `
](../../vision/ref/pcregistericp.html) (Computer Vision Toolbox)  identifies
which of the segmented point clouds match the geometries of objects that
should be picked.


[ ALL ](/questions/scope:all/sort:activity-desc/page:1/) [ UNANSWERED
](/questions/scope:unanswered/sort:answers-asc/page:1/)


Privacy


[ Write
](/m/signin?operation=register&redirect=https%3A%2F%2Fmedium.com%2Fnew-
story&source=---two_column_layout_nav-----------------------
new_post_topnav-----------)


Velodyne Lidar is a Silicon Valley-based company which produce of sensor
technology that used for autonomous vehicles, advanced driver assistance
systems (ADASs), mapping, security, and unmanned aerial vehicles. Google,
Nokia, Microsoft Bing Maps, Ford are partners and customers. Link: [
https://velodynelidar.com/ ](https://velodynelidar.com/)


](/jobs-at-medium/work-at-medium-959d1a85284e?source=post_page-----
70ba44beb443--------------------------------)


        ros::NodeHandle nh_;
        ros::Subscriber sub_;
    };

    int main(int argc, char** argv)
    {
        ros::init (argc, argv, "Subscribe_PointCloud2_Message", ros::init_options::AnonymousName);

        SubscribePointCloud2Message subscribePointCloud2Message;
        ros::spin();

        return (0);
    }


    * [ CI/CD & Automation ](/solutions/ci-cd/)
    * [ DevOps ](/solutions/devops/)
    * [ DevSecOps  ](https://resources.github.com/devops/fundamentals/devsecops/)


    * [ Enterprise ](/enterprise)
    * [ Teams ](/team)
    * [ Startups ](/enterprise/startups)
    * [ Education  ](https://education.github.com)


          </inertial>
        </link>

        <link name="${sensor_reference}_virtual_frame_link">
          <!-- Todo: Fix debug condition block-->
          <xacro:if value="${debug != 'False'}">
            <visual>
              <geometry>
                <mesh filename="package://${package_name}/meshes/${virtual_visual_geometry_mesh}" scale="${virtual_visual_geometry_scale}"/>
              </geometry>
            </visual>
          </xacro:if>
        </link>

        <!-- Joints -->
        <joint type="fixed" name="${prefix}${attachment_link}_${sensor_name}_joint">
          <origin rpy="${cameraattachment_joint_origin_rpy}" xyz="${cameraattachment_joint_origin_xyz}"/>
          <child link="${sensor_reference}_link"/>
          <parent link="${prefix}${attachment_link}"/>
        </joint>

        <joint type="fixed" name="${prefix}${attachment_link}_${sensor_name}_virtual_frame_joint">
          <origin ...


#  Working with Point Cloud Library in ROS & Gazebo [PCL Part 1]


    Real Time Point Cloud Data:
    header: seq: 372 stamp: 38469000 frame_id: velodyne2

    points[]: 5137
    width: 5137
    height: 1
    is_dense: 1
    sensor origin (xyz): [0, 0, 0] / orientation (xyzw): [0, 0, 0, 1]

    Point Cloud data has: 5137 data points.
    ----------------------------


##  3  Answers


##  Comments


This example uses a virtual machine (VM) containing ROS Melodic available for
download [ here ](https://www.mathworks.com/support/product/robotics/ros2-vm-
installation-instructions-v5.html) .


[ Open Live Script
](matlab:openExample\('robotics/PickandPlaceWorkflowInGazeboUsingPointCloudProcessingExample'\))


[ **updated 2022-11-26 10:46:07 -0500  ** ](/questions/409868/revisions/)


* [ ros2 ](/questions/scope:all/sort:activity-desc/tags:ros2/page:1/)


    * [ Actions  Automate any workflow  ](/features/actions)
    * [ Packages  Host and manage packages  ](/features/packages)
    * [ Security  Find and fix vulnerabilities  ](/features/security)
    * [ Codespaces  Instant dev environments  ](/features/codespaces)
    * [ Copilot  Write better code with AI  ](/features/copilot)
    * [ Code review  Manage code changes  ](/features/code-review)
    * [ Issues  Plan and track work  ](/features/issues)
    * [ Discussions  Collaborate outside of code  ](/features/discussions)


[ data ](/CyberAgentAILab/pointcloud2gazebo/tree/main/data "data")


[ launch_container.sh
](/CyberAgentAILab/pointcloud2gazebo/blob/main/launch_container.sh
"launch_container.sh")


  ROS 2 Documentation

The ROS Wiki is for ROS 1. Are you using ROS 2 ( [ Humble
](http://docs.ros.org/en/humble/) , [ Iron ](http://docs.ros.org/en/iron/) ,
or [ Rolling ](http://docs.ros.org/en/rolling/) )?
[ Check out the ROS 2 Project Documentation ](http://docs.ros.org)
Package specific documentation can be found on [ index.ros.org
](https://index.ros.org)


2 followers


  * [ Code  ](/CyberAgentAILab/pointcloud2gazebo)
  * [ Issues  1  ](/CyberAgentAILab/pointcloud2gazebo/issues)
  * [ Pull requests  0  ](/CyberAgentAILab/pointcloud2gazebo/pulls)
  * [ Actions  ](/CyberAgentAILab/pointcloud2gazebo/actions)
  * [ Projects  0  ](/CyberAgentAILab/pointcloud2gazebo/projects)
  * [ Security  ](/CyberAgentAILab/pointcloud2gazebo/security)
  * [ Insights  ](/CyberAgentAILab/pointcloud2gazebo/pulse)


* Start the Ubuntu® virtual machine desktop.


[ Open in app
](https://rsci.app.link/?%24canonical_url=https%3A%2F%2Fmedium.com%2Fp%2F70ba44beb443&%7Efeature=LoOpenInAppButton&%7Echannel=ShowPostUnderUser&source=---two_column_layout_nav----------------------------------)


* [ 3-D Point Cloud Registration and Stitching ](../../vision/ug/3-d-point-cloud-registration-and-stitching.html) (Computer Vision Toolbox)  (Computer Vision Toolbox)


pointcloud2gazebo is a package that allows you to create a Gazebo World from a
3D point cloud.


  * [ rgbdslam ](/rgbdslam?distro=fuerte)
  * [ scan_to_cloud_conver... ](/scan_to_cloud_converter?distro=fuerte)
  * [ semantic_point_annot... ](/semantic_point_annotator?distro=fuerte)
  * [ simulator_art ](/simulator_art?distro=fuerte)
  * [ slam_exporter ](/slam_exporter?distro=fuerte)
  * [ srs_env_model ](/srs_env_model?distro=fuerte)
  * [ srs_env_model_percp ](/srs_env_model_percp?distro=fuerte)
  * [ srs_env_model_utils ](/srs_env_model_utils?distro=fuerte)
  * [ srs_interaction_prim... ](/srs_interaction_primitives?distro=fuerte)
  * [ stereo_wall_detectio... ](/stereo_wall_detection?distro=fuerte)
  * [ surfacelet ](/surfacelet?distro=fuerte)
  * [ tabletop_object_dete... ](/tabletop_object_detector?distro=fuerte)
  * [ turtlebot_block_mani... ](/turtlebot_block_manipulation?distro=fuerte)
  * [ turtlebot_follower ](/turtlebot_follower?distro=fuerte)
  * [ turtlebot_kinect_arm... ](/turtlebot_kinect_arm_calibration?distro=fuerte)
  * [ velodyne_height_map ](/velodyne_height_map?distro=fuerte)
  * [ velodyne_pointcloud ](/velodyne_pointcloud?distro=fuerte)
  * [ viso2_ros ](/viso2_ros?distro=fuerte)
  * [ zyonz_apps ](/zyonz_apps?distro=fuerte)
  * [ zyonz_find_leaf_prob... ](/zyonz_find_leaf_probing_points?distro=fuerte)
  * [ zyonz_geometric_base... ](/zyonz_geometric_based_single_leaf_probing?distro=fuerte)
  * [ zyonz_image_based_le... ](/zyonz_image_based_leaf_probing?distro=fuerte)
  * [ zyonz_obtain_roi_jum... ](/zyonz_obtain_roi_jump_edge_based?distro=fuerte)
  * [ zyonz_obtain_two_clu... ](/zyonz_obtain_two_clustered_leaves?distro=fuerte)


Velodyne lidar model and its point cloud data


Initialize the coordinator by giving the robot model, initial configuration,
and end-effector name.


[ Mike Scheutzow ](/users/75154/mike-scheutzow/)
4918  ●  2  ●  430  ●  45


  * [ Australia ](https://au.mathworks.com) (English)
  * [ India ](https://in.mathworks.com) (English)
  * [ New Zealand ](https://au.mathworks.com) (English)
  * 中国
    * [ 简体中文 ](https://ww2.mathworks.cn)
    * [ English ](https://ww2.mathworks.cn)
  * [ 日本 ](https://jp.mathworks.com) (日本語)
  * [ 한국 ](https://kr.mathworks.com) (한국어)


[ ![Mike Scheutzow gravatar
image](/upfiles/avatars/Mike%20Scheutzow/resized/32/mike090516-med.jpg)
](/users/75154/mike-scheutzow/)


[ pointcloud2gazebo.py
](/CyberAgentAILab/pointcloud2gazebo/blob/main/pointcloud2gazebo.py
"pointcloud2gazebo.py")


##  Appendix


#  Pick-and-Place Workflow in Gazebo Using Point-Cloud Processing and RRT Path
Planning


[ worlds ](/CyberAgentAILab/pointcloud2gazebo/tree/main/worlds "worlds")


The orientation you have defined for your camera's optical frame does not
match the ros convention. The optical frame has its origin at the image
sensor, with +z forward, +x to the right and +y downward. This is documented
in [ REP103 ](https://ros.org/reps/rep-0103.html#coordinate-frame-conventions)
.


{{ message }}


[ BSD-3-Clause license ](/CyberAgentAILab/pointcloud2gazebo/blob/main/LICENSE)


Most of the task execution consists of instructing the robot to move between
different specified poses. The ` exampleHelperMoveToTaskConfig ` function
defines an RRT planner using the [ ` manipulatorRRT `
](../ref/manipulatorrrt.html) object, which plans paths from an initial to a
desired joint configuration by avoiding collisions with specified collision
objects in the scene. The resulting path is first shortened and then
interpolated at a desired validation distance. To generate a trajectory, the [
` trapveltraj ` ](../ref/trapveltraj.html) function is used to assign time
steps to each of the interpolated waypoints following a trapezoidal profile.
Finally, the waypoints with their associated times are interpolated to a
desired sample rate (every 0.1 seconds). The generated trajectories ensure
that the robot moves slowly at the start and the end of the motion when it is
approaching or placing an object.


  * [ Trust Center ](https://www.mathworks.com/company/aboutus/policies_statements/trust-center.html?s_tid=gf_tc)
  * [ Trademarks ](https://www.mathworks.com/company/aboutus/policies_statements/trademarks.html?s_tid=gf_trd)
  * [ Privacy Policy ](https://www.mathworks.com/company/aboutus/policies_statements.html?s_tid=gf_priv)
  * [ Preventing Piracy ](https://www.mathworks.com/company/aboutus/policies_statements/piracy.html?s_tid=gf_pir)
  * [ Application Status ](https://status.mathworks.com/?s_tid=gf_application)


For


* **Image Processing Toolbox™** and **Computer Vision Toolbox™** are used for object detection using point cloud processing and simulated depth camera in Gazebo.


##  History


  convert_pointcloud_to_image

Subscribes to a ROS point cloud topic and republishes image messages.


##  Footer


###  License


Cancel  Create saved search


Sign up


  Published Topics

` cloud_pcd ` ( [ sensor_msgs/PointCloud2
](http://docs.ros.org/en/api/sensor_msgs/html/msg/PointCloud2.html) )

  * A stream of point clouds generated from the PCD file.


* Specify the IP address and port number of the ROS master in Gazebo so that MATLAB® can communicate with the robot simulator. For this example, the ROS master in Gazebo uses the IP address of ` 172.21.72.160 ` displayed on the Desktop. Adjust the ` rosIP ` variable based on your VM.


###  Copying the Generated Gazebo World to ` GAZEBO_MODEL_PATH `


Help Center


[ Sign in
](/m/signin?operation=login&redirect=https%3A%2F%2Fmedium.com%2F%40tevhitkarsli%2Fworking-
with-point-cloud-library-in-ros-gazebo-pcl-1-70ba44beb443&source=post_page---
two_column_layout_nav-----------------------global_nav-----------)


  * [ Belgium ](https://nl.mathworks.com) (English)
  * [ Denmark ](https://se.mathworks.com) (English)
  * [ Deutschland ](https://de.mathworks.com) (Deutsch)
  * [ España ](https://es.mathworks.com) (Español)
  * [ Finland ](https://se.mathworks.com) (English)
  * [ France ](https://fr.mathworks.com) (Français)
  * [ Ireland ](https://uk.mathworks.com) (English)
  * [ Italia ](https://it.mathworks.com) (Italiano)
  * [ Luxembourg ](https://nl.mathworks.com) (English)


[ ![NotARobot gravatar image](/m/default/media/images/nophoto.png?v=28)
](/users/69326/notarobot/)


###  Pick-and-Place Tasks


  * [ pluginlib ](/pluginlib?distro=lunar)
  * [ rosbag ](/rosbag?distro=lunar)
  * [ rosconsole ](/rosconsole?distro=lunar)
  * [ roscpp ](/roscpp?distro=lunar)
  * [ roslib ](/roslib?distro=lunar)
  * [ sensor_msgs ](/sensor_msgs?distro=lunar)
  * [ std_msgs ](/std_msgs?distro=lunar)
  * [ tf ](/tf?distro=lunar)
  * [ tf2_eigen ](/tf2_eigen?distro=lunar)

** Used by  (30) **

  * [ ar_track_alvar ](/ar_track_alvar?distro=lunar)
  * [ base_local_planner ](/base_local_planner?distro=lunar)
  * [ basler_tof ](/basler_tof?distro=lunar)
  * [ bta_tof_driver ](/bta_tof_driver?distro=lunar)
  * [ costmap_2d ](/costmap_2d?distro=lunar)
  * [ ensenso ](/ensenso?distro=lunar)
  * [ ensenso_camera ](/ensenso_camera?distro=lunar)
  * [ grid_map_pcl ](/grid_map_pcl?distro=lunar)
  * [ grid_map_sdf ](/grid_map_sdf?distro=lunar)
  * [ ibeo_lux ](/ibeo_lux?distro=lunar)
  * [ ira_laser_tools ](/ira_laser_tools?distro=lunar)
  * [ map_merge_3d ](/map_merge_3d?distro=lunar)
  * [ map_organizer ](/map_organizer?distro=lunar)
  * [ mcl_3dl ](/mcl_3dl?distro=lunar)
  * [ multi_object_trackin... ](/multi_object_tracking_lidar?distro=lunar)
  * [ navfn ](/navfn?distro=lunar)
  * [ obj_to_pointcloud ](/obj_to_pointcloud?distro=lunar)
  * [ octomap_pa ](/octomap_pa?distro=lunar)
  * [ pcdfilter_pa ](/pcdfilter_pa?distro=lunar)
  * [ perception_pcl ](/perception_pcl?distro=lunar)
  * [ pr2_tilt_laser_inter... ](/pr2_tilt_laser_interface?distro=lunar)
  * [ rc_cloud_accumulator... ](/rc_cloud_accumulator?distro=lunar)
  * [ robot_self_filter ](/robot_self_filter?distro=lunar)
  * [ rtabmap_ros ](/rtabmap_ros?distro=lunar)
  * [ safety_limiter ](/safety_limiter?distro=lunar)
  * [ sick_ldmrs_tools ](/sick_ldmrs_tools?distro=lunar)
  * [ sick_scan ](/sick_scan?distro=lunar)
  * [ simple_grasping ](/simple_grasping?distro=lunar)


Before starting the pick-and-place job, the robot goes through a set of tasks
to identify the planning scene in the ` exampleCommandBuildWorld ` function
and detects the objects to pick using the ` exampleCommandDetectParts `
function.


#  CyberAgentAILab/pointcloud2gazebo


include <pcl_ros/point_cloud.h>

This header allows you to publish and subscribe [ pcl::PointCloud<T>
](http://www.ros.org/doc/api/pcl/html/classpcl_1_1PointCloud.html) objects as
ROS messages. These appear to ROS as [ sensor_msgs/PointCloud2
](http://docs.ros.org/en/api/sensor_msgs/html/msg/PointCloud2.html) messages,
offering seamless interoperability with non-PCL-using ROS nodes. For example,
you may publish a ` pcl::PointCloud<T> ` in one of your nodes and visualize it
in [ rviz ](/rviz) using a [ Point Cloud2 display
](/rviz/DisplayTypes/PointCloud) . It works by hooking into the [ roscpp
serialization ](/roscpp/Overview/MessagesSerializationAndAdaptingTypes)
infrastructure.

The old format [ sensor_msgs/PointCloud
](http://docs.ros.org/en/api/sensor_msgs/html/msg/PointCloud.html) is not
supported in PCL.


add a comment


###  Launching the Gazebo World


[ pointcloud2gazebo_config.py
](/CyberAgentAILab/pointcloud2gazebo/blob/main/pointcloud2gazebo_config.py
"pointcloud2gazebo_config.py")


If you use Docker for setup of this tool, please execute the following
command.


##  Use saved searches to filter your results more quickly


MathWorks


###  Resources


[ **answered 2022-11-27 06:38:15 -0500  ** ](/answers/409909/revisions/)


RadiusOutlierRemoval)

  * [ StatisticalOutlierRemoval ](http://www.ros.org/wiki/pcl_ros/Tutorials/filters


##  MATLAB Command


* [ GitHub Sponsors  Fund open source developers  ](/sponsors)


[ [ROS2]How to write data to rosbag2 in ros2 foxy ](/question/355764/ros2how-
to-write-data-to-rosbag2-in-ros2-foxy/)


> _Ubuntu 20.04_
>
> _ROS Noetic & Gazebo 11 _
>
> _GitHub Link:_ [ _https://github.com/Tevhit/pcl_velodyne_ws_
> ](https://github.com/Tevhit/pcl_velodyne_ws)


* Open Source


×  ![MathWorks](/images/responsive/global/pic-header-mathworks-logo2.svg)


  * [ rosconsole ](/rosconsole?distro=noetic)
  * [ roscpp ](/roscpp?distro=noetic)
  * [ roslib ](/roslib?distro=noetic)
  * [ sensor_msgs ](/sensor_msgs?distro=noetic)
  * [ std_msgs ](/std_msgs?distro=noetic)
  * [ tf ](/tf?distro=noetic)
  * [ tf2 ](/tf2?distro=noetic)
  * [ tf2_eigen ](/tf2_eigen?distro=noetic)
  * [ tf2_ros ](/tf2_ros?distro=noetic)

** Used by  (43) **

  * [ basler_tof ](/basler_tof?distro=noetic)
  * [ cob_image_flip ](/cob_image_flip?distro=noetic)
  * [ cob_map_accessibilit... ](/cob_map_accessibility_analysis?distro=noetic)
  * [ cob_object_detection... ](/cob_object_detection_visualizer?distro=noetic)
  * [ ensenso_camera ](/ensenso_camera?distro=noetic)
  * [ floam ](/floam?distro=noetic)
  * [ haf_grasping ](/haf_grasping?distro=noetic)
  * [ image_view2 ](/image_view2?distro=noetic)
  * [ ira_laser_tools ](/ira_laser_tools?distro=noetic)
  * [ jsk_footstep_planner... ](/jsk_footstep_planner?distro=noetic)
  * [ jsk_pcl_ros ](/jsk_pcl_ros?distro=noetic)
  * [ jsk_pcl_ros_utils ](/jsk_pcl_ros_utils?distro=noetic)
  * [ jsk_perception ](/jsk_perception?distro=noetic)
  * [ jsk_recognition_util... ](/jsk_recognition_utils?distro=noetic)
  * [ laser_ortho_projecto... ](/laser_ortho_projector?distro=noetic)
  * [ laser_scan_matcher ](/laser_scan_matcher?distro=noetic)
  * [ mcl_3dl ](/mcl_3dl?distro=noetic)
  * [ multi_object_trackin... ](/multi_object_tracking_lidar?distro=noetic)
  * [ nearfield_map ](/nearfield_map?distro=noetic)
  * [ octomap_pa ](/octomap_pa?distro=noetic)
  * [ octomap_server ](/octomap_server?distro=noetic)
  * [ pcdfilter_pa ](/pcdfilter_pa?distro=noetic)
  * [ perception_pcl ](/perception_pcl?distro=noetic)
  * [ pf_driver ](/pf_driver?distro=noetic)
  * [ points_preprocessor ](/points_preprocessor?distro=noetic)
  * [ pr2_navigation_perce... ](/pr2_navigation_perception?distro=noetic)
  * [ pr2_navigation_self_... ](/pr2_navigation_self_filter?distro=noetic)
  * [ pr2_tilt_laser_inter... ](/pr2_tilt_laser_interface?distro=noetic)


  * [ Switzerland (English) ](https://ch.mathworks.com)
  * [ Switzerland (Deutsch) ](https://ch.mathworks.com)
  * [ Switzerland (Français) ](https://ch.mathworks.com)


* Product


[ Davies Ogunsina ](/users/103873/davies-ogunsina/) ![flag of
Nigeria](/m/default/media/images/flags/ng.gif?v=28)
96  ●  28  ●  6


Software Engineer at DASAL Aerospace Technologies


  * **melodic:** _Documentation generated on February 16, 2023 at 11:02 AM_ ( [ doc job ](https://build.ros.org/view/Mdoc/job/Mdoc__perception_pcl__ubuntu_bionic_amd64) ).

  * **noetic:** _Documentation generated on February 18, 2023 at 11:47 AM_ ( [ doc job ](https://build.ros.org/view/Ndoc/job/Ndoc__perception_pcl__ubuntu_focal_amd64) ).

_**[ perception_pcl ](/perception_pcl?distro=diamondback) ** : [ cminpack
](/cminpack?distro=diamondback) | [ flann ](/flann?distro=diamondback) | [ pcl
](/pcl?distro=diamondback) | [ pcl_android ](/pcl_android?distro=diamondback)
| pcl_ros _

**Package Links**

  * **[ Code API ](http://docs.ros.org/en/diamondback/api/pcl_ros/html/) **
  * [ Tutorials ](/pcl_ros/Tutorials)
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:pcl_ros/page:1/)
  * [ Reviews ](/pcl_ros/Reviews)

** Dependencies  (10) **

  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=diamondback)
  * [ eigen ](/eigen?distro=diamondback)
  * [ geometry_msgs ](/geometry_msgs?distro=diamondback)
  * [ message_filters ](/message_filters?distro=diamondback)
  * [ nodelet ](/nodelet?distro=diamondback)
  * [ nodelet_topic_tools ](/nodelet_topic_tools?distro=diamondback)
  * [ pcl ](/pcl?distro=diamondback)
  * [ rosbag ](/rosbag?distro=diamondback)
  * [ roscpp ](/roscpp?distro=diamondback)
  * [ tf ](/tf?distro=diamondback)

** Used by  (21) **

  * [ base_local_planner ](/base_local_planner?distro=diamondback)
  * [ clearpath_kinect_dem... ](/clearpath_kinect_demo?distro=diamondback)
  * [ clearpath_tools ](/clearpath_tools?distro=diamondback)
  * [ cob_camera_sensors ](/cob_camera_sensors?distro=diamondback)
  * [ costmap_2d ](/costmap_2d?distro=diamondback)
  * [ kinect_pcl ](/kinect_pcl?distro=diamondback)


  Package Summary

Documented

PCL (Point Cloud Library) ROS interface package. PCL-ROS is the preferred
bridge for 3D applications involving n-D Point Clouds and 3D geometry
processing in ROS. The package contains powerful nodelet interfaces for PCL
algorithms, accepts dynamic reconfiguration of parameters, and supports
multiple threading natively for large scale PPG (Perception Processing Graphs)
construction and usage.

  * Author: Maintained by Radu Bogdan Rusu
  * License: BSD
  * Source: svn [ http://svn.pointclouds.org/ros/branches/electric/perception_pcl ](http://svn.pointclouds.org/ros/branches/electric/perception_pcl)

_**[ perception_pcl ](/perception_pcl?distro=fuerte) ** : [ flann
](/flann?distro=fuerte) | [ pcl ](/pcl?distro=fuerte) | pcl_ros _

**Package Links**

  * **[ Code API ](http://ros.org/doc/fuerte/api/pcl_ros/html) **
  * [ Tutorials ](/pcl_ros/Tutorials)
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:pcl_ros/page:1/)
  * [ Change List ](/perception_pcl/ChangeList)
  * [ Reviews ](/pcl_ros/Reviews)

** Dependencies  (11) **

  * [ common_rosdeps ](/common_rosdeps?distro=fuerte)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=fuerte)
  * [ eigen ](/eigen?distro=fuerte)
  * [ geometry_msgs ](/geometry_msgs?distro=fuerte)
  * [ message_filters ](/message_filters?distro=fuerte)
  * [ nodelet ](/nodelet?distro=fuerte)
  * [ nodelet_topic_tools ](/nodelet_topic_tools?distro=fuerte)
  * [ pcl ](/pcl?distro=fuerte)
  * [ rosbag ](/rosbag?distro=fuerte)
  * [ roscpp ](/roscpp?distro=fuerte)
  * [ tf ](/tf?distro=fuerte)


[ **5** forks ](/CyberAgentAILab/pointcloud2gazebo/forks)


Close Mobile Search


Listen


Follow


** Used by  (53) **

  * [ art_observers ](/art_observers?distro=electric)
  * [ augmented_object_sel... ](/augmented_object_selection?distro=electric)
  * [ base_local_planner ](/base_local_planner?distro=electric)
  * [ clearpath_kinect_dem... ](/clearpath_kinect_demo?distro=electric)
  * [ clearpath_tools ](/clearpath_tools?distro=electric)
  * [ cob_3d_mapping_commo... ](/cob_3d_mapping_common?distro=electric)
  * [ cob_3d_mapping_seman... ](/cob_3d_mapping_semantics?distro=electric)
  * [ cob_image_flip ](/cob_image_flip?distro=electric)
  * [ cob_people_detection... ](/cob_people_detection?distro=electric)
  * [ cob_read_text ](/cob_read_text?distro=electric)
  * [ collider ](/collider?distro=electric)
  * [ costmap_2d ](/costmap_2d?distro=electric)
  * [ depth_image_proc ](/depth_image_proc?distro=electric)
  * [ gazebo_plugins ](/gazebo_plugins?distro=electric)
  * [ grabcut_3d ](/grabcut_3d?distro=electric)
  * [ hector_costmap ](/hector_costmap?distro=electric)
  * [ hector_elevation_map... ](/hector_elevation_mapping?distro=electric)
  * [ hector_gazebo_therma... ](/hector_gazebo_thermal_camera?distro=electric)
  * [ humanoid_localizatio... ](/humanoid_localization?distro=electric)
  * [ ias_drawer_executive... ](/ias_drawer_executive?distro=electric)
  * [ image_algos ](/image_algos?distro=electric)
  * [ image_segmentation_d... ](/image_segmentation_demo?distro=electric)
  * [ laser_ortho_projecto... ](/laser_ortho_projector?distro=electric)
  * [ laser_scan_matcher ](/laser_scan_matcher?distro=electric)
  * [ navfn ](/navfn?distro=electric)
  * [ octomap_server ](/octomap_server?distro=electric)
  * [ openni_camera ](/openni_camera?distro=electric)
  * [ pcl_filter ](/pcl_filter?distro=electric)
  * [ pcl_tutorials ](/pcl_tutorials?distro=electric)
  * [ pcl_visualization ](/pcl_visualization?distro=electric)
  * [ planning_environment... ](/planning_environment?distro=electric)
  * [ pointcloud_snapshot_... ](/pointcloud_snapshot_service?distro=electric)
  * [ pointcloud_to_lasers... ](/pointcloud_to_laserscan?distro=electric)
  * [ pr2_grasp_adjust ](/pr2_grasp_adjust?distro=electric)
  * [ pr2_interactive_segm... ](/pr2_interactive_segmentation?distro=electric)
  * [ pr2_tilt_laser_inter... ](/pr2_tilt_laser_interface?distro=electric)
  * [ rgbd_assembler ](/rgbd_assembler?distro=electric)


add a comment


  ROS C++ interface

` pcl_ros ` extends the ROS [ C++ client library ](/roscpp) to support message
passing with [ PCL ](/pcl) native data types. Simply add the following include
to your ROS node source code:


  * [ uwsim ](/uwsim?distro=hydro)
  * [ velodyne_height_map ](/velodyne_height_map?distro=hydro)
  * [ velodyne_pointcloud ](/velodyne_pointcloud?distro=hydro)
  * [ viso2_ros ](/viso2_ros?distro=hydro)


* [ Get Started with Gazebo and Simulated TurtleBot ](../../ros/ug/get-started-with-gazebo-and-a-simulated-turtlebot.html) (ROS Toolbox)  (ROS Toolbox)


Set the initial robot configuration and name of the end-effector body.


    mkdir -p pcl_velodyne_ws/src
    cd pcl_velodyne_ws
    catkin_make
    cd src
    git clone https://bitbucket.org/DataspeedInc/velodyne_simulator.git
    sudo mv velodyne_description/ velodyne_gazebo_plugins/ ..
    cd ..
    rm -rf velodyne_simulator/
    cd ..
    catkin_make


Once the robot has visited all the scanning poses, the captured point clouds
are transformed from camera to world frame using [ ` pctransform `
](../../vision/ref/pctransform.html) (Computer Vision Toolbox)  and merged to
a single point cloud using [ ` pcmerge ` ](../../vision/ref/pcmerge.html)
(Computer Vision Toolbox)  . The final point cloud is segmented based on
Euclidean distance using [ ` pcsegdist ` ](../../vision/ref/pcsegdist.html)
(Computer Vision Toolbox)  . The resulting point cloud segments are then
encoded as collision meshes (see [ ` collisionMesh `
](../ref/collisionmesh.html) ) to be easily identified as obstacles during RRT
path planning. The process from point cloud to collision meshes is shown one
mesh at a time below.


That is true. How do I adjust for the ROS convention and keep the camera image
where it is? - If I change the orientation of the optical frame the camera
image changes as well, since it is orientated with the sensor looking at
positive X direction, as you can see. Can I tell Gazebo within the URDF to
orientate the depth measurements separately? Also, if I enable Octomaps to
generate the points from the cameras depth image than the same result with
appear.


    rosIP = '192.168.17.130'; % IP address of ROS-enabled machine

    rosshutdown;

    rosinit(rosIP,11311); % Initialize ROS connection

    Initializing global node /matlab_global_node_36341 with NodeURI http://192.168.17.1:59807/ and MasterURI http://192.168.17.130:11311.


  Package Summary

Released

Continuous Integration

Documented

PCL (Point Cloud Library) ROS interface stack. PCL-ROS is the preferred bridge
for 3D applications involving n-D Point Clouds and 3D geometry processing in
ROS.

  * Maintainer status: maintained
  * Maintainer: Paul Bovbel <paul AT bovbel DOT com>, Bill Morris <bill AT neautomation DOT com>, Kentaro Wada <www.kentaro.wada AT gmail DOT com>
  * Author: Open Perception, Julius Kammerl <julius AT kammerl DOT de>, William Woodall <william AT osrfoundation DOT org>
  * License: BSD
  * Bug / feature tracker: [ https://github.com/ros-perception/perception_pcl/issues ](https://github.com/ros-perception/perception_pcl/issues)
  * Source: git [ https://github.com/ros-perception/perception_pcl.git ](https://github.com/ros-perception/perception_pcl) (branch: lunar-devel)

_**[ perception_pcl ](/perception_pcl?distro=melodic) ** : [ pcl_conversions
](/pcl_conversions?distro=melodic) | [ pcl_msgs ](/pcl_msgs?distro=melodic) |
pcl_ros _

**Package Links**

  * **[ Code API ](http://docs.ros.org/en/melodic/api/pcl_ros/html) **
  * [ Tutorials ](/pcl_ros/Tutorials)
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:pcl_ros/page:1/)
  * [ Changelog ](http://docs.ros.org/en/melodic/changelogs/pcl_ros/changelog.html)
  * [ Change List ](/perception_pcl/ChangeList)
  * [ Reviews ](/pcl_ros/Reviews)

** Dependencies  (19) **

  * [ catkin ](/catkin?distro=melodic)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=melodic)
  * [ geometry_msgs ](/geometry_msgs?distro=melodic)
  * [ message_filters ](/message_filters?distro=melodic)
  * [ nodelet ](/nodelet?distro=melodic)
  * [ nodelet_topic_tools ](/nodelet_topic_tools?distro=melodic)


](https://policy.medium.com/medium-terms-of-
service-9db0094a1e0f?source=post_page-----
70ba44beb443--------------------------------)


* In the Ubuntu desktop, click the **Gazebo Recycling World - Depth Sensing** icon to start the Gazebo world built for this example. Click the **Play** button to run the Gazebo world.


Quick start to work with Point Cloud Library (PCL) and Velodyne lidar sensor
in Robot Operating System & Gazebo Simulator. In this part, we will setup a
catkin workspace that include Velodyne lidar sensor model and subscribe to its
point cloud message data.


Please note: ROS Answers requires javascript to work properly, please enable
javascript in your browser, [ here is how
](https://www.google.com/support/bin/answer.py?answer=23852)


  Examples

Publish the contents of ` point_cloud_file.pcd ` once in the ` /base_link `
frame of reference.

     $ rosrun pcl_ros pcd_to_pointcloud point_cloud_file.pcd

Publish the contents of ` cloud_file.pcd ` approximately ten times a second in
the ` /odom ` frame of reference.

     $ rosrun pcl_ros pcd_to_pointcloud cloud_file.pcd 0.1 _frame_id:=/odom


[ ![ gravatar image]() ]() [ ]() (  2024-04-18 12:51:01 -0500  )  edit


Search


  Parameters

` ~prefix ` ( ` str ` )

  * Prefix for PCD file names created.

` ~fixed_frame ` ( ` str ` )

  * If set, the transform from the fixed frame to the frame of the point cloud is written to the VIEWPOINT entry of the pcd file.

` ~binary ` ( ` bool ` , default: false)

  * Output the pcd file in binary form.

` ~compressed ` ( ` bool ` , default: false)

  * In case that binary output format is set, use binary compressed output.


[ pointcloud2gazebo.py
](/CyberAgentAILab/pointcloud2gazebo/blob/main/pointcloud2gazebo.py
"pointcloud2gazebo.py")


  * [ hector_barrel_geotif... ](/hector_barrel_geotiff_plugin?distro=hydro)
  * [ hector_costmap ](/hector_costmap?distro=hydro)
  * [ hector_elevation_map... ](/hector_elevation_mapping?distro=hydro)
  * [ hector_soft_obstacle... ](/hector_soft_obstacle_detection?distro=hydro)
  * [ hector_thermal_self_... ](/hector_thermal_self_filter?distro=hydro)
  * [ humanoid_localizatio... ](/humanoid_localization?distro=hydro)
  * [ image_view2 ](/image_view2?distro=hydro)
  * [ jsk_footstep_planner... ](/jsk_footstep_planner?distro=hydro)
  * [ jsk_pcl_ros ](/jsk_pcl_ros?distro=hydro)
  * [ jsk_perception ](/jsk_perception?distro=hydro)
  * [ loam_back_and_forth ](/loam_back_and_forth?distro=hydro)
  * [ loam_continuous ](/loam_continuous?distro=hydro)
  * [ loam_velodyne ](/loam_velodyne?distro=hydro)
  * [ navfn ](/navfn?distro=hydro)
  * [ ndt_costmap ](/ndt_costmap?distro=hydro)
  * [ ndt_map ](/ndt_map?distro=hydro)
  * [ ndt_map_builder ](/ndt_map_builder?distro=hydro)
  * [ ndt_registration ](/ndt_registration?distro=hydro)
  * [ ndt_visualisation ](/ndt_visualisation?distro=hydro)
  * [ object_recognition_c... ](/object_recognition_clusters?distro=hydro)
  * [ octomap_ros ](/octomap_ros?distro=hydro)
  * [ octomap_server ](/octomap_server?distro=hydro)
  * [ perception_pcl ](/perception_pcl?distro=hydro)
  * [ pointcloud_to_lasers... ](/pointcloud_to_laserscan?distro=hydro)
  * [ pointcloud_tools ](/pointcloud_tools?distro=hydro)
  * [ pointcloud_vrml ](/pointcloud_vrml?distro=hydro)
  * [ pr2_navigation_perce... ](/pr2_navigation_perception?distro=hydro)
  * [ pr2_navigation_self_... ](/pr2_navigation_self_filter?distro=hydro)
  * [ pr2_tilt_laser_inter... ](/pr2_tilt_laser_interface?distro=hydro)
  * [ rail_segmentation ](/rail_segmentation?distro=hydro)
  * [ rtabmap_ros ](/rtabmap_ros?distro=hydro)
  * [ segbot_sensors ](/segbot_sensors?distro=hydro)
  * [ semantic_point_annot... ](/semantic_point_annotator?distro=hydro)
  * [ sentis_tof_m100 ](/sentis_tof_m100?distro=hydro)
  * [ slam_exporter ](/slam_exporter?distro=hydro)
  * [ softkinetic_camera ](/softkinetic_camera?distro=hydro)
  * [ stereo_slam ](/stereo_slam?distro=hydro)
  * [ stereo_wall_detectio... ](/stereo_wall_detection?distro=hydro)
  * [ tedusar_box_detectio... ](/tedusar_box_detection?distro=hydro)
  * [ turtlebot_follower ](/turtlebot_follower?distro=hydro)


  Package Summary

Released

Documented

PCL (Point Cloud Library) ROS interface stack. PCL-ROS is the preferred bridge
for 3D applications involving n-D Point Clouds and 3D geometry processing in
ROS.

  * Maintainer status: maintained
  * Maintainer: Paul Bovbel <paul AT bovbel DOT com>, Bill Morris <bill AT neautomation DOT com>, Kentaro Wada <www.kentaro.wada AT gmail DOT com>
  * Author: Open Perception, Julius Kammerl <julius AT kammerl DOT de>, William Woodall <william AT osrfoundation DOT org>
  * License: BSD
  * Bug / feature tracker: [ https://github.com/ros-perception/perception_pcl/issues ](https://github.com/ros-perception/perception_pcl/issues)
  * Source: git [ https://github.com/ros-perception/perception_pcl.git ](https://github.com/ros-perception/perception_pcl) (branch: kinetic-devel)

_**[ perception_pcl ](/perception_pcl?distro=lunar) ** : [ pcl_conversions
](/pcl_conversions?distro=lunar) | [ pcl_msgs ](/pcl_msgs?distro=lunar) |
pcl_ros _

**Package Links**

  * **[ Code API ](http://docs.ros.org/lunar/api/pcl_ros/html) **
  * [ Tutorials ](/pcl_ros/Tutorials)
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:pcl_ros/page:1/)
  * [ Changelog ](http://docs.ros.org/en/lunar/changelogs/pcl_ros/changelog.html)
  * [ Change List ](/perception_pcl/ChangeList)
  * [ Reviews ](/pcl_ros/Reviews)

** Dependencies  (17) **

  * [ catkin ](/catkin?distro=lunar)
  * [ cmake_modules ](/cmake_modules?distro=lunar)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=lunar)
  * [ message_filters ](/message_filters?distro=lunar)
  * [ nodelet ](/nodelet?distro=lunar)
  * [ nodelet_topic_tools ](/nodelet_topic_tools?distro=lunar)
  * [ pcl_conversions ](/pcl_conversions?distro=lunar)
  * [ pcl_msgs ](/pcl_msgs?distro=lunar)


* [ optical-frame ](/questions/scope:all/sort:activity-desc/tags:optical-frame/page:1/)


  Published Topics

` output ` ( [ sensor_msgs/Image
](http://docs.ros.org/en/api/sensor_msgs/html/msg/Image.html) )

  * A stream of images generated from the PCD file.


  * Documentation
  * [ Examples ](../examples.html?category=manipulator-planning&s_tid=CRUX_topnav)
  * [ Functions ](../referencelist.html?type=function&category=manipulator-planning&s_tid=CRUX_topnav)
  * [ Blocks ](../referencelist.html?type=block&category=manipulator-planning&s_tid=CRUX_topnav)
  * [ Apps ](../referencelist.html?type=app&category=manipulator-planning&s_tid=CRUX_topnav)
  * [ Videos ](/support/search.html?fq\[\]=asset_type_name:video%20category:robotics/manipulator-planning&s_tid=CRUX_topnav)
  * [ Answers ](/support/search.html?fq\[\]=asset_type_name:answer%20category:robotics/manipulator-planning&s_tid=CRUX_topnav)


  Parameters

` ~frame_id ` ( ` str ` , default: /base_link)

  * Transform frame ID for published data.


Input Point Cloud  |  Generated Mesh  |  Gazebo World
---|---|---
[ ![input point
cloud](/CyberAgentAILab/pointcloud2gazebo/raw/main/images/input.png)
](/CyberAgentAILab/pointcloud2gazebo/blob/main/images/input.png) |  [
![generated mesh](/CyberAgentAILab/pointcloud2gazebo/raw/main/images/mesh.png)
](/CyberAgentAILab/pointcloud2gazebo/blob/main/images/mesh.png) |  [ ![Gazebo
World](/CyberAgentAILab/pointcloud2gazebo/raw/main/images/gazebo_world.png)
](/CyberAgentAILab/pointcloud2gazebo/blob/main/images/gazebo_world.png)

###  Demo Movie


[ Hi there! Please sign in ](/account/signin/?next=/question/409868/point-
cloud-misaligned-with-gazebo-sensor-plugin/) [ help ](/help/ "help")


Seen: **423 times**


    * [ Topics ](/topics)
    * [ Trending ](/trending)
    * [ Collections ](/collections)


[ bt_navigator failing with error `Action server failed while executing action
callback: "send_goal failed"` ](/question/383678/bt_navigator-failing-with-
error-action-server-failed-while-executing-action-callback-send_goal-failed/)


Let’s continue with developing our custom subscriber node.


Select a Web Site


30  31-May-2022 18:44  25 / 25  ](https://build.ros.org//job/Mdev__perception_pcl__ubuntu_bionic_amd64/30/)

Documented

PCL (Point Cloud Library) ROS interface stack. PCL-ROS is the preferred bridge
for 3D applications involving n-D Point Clouds and 3D geometry processing in
ROS.

  * Maintainer status: maintained
  * Maintainer: Paul Bovbel <paul AT bovbel DOT com>, Kentaro Wada <www.kentaro.wada AT gmail DOT com>, Steve Macenski <stevenmacenski AT gmail DOT com>
  * Author: Open Perception, Julius Kammerl <julius AT kammerl DOT de>, William Woodall <william AT osrfoundation DOT org>
  * License: BSD
  * Bug / feature tracker: [ https://github.com/ros-perception/perception_pcl/issues ](https://github.com/ros-perception/perception_pcl/issues)
  * Source: git [ https://github.com/ros-perception/perception_pcl.git ](https://github.com/ros-perception/perception_pcl) (branch: melodic-devel)

_**[ perception_pcl ](/perception_pcl?distro=noetic) ** : [ pcl_conversions
](/pcl_conversions?distro=noetic) | [ pcl_msgs ](/pcl_msgs?distro=noetic) |
pcl_ros _

**Package Links**

  * **[ Code API ](http://docs.ros.org/en/noetic/api/pcl_ros/html) **
  * [ Tutorials ](/pcl_ros/Tutorials)
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:pcl_ros/page:1/)
  * [ Changelog ](http://docs.ros.org/en/noetic/changelogs/pcl_ros/changelog.html)
  * [ Change List ](/perception_pcl/ChangeList)
  * [ Reviews ](/pcl_ros/Reviews)

** Dependencies  (19) **

  * [ catkin ](/catkin?distro=noetic)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=noetic)
  * [ geometry_msgs ](/geometry_msgs?distro=noetic)
  * [ message_filters ](/message_filters?distro=noetic)
  * [ nodelet ](/nodelet?distro=noetic)
  * [ nodelet_topic_tools ](/nodelet_topic_tools?distro=noetic)
  * [ pcl_conversions ](/pcl_conversions?distro=noetic)
  * [ pcl_msgs ](/pcl_msgs?distro=noetic)
  * [ pluginlib ](/pluginlib?distro=noetic)
  * [ rosbag ](/rosbag?distro=noetic)


ProjectInliers)

  * [ RadiusOutlierRemoval ](http://www.ros.org/wiki/pcl_ros/Tutorials/filters


  bag_to_pcd

Reads a bag file, saving all ROS point cloud messages on a specified topic as
PCD files.


  Package Summary

Released

Continuous Integration:  25 / 25

  * Build history (last 5 of 11 builds):
  * [


####  Joint Trajectory Controller in ROS


##  How to Get Best Site Performance


add a comment


  * [ nodelet_topic_tools ](/nodelet_topic_tools?distro=kinetic)
  * [ pcl_conversions ](/pcl_conversions?distro=kinetic)
  * [ pcl_msgs ](/pcl_msgs?distro=kinetic)
  * [ pluginlib ](/pluginlib?distro=kinetic)
  * [ rosbag ](/rosbag?distro=kinetic)
  * [ rosconsole ](/rosconsole?distro=kinetic)
  * [ roscpp ](/roscpp?distro=kinetic)
  * [ roslib ](/roslib?distro=kinetic)
  * [ sensor_msgs ](/sensor_msgs?distro=kinetic)
  * [ std_msgs ](/std_msgs?distro=kinetic)
  * [ tf ](/tf?distro=kinetic)
  * [ tf2_eigen ](/tf2_eigen?distro=kinetic)

** Used by  (71) **

  * [ ar_track_alvar ](/ar_track_alvar?distro=kinetic)
  * [ asr_descriptor_surfa... ](/asr_descriptor_surface_based_recognition?distro=kinetic)
  * [ asr_navfn ](/asr_navfn?distro=kinetic)
  * [ base_local_planner ](/base_local_planner?distro=kinetic)
  * [ basler_tof ](/basler_tof?distro=kinetic)
  * [ bta_tof_driver ](/bta_tof_driver?distro=kinetic)
  * [ cob_image_flip ](/cob_image_flip?distro=kinetic)
  * [ cob_map_accessibilit... ](/cob_map_accessibility_analysis?distro=kinetic)
  * [ cob_object_detection... ](/cob_object_detection_visualizer?distro=kinetic)
  * [ costmap_2d ](/costmap_2d?distro=kinetic)
  * [ depth_sensor_pose ](/depth_sensor_pose?distro=kinetic)
  * [ depthcloud_encoder ](/depthcloud_encoder?distro=kinetic)
  * [ ensenso ](/ensenso?distro=kinetic)
  * [ ensenso_camera ](/ensenso_camera?distro=kinetic)
  * [ feature_tracker ](/feature_tracker?distro=kinetic)
  * [ grid_map_pcl ](/grid_map_pcl?distro=kinetic)
  * [ grid_map_sdf ](/grid_map_sdf?distro=kinetic)
  * [ haf_grasping ](/haf_grasping?distro=kinetic)
  * [ hector_barrel_detect... ](/hector_barrel_detection_nodelet?distro=kinetic)
  * [ hector_barrel_geotif... ](/hector_barrel_geotiff_plugin?distro=kinetic)
  * [ hector_costmap ](/hector_costmap?distro=kinetic)
  * [ hector_elevation_map... ](/hector_elevation_mapping?distro=kinetic)
  * [ hls_lfom_tof_driver ](/hls_lfom_tof_driver?distro=kinetic)
  * [ humanoid_localizatio... ](/humanoid_localization?distro=kinetic)
  * [ ibeo_lux ](/ibeo_lux?distro=kinetic)


About


[ requirements.txt
](/CyberAgentAILab/pointcloud2gazebo/blob/main/requirements.txt
"requirements.txt")


Choose a web site to get translated content where available and see local
events and offers. Based on your location, we recommend that you select: ****
.


[ Star  ](/login?return_to=%2FCyberAgentAILab%2Fpointcloud2gazebo)


[ ![MathWorks](/images/responsive/global/pic-header-mathworks-logo.svg)
](https://www.mathworks.com?s_tid=gn_logo)


  Subscribed Topics

` input ` ( [ sensor_msgs/PointCloud2
](http://docs.ros.org/en/api/sensor_msgs/html/msg/PointCloud2.html) )

  * A stream of point clouds to save as PCD files.


                <p1>${sensor_image_distortion_p1}</p1>
                <p2>${sensor_image_distortion_p2}</p2>
                <center>${sensor_image_distortion_center}</center>
              </distortion>
            </camera>
              <plugin filename="libgazebo_ros_camera.so" name="${sensor_reference}_controller">
                <ros>
                    <imageTopicName>/${sensor_reference}/color/image_raw</imageTopicName>
                    <cameraInfoTopicName>/${sensor_reference}/color/camera_info</cameraInfoTopicName>
                    <depthImageTopicName>/${sensor_reference}/depth/image_raw</depthImageTopicName>
                    <depthImageCameraInfoTopicName>/${sensor_reference}/depth/camera_info</depthImageCameraInfoTopicName>
                    <pointCloudTopicName>/${sensor_reference}/points</pointCloudTopicName>
                </ros>
                <camera_name>${sensor_reference}</camera_name>
                <frame_name>${sensor_reference}_virtual_frame_link</frame_name>
                <hack_baseline>${sensor_hack_baseline}</hack_baseline>
                <min_depth>${sensor_min_depth}</min_depth>
              </plugin>
          </sensor>
        </gazebo>

        <!-- Links -->
        <link name="${sensor_reference}_link">
          <visual>
            <origin rpy="${camera_visual_origin_rpy}" xyz="${camera_visual_origin_xyz}"/>
            <geometry>
              <mesh filename="package://${package_name}/meshes/${camera_visual_geometry_mesh}" scale="${camera_visual_geometry_scale}"/>
            </geometry>
          </visual>
          <collision>
            <origin rpy="${camera_collision_origin_rpy}" xyz="${camera_collision_origin_xyz}"/>
            <geometry>
              <mesh filename="package://${package_name}/meshes/${camera_visual_geometry_mesh}" scale="${camera_visual_geometry_scale}"/>
            </geometry>
            <material name="${camera_visual_material}"/>
          </collision>
          <inertial>
            <mass value="${camera_inertial_mass}"/>
            <origin rpy="${camera_inertial_origin_rpy}" xyz="${camera_inertial_origin_xyz}"/>
            <inertia ixx="${camera_inertial_inertia_ixx}" ixy="${camera_inertial_inertia_ixy}" ixz="${camera_inertial_inertia_ixz}" iyy="${camera_inertial_inertia_iyy}" iyz="${camera_inertial_inertia_iyz}" izz="${camera_inertial_inertia_izz}"/>


[ edit ](/s/answers/409951/edit/) flag offensive  delete  [ link
](/question/409868/point-cloud-misaligned-with-gazebo-sensor-
plugin/?answer=409951#post-id-409951 "permanent link") more


Skip to content


Thank you for your answers.


Additional navigation options


See also [ #q395930 ](http://answers.ros.org/question/395930/) .


Camera macro:


[ **answered 2022-11-26 10:40:37 -0500  ** ](/answers/409897/revisions/)


![Gazebo Scene](/upfiles/16693857276838972.png) ![RViz Camera
Image](/upfiles/1669385744973487.png) ![RViz
Octomap](/upfiles/16693857731893983.png)


To develop our custom subscriber node, create a C++ class named
SubscribePointCloud2Message. And add the dependencies to the CMakeLists.txt
file in our basic_pcl package as above.


[ No module named "ament_package" found ](/question/358117/no-module-named-
ament_package-found/)


  More examples

We have more examples on [ http://wiki.ros.org/pcl_ros/Tutorials
](http://wiki.ros.org/pcl_ros/Tutorials) page

Wiki: pcl_ros (last edited 2022-07-27 07:54:58 by  [ JochenSprickerhof
](/JochenSprickerhof "JochenSprickerhof @
2001:a61:3ab3:a501:52e0:85ff:fe80:9cf1\[2001:a61:3ab3:a501:52e0:85ff:fe80:9cf1\]")
)

Except where otherwise noted, the ROS wiki is licensed under the
[ Creative Commons Attribution 3.0
](http://creativecommons.org/licenses/by/3.0/)

* * *

[ ![](/custom/images/brought_by_horiz.png) ](https://www.openrobotics.org/)


Search Help Center


[ ![Demo
Movie](/CyberAgentAILab/pointcloud2gazebo/raw/main/images/pointcloud2gazebo_nav2-3x.gif)
](/CyberAgentAILab/pointcloud2gazebo/blob/main/images/pointcloud2gazebo_nav2-3x.gif)


      2. Parameters
      3. Examples
  5. More examples


Close


###  Footer navigation


The SubscribePointCloud2Message class provides to subscribe the topic of
/velodyne_points2. Run the node with;


[ CyberAgentAILab ](/CyberAgentAILab) /  **[ pointcloud2gazebo
](/CyberAgentAILab/pointcloud2gazebo) ** Public


Off-Canvas Navigation Menu Toggle


Run the command by entering it in the MATLAB Command Window. Web browsers do
not support MATLAB commands.


The site is read-only. Please transition to use Robotics Stack Exchange


include <pcl/point_types.h>
       4


##  Preparation


[ ](/search?source=---two_column_layout_nav----------------------------------)


ROS topics of lidar sensors


Workspace Structure


32  20-Nov-2022 19:44  25 / 25  ](https://build.ros.org//job/Mdev__perception_pcl__ubuntu_bionic_amd64/32/)
  * [


Careers


  * [ Trial Software ](/campaigns/products/trials.html?prodcode=RO&s_tid=doc_trial_RO_tb)
  * [ Trial Software ](/campaigns/products/trials.html?prodcode=RO&s_tid=doc_trial_RO_tb)
  * [ Product Updates ](/support/web_downloads_bounce.html?s_tid=hc_prod_update&s_cid=1008_degr_docdn_270055)
  * [ Product Updates ](/support/web_downloads_bounce.html?s_tid=hc_prod_update&s_cid=1008_degr_docdn_270055)


Last commit message


[ LICENSE ](/CyberAgentAILab/pointcloud2gazebo/blob/main/LICENSE "LICENSE")


By Solution


The Gazebo world shows the robot in the working area as it moves parts to the
recycling bins. The robot continues working until all parts have been placed.


* Execute Pick-and-Place Workflow


  pointcloud_to_pcd

Subscribes to a ROS topic and saves point cloud messages to PCD files. Each
message is saved to a separate file, names are composed of an optional `
prefix ` parameter, the ROS time of the message, and the ` .pcd ` extension.


[ ROS2 Windows node always hang ](/question/402008/ros2-windows-node-always-
hang/)


###  Installing the Package


  * [ Terms ](https://docs.github.com/site-policy/github-terms/github-terms-of-service)
  * [ Privacy ](https://docs.github.com/site-policy/privacy-policies/github-privacy-statement)
  * [ Security ](/security)
  * [ Status ](https://www.githubstatus.com/)
  * [ Docs ](https://docs.github.com/)
  * [ Contact ](https://support.github.com?tags=dotcom-footer)
  * Manage cookies
  * Do not share my personal information


* [ gazebo ](/questions/scope:all/sort:activity-desc/tags:gazebo/page:1/)


[ models/  pointcloud2gazebo
](/CyberAgentAILab/pointcloud2gazebo/tree/main/models/pointcloud2gazebo "This
path skips through empty directories")


First, the robot moves to predefined scanning poses one by one and captures a
set of point clouds of the scene using an onboard depth sensor. At each of the
scanning poses, the current camera pose is retrieved by reading the
corresponding ROS transformation using [ ` rostf `
](../../ros/ref/transformationtree.html) (ROS Toolbox)  and [ ` getTransform `
](../../ros/ref/gettransform.html) (ROS Toolbox)  . The scanning poses are
visualized below:


##  About


[ .gitignore ](/CyberAgentAILab/pointcloud2gazebo/blob/main/.gitignore
".gitignore")


[ Sign up
](/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-
name%3E%2F%3Crepo-name%3E&source=header-
repo&source_repo=CyberAgentAILab%2Fpointcloud2gazebo)


    * [ All features ](/features)
    * [ Documentation  ](https://docs.github.com)
    * [ GitHub Skills  ](https://skills.github.com/)
    * [ Blog  ](https://github.blog)


####  Initialize the Pick-and-Place Application


[ ![NotARobot gravatar image](/m/default/media/images/nophoto.png?v=28)
](/users/69326/notarobot/) [ NotARobot ](/users/69326/notarobot/) (
2022-11-28 01:39:01 -0500  )  edit


    <?xml version="1.0"?>
    <robot xmlns:xacro="http://wiki.ros.org/xacro">

       <xacro:macro name="generate_camera" params="prefix attachment_link package_name:=modproft_camera_description camera_type:=canon_powershot_g7_mk3 debug:=false">

        <xacro:include filename="$(find ${package_name})/urdf/inc/camera_common.xacro"/>
        <xacro:include filename="$(find ${package_name})/urdf/inc/materials.xacro"/>

        <xacro:read_camera_data model_parameter_file="$(find ${package_name})/config/${camera_type}.yaml"/>

        <!-- Todo: Fix Prefix ${prefix} != " "-->
        <xacro:if value="${prefix != " "}">
          <xacro:property name="sensor_reference" value="${prefix}${sensor_name}"/>
        </xacro:if>
        <xacro:if value="${prefix == " "}">
          <xacro:property name="sensor_reference" value="${sensor_name}"/>
        </xacro:if>

        <!-- Define gazebo sensor -->
        <gazebo reference="${sensor_reference}_link">
          <sensor name="${sensor_reference}" type="${sensor_type}" >
            <always_on>${sensor_always_on}</always_on>
            <update_rate>${sensor_update_rate}</update_rate>
            <camera name="${sensor_reference}">
              <horizontal_fov>${sensor_horizontal_fov}</horizontal_fov>
              <image>
                <width>${sensor_image_width}</width>
                <height>${sensor_image_height}</height>
                <format>${sensor_image_format}</format>
              </image>
              <clip>
                <near>${sensor_image_clip_near}</near>
                <far>${sensor_image_clip_far}</far>
              </clip>
              <distortion>
                <k1>${sensor_image_distortion_k1}</k1>
                <k2>${sensor_image_distortion_k2}</k2>
                <k3>${sensor_image_distortion_k3}</k3>


|

View all files

##  Repository files navigation


[ ![cc-by-sa](/m/default/media/images/cc-by-sa.png?v=28)
](http://creativecommons.org/licenses/by-sa/3.0/legalcode) ROS Answers is
licensed under Creative Commons Attribution 3.0 Content on this site is
licensed under a [ Creative Commons Attribution Share Alike 3.0
](http://creativecommons.org/licenses/by-sa/3.0/legalcode) license.


ROS Resources: [ Documentation ](http://wiki.ros.org/) | [ Support
](http://wiki.ros.org/Support) | [ Discussion Forum
](http://discourse.ros.org/) | [ Index ](http://index.ros.org/) | [ Service
Status ](http://status.ros.org/) | [ ros @ Robotics Stack Exchange
](https://robotics.stackexchange.com/questions/tagged/ros)
---

_Attention:_ Answers.ros.org is deprecated as of August the 11th, 2023. Please
visit [ robotics.stackexchange.com ](http://robotics.stackexchange.com) to ask
a new question. This site will remain online in read-only mode during the
transition and into the foreseeable future. Selected questions and answers
have been migrated, and redirects have been put in place to direct users to
the corresponding questions on Robotics Stack Exchange. Additional details are
[ available here ](https://discourse.ros.org/t/ros-and-gazebo-answers-
migration-to-robotics-stack-exchange-process/31494) .


  * [ Trial Software ](/campaigns/products/trials.html?prodcode=RO&s_tid=doc_trial_RO_tb)
  * [ Trial Software ](/campaigns/products/trials.html?prodcode=RO&s_tid=doc_trial_RO_tb)
  * [ Product Updates ](/support/web_downloads_bounce.html?s_tid=hc_prod_update&s_cid=1008_degr_docdn_270055)
  * [ Product Updates ](/support/web_downloads_bounce.html?s_tid=hc_prod_update&s_cid=1008_degr_docdn_270055)


  Package Summary

No API documentation

PCL (Point Cloud Library) ROS interface package. PCL-ROS is the preferred
bridge for 3D applications involving n-D Point Clouds and 3D geometry
processing in ROS. The package contains powerful nodelet interfaces for PCL
algorithms, accepts dynamic reconfiguration of parameters, and supports
multiple threading natively for large scale PPG (Perception Processing Graphs)
construction and usage.

  * Author: Maintained by Radu Bogdan Rusu
  * License: BSD
  * Repository: [ pointclouds ](/pointclouds)
  * Source: svn [ http://svn.pointclouds.org/ros/tags/perception_pcl-0.10.0 ](http://svn.pointclouds.org/ros/tags/perception_pcl-0.10.0)

_**[ perception_pcl ](/perception_pcl?distro=electric) ** : [ cminpack
](/cminpack?distro=electric) | [ flann ](/flann?distro=electric) | [ pcl
](/pcl?distro=electric) | pcl_ros _

**Package Links**

  * **[ Code API ](http://ros.org/doc/electric/api/pcl_ros/html) **
  * [ Tutorials ](/pcl_ros/Tutorials)
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:pcl_ros/page:1/)
  * [ Change List ](/perception_pcl/ChangeList)
  * [ Reviews ](/pcl_ros/Reviews)

** Dependencies  (10) **

  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=electric)
  * [ eigen ](/eigen?distro=electric)
  * [ geometry_msgs ](/geometry_msgs?distro=electric)
  * [ message_filters ](/message_filters?distro=electric)
  * [ nodelet ](/nodelet?distro=electric)
  * [ nodelet_topic_tools ](/nodelet_topic_tools?distro=electric)
  * [ pcl ](/pcl?distro=electric)
  * [ rosbag ](/rosbag?distro=electric)
  * [ roscpp ](/roscpp?distro=electric)
  * [ tf ](/tf?distro=electric)


  * [ find_object_2d ](/find_object_2d?distro=indigo)
  * [ grid_map_pcl ](/grid_map_pcl?distro=indigo)
  * [ grid_map_sdf ](/grid_map_sdf?distro=indigo)
  * [ haf_grasping ](/haf_grasping?distro=indigo)
  * [ head_pose_estimation... ](/head_pose_estimation?distro=indigo)
  * [ hector_barrel_detect... ](/hector_barrel_detection?distro=indigo)
  * [ hector_barrel_detect... ](/hector_barrel_detection_nodelet?distro=indigo)
  * [ hector_barrel_geotif... ](/hector_barrel_geotiff_plugin?distro=indigo)
  * [ hector_costmap ](/hector_costmap?distro=indigo)
  * [ hector_elevation_map... ](/hector_elevation_mapping?distro=indigo)
  * [ hexagon_map ](/hexagon_map?distro=indigo)
  * [ humanoid_localizatio... ](/humanoid_localization?distro=indigo)
  * [ ibeo_lux ](/ibeo_lux?distro=indigo)
  * [ industrial_collision... ](/industrial_collision_detection?distro=indigo)
  * [ joint_tracker ](/joint_tracker?distro=indigo)
  * [ jsk_footstep_planner... ](/jsk_footstep_planner?distro=indigo)
  * [ jsk_pcl_ros ](/jsk_pcl_ros?distro=indigo)
  * [ jsk_pcl_ros_utils ](/jsk_pcl_ros_utils?distro=indigo)
  * [ jsk_perception ](/jsk_perception?distro=indigo)
  * [ jsk_recognition_util... ](/jsk_recognition_utils?distro=indigo)
  * [ laser_ortho_projecto... ](/laser_ortho_projector?distro=indigo)
  * [ laser_scan_matcher ](/laser_scan_matcher?distro=indigo)
  * [ map_organizer ](/map_organizer?distro=indigo)
  * [ mcl_3dl ](/mcl_3dl?distro=indigo)
  * [ micros_dynamic_objec... ](/micros_dynamic_objects_filter?distro=indigo)
  * [ multi_object_trackin... ](/multi_object_tracking_lidar?distro=indigo)
  * [ navfn ](/navfn?distro=indigo)
  * [ o3d3xx ](/o3d3xx?distro=indigo)
  * [ obj_to_pointcloud ](/obj_to_pointcloud?distro=indigo)
  * [ octomap_pa ](/octomap_pa?distro=indigo)
  * [ octomap_server ](/octomap_server?distro=indigo)
  * [ octomap_tensor_field... ](/octomap_tensor_field?distro=indigo)
  * [ oculusprime ](/oculusprime?distro=indigo)
  * [ omip_common ](/omip_common?distro=indigo)
  * [ orsens ](/orsens?distro=indigo)
  * [ pcdfilter_pa ](/pcdfilter_pa?distro=indigo)
  * [ perception_pcl ](/perception_pcl?distro=indigo)
  * [ point_cloud_reducer ](/point_cloud_reducer?distro=indigo)
  * [ pointcloud2pcd ](/pointcloud2pcd?distro=indigo)
  * [ pointcloud_tools ](/pointcloud_tools?distro=indigo)


  * [ Code  ](/CyberAgentAILab/pointcloud2gazebo)
  * [ Issues  ](/CyberAgentAILab/pointcloud2gazebo/issues)
  * [ Pull requests  ](/CyberAgentAILab/pointcloud2gazebo/pulls)
  * [ Actions  ](/CyberAgentAILab/pointcloud2gazebo/actions)
  * [ Projects  ](/CyberAgentAILab/pointcloud2gazebo/projects)
  * [ Security  ](/CyberAgentAILab/pointcloud2gazebo/security)
  * [ Insights  ](/CyberAgentAILab/pointcloud2gazebo/pulse)


Status


[ about ](/about/) |  [ faq ](/faq/) |  [ help ](/help/ "help") |  [ privacy
policy ](/privacy/) |  [ terms of service ](/terms/)


##  Folders and files


If you encounter the following error, please execute ` xhost +local: ` before
execute ` generate_world.py ` .


python3 generate_world.py --input=data/cloud.ply --vis


* **ROS Toolbox** is used **** for connecting MATLAB® to Gazebo.


The sensor publishes type with sensor_msgs/PointCloud2 When we run “rostopic
echo /velodyne_points”, we can see real time point clouds.


15  05-Jul-2022 20:05  25 / 25  ](https://build.ros.org//job/Ndev__perception_pcl__ubuntu_focal_amd64/15/)
  * [


* [ Pick and Place Using RRT for Manipulators ](pick-and-place-using-rrt-for-manipulators.html)


          </inertial>
        </link>

        <link name="${sensor_reference}_virtual_frame_link">
          <!-- Todo Fix debug condition block-->
          <xacro:if value="${debug != 'False'}">
            <visual>
              <geometry>
                <mesh filename="package://${package_name}/meshes/${virtual_visual_geometry_mesh}" scale="${virtual_visual_geometry_scale}"/>
              </geometry>
            </visual>
          </xacro:if>
        </link> ...


Follow


#  Provide feedback


No releases published


[ 70  stars ](/CyberAgentAILab/pointcloud2gazebo/stargazers) [ 5  forks
](/CyberAgentAILab/pointcloud2gazebo/forks) [ Branches
](/CyberAgentAILab/pointcloud2gazebo/branches) [ Tags
](/CyberAgentAILab/pointcloud2gazebo/tags) [ Activity
](/CyberAgentAILab/pointcloud2gazebo/activity)


  * [ Python  80.3%  ](/CyberAgentAILab/pointcloud2gazebo/search?l=python)
  * [ Dockerfile  14.5%  ](/CyberAgentAILab/pointcloud2gazebo/search?l=dockerfile)
  * [ Shell  5.2%  ](/CyberAgentAILab/pointcloud2gazebo/search?l=shell)


include <boost/foreach.hpp>
       5
       6 typedef pcl::PointCloud<pcl::PointXYZ> PointCloud;
       7
       8 void callback(const PointCloud::ConstPtr& msg)
       9 {
      10   printf ("Cloud: width = %d, height = %d\n", msg->width, msg->height);
      11   BOOST_FOREACH (const pcl::PointXYZ& pt, msg->points)
      12     printf ("\t(%f, %f, %f)\n", pt.x, pt.y, pt.z);
      13 }
      14
      15 int main(int argc, char** argv)
      16 {
      17   ros::init(argc, argv, "sub_pcl");
      18   ros::NodeHandle nh;
      19   ros::Subscriber sub = nh.subscribe<PointCloud>("points2", 1, callback);
      20   ros::spin();
      21 }


  * [ iri_hole_detection ](/iri_hole_detection?distro=fuerte)
  * [ iri_laser_scan_match... ](/iri_laser_scan_matcher?distro=fuerte)
  * [ iri_lasers_to_pointc... ](/iri_lasers_to_pointcloud?distro=fuerte)
  * [ iri_leaf_probing_poi... ](/iri_leaf_probing_point?distro=fuerte)
  * [ iri_leaf_segmentatio... ](/iri_leaf_segmentation?distro=fuerte)
  * [ iri_obj_filter ](/iri_obj_filter?distro=fuerte)
  * [ iri_obstacle_detecti... ](/iri_obstacle_detection?distro=fuerte)
  * [ iri_obstacle_detecti... ](/iri_obstacle_detection_normals?distro=fuerte)
  * [ iri_pcl_app ](/iri_pcl_app?distro=fuerte)
  * [ iri_pcl_filters ](/iri_pcl_filters?distro=fuerte)
  * [ iri_pointcloud_to_pc... ](/iri_pointcloud_to_pcd?distro=fuerte)
  * [ iri_poseslam ](/iri_poseslam?distro=fuerte)
  * [ iri_uncalibvs_sim ](/iri_uncalibvs_sim?distro=fuerte)
  * [ iri_visual_odometry ](/iri_visual_odometry?distro=fuerte)
  * [ laser_filters ](/laser_filters?distro=fuerte)
  * [ laser_ortho_projecto... ](/laser_ortho_projector?distro=fuerte)
  * [ laser_scan_matcher ](/laser_scan_matcher?distro=fuerte)
  * [ megatree_pcl ](/megatree_pcl?distro=fuerte)
  * [ motld ](/motld?distro=fuerte)
  * [ narf_recognition ](/narf_recognition?distro=fuerte)
  * [ navfn ](/navfn?distro=fuerte)
  * [ ndt_map ](/ndt_map?distro=fuerte)
  * [ ndt_map_builder ](/ndt_map_builder?distro=fuerte)
  * [ octomap_server ](/octomap_server?distro=fuerte)
  * [ openni_camera_deprec... ](/openni_camera_deprecated?distro=fuerte)
  * [ particle_plume ](/particle_plume?distro=fuerte)
  * [ pcl_filter ](/pcl_filter?distro=fuerte)
  * [ pcl_to_scan ](/pcl_to_scan?distro=fuerte)
  * [ planning_environment... ](/planning_environment?distro=fuerte)
  * [ pointcloud_snapshot_... ](/pointcloud_snapshot_service?distro=fuerte)
  * [ pointcloud_to_lasers... ](/pointcloud_to_laserscan?distro=fuerte)
  * [ pointcloud_vrml ](/pointcloud_vrml?distro=fuerte)
  * [ pole_structure_mappe... ](/pole_structure_mapper?distro=fuerte)
  * [ pp_explorer ](/pp_explorer?distro=fuerte)
  * [ pr2_grasp_adjust ](/pr2_grasp_adjust?distro=fuerte)
  * [ pr2_navigation_perce... ](/pr2_navigation_perception?distro=fuerte)
  * [ pr2_navigation_self_... ](/pr2_navigation_self_filter?distro=fuerte)
  * [ pr2_tilt_laser_inter... ](/pr2_tilt_laser_interface?distro=fuerte)
  * [ rail_cv_project ](/rail_cv_project?distro=fuerte)
  * [ rgbd_assembler ](/rgbd_assembler?distro=fuerte)


include <pcl_ros/point_cloud.h>
       3


* [ Pick-and-Place Workflow Using RRT Planner and Stateflow for MATLAB ](pick-and-place-workflow-using-stateflow-and-rrt-planner.html)


You clicked a link that corresponds to this MATLAB command:


18  15-Feb-2023 21:05  25 / 25  ](https://build.ros.org//job/Ndev__perception_pcl__ubuntu_focal_amd64/18/)
  * [


  Package Summary

Released

Continuous Integration

Documented

PCL (Point Cloud Library) ROS interface stack. PCL-ROS is the preferred bridge
for 3D applications involving n-D Point Clouds and 3D geometry processing in
ROS.

  * Maintainer status: maintained
  * Maintainer: Paul Bovbel <paul AT bovbel DOT com>, Bill Morris <bill AT neautomation DOT com>
  * Author: Open Perception, Julius Kammerl <julius AT kammerl DOT de>, William Woodall <william AT osrfoundation DOT org>
  * License: BSD
  * Bug / feature tracker: [ https://github.com/ros-perception/perception_pcl/issues ](https://github.com/ros-perception/perception_pcl/issues)
  * Source: git [ https://github.com/ros-perception/perception_pcl.git ](https://github.com/ros-perception/perception_pcl) (branch: indigo-devel)

_**[ perception_pcl ](/perception_pcl?distro=jade) ** : [ pcl_conversions
](/pcl_conversions?distro=jade) | [ pcl_msgs ](/pcl_msgs?distro=jade) |
pcl_ros _

**Package Links**

  * **[ Code API ](http://docs.ros.org/jade/api/pcl_ros/html) **
  * [ Tutorials ](/pcl_ros/Tutorials)
  * [ FAQ ](http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:pcl_ros/page:1/)
  * [ Changelog ](http://docs.ros.org/en/jade/changelogs/pcl_ros/changelog.html)
  * [ Change List ](/perception_pcl/ChangeList)
  * [ Reviews ](/pcl_ros/Reviews)

** Dependencies  (17) **

  * [ catkin ](/catkin?distro=jade)
  * [ cmake_modules ](/cmake_modules?distro=jade)
  * [ dynamic_reconfigure ](/dynamic_reconfigure?distro=jade)
  * [ genmsg ](/genmsg?distro=jade)
  * [ message_filters ](/message_filters?distro=jade)
  * [ nodelet ](/nodelet?distro=jade)


[ edit ](/s/answers/409897/edit/) flag offensive  delete  [ link
](/question/409868/point-cloud-misaligned-with-gazebo-sensor-
plugin/?answer=409897#post-id-409897 "permanent link") more


[ 1 Follower ](/@tevhitkarsli/followers?source=post_page-----
70ba44beb443--------------------------------)


The packages use [ ros_control ](https://wiki.ros.org/ros_control) to control
the joints to desired joint positions. For additional details on using the VM,
refer to [ Get Started with Gazebo and Simulated TurtleBot ](../../ros/ug/get-
started-with-gazebo-and-a-simulated-turtlebot.html) (ROS Toolbox)


[ worlds ](/CyberAgentAILab/pointcloud2gazebo/tree/main/worlds "worlds")


16  20-Nov-2022 19:05  25 / 25  ](https://build.ros.org//job/Ndev__perception_pcl__ubuntu_focal_amd64/16/)
  * [


Explore


> Interoperability between closed software provided by different non-
> coordinated vendors


 transition to configuring lifecycle stage
    ros2 lifecycle set OusterDriver 1


  * High degree of accuracy
  * High resolution
  * Long detecting distance


[ Robostack ](https://robostack.github.io/) sounds interesting, I hadn't heard
of that so thank you for the link. We will also look into contributing.


##  Use saved searches to filter your results more quickly


okay, i thought you have the concern about environment setup.


* 👍  2 reactions


Open


[ ](https://github.com "GitHub") © 2024 GitHub, Inc.


  Extensions

This package was intentionally designed for new capabilities to be added.
Whether that being supporting new classes of Ouster lidars (sensor-custom,
OS2, ...) or supporting new ways of processing the data packets.


[ ![@CraigBuilds](https://avatars.githubusercontent.com/u/88379416?s=80&v=4)
](/CraigBuilds)


)
](https://twitter.com/SICK_USA?elqTrackId=bc7d6928ccc746f3ac96246a71e7a7af&elq=00000000000000000000000000000000&elqaid=9042&elqat=2&elqCampaignId=&elqcst=272&elqcsid=5796)


Do others have experience with precision navigation in open fields and want to share their experiences with us?


  Languages

  * [ C++  95.7%  ](/ros-drivers/ros2_ouster_drivers/search?l=c%2B%2B)
  * [ Python  3.0%  ](/ros-drivers/ros2_ouster_drivers/search?l=python)
  * [ CMake  1.3%  ](/ros-drivers/ros2_ouster_drivers/search?l=cmake)


  ` TIME_FROM_INTERNAL_OSC `

Use the LiDAR internal clock. Measurements are time stamped with ns since
power-on. Free running counter based on the sensor’s internal oscillator.
Counts seconds and nanoseconds since sensor turn on, reported at ns resolution
(both a second and nanosecond register in every UDP packet), but min increment
is on the order of 10 ns. Accuracy is +/- 90 ppm.


  Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel  Submit feedback


Sorry, something went wrong.


Query


And, technically, they'd be correct.


Navigation for precision farming in open fields
ROS-Agriculture
Jun 2020

Back
Oct 2022


#  Saved searches


Is this something that the ros2 developers would consider supporting? Are
there any workarounds or other solutions I can use in the meantime, or perhaps
advice with using pyinstaller? How have others distributed ROS2 code to users
in the past?

---

The text was updated successfully, but these errors were encountered:


[ Terms and conditions
](https://www.sick.com/tac/?elqTrackId=d4cc173ad6a64de9b8faa64b25a1e944&elq=00000000000000000000000000000000&elqaid=9042&elqat=2&elqCampaignId=&elqcst=272&elqcsid=5796)
|


> Correct me if I am wrong, but I guess the vendors would also need to agree
> on the ROS 2 distro to use (see [
> https://answers.ros.org/question/341372/can-nodes-from-different-
> ros-2-distributions-communicate-compatibly
> ](https://answers.ros.org/question/341372/can-nodes-from-different-
> ros-2-distributions-communicate-compatibly) )? In that case what do you
> imagine that the long term maintenance aspect of that would work?


A team of robotics and software engineers (api-users) deliver a robotics
facility, control system, graphical user interfaces, and training tools, to a
waste management site. The team at the waste management site (end-users) use
the graphical user interfaces (which uses ROS2) to control the robots. They
also have visualization tools, logging tools, planning tools etc, all which
use ROS2 yet can be used without knowing what ROS2 is. There are also
simulators that publish the same ROS2 data as the robots. These can be used in
an office alongside the same digital tools used for the real operations. This
office set-up is a particular pain point as the end-users do not have the
expertise needed to install the dependencies.


Embrace the Audits
Embrace the Audits
You can't secure what you don't know. Effortlessly create audit-friendly diagrams.


**[ CraigBuilds ](/CraigBuilds) ** commented  Jan 26, 2024  •


  Setup and Networking

Ouster gives you some tools to set up a direct connection to the sensor from
you computer. I'd argue these are a bit obtuse and they should really provide
a set of scripts to set this up automatically as a daemon. However, since I am
also using this as a development tool, I don't want this always running in the
background on my machines so I provide the directions below to setup the
network connection.


Copy link


[
![@traversaro](https://avatars.githubusercontent.com/u/1857049?s=80&u=2178077c05edb1cff607766c0045015dbf112c00&v=4)
](/traversaro)


**[ traversaro ](/traversaro) ** commented  Feb 21, 2024  •


**Download the LiDAR System Guide to discover:**


  Design

See design doc in ` design/* ` directory [ here ](/ros-
drivers/ros2_ouster_drivers/blob/ros2/ros2_ouster/design/design_doc.md) .


In the video the differences between single pulse technology, HDDM technology
and HDDM+ technology are explained.


[ @gavanderhoorn ](https://github.com/gavanderhoorn) wrote:


Looking for Network Documentation,
DCIM or OSP software?
Learn more
netTerrain LogicalnetTerrain OSPnetTerrain DCIMnetTerrain LogicalnetTerrain OSPnetTerrain DCIMnetTerrain Logical
GE
Planning
We needed to improve our Data Center operational efficiency and netTerrain got us there with an easy-to-use, cost-efficient and powerful solution.


**[ CraigBuilds ](/CraigBuilds) ** commented  Feb 9, 2024


Clear


[ ros2_ouster ](/ros-drivers/ros2_ouster_drivers/tree/ros2/ros2_ouster
"ros2_ouster")

|


[ ![@CraigBuilds](https://avatars.githubusercontent.com/u/88379416?s=80&v=4)
](/CraigBuilds)


The cost. Unfortunately Docker on Windows requires Docker Desktop, which
requires a paid subscription for companies with more than 250 employees.


An agricultural technician uses a tablet to control a drone for crop
monitoring. The drone, equipped with ROS2 for flight control and data
processing, collects and sends back real-time data on crop health. The
technician, focusing on agricultural expertise rather than robotics, utilizes
this data for farm management decisions.

---

All reactions


  Topics

[ ros ](/topics/ros "Topic: ros") [ drivers ](/topics/drivers "Topic:
drivers") [ ros2 ](/topics/ros2 "Topic: ros2") [ ouster ](/topics/ouster
"Topic: ouster") [ ouster-sensor ](/topics/ouster-sensor "Topic: ouster-
sensor")


Zip or Postal Code  *


© 2024 SICK AG


By Solution


ROS Project Leader: Chris Lalancette
Gazebo Project Leader: Addisu Taddese
Open-RMF Project Leader: Michael X. Grey
Infrastructure Project Leader: Steven! Ragnarok
TGC Supporting Individual Representative: Steve Macenski
ROS PMC Supporting Individual Representatives: David Lu!! and Francisco Martin Rico
Additionally, Kat Scott will be filling the role of OSRF Developer Advocate assigned to the TGC. There will be further announcements of participation in the next few weeks as we finalize the lists of initial Committers and PMC Members for each project.


ROS Discourse


State or Province  *


**[ CraigBuilds ](/CraigBuilds) ** commented  Jan 30, 2024  •


Sorry, something went wrong.


 load this component
    ros2 component load /ComponentManager ros2_ouster ros2_ouster::OS1Driver


edited


**[ clalancette ](/clalancette) ** commented  Jan 29, 2024


* Open Source


Charter of the OSRA
Charter of the ROS Project
Charter of the Gazebo Project
Charter of the Open-RMF Project
Charter of the Infrastructure Project
Policies and Procedures of Technical Governance of the OSRA
Because this is the initial year of the OSRA, the OSRF Board has selected people to fill the posts that would normally be elected by various bodies. The following people have kindly agreed to fill these roles:


* Product


None yet


By clicking “Sign up for GitHub”, you agree to our [ terms of service
](https://docs.github.com/terms) and [ privacy statement
](https://docs.github.com/privacy) . We’ll occasionally send you account
related emails.


No milestone


Add the ability to bundle Python, ROS2, DDS, and other dependencies with the
created executable. This way a download can be sent to users who are not
software developers and do not have the ROS2 development environment set up.
They should simply be able to double-click the .exe, and the ROS2 Node will
run. This is similar to creating a Snap on Linux, however this is not
supported on Windows. It should work for nodes created with rclcpp and rclpy.


Exactly, ` ROS2-Given-RTI-Given-Humble ` is our standard. For long-term
maintenance (~50 years), we will maintain a fork of Humble and RTI RMW.
Virtual machines will be used to run this software. (Which going full circle,
contradicts the fact that I'm looking for an alternative to virtual machines
for deployment. I guess I'm looking for an alternative deployment method to
use as well as the virtual machines, for the short term).


Sign Up
Log In


  History

[ 86 Commits  ](/ros-drivers/ros2_ouster_drivers/commits/ros2/)

[ ](/ros-drivers/ros2_ouster_drivers/commits/ros2/)


Copy link


of pulses) and nanoseconds since sensor turn on. If ` multipurpose_io_mode `
is set to ` INPUT_NMEA_UART ` then the seconds register jumps to time
extracted from a NMEA ` $GPRMC ` message read on the ` multipurpose_io ` port.
Reported at ns resolution (both a second and nanosecond register in every UDP
packet), but min increment is on the order of 10 ns. Accuracy is +/- 1 s from
a perfect ` SYNC_PULSE_IN ` source.


John Brauner, Systems Administrator
University of Notre Dame
Efficiency
I don’t have to leave my office. In just five minutes, I have everything I need whereas before it could have been hours of running around.


ROS Resources: ROS Homepage | Media and Trademarks | Documentation | ROS Index | How to Get Help | Q&A Help Site | Discussion Forum | Service Status
Skip to main content


Using a mixed membership/meritocratic model of participation, the OSRA provides for greater community involvement in decision making for the projects, and in the engineering of the software. This mixed model allows stakeholders of all types to participate in and support the OSRF’s open-source projects in the way that best matches their needs and available resources, while still allowing the OSRF to receive the financial support it needs for its projects. The OSRF Board of Directors has assigned responsibility for management of the OSRF’s open-source projects to the OSRA.


I think this could be achieved. You can ` apt-install ` a ros2 node on Linux
(which could be closed source), and as far as I'm aware, this will work with
any RMW. It could work the same on Windows. The user installs the ROS2 node
(likely using an installer, the idiomatic way to install programs for non-
technical users on Windows), and this will also install the ROS2 dependencies
if required, along with the default RMW. Another installer could be used for
installing and setting the current RMW in use. Incorrectly configured
components would not be interoperable, but this could be solved with
documentation. i.e. "If you use our product, you must use this RMW". ROS2
isn't providing interoperability here, it is the RMW, however, ROS2
applications should work with any RMW.

---

All reactions


  Folders and files

Name  |  Name  |

Last commit message

|

Last commit date

---|---|---|---


Wilco
Jun 2020
We have experience with the ROS navigation stack and with Navigation 2. Together with some developers of robots for agriculture we are looking into the precision navigation in the open fields. Experiments with RTK GPS showed that the precision was not enough. Moreover, the typical 2D lidar based approaches do not work in the fields. Eventually, the robots must be able to navigate over small (visible) tracks in the fields.


To clarify, I am not suggesting providing ROS2 as an executable, but asking
for the ability to turn applications that use ROS2 into standalone
applications that do not need ROS2 installed first. (i.e static-linking,
bundled etc).


Author


Some examples of these users (some are real, some are made up for the sake of
this post):


Not overthinking IMO. This is generating good discussion, which is what I
wanted when I made this post. There isn't much discussion around ROS2 and
deployments.

---

👍  1  traversaro reacted with thumbs up emoji


Skip to content

Toggle navigation

[ ](https://github.com/)

[ Sign in ](/login?return_to=https%3A%2F%2Fgithub.com%2Fros-
drivers%2Fros2_ouster_drivers)

  * Product

    * [ Actions  Automate any workflow  ](/features/actions)
    * [ Packages  Host and manage packages  ](/features/packages)
    * [ Security  Find and fix vulnerabilities  ](/features/security)
    * [ Codespaces  Instant dev environments  ](/features/codespaces)
    * [ Copilot  Write better code with AI  ](/features/copilot)
    * [ Code review  Manage code changes  ](/features/code-review)
    * [ Issues  Plan and track work  ](/features/issues)
    * [ Discussions  Collaborate outside of code  ](/features/discussions)

Explore

    * [ All features ](/features)
    * [ Documentation  ](https://docs.github.com)
    * [ GitHub Skills  ](https://skills.github.com/)
    * [ Blog  ](https://github.blog)

  * Solutions

For

    * [ Enterprise ](/enterprise)
    * [ Teams ](/team)
    * [ Startups ](/enterprise/startups)
    * [ Education  ](https://education.github.com)

By Solution

    * [ CI/CD & Automation ](/solutions/ci-cd/)
    * [ DevOps ](/solutions/devops/)


[ Search syntax tips ](https://docs.github.com/search-github/github-code-
search/understanding-github-code-search-syntax)


[ Sign up for free ](/join?source=comment-repo) **to join this conversation on
GitHub** . Already have an account? [ Sign in to comment
](/login?return_to=https%3A%2F%2Fgithub.com%2Fros2%2Fros2%2Fissues%2F1514)