|
@@ -17,6 +17,58 @@ namespace fusion {
|
|
|
static float time_step = 0.3;
|
|
|
static std::vector<std::string> labels = {"unknown","ped","bike","car","bus_or_truck"};
|
|
|
|
|
|
+void ObsToNormal(iv::fusion::fusionobjectarray& lidar_radar_fusion_object_array)
|
|
|
+{
|
|
|
+// int cont = 0;
|
|
|
+ for(int i = 0; i < lidar_radar_fusion_object_array.obj_size(); i++)
|
|
|
+ {
|
|
|
+// if((lidar_radar_fusion_object_array.obj(i).sensor_type() == 0) &&(lidar_radar_fusion_object_array.obj(i).centroid().y() > 20 || abs(lidar_radar_fusion_object_array.obj(i).centroid().x())>10) ) continue;
|
|
|
+// if ((lidar_radar_fusion_object_array.obj(i).sensor_type() == 0)&&(lidar_radar_fusion_object_array.obj(i).centroid().y()>10 && abs(lidar_radar_fusion_object_array.obj(i).centroid().x())<1.3)) continue;
|
|
|
+ if((lidar_radar_fusion_object_array.obj(i).sensor_type() == 0)&&(lidar_radar_fusion_object_array.obj(i).centroid().y() <1.0 && abs(lidar_radar_fusion_object_array.obj(i).centroid().x())<1.3)
|
|
|
+ || lidar_radar_fusion_object_array.obj(i).centroid().y() <-1.0) continue;
|
|
|
+
|
|
|
+ if((lidar_radar_fusion_object_array.obj(i).dimensions().x()>0)&&
|
|
|
+ (lidar_radar_fusion_object_array.obj(i).dimensions().y()>0))
|
|
|
+ {
|
|
|
+ int xp = (int)((lidar_radar_fusion_object_array.obj(i).dimensions().x()/0.2)/2.0);
|
|
|
+ if(xp == 0)xp=1;
|
|
|
+ int yp = (int)((lidar_radar_fusion_object_array.obj(i).dimensions().y()/0.2)/2.0);
|
|
|
+ if(yp == 0)yp=1;
|
|
|
+ int ix,iy;
|
|
|
+ for(ix = 0; ix<(xp*2); ix++)
|
|
|
+ {
|
|
|
+ for(iy = 0; iy<(yp*2); iy++)
|
|
|
+ {
|
|
|
+ iv::fusion::NomalXYZ nomal_centroid;
|
|
|
+ iv::fusion::NomalXYZ *nomal_centroid_;
|
|
|
+ float nomal_x = ix*0.2 - xp*0.2;
|
|
|
+ float nomal_y = iy*0.2 - yp*0.2;
|
|
|
+ float nomal_z = 1.0;
|
|
|
+ float s = nomal_x*cos(lidar_radar_fusion_object_array.obj(i).yaw())
|
|
|
+ - nomal_y*sin(lidar_radar_fusion_object_array.obj(i).yaw());
|
|
|
+ float t = nomal_x*sin(lidar_radar_fusion_object_array.obj(i).yaw())
|
|
|
+ + nomal_y*cos(lidar_radar_fusion_object_array.obj(i).yaw());
|
|
|
+ nomal_centroid.set_nomal_x(lidar_radar_fusion_object_array.obj(i).centroid().x() + s);
|
|
|
+ nomal_centroid.set_nomal_y(lidar_radar_fusion_object_array.obj(i).centroid().y() + t);
|
|
|
+ if(abs(lidar_radar_fusion_object_array.obj(i).centroid().x() + s) <1.3 &&
|
|
|
+ (lidar_radar_fusion_object_array.obj(i).centroid().y() + t) <1.0 &&
|
|
|
+ (lidar_radar_fusion_object_array.obj(i).centroid().y() + t) >-1.0) continue;
|
|
|
+ else{
|
|
|
+
|
|
|
+ nomal_centroid.set_nomal_x(lidar_radar_fusion_object_array.obj(i).centroid().x() + s);
|
|
|
+ nomal_centroid.set_nomal_y(lidar_radar_fusion_object_array.obj(i).centroid().y() + t);
|
|
|
+ iv::fusion::fusionobject &fusion_obj = (iv::fusion::fusionobject &)lidar_radar_fusion_object_array.obj(i);
|
|
|
+ nomal_centroid_ = fusion_obj.add_nomal_centroid();
|
|
|
+ nomal_centroid_->CopyFrom(nomal_centroid);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+// std::cout<<" count "<<cont<<std::endl;
|
|
|
+}
|
|
|
+
|
|
|
float ComputeDis(cv::Point2f po1, cv::Point2f po2)
|
|
|
{
|
|
|
return (sqrt(pow((po1.x-po2.x),2) + pow((po1.y-po2.y),2)));
|
|
@@ -215,6 +267,7 @@ void RLfusion(iv::lidar::objectarray& lidar_object_arr,iv::radar::radarobjectarr
|
|
|
iv::fusion::fusionobject *obj = lidar_radar_fusion_object_array.add_obj();
|
|
|
obj->CopyFrom(fusion_obj);
|
|
|
}
|
|
|
+ ObsToNormal(lidar_radar_fusion_object_array);
|
|
|
// std::cout<<" fusion end "<<std::endl;
|
|
|
}
|
|
|
|
|
@@ -254,58 +307,6 @@ void AddRadarBack(iv::fusion::fusionobjectarray& lidar_radar_fusion_object_array
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void ObsToNormal(iv::fusion::fusionobjectarray& lidar_radar_fusion_object_array)
|
|
|
-{
|
|
|
-// int cont = 0;
|
|
|
- for(int i = 0; i < lidar_radar_fusion_object_array.obj_size(); i++)
|
|
|
- {
|
|
|
-// if((lidar_radar_fusion_object_array.obj(i).sensor_type() == 0) &&(lidar_radar_fusion_object_array.obj(i).centroid().y() > 20 || abs(lidar_radar_fusion_object_array.obj(i).centroid().x())>10) ) continue;
|
|
|
-// if ((lidar_radar_fusion_object_array.obj(i).sensor_type() == 0)&&(lidar_radar_fusion_object_array.obj(i).centroid().y()>10 && abs(lidar_radar_fusion_object_array.obj(i).centroid().x())<1.3)) continue;
|
|
|
- if((lidar_radar_fusion_object_array.obj(i).sensor_type() == 0)&&(lidar_radar_fusion_object_array.obj(i).centroid().y() <1.0 && abs(lidar_radar_fusion_object_array.obj(i).centroid().x())<1.3)
|
|
|
- || lidar_radar_fusion_object_array.obj(i).centroid().y() <-1.0) continue;
|
|
|
-
|
|
|
- if((lidar_radar_fusion_object_array.obj(i).dimensions().x()>0)&&
|
|
|
- (lidar_radar_fusion_object_array.obj(i).dimensions().y()>0))
|
|
|
- {
|
|
|
- int xp = (int)((lidar_radar_fusion_object_array.obj(i).dimensions().x()/0.2)/2.0);
|
|
|
- if(xp == 0)xp=1;
|
|
|
- int yp = (int)((lidar_radar_fusion_object_array.obj(i).dimensions().y()/0.2)/2.0);
|
|
|
- if(yp == 0)yp=1;
|
|
|
- int ix,iy;
|
|
|
- for(ix = 0; ix<(xp*2); ix++)
|
|
|
- {
|
|
|
- for(iy = 0; iy<(yp*2); iy++)
|
|
|
- {
|
|
|
- iv::fusion::NomalXYZ nomal_centroid;
|
|
|
- iv::fusion::NomalXYZ *nomal_centroid_;
|
|
|
- float nomal_x = ix*0.2 - xp*0.2;
|
|
|
- float nomal_y = iy*0.2 - yp*0.2;
|
|
|
- float nomal_z = 1.0;
|
|
|
- float s = nomal_x*cos(lidar_radar_fusion_object_array.obj(i).yaw())
|
|
|
- - nomal_y*sin(lidar_radar_fusion_object_array.obj(i).yaw());
|
|
|
- float t = nomal_x*sin(lidar_radar_fusion_object_array.obj(i).yaw())
|
|
|
- + nomal_y*cos(lidar_radar_fusion_object_array.obj(i).yaw());
|
|
|
- nomal_centroid.set_nomal_x(lidar_radar_fusion_object_array.obj(i).centroid().x() + s);
|
|
|
- nomal_centroid.set_nomal_y(lidar_radar_fusion_object_array.obj(i).centroid().y() + t);
|
|
|
- if(abs(lidar_radar_fusion_object_array.obj(i).centroid().x() + s) <1.3 &&
|
|
|
- (lidar_radar_fusion_object_array.obj(i).centroid().y() + t) <1.0 &&
|
|
|
- (lidar_radar_fusion_object_array.obj(i).centroid().y() + t) >-1.0) continue;
|
|
|
- else{
|
|
|
-
|
|
|
- nomal_centroid.set_nomal_x(lidar_radar_fusion_object_array.obj(i).centroid().x() + s);
|
|
|
- nomal_centroid.set_nomal_y(lidar_radar_fusion_object_array.obj(i).centroid().y() + t);
|
|
|
- iv::fusion::fusionobject &fusion_obj = (iv::fusion::fusionobject &)lidar_radar_fusion_object_array.obj(i);
|
|
|
- nomal_centroid_ = fusion_obj.add_nomal_centroid();
|
|
|
- nomal_centroid_->CopyFrom(nomal_centroid);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-}
|
|
|
-// std::cout<<" count "<<cont<<std::endl;
|
|
|
-}
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|