ros之MarkerArray使用

本文介绍了如何在ROS中使用MarkerArray为点云绘制boundingbox。内容包括MarkerArray的工作原理,特别强调在发布MarkerArray时,如果后续marker尺寸小于前一个,上一个marker的部分会保留,可以通过设置最大marker大小并透明化超出部分来解决这一问题。
摘要由CSDN通过智能技术生成

ros之MarkerArray使用

使用ros中的marker array来给点云画boundingbox。

#include <visualization_msgs/Marker.h>
#include <visualization_msgs/MarkerArray.h>

void ImageCloudFusion::getMarkerArray(const std::vector<CloudType> cluster_cloud_v,
                                      visualization_msgs::MarkerArray& marker_array)
{
  if (cluster_cloud_v.empty())
  {
    std::cerr << "getMarkerArray: input vector is empty!" << std::endl;
    return;
  }
  marker_array.markers.clear();
  visualization_msgs::Marker bbox_marker;
  bbox_marker.header.frame_id = "rslidar";
  bbox_marker.header.stamp = ros::Time::now();
  bbox_marker.ns = "";
  bbox_marker.color.r = 1.0f;
  bbox_marker.color.g = 0.0f;
  bbox_marker.color.b = 0.0f;
  bbox_marker.color.a = 0.2;
  bbox_marker.lifetime = ros::Duration();
  bbo
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS系统中,可以使用`MarkerArray`消息类型来绘制方形区域。以下是一个使用`MarkerArray`消息类型绘制方形区域的示例代码: ```python #!/usr/bin/env python import rospy from visualization_msgs.msg import Marker, MarkerArray from geometry_msgs.msg import Point rospy.init_node('marker_array_node') # create a marker publisher marker_pub = rospy.Publisher('marker_array', MarkerArray, queue_size=10) # create a new marker array message marker_array_msg = MarkerArray() # create a new marker message marker_msg = Marker() marker_msg.header.frame_id = "map" # set the frame id marker_msg.type = Marker.CUBE # set the marker type marker_msg.action = Marker.ADD # set the marker action # set the position and orientation of the marker marker_msg.pose.position.x = 1.0 marker_msg.pose.position.y = 1.0 marker_msg.pose.position.z = 0.0 marker_msg.pose.orientation.x = 0.0 marker_msg.pose.orientation.y = 0.0 marker_msg.pose.orientation.z = 0.0 marker_msg.pose.orientation.w = 1.0 # set the scale of the marker marker_msg.scale.x = 1.0 marker_msg.scale.y = 1.0 marker_msg.scale.z = 1.0 # set the color of the marker marker_msg.color.r = 1.0 marker_msg.color.g = 0.0 marker_msg.color.b = 1.0 marker_msg.color.a = 1.0 # set the lifetime of the marker marker_msg.lifetime = rospy.Duration(0) # add the marker to the marker array marker_array_msg.markers.append(marker_msg) # publish the marker array marker_pub.publish(marker_array_msg) ``` 在这个例子中,我们创建了一个`MarkerArray`消息,并向其中添加了一个`Marker`消息。我们设置了`Marker`消息的`type`为`Marker.CUBE`表示绘制一个立方体,`pose`表示立方体在空间中的位置和方向,`scale`表示立方体的大小,`color`表示立方体的颜色。 在实际使用时,我们可以在ROS系统中订阅`MarkerArray`消息,并使用RViz等可视化工具来查看绘制出来的方形区域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值