|
@@ -17,7 +17,6 @@
|
|
#include "mobileye.pb.h"
|
|
#include "mobileye.pb.h"
|
|
using namespace iv;
|
|
using namespace iv;
|
|
using namespace fusion;
|
|
using namespace fusion;
|
|
-ImmUkfPda giup;
|
|
|
|
|
|
|
|
void *gfu = iv::modulecomm::RegisterSend("li_ra_fusion",10000000,1);
|
|
void *gfu = iv::modulecomm::RegisterSend("li_ra_fusion",10000000,1);
|
|
static QMutex gMutex;
|
|
static QMutex gMutex;
|
|
@@ -32,7 +31,6 @@ iv::mobileye::mobileye mobileye_info;
|
|
iv::mobileye::obs obs_info;
|
|
iv::mobileye::obs obs_info;
|
|
iv::mobileye::lane lane_info;
|
|
iv::mobileye::lane lane_info;
|
|
iv::mobileye::tsr tsr_info;
|
|
iv::mobileye::tsr tsr_info;
|
|
-bool m_isTrackerInitialized = false;
|
|
|
|
|
|
|
|
|
|
|
|
QTime gTime;
|
|
QTime gTime;
|
|
@@ -60,6 +58,18 @@ void Listenesrfront(const char * strdata,const unsigned int nSize,const unsigned
|
|
}
|
|
}
|
|
// std::cout<<"radar is ok : "<<radarobj.obj_size()<<std::endl;
|
|
// std::cout<<"radar is ok : "<<radarobj.obj_size()<<std::endl;
|
|
gMutex.lock();
|
|
gMutex.lock();
|
|
|
|
+ // for(int i=0;i<radarobj.obj_size();i++)
|
|
|
|
+ // {
|
|
|
|
+ // if(abs(radarobj.obj(i).x())<2 && abs(radarobj.obj(i).vy()) >10)
|
|
|
|
+ // {
|
|
|
|
+ // std::cout<<"x y vx vy "<<radarobj.obj(i).x()<<" "
|
|
|
|
+ // <<radarobj.obj(i).y()<<" "
|
|
|
|
+ // <<radarobj.obj(i).vx()<<" "
|
|
|
|
+ // <<radarobj.obj(i).vy()<<" "<<std::endl;
|
|
|
|
+
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // }
|
|
|
|
|
|
radarobjvec.CopyFrom(radarobj);
|
|
radarobjvec.CopyFrom(radarobj);
|
|
gMutex.unlock();
|
|
gMutex.unlock();
|
|
@@ -92,6 +102,14 @@ void Listenmobileye(const char * strdata,const unsigned int nSize,const unsigned
|
|
std::cout<<"PecerptionShow Listenesrfront fail."<<std::endl;
|
|
std::cout<<"PecerptionShow Listenesrfront fail."<<std::endl;
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ // std::cout<< " obj size "<<mobileye.xobj_size()<<std::endl;
|
|
|
|
+ // for (int m_index = 0; m_index< mobileye.xobj_size(); m_index++)
|
|
|
|
+ // {
|
|
|
|
+ // std::cout<<" p_x p_y v_x v_y "<<mobileye.xobj(m_index).pos_y()<< " "<<mobileye.xobj(m_index).pos_x()
|
|
|
|
+ // <<" "<<mobileye.xobj(m_index).obs_rel_vel_x() * tan(mobileye.xobj(m_index).obsang())
|
|
|
|
+ // <<" "<<mobileye.xobj(m_index).obs_rel_vel_x()<<" \n"
|
|
|
|
+ // << mobileye.xobj(m_index).obsang()<<std::endl;
|
|
|
|
+ // }
|
|
|
|
|
|
gMutex.lock();
|
|
gMutex.lock();
|
|
mobileye_info.CopyFrom(mobileye);
|
|
mobileye_info.CopyFrom(mobileye);
|
|
@@ -101,12 +119,59 @@ void Listenmobileye(const char * strdata,const unsigned int nSize,const unsigned
|
|
int ccccc =0;
|
|
int ccccc =0;
|
|
void datafusion(iv::lidar::objectarray& lidar_obj,iv::radar::radarobjectarray& radarobjvec, iv::fusion::fusionobjectarray& li_ra_fusion)
|
|
void datafusion(iv::lidar::objectarray& lidar_obj,iv::radar::radarobjectarray& radarobjvec, iv::fusion::fusionobjectarray& li_ra_fusion)
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+ // gMutex.lock();
|
|
|
|
+ // Transformation::RadarPross(radarobjvec);
|
|
|
|
|
|
RLfusion(lidar_obj,radarobjvec,li_ra_fusion);
|
|
RLfusion(lidar_obj,radarobjvec,li_ra_fusion);
|
|
- giup.call(li_ra_fusion);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ // li_ra_fusion.Clear();
|
|
|
|
+ // std::cout<<" RLFusion begin "<<std::endl;
|
|
|
|
+ AddMobileye(li_ra_fusion,mobileye_info);
|
|
|
|
+ // std::cout<<" RLFusion end "<<std::endl;
|
|
|
|
+ mobileye_info.clear_xobj();
|
|
|
|
+ // std::cout<< " fusion size "<<li_ra_fusion.obj_size()<<std::endl;
|
|
|
|
+ // for(int i=0;i<li_ra_fusion.obj_size();i++)
|
|
|
|
+ // {
|
|
|
|
+ // if(abs(li_ra_fusion.obj(i).vel_relative().y())>10 )
|
|
|
|
+ // {
|
|
|
|
+ // std::cout<<"x y vx vy w "<<li_ra_fusion.-obj(i).centroid().x()<<" "
|
|
|
|
+ // <<li_ra_fusion.obj(i).centroid().y()<<" "
|
|
|
|
+ // <<li_ra_fusion.obj(i).vel_relative().x()<<" "
|
|
|
|
+ // <<li_ra_fusion.obj(i).vel_relative().y()<<" "
|
|
|
|
+ // <<li_ra_fusion.obj(i).dimensions().x()<<std::endl;
|
|
|
|
+
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // int nsize =0;
|
|
|
|
+ // for(int nradar = 0; nradar<radarobjvec.obj_size(); nradar++)
|
|
|
|
+ // {
|
|
|
|
+ // if(radarobjvec.obj(nradar).bvalid() == false) continue;
|
|
|
|
+ // if(sqrt(abs(radarobjvec.obj(nradar).x()))< 4 && radarobjvec.obj(nradar).y()< 20 ) nsize = nsize +1;
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ // std::cout<<" fusion_obj_size radar_obj_size : "<<li_ra_fusion.obj_size()<<" "<<nsize<<std::endl;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ // gMutex.lock();
|
|
|
|
+ // std::cout<<" track begin"<<std::endl;
|
|
|
|
+ //--------------------------------------------- init tracker -------------------------------------------------
|
|
|
|
+ if (!m_isTrackerInitialized)
|
|
|
|
+ {
|
|
|
|
+ m_isTrackerInitialized = InitTracker(tracker);
|
|
|
|
+ if (!m_isTrackerInitialized)
|
|
|
|
+ {
|
|
|
|
+ std::cerr << "Tracker initialize error!!!" << std::endl;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ iv::fusion::fusionobjectarray trackedobjvec = Tracking(li_ra_fusion, tracker);
|
|
|
|
+ // std::<<"track end"<<std::endl;
|
|
|
|
+
|
|
|
|
+ //-------------------------------------------- end tracking --------------------------------------------------
|
|
|
|
+ // gMutex.unlock();
|
|
iv::fusion::fusionobjectarray out_fusion = trackedobjvec;
|
|
iv::fusion::fusionobjectarray out_fusion = trackedobjvec;
|
|
ObsToNormal(out_fusion);
|
|
ObsToNormal(out_fusion);
|
|
string out;
|
|
string out;
|
|
@@ -131,6 +196,11 @@ void datafusion(iv::lidar::objectarray& lidar_obj,iv::radar::radarobjectarray& r
|
|
}else
|
|
}else
|
|
{
|
|
{
|
|
out = out_fusion.SerializeAsString();
|
|
out = out_fusion.SerializeAsString();
|
|
|
|
+ // for (int k = 0; k<trackedobjvec.obj_size();k++){
|
|
|
|
+ // std::cout<<" size x y vy : "<<trackedobjvec.obj_size()<<" "
|
|
|
|
+ // <<trackedobjvec.obj(k).centroid().x()<< " "<<trackedobjvec.obj(k).centroid().y()<<" "
|
|
|
|
+ // <<trackedobjvec.obj(k).vel_relative().y()<<" "<<trackedobjvec.obj(k).nomal_centroid_size() <<std::endl;
|
|
|
|
+ // }
|
|
}
|
|
}
|
|
iv::modulecomm::ModuleSendMsg(gfu,out.data(),out.length());
|
|
iv::modulecomm::ModuleSendMsg(gfu,out.data(),out.length());
|
|
// gMutex.unlock();
|
|
// gMutex.unlock();
|