19 #include "ISM/utility/GeometryHelper.hpp" 29 geometry_msgs::Point retPoint;
30 retPoint.x = point->eigen.x();
31 retPoint.y = point->eigen.y();
32 retPoint.z = point->eigen.z();
38 geometry_msgs::Quaternion retQuat;
39 retQuat.w = quat->eigen.w();
40 retQuat.x = quat->eigen.x();
41 retQuat.y = quat->eigen.y();
42 retQuat.z = quat->eigen.z();
47 ISM::ObjectPtr o, std::string baseFrame, std::string ns, int32_t
id,
double bin_size,
52 ISM::PointPtr referencePoint = ISM::GeometryHelper::applyQuatAndRadiusToPose(o->pose,
53 vote->objectToRefQuat, vote->radius);
54 ISM::PosePtr destPose = ISM::GeometryHelper::getReferencePose(o->pose, referencePoint,
55 vote->objectToRefPoseQuat);
58 m.header.frame_id = baseFrame;
61 m.type = visualization_msgs::Marker::ARROW;
65 geometry_msgs::Point pO;
66 pO.x = o->pose->point->eigen.x();
67 pO.y = o->pose->point->eigen.y();
68 pO.z = o->pose->point->eigen.z();
69 geometry_msgs::Point pD;
70 pD.x = destPose->point->eigen.x();
71 pD.y = destPose->point->eigen.y();
72 pD.z = destPose->point->eigen.z();
73 m.points.push_back(pO);
74 m.points.push_back(pD);
77 result.markers.push_back(m);
79 auto refBin =
getBinFromPoint(referencePoint, bin_size, baseFrame, binColor);
80 auto destBin =
getBinFromPoint(destPose->point, bin_size, baseFrame, binColor);
84 id + 1, 0.005, voteColor, d.
toSec(),
id + 2);
85 result.markers.insert(result.markers.end(), orient.markers.begin(), orient.markers.end());
90 (ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace,
int id,
float radius,
93 const double length = radius * 2;
94 const float scale = radius / 5 * 2;
96 result.markers.push_back(
createSphereMarker(pose->point, baseFrame, markerNamespace,
id,
97 radius, color, markerLifetime));
103 auto rot = ISM::GeometryHelper::quatToEigenQuat(pose->quat);
104 Eigen::Vector3d xV = rot._transformVector(Eigen::Vector3d::UnitX());
105 Eigen::Vector3d yV = rot._transformVector(Eigen::Vector3d::UnitY());
106 Eigen::Vector3d zV = rot._transformVector(Eigen::Vector3d::UnitZ());
109 markerNamespace, axesFirstId, scale, scale, scale, xAxeColor, markerLifetime);
110 xAxe.type = visualization_msgs::Marker::ARROW;
111 xAxe.action = visualization_msgs::Marker::ADD;
112 geometry_msgs::Point xAxePStart;
113 xAxePStart.x = pose->point->eigen.x();
114 xAxePStart.y = pose->point->eigen.y();
115 xAxePStart.z = pose->point->eigen.z();
116 geometry_msgs::Point xAxePEnd;
117 xAxePEnd.x = pose->point->eigen.x() + xV.x() * length;
118 xAxePEnd.y = pose->point->eigen.y() + xV.y() * length;
119 xAxePEnd.z = pose->point->eigen.z() + xV.z() * length;
120 xAxe.points.push_back(xAxePStart);
121 xAxe.points.push_back(xAxePEnd);
122 result.markers.push_back(xAxe);
125 markerNamespace, axesFirstId + 1, scale, scale, scale, yAxeColor, markerLifetime);
126 yAxe.type = visualization_msgs::Marker::ARROW;
127 yAxe.action = visualization_msgs::Marker::ADD;
128 geometry_msgs::Point yAxePStart;
129 yAxePStart.x = pose->point->eigen.x();
130 yAxePStart.y = pose->point->eigen.y();
131 yAxePStart.z = pose->point->eigen.z();
132 geometry_msgs::Point yAxePEnd;
133 yAxePEnd.x = pose->point->eigen.x() + yV.x() * length;
134 yAxePEnd.y = pose->point->eigen.y() + yV.y() * length;
135 yAxePEnd.z = pose->point->eigen.z() + yV.z() * length;
136 yAxe.points.push_back(yAxePStart);
137 yAxe.points.push_back(yAxePEnd);
138 result.markers.push_back(yAxe);
141 markerNamespace, axesFirstId + 2, scale, scale, scale, zAxeColor, markerLifetime);
142 zAxe.type = visualization_msgs::Marker::ARROW;
143 zAxe.action = visualization_msgs::Marker::ADD;
144 geometry_msgs::Point zAxePStart;
145 zAxePStart.x = pose->point->eigen.x();
146 zAxePStart.y = pose->point->eigen.y();
147 zAxePStart.z = pose->point->eigen.z();
148 geometry_msgs::Point zAxePEnd;
149 zAxePEnd.x = pose->point->eigen.x() + zV.x() * length;
150 zAxePEnd.y = pose->point->eigen.y() + zV.y() * length;
151 zAxePEnd.z = pose->point->eigen.z() + zV.z() * length;
152 zAxe.points.push_back(zAxePStart);
153 zAxe.points.push_back(zAxePEnd);
154 result.markers.push_back(zAxe);
162 std::vector<ISM::PosePtr> trackPoses;
163 for (
auto& obj : track->objects)
167 trackPoses.push_back(obj->pose);
172 trackPoses.push_back(ISM::PosePtr());
193 if(rgba.size() != 4){
194 ROS_ERROR(
"Calling VizHelperRVIZ::createColorRGBA with a vector with size != 4 [current size: %zu]", rgba.size());
204 const int hi = hue / 60;
205 const double f = (hue / 60.0 - (double) hi);
206 const double p = value * (1 - saturation);
207 const double q = value * (1 - saturation * f);
208 const double t = value * (1 - saturation * (1 - f));
236 double hue = (120.0 * std::pow(confidence, 5.0));
242 std::string observedId =
object.observedId;
243 std::vector<float> rgba;
244 if ( ( observedId.length() == 12 ) && ( observedId.find_first_not_of(
"0123456789") == std::string::npos ) )
248 for (
int i = 0; i <= 3; i++)
252 temp = observedId.substr( (i * 3), 3 );
253 rgba.push_back(std::stof(temp) / 100.0);
256 catch (std::invalid_argument& ia)
282 float zScale,
ColorRGBA color,
double markerLifetime)
286 retMarker.header.frame_id = baseFrame;
288 retMarker.ns = markerNamespace;
290 retMarker.scale.x = xScale;
291 retMarker.scale.y = yScale;
292 retMarker.scale.z = zScale;
293 retMarker.color = color;
302 std::string markerNamespace,
int id,
float radius,
ColorRGBA color,
double markerLifetime)
306 const std::string conePath =
"package://asr_ism_visualizations/rsc/sphere.dae";
309 retMarker.type = Marker::MESH_RESOURCE;
310 retMarker.mesh_resource = conePath;
311 retMarker.mesh_use_embedded_materials =
true;
316 std::string markerNamespace,
int id,
float radius,
ColorRGBA color,
double markerLifetime)
320 const std::string conePath =
"package://asr_ism_visualizations/rsc/openCone.dae";
324 retMarker.type = Marker::MESH_RESOURCE;
325 retMarker.mesh_resource = conePath;
326 retMarker.mesh_use_embedded_materials =
true;
332 std::string markerNamespace,
int id,
float radius,
float height,
ColorRGBA color,
double markerLifetime)
336 retMarker.type = Marker::CYLINDER;
344 int id,
float xScale,
float yScale,
float zScale,
ColorRGBA color,
double markerLifetime)
348 retMarker.type = Marker::ARROW;
356 int id,
float xScale,
float yScale,
float zScale,
ColorRGBA color,
double markerLifetime,
double minLength)
358 if (ISM::GeometryHelper::getDistanceBetweenPoints(from, to) < minLength)
360 ISM::PointPtr newFrom(
new ISM::Point(to->eigen.x(), to->eigen.y(), to->eigen.z()));
361 newFrom->eigen.z() += minLength;
373 std::string markerNamespace,
float arrowScale,
float axisScale,
ColorRGBA color,
double markerLifetime)
377 std::vector<geometry_msgs::Point> axisPoints;
380 Marker xAxisMarker =
VizHelperRVIZ::createMarkerWithoutTypeAndPose(baseFrame, markerNamespace, 1, arrowScale, 0, 0,
VizHelperRVIZ::createColorRGBA(1, 0, 0, 0.5), markerLifetime);;
381 Marker yAxisMarker =
VizHelperRVIZ::createMarkerWithoutTypeAndPose(baseFrame, markerNamespace, 2, arrowScale, 0, 0,
VizHelperRVIZ::createColorRGBA(0, 1, 0, 0.5), markerLifetime);;
382 Marker zAxisMarker =
VizHelperRVIZ::createMarkerWithoutTypeAndPose(baseFrame, markerNamespace, 3, arrowScale, 0, 0,
VizHelperRVIZ::createColorRGBA(0, 0, 1, 0.5), markerLifetime);;
384 arrowMarker.type = Marker::LINE_LIST;
385 xAxisMarker.type = Marker::LINE_LIST;
386 yAxisMarker.type = Marker::LINE_LIST;
387 zAxisMarker.type = Marker::LINE_LIST;
389 for(
size_t i = 0; i < poses_vec.size(); i++){
390 for (ISM::PosePtr to : poses_vec[i].second)
397 xAxisMarker.points.push_back(axisPoints[0]);
399 yAxisMarker.points.push_back(axisPoints[1]);
401 zAxisMarker.points.push_back(axisPoints[2]);
406 retMarkers.markers.push_back(arrowMarker);
407 retMarkers.markers.push_back(xAxisMarker);
408 retMarkers.markers.push_back(yAxisMarker);
409 retMarkers.markers.push_back(zAxisMarker);
415 std::string markerNamespace,
int&
id,
float arrowScale,
ColorRGBA color,
double markerLifetime)
419 retMarker.type = Marker::LINE_LIST;
420 for (ISM::PosePtr toPose : toPoses)
428 std::string markerNamespace,
float arrowScale,
ColorRGBA color,
double markerLifetime)
432 retMarker.type = Marker::LINE_LIST;
433 for (std::pair<ISM::PointPtr, ISM::PointPtr> onePointPair : pointPair)
442 ColorRGBA color,
double markerLifetime, std::string resourcePath)
445 double scaling = 0.001;
446 if(resourcePath.compare(
"package://asr_visualization_server/res/maus.dae") == 0){
449 else if(resourcePath.compare(
"package://asr_visualization_server/res/monitor.dae") == 0){
452 else if(resourcePath.compare(
"package://asr_visualization_server/res/tastatur.dae") == 0){
456 scaling, scaling, scaling,
457 color, markerLifetime);
459 retMarker.type = Marker::MESH_RESOURCE;
460 retMarker.mesh_resource = resourcePath;
461 retMarker.mesh_use_embedded_materials =
true;
470 std::string markerNamespace,
float lineWidth,
480 color, markerLifetime);
481 lineMarker.type = Marker::LINE_STRIP;
483 bool stillSearchingStartPosition =
true;
484 for (
unsigned int i = 0; i < trackPoses.size(); i++)
486 if (trackPoses[i] ==
nullptr)
492 bool useFrames =
true;
494 if (stillSearchingStartPosition)
503 stillSearchingStartPosition =
false;
515 retMarkers.markers.insert(retMarkers.markers.end(), tempMarkers.markers.begin(), tempMarkers.markers.end());
517 retMarkers.markers.push_back(tempMarker);
523 retMarkers.markers.push_back(lineMarker);
529 const ISM::PointPtr point,
double sensivity, std::string baseFrame,
std_msgs::ColorRGBA color)
533 bin.x() =
static_cast<int>(floor(point->eigen.x() / sensivity));
534 bin.y() =
static_cast<int>(floor(point->eigen.y() / sensivity));
535 bin.z() =
static_cast<int>(floor(point->eigen.z() / sensivity));
538 std::stringstream ss;
539 ss <<
"Bin: "<<
"X:" << bin.x() <<
" Y:" << bin.y() <<
" Z:" << bin.z();
550 return getBinMarker(bin.x(), bin.y(), bin.z(), bin_size, desc, id, baseFrame, color);
556 Eigen::Vector3d bin(x,y,z);
557 Eigen::Vector3d binCenter = bin * bin_size;
558 return pointToCube(desc,
id, baseFrame, binCenter.x(), binCenter.y(), binCenter.z(),
564 std::vector<geometry_msgs::Point> result;
566 const Eigen::Quaternion<double> rot = ISM::GeometryHelper::quatToEigenQuat(quat);
569 const Eigen::Vector3d xV = rot._transformVector(-Eigen::Vector3d::UnitX());
570 const Eigen::Vector3d yV = rot._transformVector(-Eigen::Vector3d::UnitY());
571 const Eigen::Vector3d zV = rot._transformVector(Eigen::Vector3d::UnitZ());
574 result.push_back(
VizHelperRVIZ::createPoint(point->eigen.x() + xV.x() * scale, point->eigen.y() + xV.y() * scale, point->eigen.z() + xV.z() * scale));
575 result.push_back(
VizHelperRVIZ::createPoint(point->eigen.x() + yV.x() * scale, point->eigen.y() + yV.y() * scale, point->eigen.z() + yV.z() * scale));
576 result.push_back(
VizHelperRVIZ::createPoint(point->eigen.x() + zV.x() * scale, point->eigen.y() + zV.y() * scale, point->eigen.z() + zV.z() * scale));
586 geometry_msgs::Point retPoint;
598 const std::string arrowPath =
"package://asr_ism_visualizations/rsc/arrow.dae";
599 const std::string ringPath =
"package://asr_ism_visualizations/rsc/ring.dae";
603 const geometry_msgs::Quaternion qx =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, 0.0, 90.0, 0.0));
604 const geometry_msgs::Quaternion qy =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, -90.0, 0.0, 0.0));
605 const geometry_msgs::Quaternion qz =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, 0.0, 0.0, 0.0));
609 xMarker.pose.position = markerPoint;
610 xMarker.pose.orientation = qx;
611 xMarker.type = Marker::MESH_RESOURCE;
612 xMarker.mesh_resource = arrowPath;
613 retMarkers.markers.push_back(xMarker);
616 yMarker.pose.position = markerPoint;
617 yMarker.pose.orientation = qy;
618 yMarker.type = Marker::MESH_RESOURCE;
619 yMarker.mesh_resource = arrowPath;
620 retMarkers.markers.push_back(yMarker);
623 zMarker.pose.position = markerPoint;
624 zMarker.pose.orientation = qz;
625 zMarker.type = Marker::MESH_RESOURCE;
626 zMarker.mesh_resource = arrowPath;
627 retMarkers.markers.push_back(zMarker);
630 aMarker.pose.position = markerPoint;
631 aMarker.pose.orientation = qx;
632 aMarker.type = Marker::MESH_RESOURCE;
633 aMarker.mesh_resource = ringPath;
634 retMarkers.markers.push_back(aMarker);
637 bMarker.pose.position = markerPoint;
638 bMarker.pose.orientation = qy;
639 bMarker.type = Marker::MESH_RESOURCE;
640 bMarker.mesh_resource = ringPath;
641 retMarkers.markers.push_back(bMarker);
644 gMarker.pose.position = markerPoint;
645 gMarker.pose.orientation = qz;
646 gMarker.type = Marker::MESH_RESOURCE;
647 gMarker.mesh_resource = ringPath;
648 retMarkers.markers.push_back(gMarker);
657 const std::string openCubeMeshResourcePath =
"package://asr_ism_visualizations/rsc/openCube.dae";
658 const std::string openPyramidMeshResourcePath =
"package://asr_ism_visualizations/rsc/openPyramid.dae";
662 cube.type = Marker::MESH_RESOURCE;
663 cube.mesh_resource = openCubeMeshResourcePath;
666 retMarkers.markers.push_back(cube);
669 arrow.type = Marker::MESH_RESOURCE;
670 arrow.mesh_resource = openPyramidMeshResourcePath;
673 retMarkers.markers.push_back(arrow);
679 double z,
double xwidth,
double ywidth,
double zwidth)
681 geometry_msgs::Point p;
682 p.x = x + (double)xp * xwidth / (
double) 2;
683 p.y = y + (double)yp * ywidth / (
double) 2;
684 p.z = z + (double)zp * zwidth / (
double) 2;
689 double x,
double y,
double z,
double xwitdh,
double ywidth,
double zwidth,
695 pMark.header.frame_id = frame;
705 pMark.type = visualization_msgs::Marker::LINE_STRIP;
708 pMark.action = visualization_msgs::Marker::ADD;
710 boost::function< geometry_msgs::Point (int,int,int) > pointF = boost::bind(
genCuboidPoint, _1, _2, _3, x, y, z, xwitdh, ywidth, zwidth);
712 pMark.points.push_back(pointF(-1,-1,-1));
713 pMark.points.push_back(pointF(-1,-1,1));
714 pMark.points.push_back(pointF(-1,1,1));
715 pMark.points.push_back(pointF(-1,1,-1));
716 pMark.points.push_back(pointF(-1,-1,-1));
717 pMark.points.push_back(pointF(1,-1,-1));
718 pMark.points.push_back(pointF(1,-1,1));
719 pMark.points.push_back(pointF(1,1,1));
720 pMark.points.push_back(pointF(1,1,-1));
721 pMark.points.push_back(pointF(1,-1,-1));
722 pMark.points.push_back(pointF(1,1,-1));
723 pMark.points.push_back(pointF(-1,1,-1));
724 pMark.points.push_back(pointF(-1,1,1));
725 pMark.points.push_back(pointF(1,1,1));
726 pMark.points.push_back(pointF(1,-1,1));
727 pMark.points.push_back(pointF(-1,-1,1));
732 pMark.scale.x = 0.008;
742 const std::string openCylinderMeshResourcePath =
"package://asr_ism_visualizations/res/openCylinder.dae";
746 cylinder.type = Marker::MESH_RESOURCE;
747 cylinder.mesh_resource = openCylinderMeshResourcePath;
756 return pointToCuboid(ns,
id, frame, x, y, z, bin_size, bin_size, bin_size, color);
759 visualization_msgs::MarkerArray VizHelperRVIZ::createPositionVector(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace,
ColorRGBA color,
UniformDistributionGenerator* udg,
int sampels,
int axis,
int id,
float length,
float openAngle,
float sphereRadius,
double markerLifetime){
762 const std::string directionPath =
"package://asr_ism_visualizations/rsc/rotCone.dae";
764 const ISM::PointPtr markerPoint = pose->point;
766 for(
int j = 0; j < sampels; j++){
767 ISM::PointPtr tmpPoint =ISM::PointPtr(
new ISM::Point());
770 double r_x, r_y, r_z;
773 r_x = udg->operator ()();
774 r_y = udg->operator ()();
775 r_z = udg->operator ()();
776 }
while(std::sqrt(r_x * r_x + r_y * r_y + r_z * r_z) > sphereRadius);
778 tmpPoint->eigen.x() = markerPoint->eigen.x() + r_x;
779 tmpPoint->eigen.y() = markerPoint->eigen.y() + r_y;
780 tmpPoint->eigen.z() = markerPoint->eigen.z() + r_z;
783 tmpPoint = pose->point;
791 marker.pose.orientation =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, 0.0, 90.0, 0.0));
793 marker.pose.orientation =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, -90.0, 0.0, 0.0));
795 marker.pose.orientation =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, 0.0, 0.0, 0.0));
799 marker.type = Marker::MESH_RESOURCE;
800 marker.mesh_resource = directionPath;
801 retMarkers.markers.push_back(marker);
810 const std::string directionPath =
"package://asr_ism_visualizations/rsc/rotCone.dae";
813 Marker rMarker =
createMarkerWithoutTypeAndPose(baseFrame, markerNamespace,
id, openAngle, openAngle, length,
VizHelperRVIZ::createColorRGBA(1.0, 0.0, 0.0, 1.0), markerLifetime);
814 rMarker.pose.position = markerPoint;
815 rMarker.pose.orientation =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, 0.0, 90.0, 0.0));
816 rMarker.type = Marker::MESH_RESOURCE;
817 rMarker.mesh_resource = directionPath;
818 retMarkers.markers.push_back(rMarker);
820 Marker gMarker =
createMarkerWithoutTypeAndPose(baseFrame, markerNamespace,
id+1, openAngle, openAngle, length,
VizHelperRVIZ::createColorRGBA(0.0, 1.0, 0.0, 1.0), markerLifetime);
821 gMarker.pose.position = markerPoint;
822 gMarker.pose.orientation =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, -90.0, 0.0, 0.0));
823 gMarker.type = Marker::MESH_RESOURCE;
824 gMarker.mesh_resource = directionPath;
825 retMarkers.markers.push_back(gMarker);
827 Marker bMarker =
createMarkerWithoutTypeAndPose(baseFrame, markerNamespace,
id+2, openAngle, openAngle, length,
VizHelperRVIZ::createColorRGBA(0.0, 0.0, 1.0, 1.0), markerLifetime);
828 bMarker.pose.position = markerPoint;
829 bMarker.pose.orientation =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, 0.0, 0.0, 0.0));
830 bMarker.type = Marker::MESH_RESOURCE;
831 bMarker.mesh_resource = directionPath;
832 retMarkers.markers.push_back(bMarker);
839 const std::string directionPath =
"package://asr_ism_visualizations/rsc/transCylinder.dae";
842 Marker rMarker =
createMarkerWithoutTypeAndPose(baseFrame, markerNamespace,
id, radius, radius, length,
VizHelperRVIZ::createColorRGBA(1.0, 0.0, 0.0, 1.0), markerLifetime);
843 rMarker.pose.position = markerPoint;
844 rMarker.pose.orientation =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, 0.0, 90.0, 0.0));
845 rMarker.type = Marker::MESH_RESOURCE;
846 rMarker.mesh_resource = directionPath;
847 retMarkers.markers.push_back(rMarker);
849 Marker gMarker =
createMarkerWithoutTypeAndPose(baseFrame, markerNamespace,
id+1, radius, radius, length,
VizHelperRVIZ::createColorRGBA(0.0, 1.0, 0.0, 1.0), markerLifetime);
850 gMarker.pose.position = markerPoint;
851 gMarker.pose.orientation =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, -90.0, 0.0, 0.0));
852 gMarker.type = Marker::MESH_RESOURCE;
853 gMarker.mesh_resource = directionPath;
854 retMarkers.markers.push_back(gMarker);
856 Marker bMarker =
createMarkerWithoutTypeAndPose(baseFrame, markerNamespace,
id+2, radius, radius, length,
VizHelperRVIZ::createColorRGBA(0.0, 0.0, 1.0, 1.0), markerLifetime);
857 bMarker.pose.position = markerPoint;
858 bMarker.pose.orientation =
quatToQuaternionMsg(ISM::GeometryHelper::getQuatFromRPY(pose->quat, 0.0, 0.0, 0.0));
859 bMarker.type = Marker::MESH_RESOURCE;
860 bMarker.mesh_resource = directionPath;
861 retMarkers.markers.push_back(bMarker);
867 retMarker.type = Marker::LINE_STRIP;
static std::map< Eigen::Vector3i, bool, cmpVector3i > binDrawn
static Marker createCylinderMarker(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, int id, float radius, float height, ColorRGBA color, double markerLifetime)
static MarkerArray createRingMarker(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, float scale, ColorRGBA x, ColorRGBA y, ColorRGBA z, ColorRGBA a, ColorRGBA b, ColorRGBA g, double markerLifetime)
static Marker createCylinderLine(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, float scale, float length, ColorRGBA color, double markerLifetime)
static ColorRGBA hsvToRGBA(double hue, double saturation, double value)
static MarkerArray createCubeArrow(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, int &id, float scale, ColorRGBA cubeColor, ColorRGBA arrowColor, double markerLifetime)
static Marker createLineMarkerFormPair(std::vector< std::pair< ISM::PointPtr, ISM::PointPtr >> pointPair, std::string baseFrame, std::string markerNamespace, float arrowScale, ColorRGBA color, double markerLifetime)
static MarkerArray createCoordinateMarker(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, int id, float length, float radius, double markerLifetime)
static MarkerArray createCoordinateMarkerWithAngle(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, int id, float length, float openAngle, double markerLifetime)
static MarkerArray createTrackMarkers(std::vector< ISM::PosePtr > trackPoses, std::string baseFrame, std::string markerNamespace, float lineWidth, ColorRGBA color, double markerLifetime)
static MarkerArray getBinFromPoint(const ISM::PointPtr point, double sensivity, std::string baseFrame, std_msgs::ColorRGBA color)
static ColorRGBA getColorOfObject(const ISM::Object &object)
static geometry_msgs::Point genCuboidPoint(int xp, int yp, int zp, double x, double y, double z, double xwidth, double ywidth, double zwidth)
static Marker createConeMarker(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, int id, float radius, ColorRGBA color, double markerLifetime)
visualization_msgs::Marker Marker
static geometry_msgs::Point pointToPointMsg(ISM::PointPtr point)
static visualization_msgs::MarkerArray createArrowMarkerFromVote(ISM::VoteSpecifierPtr vote, ISM::ObjectPtr o, std::string baseFrame, std::string ns, int32_t id, double bin_size, std_msgs::ColorRGBA binColor, std_msgs::ColorRGBA voteColor=VizHelperRVIZ::createColorRGBA(1.0, 0.0, 1.0, 0.5))
static Marker pointToCube(std::string ns, int id, std::string frame, double x, double y, double z, double bin_size, std_msgs::ColorRGBA color)
static Marker createSphereMarker(ISM::PointPtr point, std::string baseFrame, std::string markerNamespace, int id, float radius, ColorRGBA color, double markerLifetime)
static MarkerArray createCoordinateArrow(std::vector< std::pair< ISM::PointPtr, std::vector< ISM::PosePtr > > > poses_vec, std::string baseFrame, std::string markerNamespace, float arrowScale, float axisScale, ColorRGBA color, double markerLifetime)
static geometry_msgs::Quaternion quatToQuaternionMsg(ISM::QuaternionPtr quat)
static ColorRGBA createColorRGBA(float red, float green, float blue, float alpha)
std_msgs::ColorRGBA ColorRGBA
visualization_msgs::MarkerArray MarkerArray
static geometry_msgs::Point createPoint(double x, double y, double z)
static Marker createArrowMarkerToPoint(ISM::PointPtr fromPoint, ISM::PointPtr to, std::string baseFrame, std::string markerNamespace, int id, float xScale, float yScale, float zScale, ColorRGBA color, double markerLifetime)
static Marker createMeshMarker(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, int id, ColorRGBA color, double markerLifetime, std::string resourcePath)
static std::vector< geometry_msgs::Point > calculateAxesPoints(ISM::PointPtr point, ISM::QuaternionPtr quat, float scale)
static Marker createLine(ISM::PointPtr fromPoint, ISM::PointPtr toPoint, float width, int id, std::string baseFrame, std::string markerNamespace, std_msgs::ColorRGBA color, double markerLifetime)
static Marker getBinMarker(Eigen::Vector3i bin, double bin_size, std::string desc, int id, std::string baseFrame, std_msgs::ColorRGBA color)
boost::variate_generator< boost::mt19937, boost::uniform_real<> > UniformDistributionGenerator
static Marker pointToCuboid(std::string ns, int32_t id, std::string frame, double x, double y, double z, double xwitdh, double ywidth, double zwidth, std_msgs::ColorRGBA color)
TFSIMD_FORCE_INLINE tfScalar length(const Quaternion &q)
static Marker createMarkerWithoutTypeAndPose(std::string baseFrame, std::string markerNamespace, int id, float xScale, float yScale, float zScale, ColorRGBA color, double markerLifetime)
static Marker createLineArrow(ISM::PointPtr fromPoint, std::vector< ISM::PosePtr > toPoses, std::string baseFrame, std::string markerNamespace, int &id, float arrowScale, ColorRGBA color, double markerLifetime)
static ColorRGBA confidenceToColor(double confidence)
static MarkerArray createPositionVector(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, ColorRGBA color, UniformDistributionGenerator *udg, int sampels, int axis, int id, float length, float openAngle, float sphereRadius, double markerLifetime)
static std::vector< ISM::PosePtr > posesFromTrack(ISM::TrackPtr track)
static visualization_msgs::MarkerArray createSphereMarkerWithOrientation(ISM::PosePtr pose, std::string baseFrame, std::string markerNamespace, int id, float radius, std_msgs::ColorRGBA color, double markerLifetime, int axesFirstId)