Trouble visualizing PointCloud2 in Rviz

asked 2018-09-24 13:09:31 -0500

shreyasgan gravatar image

updated 2022-05-28 17:05:36 -0500

lucasw gravatar image


I publish a PointCloud2 message to a predefined topic that rviz's PointCloud display subscribes to (/output) successfully, but the pointcloud does not show up on the visualization. I know it publishes successfully because there is no error message in the rviz display window.

In the launch file for my program, I launch the demo.launch for my tx90 robot that was created through the moveit_setup_assistant, <launch>

<include file="$(find tx90_moveit_config)/launch/demo.launch"/>

which starts up rviz which visualizes my tx90 robot, but not the pointcloud2 message.

i believe this may be a problem with TF, but i added a static_transform_publisher to my launch file as so: <node pkg="tf2_ros" type="static_transform_publisher" name="base_link_broadcaster" args="5 0 0 0 0 0 1 base_link head"/> But this does not change anything except add the frame head to my transform tree (which I found through using tf view_frames), I am still not able to view the pointclouds in rviz. It says I do not have enough karma to post my frames.pdf file.

My code for this portion is as follows:

ros::Publisher pc_pub = n.advertise<sensor_msgs::PointCloud2> ("/output", 1);
boost::filesystem::path pkgPath, imgPath;
std::stringstream ss;

pkgPath = ros::package::getPath("mover_node");

ss << pkgPath.c_str() << "/Wound_3d_mesh.pcd";

std::string fpath = ss.str();
sensor_msgs::PointCloud2 cloud_msg;

pcl::PointCloud<pcl::PointXYZRGBA> cloud;
pcl::PCLPointCloud2 point_cloud2;
    pcl::io::loadPCDFile<pcl::PointXYZRGBA>(fpath, cloud);
//pcl::PointCloud<pcl::PointXYZRGBA>::ConstPtr tmp_cloud = cloud;
pcl::toPCLPointCloud2(cloud, point_cloud2);
pcl_conversions::fromPCL(point_cloud2, cloud_msg);
cloud_msg.header.frame_id = "head";
cloud_msg.header.stamp = ros::Time::now();

edit retag flag offensive close merge delete