首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从发布者和订阅方节点可视化Rviz (ROS)中的PointCloud

无法从发布者和订阅方节点可视化Rviz (ROS)中的PointCloud
EN

Stack Overflow用户
提问于 2019-03-01 15:39:17
回答 2查看 2.6K关注 0票数 0

我对发布者和订阅者使用下面的代码。我可以在Rviz上可视化输入节点的PointCloud,但无法可视化输出节点。因为我是ROS的新手。我该如何解决这个问题呢?我甚至在Rviz中设置了固定的框架: base_link。

代码语言:javascript
运行
复制
ros::Subscriber subPointCloud;
ros::Publisher pubPointCloud;

void DEM(const sensor_msgs::PointCloud2ConstPtr& input)
{
  ROS_DEBUG("Point Cloud Received");
  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);
  sensor_msgs::PointCloud2 output;

  // Convert from ROS message to PCL point cloud
  pcl::fromROSMsg(*input, *cloud);
  pcl::toROSMsg(*cloud, output);

  output.header.stamp = ros::Time::now();
  output.header.frame_id = "/baselink";
  pubPointCloud.publish(output);

  }


int main(int argc, char** argv)
{
  ROS_INFO("Starting LIDAR Node");
  ros::init(argc, argv, "kitti_lidar_node");
  ros::NodeHandle nh;

  subPointCloud = nh.subscribe<sensor_msgs::PointCloud2>("input", 1, DEM);
  pubPointCloud = nh.advertise<pcl::PointCloud<pcl::PointXYZ> > ("output", 1);

  ros::spin();

  return 0;
}

EN

回答 2

Stack Overflow用户

发布于 2019-03-01 19:33:35

您已经提到在RViz中将固定帧设置为base_link,但在代码中将输出消息的frame_id设置为baselink(请注意缺少下划线)。你可以通过两种方式解决这个问题:要么发布具有相同帧id的其他输出(即base_link),要么通过命令行提供从base_linkbaselinktransformation

代码语言:javascript
运行
复制
$ rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 1.0 base_link baselink 1000
票数 0
EN

Stack Overflow用户

发布于 2019-03-03 22:23:28

以下是故障排除的一些步骤...

  1. 首先在命令行上检查输出是否正在由以下命令填充:rostopic echo /output,确保数组实际上正在被RVIZ填充确保RVIZ中固定帧和消息frame_id之间的TF树是完整的。您可以通过添加TF树来检查它:单击add > by Display types > rviz > TF。

然后通过展开TF >打开树,然后单击tree。

如果有问题,这应该有助于识别它。

  • 最后通过展开状态来检查点云消息的状态。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54940002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档