瀏覽代碼

change some module for jetpack6.0. not complete.

yuchuli 3 周之前
父節點
當前提交
3f622910ca

+ 3 - 1
sh/shenlan/autodeploy.sh

@@ -15,7 +15,6 @@ decition_brain_sf_changan_shenlan
 laneline_decition_brain_sf_changan_shenlan
 fusion_gpsndt
 fusion_pointcloud_shenlan
-lidar_radar_fusion_cnn
 driver_camera_ioctl
 driver_camera_usb
 driver_can_nvidia_agx
@@ -51,6 +50,9 @@ view_gps
 view_pcdmap
 view_radar
 ui_ads_hmi
+ivlog_record
+IVSysMan
+laneATT_trt
 )
 
 for x in ${app_name[@]}

+ 3 - 1
sh/shenlan/autogen.sh

@@ -135,7 +135,6 @@ done
 fusion_app_name=(
         fusion_gpsndt
         fusion_pointcloud_shenlan
-        lidar_radar_fusion_cnn
 )
 
 for x in ${fusion_app_name[@]}
@@ -187,6 +186,7 @@ detect_app_name=(
 	detection_lidar_ukf_pda
 	detection_radar_conti_sr308
 	detection_radar_delphi_esr
+	laneATT_trt
 )
 
 for x in ${detect_app_name[@]}
@@ -223,6 +223,8 @@ tool_app_name=(
 	view_gps
 	view_pcdmap
 	view_radar
+	ivlog_record
+	IVSysMan
 )
 
 for x in ${tool_app_name[@]}

+ 48 - 13
src/detection/laneATT_trt/laneATT_trt.pro

@@ -30,26 +30,33 @@ INCLUDEPATH += \
                /usr/include/opencv \
     ../../include/msgtype/rawpic.pb.h
 
-LIBS += /usr/local/cuda/lib64/libcudart.so \
-/usr/lib/aarch64-linux-gnu/libnvparsers.so \
-/usr/lib/aarch64-linux-gnu/libnvinfer.so \
-/usr/lib/aarch64-linux-gnu/libnvonnxparser.so \
-/usr/lib/aarch64-linux-gnu/libnvinfer_plugin.so
+#LIBS += /usr/local/cuda/lib64/libcudart.so \
+#/usr/lib/aarch64-linux-gnu/libnvparsers.so \
+#/usr/lib/aarch64-linux-gnu/libnvinfer.so \
+#/usr/lib/aarch64-linux-gnu/libnvonnxparser.so \
+#/usr/lib/aarch64-linux-gnu/libnvinfer_plugin.so
 
 LIBS += -L"/usr/local/lib" -lprotobuf
 
 HEADERS +=  laneatt.hh \
     ../../include/msgtype/lanearray.pb.h
 
+LIBS += -L/usr/lib/aarch64-linux-gnu/
+LIBS += -L/usr/lib/aarch64-linux-gnu/nvidia
+LIBS += -L/usr/local/cuda/targets/aarch64-linux/lib
+LIBS += -lcudart -lnvparser -lnvinfer -lnvonnxparser -lnvinfer_plugin
 
-LIBS += /usr/lib/aarch64-linux-gnu/libopencv_highgui.so \
-        /usr/lib/aarch64-linux-gnu/libopencv_core.so    \
-        /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so \
-        /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so \
-        /usr/lib/aarch64-linux-gnu/libopencv_videoio.so \
-        /usr/lib/aarch64-linux-gnu/libopencv_video.so \
-        /usr/lib/aarch64-linux-gnu/libopencv_calib3d.so \
-        /usr/local/cuda/lib64/*.so
+
+LIBS += -lopencv_highgui
+
+#LIBS += /usr/lib/aarch64-linux-gnu/libopencv_highgui.so \
+#        /usr/lib/aarch64-linux-gnu/libopencv_core.so    \
+#        /usr/lib/aarch64-linux-gnu/libopencv_imgproc.so \
+#        /usr/lib/aarch64-linux-gnu/libopencv_imgcodecs.so \
+#        /usr/lib/aarch64-linux-gnu/libopencv_videoio.so \
+#        /usr/lib/aarch64-linux-gnu/libopencv_video.so \
+#        /usr/lib/aarch64-linux-gnu/libopencv_calib3d.so \
+#        /usr/local/cuda/lib64/*.so
 #LIBS += -L/usr/local/lib -lboost_system \
 
 
@@ -66,3 +73,31 @@ LIBS += /usr/lib/aarch64-linux-gnu/libopencv_highgui.so \
 INCLUDEPATH += $$PWD/../../include/msgtype
 LIBS += -L/usr/lib/aarch64-linux-gnu/ -lglog
 
+
+# 获取Ubuntu的版本信息
+UBUNTU_VERSION = $$system(lsb_release -rs)
+
+# 移除可能存在的空白字符
+UBUNTU_VERSION = $$replace(UBUNTU_VERSION, \\s+, )
+
+# 打印版本信息(可选)
+message(Ubuntu version: $$UBUNTU_VERSION)
+
+# 判断版本并定义宏
+contains(UBUNTU_VERSION, 20\\.04$) {
+    DEFINES += UBUNTU_20_04
+    message(Defining UBUNTU_20_04)
+}
+else:contains(UBUNTU_VERSION, 22\\.04$) {
+    DEFINES += UBUNTU_22_04
+    message(Defining UBUNTU_22_04)
+}
+else:contains(UBUNTU_VERSION, 24\\.04$) {
+    DEFINES += UBUNTU_24_04
+    message(Defining UBUNTU_24_04)
+}
+else {
+    message(Unknown Ubuntu version: $$UBUNTU_VERSION)
+}
+
+

+ 15 - 1
src/detection/laneATT_trt/laneatt.cc

@@ -83,8 +83,13 @@ LaneATT::~LaneATT() {
         cudaFree(buffer);
     }
     if (context_ != nullptr) {
+#ifdef UBUNTU_22_04
+        delete context_;
+        delete engine_;
+#else
         context_->destroy();
         engine_->destroy();
+#endif
     }
 }
 
@@ -103,7 +108,11 @@ std::vector<std::vector<cv::Point2f>> LaneATT::DetectLane(const cv::Mat& raw_ima
 
     // Do inference
     cudaMemcpyAsync(buffers_[0], image_data_.data(), buffer_size_[0] * sizeof(float), cudaMemcpyHostToDevice, stream_);
+#ifdef UBUNTU_22_04
+    context_->executeV2(&buffers_[0]);
+#else
     context_->execute(1, &buffers_[0]);
+#endif
     cudaMemcpyAsync(detections_.data(), buffers_[1], buffer_size_[1] * sizeof(float), cudaMemcpyDeviceToHost, stream_);
 
     // NMS and decoding
@@ -130,12 +139,17 @@ void LaneATT::LoadEngine(const std::string& engine_file) {
     initLibNvInferPlugins(&g_logger_, "");
     nvinfer1::IRuntime* runtime = nvinfer1::createInferRuntime(g_logger_);
     assert(runtime != nullptr);
+#ifdef UBUNTU_22_04
+    engine_ = runtime->deserializeCudaEngine(trt_model_stream.get(), length);
+#else
     engine_ = runtime->deserializeCudaEngine(trt_model_stream.get(), length, nullptr);
+#endif
     assert(engine_ != nullptr);
     context_ = engine_->createExecutionContext();
     assert(context_ != nullptr);
-
+#ifndef UBUNTU_22_04
     runtime->destroy();
+#endif
 }
 
 float LaneIoU(const Detection& a, const Detection& b) {

+ 2 - 0
src/detection/laneATT_trt/main.cpp

@@ -415,6 +415,8 @@ void transform (std::vector<std::vector<cv::Point2f>> &lanes,cv::Mat &pers_mat_i
 
 int main(int argc, char *argv[]) {
 
+
+
 // ==============================================================================
     showversion("laneatt");
     QCoreApplication a(argc, argv);

+ 4 - 0
src/detection/trafficlight_detection/main.cpp

@@ -533,7 +533,11 @@ bool LoadEngine(const std::string engine_path){
     //反序列为engine,创建context
     runtime = createInferRuntime(gLogger);
     assert(runtime != nullptr);
+#ifdef UBUNTU_22_04
+    engine = runtime->deserializeCudaEngine(trtModelStream, size);
+#else
     engine = runtime->deserializeCudaEngine(trtModelStream, size, nullptr);
+#endif
     //assert(engine != nullptr);
     if(engine == nullptr)
         return false;

+ 27 - 0
src/detection/trafficlight_detection/trafficlight.pro

@@ -81,3 +81,30 @@ INCLUDEPATH += ../../../include
 INCLUDEPATH += $$PWD/../../include/msgtype
 LIBS += -L/usr/lib/aarch64-linux-gnu/ -lglog
 
+# 获取Ubuntu的版本信息
+UBUNTU_VERSION = $$system(lsb_release -rs)
+
+# 移除可能存在的空白字符
+UBUNTU_VERSION = $$replace(UBUNTU_VERSION, \\s+, )
+
+# 打印版本信息(可选)
+message(Ubuntu version: $$UBUNTU_VERSION)
+
+# 判断版本并定义宏
+contains(UBUNTU_VERSION, 20\\.04$) {
+    DEFINES += UBUNTU_20_04
+    message(Defining UBUNTU_20_04)
+}
+else:contains(UBUNTU_VERSION, 22\\.04$) {
+    DEFINES += UBUNTU_22_04
+    message(Defining UBUNTU_22_04)
+}
+else:contains(UBUNTU_VERSION, 24\\.04$) {
+    DEFINES += UBUNTU_24_04
+    message(Defining UBUNTU_24_04)
+}
+else {
+    message(Unknown Ubuntu version: $$UBUNTU_VERSION)
+}
+
+

+ 38 - 6
src/tool/view_pcdmap/view_pcdmap.pro

@@ -26,9 +26,10 @@ INCLUDEPATH += /usr/include/pcl-1.10
 INCLUDEPATH += /usr/include/pcl-1.12
 INCLUDEPATH += /usr/include/pcl-1.7
 INCLUDEPATH += /usr/include/eigen3
-INCLUDEPATH += /usr/include/vtk-6.3
+
 INCLUDEPATH += /usr/include/vtk-6.2
-INCLUDEPATH += /usr/include/vtk-7.1
+
+
 
 unix:LIBS +=  -lpcl_common\
         -lpcl_features\
@@ -52,9 +53,40 @@ unix:LIBS +=  -lpcl_common\
 #INCLUDEPATH += $$PWD/../../../include/
 #LIBS += -L$$PWD/../../../bin/ -lxmlparam -lmodulecomm -livlog -livfault
 
+# 获取Ubuntu的版本信息
+UBUNTU_VERSION = $$system(lsb_release -rs)
+
+# 移除可能存在的空白字符
+UBUNTU_VERSION = $$replace(UBUNTU_VERSION, \\s+, )
+
+# 打印版本信息(可选)
+message(Ubuntu version: $$UBUNTU_VERSION)
+
+# 判断版本并定义宏
+contains(UBUNTU_VERSION, 20\\.04$) {
+    INCLUDEPATH += /usr/include/vtk-6.3
+    LIBS += -lvtkCommonExecutionModel-6.3 -lvtkCommonCore-6.3 -lvtkRenderingLOD-6.3 -lvtkRenderingCore-6.3 \
+            -lvtkFiltersSources-6.3
+}
+
+contains(UBUNTU_VERSION, 20\\.04$) {
+    INCLUDEPATH += /usr/include/vtk-7.1
+    LIBS += -lvtkCommonExecutionModel-7.1 -lvtkCommonCore-7.1 -lvtkRenderingLOD-7.1 -lvtkRenderingCore-7.1 \
+            -lvtkFiltersSources-7.1
+}
+else:contains(UBUNTU_VERSION, 22\\.04$) {
+    INCLUDEPATH += /usr/include/vtk-9.1
+    LIBS += -lvtkCommonExecutionModel-9.1 -lvtkCommonCore-9.1 -lvtkRenderingLOD-9.1 -lvtkRenderingCore-9.1 \
+            -lvtkFiltersSources-9.1
+}
+else:contains(UBUNTU_VERSION, 24\\.04$) {
+    DEFINES += UBUNTU_24_04
+    message(Defining UBUNTU_24_04)
+}
+else {
+    message(Unknown Ubuntu version: $$UBUNTU_VERSION)
+}
+
 LIBS += -lboost_system
-#LIBS += -lvtkCommonExecutionModel-6.3 -lvtkCommonCore-6.3 -lvtkRenderingLOD-6.3 -lvtkRenderingCore-6.3 \
-#        -lvtkFiltersSources-6.3
 
-LIBS += -lvtkCommonExecutionModel-7.1 -lvtkCommonCore-7.1 -lvtkRenderingLOD-7.1 -lvtkRenderingCore-7.1 \
-        -lvtkFiltersSources-7.1
+

+ 12 - 2
src/ui/ui_ads_hmi/ADCIntelligentVehicle.cpp

@@ -225,6 +225,7 @@ ADCIntelligentVehicle::ADCIntelligentVehicle(QWidget *parent)
       scaleFactor(1),
       currentStepScaleFactor(1)
 {
+
     ui->setupUi(this);
     gAV = this;
     gIvlog->info("ADCIntelligentVehicle Start Initialize");
@@ -254,6 +255,8 @@ ADCIntelligentVehicle::ADCIntelligentVehicle(QWidget *parent)
     ServiceCarStatus.lidar_y_offset = atof(xp.GetParam("lidar_y_offset","0").data());
 
 
+
+
     ui->listWidget->setIconSize(QSize(40,40));
     ui->stackedWidget->setCurrentIndex(0);
 
@@ -282,11 +285,12 @@ ADCIntelligentVehicle::ADCIntelligentVehicle(QWidget *parent)
 //    myview_small->scale(0.7,0.7);
     //myview_small->centerOn(-200,-200);
 
+
     /********************************** 百度地图显示  ********************************/
 #ifndef NOHTMLMAP
     if(gstrvehtype != "LuBan")
     {
-
+#ifndef UBUNTU_22_04
         mMapview = new QWebEngineView(ui->stackedWidget->widget(1));
         //    qDebug((QDir::currentPath()).toLatin1().data());
 #ifndef USEGOOGLEMAP
@@ -296,11 +300,13 @@ ADCIntelligentVehicle::ADCIntelligentVehicle(QWidget *parent)
 //        mMapview->load(QUrl(QString("file:///%1/%2").arg(QApplication::applicationDirPath()).arg("googlemap.html")));
 #endif
         mMapview->setGeometry(1000,100,500,500);
+#endif
     }
 #endif
     /********************************************************************************/
 
 
+
     image = new QImage(900 * 2, 900 * 2, QImage::Format_RGB32);//画布的初始化大小设为600*500,使用32位颜色
     //QImage的32、24、8位图。 图像格式:QImage::Format_RGB32 ,QImage::Format_RGB888,QImage::Format_Indexed8。
     //QImage myImage2 = QImage(width, height, QImage::Format_…); 根据图像宽高来构造一幅图像,程序会自动根据图像格式对齐图像数据。
@@ -334,6 +340,8 @@ ADCIntelligentVehicle::ADCIntelligentVehicle(QWidget *parent)
 
     msockrecv.bind(QHostAddress::Any,9998);//绑定端口
 
+
+
     connect(&msockrecv,SIGNAL(readyRead()),this,SLOT(onRecvUDP()));  //接收来自PAD的UDP数据报   readyRead():socket读取缓冲区有数据时发送此信号,在此信号的槽函数里读取缓冲区的数据。
 
     ServiceCarStatus.speed = 0.0;
@@ -516,7 +524,7 @@ ADCIntelligentVehicle::ADCIntelligentVehicle(QWidget *parent)
 
 ADCIntelligentVehicle::~ADCIntelligentVehicle()
 {
-    gIvlog->warn("ADCIntelligentVehchicle Exit.");
+//    gIvlog->warn("ADCIntelligentVehchicle Exit.");
     iv::modulecomm::Unregister(mpaplantrace);
     iv::modulecomm::Unregister(mpamapreq);
     iv::modulecomm::Unregister(mpManualCtrl);
@@ -969,6 +977,7 @@ void ADCIntelligentVehicle::onStateTimerMap()
 #ifndef NOHTMLMAP
     if(gstrvehtype != "LuBan")
     {
+#ifndef UBUNTU_22_04
         double flat = ServiceCarStatus.location->gps_lat;
         double flon = ServiceCarStatus.location->gps_lng;
         double fang = ServiceCarStatus.location->ins_heading_angle;
@@ -988,6 +997,7 @@ void ADCIntelligentVehicle::onStateTimerMap()
 //                                      "new google.maps.Map(document.getElementById('map'), mapOptions);");
  //       mMapview->page()->runJavaScript(js);
 
+#endif
 #endif
     }
 #endif

+ 29 - 1
src/ui/ui_ads_hmi/ui_ads_hmi.pro

@@ -119,6 +119,34 @@ LIBS += -livprotoif
 
 TRANSLATIONS = ui_ads_hmi_language.ts
 
-DEFINES += USEGOOGLEMAP
+#DEFINES += USEGOOGLEMAP
 
 #DEFINES += NOHTMLMAP
+
+# 获取Ubuntu的版本信息
+UBUNTU_VERSION = $$system(lsb_release -rs)
+
+# 移除可能存在的空白字符
+UBUNTU_VERSION = $$replace(UBUNTU_VERSION, \\s+, )
+
+# 打印版本信息(可选)
+message(Ubuntu version: $$UBUNTU_VERSION)
+
+# 判断版本并定义宏
+contains(UBUNTU_VERSION, 20\\.04$) {
+    DEFINES += UBUNTU_20_04
+    message(Defining UBUNTU_20_04)
+}
+else:contains(UBUNTU_VERSION, 22\\.04$) {
+    DEFINES += UBUNTU_22_04
+    message(Defining UBUNTU_22_04)
+}
+else:contains(UBUNTU_VERSION, 24\\.04$) {
+    DEFINES += UBUNTU_24_04
+    message(Defining UBUNTU_24_04)
+}
+else {
+    message(Unknown Ubuntu version: $$UBUNTU_VERSION)
+}
+
+