|
@@ -963,7 +963,7 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
// if((ServiceCarStatus.msysparam.mvehtype=="pixloop")||(ServiceCarStatus.msysparam.mvehtype=="yika")
|
|
// if((ServiceCarStatus.msysparam.mvehtype=="pixloop")||(ServiceCarStatus.msysparam.mvehtype=="yika")
|
|
|
// || (ServiceCarStatus.msysparam.mvehtype=="hunter"))
|
|
// || (ServiceCarStatus.msysparam.mvehtype=="hunter"))
|
|
|
// {
|
|
// {
|
|
|
-// dSpeed=0.0; //20210903,cxw,这三种车型都是用决策速度控制的
|
|
|
|
|
|
|
+// dSpeed=0.0; //20210903,cxw,这三种车型都是用决策速度控制的,在adapter中判断minDecelerate小于0直接将目标速度归0
|
|
|
// }
|
|
// }
|
|
|
phaseSpeedDecition(gps_decition, secSpeed, -1, 0,now_gps_ins);
|
|
phaseSpeedDecition(gps_decition, secSpeed, -1, 0,now_gps_ins);
|
|
|
return gps_decition;
|
|
return gps_decition;
|
|
@@ -1986,11 +1986,11 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------1+X采集车车路协同,add---------------------------------------------
|
|
//-----------------------------------------1+X采集车车路协同,add---------------------------------------------
|
|
|
- unsigned char traffic_type=0;//路况信息
|
|
|
|
|
- unsigned char warning_type=0;//预警信息,RSU获得
|
|
|
|
|
|
|
+ unsigned char traffic_type=ServiceCarStatus.rsu_traffic_type;//路况信息
|
|
|
|
|
+ unsigned char warning_type=ServiceCarStatus.rsu_warning_type;//预警信息,RSU获得
|
|
|
float distance_to_center=0;
|
|
float distance_to_center=0;
|
|
|
- float radiation_distance=0;//事件辐射范围,从RSU获得
|
|
|
|
|
- float limit_spd=0; //从RSU获得的限速值
|
|
|
|
|
|
|
+ float radiation_distance=ServiceCarStatus.rsu_radiation_distance;//事件辐射范围,从RSU获得
|
|
|
|
|
+ float limit_spd=ServiceCarStatus.rsu_limit_spd; //从RSU获得的限速值
|
|
|
//以上变量信息都需要存储到log文件中
|
|
//以上变量信息都需要存储到log文件中
|
|
|
// distance_to_center=GetDistance(now_gps_ins,gps_center);//因为是长直道路所以直接计算事件中心点和当前位置的距离即可
|
|
// distance_to_center=GetDistance(now_gps_ins,gps_center);//因为是长直道路所以直接计算事件中心点和当前位置的距离即可
|
|
|
if((traffic_type==0x01)||(traffic_type==0x02)||(traffic_type==0x03))//塌方,施工,道路结冰,事件范围外10米缓慢减速,事件范围内停车
|
|
if((traffic_type==0x01)||(traffic_type==0x02)||(traffic_type==0x03))//塌方,施工,道路结冰,事件范围外10米缓慢减速,事件范围内停车
|
|
@@ -2023,6 +2023,7 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
{
|
|
{
|
|
|
dSpeed=0.0;
|
|
dSpeed=0.0;
|
|
|
}
|
|
}
|
|
|
|
|
+//红绿灯信息处理,computeTrafficSpeedLimt由于车子最高5所以要对速度做调整
|
|
|
//-----------------------------------------1+X采集车车路协同,end---------------------------------------------
|
|
//-----------------------------------------1+X采集车车路协同,end---------------------------------------------
|
|
|
//-------------------------------traffic light----------------------------------------------------------------------------------------
|
|
//-------------------------------traffic light----------------------------------------------------------------------------------------
|
|
|
|
|
|
|
@@ -2048,14 +2049,14 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
|
|
|
|
|
|
|
|
|
|
dSpeed = min(v2xTrafficSpeed,dSpeed);//???这里是不是应该是max,因为V2Xspeed应该是穿过红绿灯的最低速度吧?速度还不能超过当前的限速,如果V2Xspeed超过限速,需要判断车辆是否要
|
|
dSpeed = min(v2xTrafficSpeed,dSpeed);//???这里是不是应该是max,因为V2Xspeed应该是穿过红绿灯的最低速度吧?速度还不能超过当前的限速,如果V2Xspeed超过限速,需要判断车辆是否要
|
|
|
- //停车?
|
|
|
|
|
|
|
+ //停车,只会减速或当前决策速度不会加速
|
|
|
|
|
|
|
|
//------------------------------v2x traffic light end--------------------------------------------------------------------------------------
|
|
//------------------------------v2x traffic light end--------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
transferGpsMode2(gpsMapLine);
|
|
transferGpsMode2(gpsMapLine);
|
|
|
|
|
|
|
|
-// if(ServiceCarStatus.msysparam.mvehtype=="hapo"){
|
|
|
|
|
|
|
+// if(ServiceCarStatus.msysparam.mvehtype=="hapo"){ //这一部分代码对1+x小车没有用,因为小车的速度比较慢,如果障碍物距离小于15的时候就将目标速度给0,停障距离太远,停障逻辑在ADAPTER中做
|
|
|
// if(obsDistance>0 && obsDistance<8){
|
|
// if(obsDistance>0 && obsDistance<8){
|
|
|
// dSpeed=0;
|
|
// dSpeed=0;
|
|
|
// }
|
|
// }
|
|
@@ -2087,23 +2088,26 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
//shuju cunchu gognnenng add,20210624,cxw
|
|
//shuju cunchu gognnenng add,20210624,cxw
|
|
|
if(ServiceCarStatus.txt_log_on==true)
|
|
if(ServiceCarStatus.txt_log_on==true)
|
|
|
{
|
|
{
|
|
|
- // static int file_num=0;
|
|
|
|
|
-// double dis1 = GetDistance(now_gps_ins, *gpsMapLine[0]);
|
|
|
|
|
-// double dis2 = GetDistance(now_gps_ins, *gpsMapLine[gpsMapLine.size()-1]);
|
|
|
|
|
- if(first_start_en)
|
|
|
|
|
|
|
+ if(first_start_en)
|
|
|
{
|
|
{
|
|
|
first_start_en=false;
|
|
first_start_en=false;
|
|
|
start_tracepoint = PathPoint;
|
|
start_tracepoint = PathPoint;
|
|
|
- if(start_tracepoint==0)
|
|
|
|
|
|
|
+ if(circleMode)
|
|
|
{
|
|
{
|
|
|
-
|
|
|
|
|
- end_tracepoint =gpsMapLine.size()-1;
|
|
|
|
|
|
|
+ if(start_tracepoint==0)
|
|
|
|
|
+ {
|
|
|
|
|
+
|
|
|
|
|
+ end_tracepoint =gpsMapLine.size()-1; //这种计算终点坐标的序号只适合与闭环地图
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ end_tracepoint=start_tracepoint-1;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
else
|
|
else
|
|
|
{
|
|
{
|
|
|
- end_tracepoint=start_tracepoint-1;
|
|
|
|
|
|
|
+ end_tracepoint =gpsMapLine.size()-1; //20210929,不是闭环地图的时候终点参考坐标就是地图数组的最大序号
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
double dis1 = GetDistance(now_gps_ins, *gpsMapLine[start_tracepoint]);
|
|
double dis1 = GetDistance(now_gps_ins, *gpsMapLine[start_tracepoint]);
|
|
|
double dis2 = GetDistance(now_gps_ins, *gpsMapLine[end_tracepoint]);
|
|
double dis2 = GetDistance(now_gps_ins, *gpsMapLine[end_tracepoint]);
|
|
@@ -2139,7 +2143,7 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
}
|
|
}
|
|
|
QDateTime dt=QDateTime::currentDateTime();
|
|
QDateTime dt=QDateTime::currentDateTime();
|
|
|
QString date =dt.toString("yyyy_MM_dd_hhmm");
|
|
QString date =dt.toString("yyyy_MM_dd_hhmm");
|
|
|
- QString strsen = "datalog_";
|
|
|
|
|
|
|
+ QString strsen = "1xdatalog_";
|
|
|
date.append(strsen);
|
|
date.append(strsen);
|
|
|
QString s = QString::number(file_num);
|
|
QString s = QString::number(file_num);
|
|
|
date.append(s);
|
|
date.append(s);
|
|
@@ -2171,6 +2175,9 @@ iv::decition::Decition iv::decition::DecideGps00::getDecideFromGPS(GPS_INS now_g
|
|
|
<<"Trace_Point"<< ","<<PathPoint<< ","
|
|
<<"Trace_Point"<< ","<<PathPoint<< ","
|
|
|
<<"OBS_Distance"<< ","<<obsDistance<< ","
|
|
<<"OBS_Distance"<< ","<<obsDistance<< ","
|
|
|
<<"OBS_Speed"<< ","<<obsSpeed<< ","
|
|
<<"OBS_Speed"<< ","<<obsSpeed<< ","
|
|
|
|
|
+ <<"Traffic_Type"<< ","<<traffic_type<< ","
|
|
|
|
|
+ <<"Warn_Type"<< ","<<warning_type<< ","
|
|
|
|
|
+ <<"Limit_Speed"<< ","<<limit_spd<< ","
|
|
|
<<endl;
|
|
<<endl;
|
|
|
outfile.close();
|
|
outfile.close();
|
|
|
}
|
|
}
|