Coder Social home page Coder Social logo

lizhengxiao99 / navigation-learning Goto Github PK

View Code? Open in Web Editor NEW
453.0 22.0 108.0 510.98 MB

我的导航学习笔记,内容涵盖导航定位开源程序的源码解读 ( 包括:RTKLIB、GAMP、SoftGNSS、KF-GINS、ORB-SLAM3 等)、各种导航设备的使用方式、书籍讲义、博客翻译、开源项目梳理、常用网站记录、Linux/Vim/Git/ROS/VSCode 常用命令、以及我作为安理导航工程本科生对于导航学习的思考感悟;本仓库会长期更新,分享出来,希望有人用得上,也激励着自己坚持学下去;所有内容都可以随意转载,可用于任何目的,不必征求我的意见;如果您觉得内容有价值,推荐用 Github-Desktop 下载并保持更新。

MATLAB 100.00%
gnss gps ins location orb rtklib slam vins vio navigation

navigation-learning's Introduction

Navigation-Learning:一个本科生的导航学习笔记

Static Badge Static Badge Static Badge 访问量统计

👋 嗨,你好,我是李郑骁,安徽理工大学导航工程本科生;

⏰ 正准备考研,考上了副标题就改《一个研究生的导航学习笔记》

💡 仓库所有内容都可以随意转载,可用于任何目的,无需征求我的意见;

✨ 本仓库会长期更新,分享出来,希望有人用得上,也激励着自己坚持学下去;

💻 理解尚浅、实践甚少,列举的公式和理论仅供参考,千万不要照着我的公式写代码;

🛠 不建议直接就下载整个仓库,Markdown 和 PDF 可以在线看,想要的文件可以单独下载

⚙ 目前仓库还不够完善,部分文件还没啥内容,下载之前,建议先点开看看,有没有您期望的内容;

🎉 如果您觉得仓库内容有价值,推荐用 Github-Desktop 下载并保持更新,用 Typora 看 Markdown 文件;

🤺 有问题或想法欢迎随时与我交流讨论:微信 (lizhengxiao99)、QQ (1482275402)、Email ([email protected]);

662bf58e5529e6a138945e9ffc90893e


👇 以下是本仓库包含的板块,点击跳转 👇

🌟 板块 🌟  🧾 说明 🧾 🛠 完成度 🛠
源码解读 我对程序的解读,附上流程图、思维导图、相关资料 【====>             】40%
书籍讲义 分享导航算法学习过程中对我起较大帮助的书籍/讲义 【========>   】80%
设备上手 各种 GNSS/IMU/Camera/Lidar 设备用法、测试数据 【=>                     】10%
博客翻译 机翻实用有趣的外文博客,稍做调整,附上我的总结 【===>                】30%
RSS推荐 在信息爆炸且碎片化的当下,建立个人专属信息聚合 【========>   】80%
开源整理 整理导航相关开源项目,拓展眼界,避免重复造轮子 【======>        】60%
常用网站 整理导航相关网址,点击即可跳转,方便收藏与访问 【======>        】60%
指令速查 Linux/Vim/Make/CMake/Git/Docker/ROS/VScode 【====>             】40%
算法理解 不会一板一眼地推导公式,写点我对导航算法的理解 【=>                     】10%
算法解惑 参数估计/GNSS/INS/组合导航/SLAM/多源融合/规控 【===>                】30%
心得体会 导航学习/博客写作/READM美化/Github上手/RSS上手 【======>        】60%
安理导航 毕业生去向/课程体系/21级课表/课程锐评/硕导评价 【======>        】60%
仓库推荐 推荐一些同类仓库,创作不易,欢迎给他们 Star 鼓励 【====>             】40%
写在最后 欢迎大家在我的基础上整理出属于自己的一套笔记 【========>   】80%

👇 以下是本仓库重点介绍项目,点击跳转程序简介 👇

🌟 开源程序 🌟 🧾 简介 🧾 🛠 完成度 🛠
RTKLIB 最知名的 GNSS 数据处理程序 【======>        】60%
GAMP 基于 RTKLIB 的后处理双频 PPP 【========>   】80%
PSINS MATLAB/C++ 捷联惯导工具箱 【====>             】40%
Ginan 澳大利亚 PPP 定位/定轨程序 【=>                     】10%
goGPS MATLAB-GNSS 数据批处理 【=>                     】10%
GICI-LIB GNSS+INS+Camera 图优化融合定位 【===>                】30%
SoftGNSS MATLAB GPS L1-C/A 码软件接收机 【======>        】60%
VINS 光流法视觉惯性图优化 SLAM 【===>                】30%
ORB-SLAM3 特征点法视觉惯性图优化 SLAM 【==>                   】20%
GNSS-SDR 基于 GNURadio 的 GNSS 软件接收机 【=>                     】10%
TGINS 基于 RTKLIB 的 PPP/INS-EKF 紧组合 【==>                   】20%
KF-GINS GNSS/INS-EKF 松组合 Demo 【=========> 】90%
OB-GINS GNSS/INS-FGO 松组合 Demo 【====>              】40%
ROS导航功能包 自主导航机器人定位/建图/路径规划 【==>                   】20%
北斗GPS软件接收机 GPS-L1/BDS-B1 软件接收机 【==>                   】20%
PocketSDR 带射频前端的后处理 GNSS 软件接收机 【=>                     】10%

🤺 推荐一些同类仓库,创作不易,欢迎给他们 Star 鼓励 🤺

🌟 开源程序 🌟 🧾 简介 🧾 更新
ML_DL_CV_with_pytorch 深度学习、自动驾驶、计算机视觉 √√√
Autopilot-Notes 相当系统的自动驾驶笔记 √√√
giser 大一本科生写的 WebGIS 学习笔记 √√√
cs-self-learning 北大信科学长创建的CS自学全家桶 √√√
researchTools 港理工 GraphGNSSLib 作者的博客、整理资料 ×××
IMU-study IMU、气压计、磁力计的原理和驱动 ×××
SLAM-All-In-One SLAM 框架整理、代码注释、学习笔记 ×××
slam-tricks 记录一些SLAM中常用到的一些算法和小技巧 ×××
cs-408 计算机考研408学习笔记 ×××
learn_slam 西工大布树辉写的SLAM入门路线和建议 ×××
SLAM_Code_Learning 为做NeRF-based SLAM毕设所读过的代码 ×××
CUMT-GIS-16 矿大GIS课设|CUMT-GIS-21/CUMT-GIS-20 ×××

🛠 记录一些我看到过的项目,其中加粗的项目会在本仓库介绍 🛠

类型 项目/网址
开源数据集 PSINS 网站i2NAV-awesome-gins-datasetsweisongwen-UrbanNavDatasetUrbanLocoPPPLib-Datasetgici-open-datasetGVINS-Datasetgnsstk-dataGNSS_RTK_datacssrlib-datacomma2k19SJTU_GVIRailway-Precise-Localizationprecision-gnssSYSU-Campus-GVI-DatasetGVI-SYSU-Outdoor-Indoor-DatasetS3ELBL-AQUALOC-Datasetnebula-odometry-datasetvio-gnss-datasetcssrlib-datacomma2k19IMU_datasetHR_IMU_falldetection_datasetimu_comparison_dataHumanInertialPoseH2LIDFusionPoserECC_datasetTRIPODbroadBROAD_IMU_datasetHAR_IMU_StretchGenshin-Impact-Datasetutbm_robocar_datasetuwb-drone-datasetUWB_TDOA_datasetIndustrial-UWB-localization-CIR-datasetM2DGRRoller-Coaster-SLAM-DatasetIR-UWB-Radar-Signal-Dataset-for-Dense-People-CountingUWB_Datasetuwb-nlos-human-detectionsnapshot-gnss-data1/2IURHA2023WHU-TLSWHU-HelmetWHU-Urban-3DWHU-Railway3DWHU-Smartphone-DatasetGNSSbuoyShoeMountIMU-Datasetlegkilo-datasetSIMUL-datasetMeshed_IMU_Garment_HAR_DatasetPINS-datasets-based-on-Xsens-IMUMillimeter-wave-radar-and-IMU-datasetsFloor-detection-using-IMU-Sensor-Dataset-drinking-gesture-datasetSynth3DFingerTrackingIoBT-Smart-GloveSpinal-Curvature-DatasetWalking-datasetEating-Speed-DatasetMUESIPCO2020_DatasetRoad-Intersection-Re-IDVID-DatasetLIMU-BERT-Publicble-rss-fingerprints-calib2021humolireNavigation-Data-ProjectDS-Final-Projectcerberus_darpa_subt_datasetsGnssDatar3live_datasetBotanicGardenlidar_degeneracy_datasetsKimera-Multi-Datantu_viral_datasettreescopeGround-ChallengeAirMuseumDatasetKITTI数据集GroundTrueHighAccuracyDatasetEuRoC数据集TUM数据集Oxford数据集ICL-NUIM数据集RGB-D对象数据集Dynamic-Scenes 数据集awesome-slam-datasets 整理IMU-datasets 整理Awesome_list_of_free_smartphone_GNSS_datasets 整理
GNSS 数据处理 RTKLIBRTKLIB-Demo5learning_rtklibRTKLIB-Cmakertklib-pyCSSRLibrtklib_ros_bridgertkrcv_rosGAMPGinangoGPSgoGPS_JavaBNCGFZRNXgeorinexGAMIT/GLOBKGraphGNSSLibNavCodeMonitorNet_DifflaikaCSRS-PPPPOSGOPride-PPPARPPPwizardGPSTkgnsstkgnsstk-appsG-NUT/AnubisTeqcRNXQCEBernesegLABLook4SatRobustGNSSGAMPII-GOODntriprtcmcorsVrsCastergstreamogrpcentipedeTouchRTKStationrtkbaseGREAT-IFCBgnss_commPPP-BayesTreeFASTgnsspygnssgoraPPPidgnss-compass-rosgnss-attitudeFCB-FILESMG_APPgps_amcldeep_gnssTSAnalyzerGNSS-TimeSeries-ViewersRTKinGSSgnss_lib_pyPNT-IntegrityGORSGDDSQGOPDDgnss-downloadergroopsgeorbOREKITrt-clk-servicepolarisgnss-tecutmPW-from-GPSGNSS-Multipath-Analysis-Softwaregnss-multipath-detectorGNSS-ShadowinggnssIR-pythongnssr-synthgnssIR-matlab-v3gnssreflgnss2tws-greengnssSNRmphwhgpt_modelGNSSR_MERRBySPyGPSClientSTM32Primer2-GNSS-TrackerSTM32-GNSSGNSSTimeServerGNSS_ClockAgOpenGPSnmea-msgsLilyGo-LoRa-SeriescssrlibHASlibOSNMAgalileo-osnmaGNSSAMSgeodetic_utilsppp-toolscssrlibgpstestiSniff-GPShypatiagps-measurement-toolsFE-GUTgnss-RXPypredictnovatel-gps-driverGNSSAMSGNSS-Radargeodesy_modelinggnss-odometryCaster_Projectrviz_satellitegnatssgnssr_lowcostsatellite-position-calculation-mappingGPSToolbox 投稿barbeau-awesome-gnss 整理hdkarimi-awesome-gnss 整理mcraymer 整理Awesome-Geospatial 整理
GNSS 信号处理 GNSS-SDRgnss-sdr-monitorSoftGNSSSoftGNSS-pythonPocketSDRGNSS-SDRLIBnut2ntBeagle_SDR_GPSKiwiSDRFlyDog-SDR-GPSFlyCat-SDR-GPSFull_Stack_GPS_ReceiverBDS-3-B1C-B2a-SDR-receiverFGI-GSRxsydrNavLab-DPE-SDRmulti-channel-gnssGPUAcceleratedTrackingGNSS-GPS-SDRSDR-GPS-SPOOFgpsSnapperGPSsnapshot-gnss-algorithmsgnss-sdr-1ppsSatDumpgps-sdr-simulinkgps-sdr-simbeidou-sdr-simgalileo-sdr-simgps-qzss-sdr-simmulti-sdr-gps-simpluto-gps-simSignalSimGPS_GAL_SSSgreta-otoBD3_FPGAGNSS-matlaboresat-gps-software/hardwareMAX2769FT2232HSDR-GB-SARgps-rf-frontend-simGNSS-VHDLGNSS-Metadata-Standardgnss-basebandGPSMAXIM2769b-Analog-GPS-data-receiverGNSS_FirehoseGNSS-DSP-toolshard_sydrB1C-Signals-SimulationCU-SDR-CollectionESP32-SDR-GPSSTM32F4-SDR-GPSFast-GNSS-ReceiverMATLABgnss-sdr-rssdr-beamforminggr-gnMAX2769gps-sdr
INS、组合导航 PSINSPSINS_FIMUKF-GINSOB-GINSTGINSPPPLIBCompassGINAV/v2.0IGNAVMATLAB-GrovesGIOW-releaseimu_x_fusionOpenIMUroninRINS-Winvensense-imueagleyeai-imu-drNaveCodeProInertialNavallan-variance-roseskf_localizationimu_gnss_eskfnav_matlabimu_zuptIEZZUPT-aided-INSgnss-ins-zuptcorenav-GPkalibrkalibr_allanallan_variance_rosallan_varianceimu_allanallan_ros2AdevAnalysisimu-data-simulationGPS_IMU_Kalman_FilterTightlyCoupledINSGNSSstm32f4_mpu9250mpu6050mpu9250FastIMUWheel-INS GNSS-INSpyshoeimu_toolsIMUCalibration-GestureImuCalibration-Poistionimu_utilsGyroAllangnss-ins-simMEMS-IMU-DenoisingagrobotIBG_EKF_TCZCJ-GNSSINS-DeepIntegration Smartphone-IMU-GPSINSTINCTGait-TrackingMachine-Learning-GNSS-IMU-IntegrationImuCalibration-Poistion ADIS16470-Arduino-TeensySeeed_ADIS16470iXR_GNSS-IMU_TightlyCouplingProgramtianxuanKalmanFilter_Vehicle_GNSS_INSGPS_Milemeter_IMU_EKFLocationIMUNetSmartIMUIMUSensorModelsimu_gps_localizationdcm-imudenoise_imu_gyrovectornavOpenIMUFilter9DOF_Razor_IMUIMU_Attitude_EstimatorSparkFun_LSM9DS1_Arduino_Libraryimu_pipelineESEKF_IMUIMA-estimationfusionIndirect_EKF_IMU_GPSgps_imu_fusionimu_ekfx-IMU-GUIekf-imu-depthimu_tk_matlabimu_tkIMU_PreintegrationRTIMULib2imu_to_odomimu-human-pose-pytorchIMU-ArrayIMUPoserIMUDBhar_with_imu_transformerEyeMUAttitude-EstimationActivity_Detection_using_IMU_sensorlwoiInvariantEKF_GNSS_IMUimu_veh_calibImuMeanFilterkalman_filter_with_kittiImuGpsGuidingOpenSimRTRTD_phoneADIS16470_Demoodom_predictorrobot_pose_ekfUKFgnss-sensor-fusionamsiEgoLocatelearned_inertial_model_odometry
视觉 SLAM Vins-Mono/FusionORB-SLAM3/2/1OpenVINSOpenvslamsvosvo_promsckf_viookvisDM-VIODSODSOLNeRFElasticfusionOpenMVGMeshroomKintinuousMvisionrgbdslam_v2camera_calibrationcrispVideoIMUCapture-AndroidOpenImuCameraCalibratorStructure-SLAM-PointLineSLAM_interfaceSync_Pola_IMU_ROSawesome-visual-slam 整理Recent_SLAM_Research 整理Awesome CV Works 整理Lee-SLAM-source 整理awesome-slam 整理Awesome_Dynamic_SLAM 整理awesome-NeRF 整理visual-slam-roadmap 整理Visual_SLAM_Related_Research 整理vins-application 整理Recent-Stars-2024 整理Visual Navigation 整理Awesome-Optical-Flow 整理
激光 SLAM GmappingCartographerhector-slamLeGO-LOAMLOAM-LivoxA-LOAMSuMaLIO-SAMFAST-LIO-SAMFAST-LIOLIO-MappingCT-ICPCoco-LICBoW3DOverlapNetCloudViewerLidar_AI_Solutionlidar_IMU_calibLT-MapperLiDAR_IMU_InitRIs-CalibGMMCalibawesome-lidar 整理awesome-point-cloud-place-recognition 整理awesome-sar 整理awesome-radar-perception 整理awesome-deep-point-cloud-compression 整理awesome-point-cloud-analysis 整理
多源融合 GICI-LIBGVINSGLIOInGVIOMulti-Sensor-FusionMSF_developedMINSmars_libMMF-LVINSraw-gnss-fusionESEKF-IMU-GNSS-Lidarimu_x_fusionIC_GVINSFAST-LIVOVINS-GPS-Wheelsync_gps_lidar_imu_camcarvigLVI-SAMekfmonoslamethzasl_msfNaveGorobot_localizationYabLocILCCekfmonoslamSuperFusionSensor-Fusion-Using-ES-EKFGPS-Gaussianmultimodal_data_studiolimomulti-sensor-calibrationCalibration-Is-All-You-NeedAwesome-LiDAR-Camera-CalibrationAwesome-LiDAR-IMU-calibration 整理
参数估计 kalmanbayes-filters-libfilterpyDynAdjustKalmanFilterCarND-Extended-Kalman-Filter-ProjectKalman-and-Bayesian-Filters-in-PythonComparison-of-UKF-CKF-EKFTinyEKFAdjustment-Of-Traverse-NetworkKalman-Filter-for-Sensor-FusionEmbedded_UKF_LibraryKF-a-prioriKF-a-posterioriMCCKF-a-posterioriMCCKF-a-prioriLBFGS-Lite
室内定位、手机定位 openposeuwb-localizationLocationSensorServerFusion-DHLIndoor-PositioningUWB-NodeRTLS-UWBpositioning-algorithms-for-uwb-matlabUWB_DualAntenna_AoAPedometerahrsios_loggerGetSensorData_AndroidLoRa_2G4_localizationDeadReckoningdead-reckoningSmartlight_UWBsenslogsvrsPedestrian-Dead-ReckoningUWBPositioningutil-uwb-datasetRSSI-Dataset-for-Indoor-Localization-FingerprintingThriftybluetooth_gnssAwesome-Human-Activity-Recognition 整理Awesome-WiFi-CSI-Research 整理
规划控制 navigationnavigation2 ApolloAutowarePX4-AutopilotardupilotmarsAvemdRehmFlightPathPlanningMissionPlannerslam_toolboxneonavigationrmclnavigatorself-driving-carNamelessCotrunQuad_V1.0ONE-Robotros_motion_planningAwesome-Self-Driving 整理Autopilot-Notes 整理Awesome-IntelligentCarRace
AI tensorflowkerasPaddlepytorchTheanowekancaffetorch7yolov5DeepSpeedtransformersacceleratemindsporejittoroneflowx-deeplearningMegEnginencnnFinRLspinningupbaselinesstable-baselinesmxnetMegEngineTensorRTdarknetdarknet_rosmxnetCNTKmatconvnetchaineronnxTheanoros_deep_learningmambaawesome-machine-learning 整理DeepLearning 整理awesome-deep-learning 整理Deep-Learning-Papers-Reading-Roadmap 整理awesome-deep-learning-papers 整理awesome-chatgpt-prompts-zh 整理awesome-machine-learning-cn 整理Awesome-PyTorch-Chinese 整理
常用库 EigenOpenBLASGflagsGlogeasyloggingppCeres-Solverg2ogtsamYaml-CppOpenCVPCLBoostbetter-enumsDBoW2matplotlib-cppprogressbargoogletest
Github美化 SerialChartawesome-github-profile-readme-chineseawesome-github-profile-readmeawesome-github-profilesgithub-readme-quotesreadme-typing-svgshieldsvisitor-badgespotify-github-profilereadme-jokesgithub-readme-streak-statsmetricsgithub-readme-quotesgithub-profile-trophygithub-readme-statsgithub-readme-activity-graph
个人博客框架 WordPressZ-BlogtypechoemloghexojekyllhugovuepressVitePresssolohaloVanBlogGrideaDocusaurusGitBookxLOGTypecho
工具 zoteroCaptura GitHub520freecarrotaliyunpanResumeEditorRevokeMsgPatchertexpressogithub-downloads-count
开源程序作者 池澄周峰陈超严恭敏李政苏景岚陈凯肖恭伟欧阳明俊余义张欣任乾王晗刘国庆高翔杨熙张春杰魏源方文涛吕少麟布树辉谢立华邹丹平李英冰稚晖君electech6JzHuai0108XikunLiu-huskitcggosWelson WENcggoszarathustrYizeZhangglobskytomojitakasucarlesfernandezrtklibexplorerGeoscienceAustraliatarozosqzssiliasamJonasBchrtJakobEngelpriseboroughCharmve
开源程序团队 i2Nav-WHUPrideLabGREAT-WHUWHU-USI3DVWHULuoJiaTeamTUW-VieVSPengYu-Teamtiev-tongjitjiiv-cprgSJTU-ViSYSZJU-FAST-LabSYSU-CPNTLabamazon-scienceStanford-NavLabstanford-gps-labSnapperGPSiGNSSTIERSArduPilotuzh-rpgTuring-zeroleggedroboticsHKUST-Aerial-RoboticsUZ-SLAMLabOpenSLAM-orgsair-labopen-mmlabRoboticExplorationLabMetaSLAMAPRIL-ZJUMRPTseap-udeaLRMPUTPJLab-ADGinertialsensewvu-navLabIPNL-POLYUEmbeddedAndMultisensorSystemsLabtyrex-teamMapIVTUMFTMimLabNTUuw-ssecTinkerbug-Roboticsewine-projectLIAS-CUHKSZrwth-irt3DOM-FBKKIT-ISASdabamosurl-kaistUniStuttgart-INSgooglePRBonnjpl-xOUCTheoryGroupaau-cnsKIT-MRTcvgram-labPJLab-ADGRoboMasterGNSS-SPANoresatSJTU-ViSYShaomo-ai
编程入门学习 awesome-cnawesome-cawesome-cppawesome-python-cnawesome-c-cnawesome-cpp-cnawesome-cs-booksawesome-modern-cppawesome-ios-cnawesome-css-frameworksawesome-csHacking C++QWidgetDemo**程序员容易发音错误的单词FPGAmissing-semester

 👆👆👆  转到文件夹   or   回到开头   👆👆👆


💾 记录一些导航相关的网址、学习资源、导航设备 💾

类型 网址
中文期刊 测绘学报武汉大学学报(信息科学版)测绘地理信息电子学报遥感学报地理学报地理科学进展科学通报现代测绘测绘工程测绘通报信号处理**惯性技术地球物理学报大地测量与地球动力学全球定位系统导航定位学报地理空间信息海洋预报仪器仪表学报导航定位与授时地球科学与环境学报弹箭与制导学报微电子与计算机西北工业大学学报宇航学报仪表技术与传感器测控技术系统仿真学报航天控制兵工自动化光学学报**激光光电子激光
英文期刊 GPS SolutionsRemote SensingMeasurementSatellite NavigationJournal of GeodesySurvey reviewAdvances in Space ResearchJournal of Geophysical ResearchGeo-Spatial Information ScienceScientific ReportsIEEE Sensors JournalIEEE Transactions on Aerospace and Electronic SystemsIEEE Transactions on Instrumentation and MeasurementIEEE Transactions on Geoscience and Remote SensingOptical EngineeringPattern Recognition
导航类会议 美国导航年会 IONIEEE/ION Position Location and Navigation Symposium (IEEE/ION PLANS)International Technical Meeting (ITM)**卫星导航学术年会 CSNC欧洲导航年会 ENC慕尼黑卫星导航峰会 (Munich Satellite Navigation Summit)欧洲地学联盟大会 (EGU General Assembly)CVPRICCVECCVBMVCROBIOICRAAAAIICCPICPRPRIJCVCVIUICIPTIPSIPPRICDIPICRAIROSRSSAIMICMAECCVACCVBMVCTPAMITIPInternational Conference on 3D VisionGeodetic_and_Geomatics_Journals 整理
文献下载网站 知网知网论文查重万方维普Bing学术百度学术Sci-HubarxivResearchGate思谋学术-谷歌学术镜像标准网发现报告**国家图书馆国家数据专利检索及分析
各系统、分析中心官网 BDSGPSGLONASSGalileoQZSSIRNSSMGEXIGSIGMASITRFIGS标准IGS站iGMASIAGWDSIUGGGGOS、CNES、IAC、SHAO、CODE、GFZ、ESA、WHUBKGCDDIS、ING、**卫星导航系统管理办公室测试评估研究中心gpsworldInside GNSSGNSS Calendar时间转换查询灰机wiki卫星百科Advanced NavigationRTK2goThe-list-of-GNSS-CORS-RTK-networks 整理The-list-of-geospatial-magazines 整理
导航软件/设备厂商 Awesome_GNSSreceivers 整理Ublox诺瓦泰天宝徕卡意法半导体JavadSeptentrioSpectra GeospatialSXblueNavComGeneq和芯星通北斗星通华力创通创宇星通华测导航千寻位置六分科技思南导航南方测绘合众思壮移远通信北云科技格林恩德中电科星河北斗中电科网络通信研究院(五十四所)创新微米度测控通宇通信天奥电子九洲北斗云智北斗海积信息际上导航博通集成天硕导航AOSenseKearfottAesculap泰雷兹博世SensonorInvenSense赛峰集团SBG SystemsOOXTS诺格霍尼韦尔OptolinkiXblue超核电子原极科技奥比中光浩如科技凌思科技矽睿科技瑞芬科技北微传感元生创新维特智能智腾微电子北斗时代科技清研讯科喜讯科技沃旭通讯瑞达科讯美迪索科泰浩微RealSense申稷光电司岚光电奥比中光科力光电禾赛科技基恩士锐驰激光EAI科技Kinect海川润泽四信物联网钦天导航思为无线光鉴科技图漾科技微深联创航天宏图中煤航测迈普时空四维图新正元地信亿力吉奥恒华伟业苍穹数码九成中芯欧比特航宇微二十一世纪空间技术应用中科星图智腾微电子卡尔曼导航导远电子梦芯科技纵目科技华大北斗国科微电子泰斗微电子北方导航莱赛导航开普勒卫星科技
芯片厂商 恩智浦微芯瑞萨高通意法半导体AMDARM英飞凌德州仪器新唐罗姆三星电子东芝海力士美光赛普拉斯亚德诺莱迪思思佳讯博通Maevell菲菱科思CISCO安森美兆易创新乐鑫科技沁恒微电子高云半导体复旦微电子宏晶科技摩尔线程芯动科技海思半导体平头哥紫光集团长江存储长鑫存储易灵思
计算平台 JetsonArduinoESP32STC89C51STM32GD32CH32ZYNQ香橙派RK3588NanoPi泰山派RockPi
淘宝京东店铺 北天墨子号科技南方测绘体感**移远千寻位置全方集思宝深圳天工测绘思南导航浩如科技维特智能北云科技原极科技凌思科技啊路比电子超核电子瑞芬科技蓝尊科技北微传感精讯畅通华信红心天线维信天线亚博智能微雪电子轮趣科技幻尔机器人youyeetoo开源硬件商城天之博特合宙正点原子野火Speedseeed芯板坊Abrobt创乐博米尔科技嘉立创微相科技我爱开发板璞致电子香橙派EAI北醒司岚SenkyLaser宇树科恩光电骆鸵互娱科技奥比中光韦东山老师个人店 WeAct StudioOpenJumper开源SDR实验室友善alinx
知乎博主 Random Walker迷途小书童任乾吴桐Hyperionyangongmin曹小白左家垅宋威龙咖啡萝卜丝杨熙Welson WEN枯荣有常计算机视觉life半闲居士邱笑晨ChurlaaaaaaaRealcat刘国庆泰伦斯-Ternence鱼香ROS行知SLAMHyperionYusheng李想清风
CSDN博主 Random-Walker辉——书生意气GISer.Wang他人是一面镜子,保持谦虚的态度随心乐行十八与她Lucid_Sheep卡尔曼的BD SLAMer梧桐Fighting路痴导航员魔方的块枯荣有常WHU-学渣GNSS初学者LZ_CUMTicebeartyst08hyisoeunbiliverbalMy.科研小菜鸡沃斯故我在什么都不会的小澎友李太白lx非正式定位算法人不学习就落后学测绘的小王GNSS-by flying fish如阳光如你ManiiCharmvejr9910开源SDR实验室difudan4777Amentia outsiderJANGHIGH
微信公众号 不迷途导航程序员慧天地自动驾驶之心3D视觉工坊**北斗卫星导航系统古月居**测绘学会计算机视觉life卫星导航国际期刊卫星应用泡泡机器人SLAM经纬石旁话遥测i2Nav多源智能导航实验室GNSS与自动驾驶导航员学习札记测绘家绘长安**卫星导航年会
个人网站 无处不在的小土吴言吴语小孙同学小孙同学整理郭晓力测绘之路R2CodingRealCatUinIOplt-labs廖雪峰bugstack酷壳Jakob Engel鱼香ROSLazyTomatoLab阮一峰的网络日志Debug客栈刘未鹏吴奇GanAHE杨小康zx119BruceBruce 整理
技术社区论坛 w3cschool牛客网LeetcodeLintCode博客园CSDN掘金简书腾讯云社区阿里云社区开发者头条GitChat科学网知乎思否v2exTutorialspointGeeksforGeeksStack Overflowdev.ioDZoneBytesGoogle Developers菜鸟教程CodinGameCourseraApeclass51CTO吾爱破解慕课网**大学MOOC马克笔记21IC电子工程专辑电子设计技术Eetop立创Hub电子森林电子发烧友与非网EDA365电子工程世界阿莫电子开源**图灵社区博文视点地信网理工酷计算机视觉life深蓝学院硬禾学堂古月居鱼香社区正点原子所有产品和资料亚博智能资料van-nav 整理UNTAG
电子书下载 书栈网脚本之家码农之家鸠摩搜书计算机书籍控淘链客hello girl工联信息网IT熊猫搬书匠Awesome-Zlibrary 整理
导航视频教程 严恭敏-卡尔曼滤波与组合导航i2NAV-惯性导航i2NAV-组合导航斯坦福GNSS公开课王茂松-导航系统原理吴德伟-导航原理高成发-GNSS原理哈工大-GNSS原理朱家海-惯性导航系统机器人工匠阿杰-ROS入门杨旭-GNSS接收机赵乐文-开源GNSS数据处理软件介绍赵乐文-多模卫星导航定位与应用介绍冰菓的RTKlib&GAMP泰伦斯-GNSS伪距单点定位大胡子刘师傅-组合导航入门小虎哥-机器人SLAM导航核心技术与实战赵玉新-导航定位系统船舶定位与导航邓岳川-GNSS原理国科大-智能机器人系统东南大学-智能汽车技术浙大-自主移动机器人北理工-无人驾驶车辆武大-测绘学概论武大邱卫宁-误差理论与测量平差基础卡尔曼滤波器-目标追踪Arduino快速上手-LazyTomatoLab计算机视觉life-付费课程深蓝学院-付费课程硬禾学堂-付费课程古月居-付费课程
导航考研院校 长安大学测绘学院浙工大信息工程学院安理工测绘学院中山大学地科学院中山大学电子通信学院西工大自动化徐矿测绘学院合工大测绘学院滁州学院地信学院河海地科学院南航自动化学院南航航空学院南理工自动化学院南信大自动化学院南信大遥感测绘学院南邮自动化学院南邮地信学院南师大地科学院东南大学仪科学院东南大学交通学院清华仪科学系北大遥感地信研究所北大地空学院武大测绘学院武大GNSS中心武大测绘遥感国重武大遥感学院武大珞珈实验室武大南极研究中心**测绘科学研究院**科学院精密测量研究所**科学院国家授时中心**科学院空天信息创新研究院华东师范地信学院哈工大智能学院同济测绘学院同济电信学院北建测绘学院武理工航运学院武理工资环学院山科大测绘学院山建测绘学院上交感知学院北理工自动化学院国科大智科学院西南交大地环学院河南理工测绘学院兰州交通测绘学院中南地信学院东北大学自动化学院湖南科技大学资环学院重邮自动化学院华中科技自动化学院浙大控制学院
国内知名团队官网 武大牛小骥i2NAV武大耿江辉Pride武大钟燕飞RSIDEA武大姚剑CVRS武大郭迟BRAIN武大张祖勋数字摄影测量与计算机视觉研究中心上交感知与导航研究所同济李博峰GNSS研究团队
SLAM研究团队 香港科技大学空中机器人实验室香港科技大学机器人与多感知实验室 RAM-LAB香港中文大学天石机器人实验室浙江大学 CAD&CG 国家重点实验室美国密歇根大学感知机器人实验室(PeRL)美国卡耐基梅陇大学机器人研究所美国加州大学圣地亚哥分校语境机器人研究所美国特拉华大学人感知与导航组美国麻省理工学院航空航天实验室美国麻省理工学院 SPARK 实验室美国麻省理工学院海洋机器人组美国明尼苏达大学多元自主机器人系统实验室美国宾夕法尼亚大学 Vijay Kumar 实验室美国麻省理工学院 Robust Robotics Group美国佐治亚理工学院智能视觉与自动化实验室加拿大蒙特利尔大学机器人与嵌入式 AI 实验室加拿大舍布鲁克大学智能、交互、综合、跨学科机器人实验室瑞士苏黎世大学机器人与感知课题组瑞士苏黎世联邦理工 Vision for Robotics Lab瑞士苏黎世联邦理工计算机视觉与几何实验室瑞士苏黎世联邦理工自主系统实验室英国帝国理工学院戴森机器人实验室英国牛津大学信息工程学德国慕尼黑工业大学计算机视觉组德国马克斯普朗克智能系统研究所嵌入式视觉组德国弗莱堡大学智能自主系统实验室德国波恩大学摄影测量与机器人实验室西班牙萨拉戈萨大学机器人、感知与实时组 SLAM 实验室西班牙马拉加大学机器感知与智能机器人课题组奥地利格拉茨技术大学计算机图形学与视觉研究所波兰波兹南工业大学移动机器人实验室澳大利亚昆士兰科技大学机器人技术中心澳大利亚机器人视觉中心日本国立先进工业科学技术研究所
实用工具 NotePad++ThunderbirdMSys2TyporaEverything进程截杀器百叶窗飞书芦笋幕布ProssOnEV 录屏XMindMobaXtermPotPlayerZoteroWinMerge火绒360SnipasteQuicker超级公式冰点文库下载器Bandizip天若 OCRDropitfluxQuickLookGeek Uninstaller日期计算器SpaceSniffer

 👆👆👆  转到文件夹   or   回到开头   👆👆👆


📚 推荐书籍 📚

封面 简介
image-20240331145552445

《GPS原理与接收机设计》谢刚

    我最推荐的卫星导航入门参考书,全面且系统地介绍了GNSS的原理。从信号体制到接收机信号处理,从观测值误差分析到各种定位技术,再到航位推算、组合导航和地图匹配等,无一不包。这本书能让你深入透彻地理解GNSS的工作原理,为后续的进阶学习打下坚实的基础。

    对于从事GNSS数据处理的朋友,我强烈推荐你们学习基带算法。只依赖接收机输出的伪距、载波、多普勒和信噪比等数据进行定位,还是太浅了;深入了解接收机内部的原理,包括卫星信号的结构、发射方式、传播过程,以及接收机的天线信号接收、射频前端处理、基带数字信号处理等全流程,能够让你对数据处理算法有更深刻的理解;而且许多GNSS的岗位不仅要求掌握定位技术,还要求对基带算法有所了解。

👉👉👉  点击下载  👈👈👈

image-20240331152342461

《软件定义的GPS和伽利略接收机》

        薄薄的一小本,一百多面,我主要是推荐配套的开源程序SoftGNSS,MATLAB 编写,实现了一套最简单的 GNSS 软件接收机功;输入经过天线接收,射频前端滤波下变频后的数字中频信号文件,进行 GPS L1 C/A 码的捕获跟踪,生成伪距观测值,解译导航电文,最小二乘定位解算;代码量很小也很简单,适合作为 GNSS 基带数字信号处理的入门阅读程序。

👉👉👉  点击下载  👈👈👈

image-20240331152305330

《北斗GPS双模软件接收机》鲁郁

        主要是推荐书附带的程序,MATLAB 编写 GPS-L1/BDS-B1 软件接收机,学一学北斗信号处理算法,NH码处理啥的;程序运行相当耗时,70s 的数据要算几个小时。书写的有些部分写的比谢刚的《GPS原理与接收机设计》要细致深入,代码的有些部分处理的比SoftGNSS细致,可以结合着一块看。

👉👉👉  点击下载  👈👈👈

image-20240331151907738

《GPS测量与数据处理》李征航

        市面上有不少 GPS 数据处理算法的书,这本应该是看的人最多的,很多论文的参考文献列表里都有它,讲的很全面,很细致,可以准备一本在手头放着,有忘了的基础算法查一查;建议结合着 B 站赵乐文老师的《多模GNSS定位与应用介绍》课来看,赵老师的视频补充了很多的工程知识和多系统算法。

        当然,初学者光靠书是没法学明白 GPS 算法的,把整本书看完了,你可能还是捋不清该如何从伪距/载波/多普勒和星历,一步步算出 SPP/RTK/PPP 解;对算法有一些了解之后,就应该找一套开源程序深入学习,无论是科研还是工程实践,都可以在开源程序的基础上拓展,从而节省大量基础工作的时间和精力。

        至于其它的 GNSS 数据处理书,我都不推荐看,入了门之后就该看论文,先看综述,再看硕博学位论文,之后可以顺着引用的文献继续看;看综述,帮你快速了解所处领域的研究进展;看硕博论文,补充一些书上没讲到的算法和知识点;不推荐初学者看英文原著,英文书写的也不能比中文的强多少,但是英语带来的学习障碍可不小。

👉👉👉  点击下载  👈👈👈

image-20240331150756809

《GNSS与惯性及多传感器组合导航系统原理》Groves

        我最推荐的惯导和组合导航入门参考书,写的通俗易懂,比其它的惯导书易读的多;七百多面,把组合导航的方方面面都介绍到了(除了初始对准)。惯导入门建议直接学捷联惯导(不建议学平台惯导,现在很少用到),把几种姿态旋转、几种坐标系理解了之后,对着公式看代码。

👉👉👉  点击跳转  👈👈👈

image-20240331150652642

《捷联惯导算法与组合导航讲义》严恭敏

        严老师把捷联惯导、组合导航的算法讲的很透彻,不过整本书都是公式推导,学起来相当有难度;前三章介绍常用姿态、坐标系,地球相关参数计算,第四章介绍捷联惯导递推、误差传播,五六章介绍参数估计、各种滤波,第七章介绍松组合、初始对准,第八章讲仿真。B 站有上配套的视频课《卡尔曼滤波与组合导航》,严老师开源了配套的 MATLAB 捷联惯导工具箱 PSINS,都是入门捷联惯导、组合导航不错的资料。

👉👉👉  点击下载  👈👈👈

image-20240331152721060

《视觉SLAM十四讲》高翔

        SLAM入门首选参考书,系统介绍了视觉SLAM所需的基本知识与核心算法,内容全面、结构清晰、理论与实践相结合。既包含数学理论基础,如三维空间的刚体运动、非线性优化,又涵盖计算机视觉的算法实现,如多视图几何、相机标定、图优化、卡尔曼滤波等。而且作者提供了大量的实例代码供读者学习研究,有助于读者更深入地掌握SLAM技术的实现细节。网上有很多相关的读数笔记,相关的网课,可以作为入门学习的参考。

👉👉👉  点击跳转  👈👈👈

image-20240331152834041

《视觉惯性SLAM》程小六

        计算机视觉Life程小六写的ORB-SLAM3的源码解析,质量比大部分的博客讲义高的多,学完《视觉SLAM十四讲》就该继续学常用的SLAM框架,结合着代码深入学算法,基于ORB特征点的ORB-SLAM3是一个不错的选择,支持单目/双目/RGB-D、惯性紧组合、回环检测、重定位,在开源数据集上有不错的效果,缺点是计算量大、代码BUG多、对外参标定要求高。在六哥的知识星球《小六的机器人AI圈》中有读书挑战赛活动,感兴趣可以去看看。

👉👉👉  点击跳转  👈👈👈

image-20240401082145458

《自动驾驶中的SLAM技术》高翔

        既《视觉SLAM十四讲》后高翔的又一力作,系统的介绍激光惯性SLAM理论,采用 C++17 标准编写例程,全书分三部分:

  • 基础数学知识:基础几何学、运动学知识,参数估计回顾,IMU预积分
  • 激光雷达的定位与建图:基础点云算法、2D-SLAM、3D-SLAM、激光惯性松组合里程计
  • 应用实例:Lins、离线点云地图构建、已有点云地图中定位、实时定位

👉👉👉  点击下载  👈👈👈

image-20240331152222633

《概率机器人》塞巴斯蒂安·特龙

        相当好的机器人导航入门参考书,包括了参数估计、定位、地图构建、规划与控制四大部分;每章的最后都提供了练习题和动手实践的项目;对于每种算法,均提供了:①伪码示例;②完整的数学推导;③实验结果;④算法优缺点的详细讨论。

        既使你不做机器人导航、不做SLAM,也推荐你看看它的前四章,参数估计部分,相信能让你对最小二乘、卡尔曼滤波有更深一层次的认识。

👉👉👉  点击跳转  👈👈👈

image-20240331151755099

《自适应动态导航定位》杨元喜

        首先分析了函数模型误差补偿和随机模型误差补偿法;讨论了Kalman滤波的残差向量、新息向量及状态预报值残差向量的解析关系及协方差矩阵之间的关系;分析了基于新息向量、残差向量和状态预报值残差向量的自适应协方差估计存在的问题;对抗差滤波、Sage自适应滤波进行了综合比较与分析。创建了一套全新的动态自适应抗差滤波理论体系,研究了相应解的性质。构造了三段函数、两段函数和指数函数三种动态自适应因子;讨论了Sage滤波与自适应滤波组合的导航解算方法,基于方差分量估计的自适应滤波理论。构造了最优自适应滤波理论。建立了卫星轨道的自适应定轨理论与方法,提出了一种综合Sage滤波和自适应抗差滤波的新的轨道计算方法。最后对组合导航理论进行了探讨。

👉👉👉  点击下载  👈👈👈

image-20240331193252920

《C++Premier》

        直译过来叫“C++入门”,但不适合完全零基础看,适合初学者上过了C语言或者C++课,有了一点点基础之后看,难度比其它的 C++ 入门书籍、教材稍大,写的很详细,不光讲语法,还会讲一些代码设计经验以及一些避坑指南,文笔幽默风趣让人心情愉悦;可以放一本在手边,语法生疏了,查一下;它还有个简略的版本:《C++ Premier Plus》,也是C++入门不错的参考书。

👉👉👉  点击跳转  👈👈👈

image-20240331152422181

《EffectiveC++》

        以条款的形式列举了55条C++语法的使用建议,帮助我们提高代码质量、性能、可读性、可拓展性,让我们对 C++ 编程的理解更上一层楼;使用的 C++ 版本比较老,很多内容不适用于现代 C++,看完之后可以再看看类似的《Modern Effective C++》、《Effective STL》。

👉👉👉  点击跳转  👈👈👈

image-20240401082527986

《C++20高级编程》

        全面、详实的介绍了C++的方方面面,还有案例讲解,非常适合现代C++入门学者;C++ Primer没涵盖新的语法特性(仅到C++11),而且将来也大概率不会涵盖了,因为作者已经去世了;市面上其他介绍C++20的书,大多都只介绍C++的新特性,是给那些已经掌握了C++的读者读的(用来了解新特性),不适合初学者。

👉👉👉  点击跳转  👈👈👈

image-20240331150921116

《测绘程序设计》李英冰

        测绘程序设计比赛的参考书,每一节介绍一种测绘相关的算法(大地主题正反算、空间前方交会、伪距单点定位等)提供了配套的示例程序(C#为主,一大半程序都有BUG),测绘类院校学生学完了编程语法,就可以从这里找程序练练手;建议初学者先认准一套程序学,先把例程跑通、读懂,然后照着例程敲两遍,再脱离例程试着从头自己写。数据处理算法,无外乎就是三部分:读取数据、数值计算、输出结果,提供练习这里的程序都可以学到;把这书上几百行的代码学明白、写明白了,你再去看正儿八经的上万行的开源程序就容易多了。

👉👉👉  点击下载  👈👈👈

image-20240331153002713

《大话数据结构》程杰

        数据结构通常被认为是计算机科班学生最重要的课,面试要考算法题,找工作前要刷LeetCode;对我们非科班写算法的程序员也同样重要,懂点数据结构和算法,你才能写出更高效的程序,你才能学明白STL,而且我们找算法相关的工作也可能要考算法题的;咱不一定要像科班学生掌握那么熟练,能理解常用的数据结构、算法就行,并不需要都会实现。

        咱们学数据结构和算法推荐看《大话数据结构》,它用生动有趣的对话、直观的图示,将复杂的数据结构概念变得简单易懂,让读者能够轻松掌握数据结构的基本原理和应用,进而提升编程能力和算法思维,它不像正儿八经的课本那么枯燥,对咱们非科班的程序员相当的友好。

👉👉👉  点击下载  👈👈👈

 👆👆👆  转到项目   or   回到开头   👆👆👆


📽 推荐视频课程 📽

封面 简介
image-20240331145552445

《误差理论与测量平差基础》邱卫宁

        导航定位建图本质上都是参数估计问题,各种算法都要按最小二乘、卡尔曼滤波的方式来理解,初学导航,推荐先看武大邱卫宁《误差理论与测量平差》的前三章(误差理论、协方差与权、最小二乘原理),然后再看严恭敏《卡尔曼滤波与组合导航》前两节。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《卡尔曼滤波与组合导航原理》严恭敏

        严老师给博士讲的课,这是腾讯会议直播的录屏,把卡尔曼滤波、捷联惯导、组合导航的算法讲的很透彻,前七讲介绍各种卡尔曼滤波,后三讲介绍捷联惯导和组合导;建议搭配着《捷联惯导与组合导航原理》和开源程序PSINS来学。

        即使你不做惯导,也推荐看看前两节,能让你对最小二乘和卡尔曼滤波有更深一层的认识,听严老师这两节课比听我老师讲一学期的《最优估计》收货还要大。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《惯性导航》武大i2Nav

        武大导航工程本科生课程,比严老师的课简单的多,只讲捷联惯导,先介绍IMU的原理、误差特性,然后介绍各种姿态和旋转,最后是捷联惯导递推和噪声传播,推荐搭配着i2Nav的讲义来看。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《组合导航》武大i2Nav

        武大研究生课程,是《惯性导航》课程的深入,介绍了先介绍IMU特性、标定、对准,然后回顾了各种姿态和旋转,最后是捷联惯导递推和噪声传播,最后两讲介绍松紧组合;学完之后推荐结合着讲义看PSINS程序,程序很简单,只有1300行,网上也有很多讲解,能把程序看懂才是真的学明白了。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《测绘学概论》武大

        测绘通识课,六位院士每人讲一节,分别是:宁津生《绪论》、陈俊勇《大地测量学》、李德仁《遥感科学与技术》、张祖勋《摄影测量》、龚健雅《地理信息系统》、刘经南《导航定位与北斗》。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《卫星导航系统》哈工程

        全面且系统地介绍了GNSS的原理。从信号体制到接收机信号处理,从观测值误差分析到各种定位技术,推荐搭配着谢刚的《GPS原理与接收机设计》来看。

👉👉👉  点击跳转  👈👈👈

《多模卫星导航系统介绍》赵乐文

        网上的其它GNSS课程,大都只讲原理,只讲 GPS 系统,学完了,你可能还是捋不清该如何从伪距/载波/多普勒和星历,一步步算出 SPP/RTK/PPP 解;相比起来,赵老师这套课更加的贴近科研和工程,他会讲多系统的算法,讲RINEX文件,讲RTKLIB代码。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《卫星导航接收机设计》杨旭

        北航杨旭博士录的接收机教程,主要是给他的同学看的,用FPGA实现一套B1I-B3I接收机,评论区里提到会开源;硬件接收机的实现和软件接收机有很大的不同,要额外考虑相当多的工程问题,杨旭这套视频讲的很详细,能给想了解硬件接收机的朋友带来不少帮助。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《GNSS伪距单点定位》罗宏昆

        矿大本科生录的Python伪距单点定位视频教程,用Jupyter-Notebook编写,在Github开源,学学他的编码风格、编程思路。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《Arduino快速上手》LazyTomatoLab

        懒番茄的Arduino入门教程,三小时就能看完全部视频;对于非科班,想要尝试去编程操作硬件,Arduino 是一个不错的选择,上手最简单,做了很多的封装,不需要了解内部的寄存器就可以写单片机程序;最近几年乐鑫出品的 ESP32 系列都对Arduino框架有不错的支持,性能高而且带蓝牙WiFi,很适合用来做一些小的物联网创客项目。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《ROS入门》机器人工匠阿杰

        通俗易懂的ROS导航入门教程,先讲ROS的使用、编程,然后介绍激光雷达、SLAM相机、IMU、ROS导航功能包。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《物联网NBIOT定位器》立创EDA

        立创EDA官方出品,手把手带你搭建一套GPS定位器,基于移远BC20-GNSS模块和STM32,教程包括三部分:硬件PCB设计、单片机程序设计、云平台应用设计。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《MATLAB科学计算》

        学MATLAB就得结合着数据处理算法,不然只会基础语法你还是很难写算法,全套视频六十个小时,选择需要的章节看就行了。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《计算机科学速成课》Crash Course

        Crash Course 出品的计算机通识课,从电子管到逻辑门再到CPU,从指令集到高级语言再到数据结构,从计算机网络到网络安全再到加密算法,从机器学习到自然语言处理再到机器人学;一层一层地向上推进,帮助你建立起对计算机体系全面的认识。

👉👉👉  点击跳转  👈👈👈

image-20240331145552445

《统计学速成课》Crash Course

        也是 Crash Course 出品,从最基础的均值、方差一直讲到大数据、神经网络,能让你真正地理解统计学,而不仅仅只停留在会做题的层面;导航定位建图本质上都是参数估计问题,属于统计学的范畴,都要用统计学的方式去理解。

👉👉👉  点击跳转  👈👈👈

---

🌏 推荐一些不错的RSS源,在信息爆炸且碎片化的当下,建立个人专属信息聚合 🌏

订阅源 网址 RSS-URL

 👆👆👆  RSS上手   or   回到开头   👆👆👆


本仓库介绍的开源程序

RTKLIB 是全球导航卫星系统 GNSS 开源定位解算程序包,由日本东京海洋大学的高须知二(Tomoji Takasu)开发,由一个核心程序库和多个命令行程序界面程序组成;代码规范、功能完善、可拓展性好,许多 GNSS 导航定位程序开源程序都是基于 RTKLIB 二次开发衍生而来,适合作为 GNSS 入门学习的代码。

RTKLIB

  • 支持多个 GNSS 系统的标准和精密定位算法,包括 GPS,GLONASS,Beidou,Galileo,QZSS 和 SBAS。

  • 支持 9 种GNSS实时和后处理定位模式

    • single:伪距单点定位
    • DGPS/DGNSS:伪距差分
    • kinematic:载波动态相对定位,动态RTK,假设流动站是移动的,可以做车载定位
    • Static:载波静态相对定位,静态RTK,两站都是静止的,可以得到很高的精度
    • Moving-Baseline:两站都动,双天线,主要用来定姿
    • Fixed:固定坐标,解算模糊度、对流层、电离层等参数
    • PPP-Kinematic:动态精密单点定位
    • PPP-Static:静态精密单点定位
    • PPP-Fixed:PPP 固定坐标,解算模糊度、对流层、电离层等参数。
  • 支持多种GNSS标准格式和协议:RINEX2.10、RINEX2.11、RINEX2.12、RINEX3.00、RINEX3.01、RINEX3.02、RTCM2.3、RTCM3.1、RTCM3.2、BINEX、NTRIP、NMEA0183、SP3、ANTEX1.4、IONEX1.0、NGS PCV、EMS 2.0。

  • 支持多种GNSS接收机专有数据协议格式:NovAtel:OEM4/V/6,OEM3, OEMStar、Superstar II、 Hemisphere、Crescent、u‐blox:LEA-4T/5T/6T、SkyTraq、JAVAD 、GW10-II/III 和 NVS。

  • 支持外部通信:Serial、TCP/IP、NTRIP、本地日志文件、FTP 和 HTTP。

  • 提供许多代码库和API:卫星和导航系统函数、矩阵和向量函数,时间和字符串函数、坐标的转换,输入和输出函数、调试跟踪函数、平台依赖函数、定位模型、大气模型、天线模型、地球潮汐模型、大地水准面模型、基准转换、RINEX函数、星历和时钟函数、精密星历和时钟、接收机原始数据函数、RTCM函数,解算函数、谷歌地球KML转换、SBAS函数、选项(option)函数、流数据输入和输出函数、整周模糊度解算、标准定位、精密定位、后处理定位(解算)、流服务器函数、RTK服务器函数、下载函数。

推荐阅读:不迷途导航程序员:RTKLIB 源码阅读笔记

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


GAMP 全称 (GNSS Analysis software for Multi-constellation and multi-frequency Precise positioning),在 RTKLIB 的基础上,将一些些多余的函数、代码简洁化,精简出后处理双频 PPP 部分,并对算法进行改进增强。对初学者非常友好,在我接触过的导航定位开源程序中算是最简单的,是用纯 C 语言编写,由于做了简化,代码比 RTKLIB 原版还要简单;使用也非常简单,软件包里直接有 VS 工程,和组织好的配置、数据文件,简单改改路径就能算出结果。

GAMP

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


PSINS(Precise Strapdown Inertial Navigation System 高精度捷联惯导系统算法)工具箱由西北工业大学自动化学院惯性技术教研室严恭敏老师开发和维护。工具箱分为Matlab和C++两部分。主要应用于捷联惯导系统的数据处理和算法验证开发,它包括惯性传感器数据分析惯组标定初始对准惯导AVP(姿态-速度-位置)更新解算、组合导航Kalman滤波等功能。C++部分采用 VC6 编写,可以用于嵌入式开发。

image-20231224221345981

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


澳大利亚

基于 RTKLIB 改写,做了面向对象封装,

大量使用 C++11/14/17 的新特性,使用了 Boost库,PEA 的主函数就有 500 行,读起来比较困难;

依赖的库较多,好在提供了 Docker;

可以运行在 Linux 和 MacOS,在 Windows 下需运行在 WSL 或 Docker 环境

文档很详细,而且可以生成 Doxygen,根据注释生成网站,可以方便的查看类型嵌套和程序调用

包括 PEA 定位和 POD 定轨程序,

PEA 用 C++、POD 部分用 Fortune,绘图和批处理脚本用 Python

矩阵运算主要用 Eigen 实现,也用 OpenBLAS 进行多线程矩阵运算

推荐阅读:不迷途导航程序员:PEA源码阅读笔记

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


goGPS是一个处理GNSS原始数据的软件,最初支持单频低成本GPS接收机数据,但现在也可以用来处理多频多系统GNSS数据。它实现了多种算法来解算,目前包括两个主要的最小二乘法(LS)引擎:一个基于于组合观测数据(例如无电离层观测);另一个能够使用所有的频率和记录的信号数据,而不进行任何组合(电离层延迟是正常方程的参数)。组合和不组合的引擎都支持PPP、NET解算。目前只支持静态测站的解算,还不能动态解算。

goGPS Main Window

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


GICI-LIB 全称 GNSS/INS/Camera Integrated Navigation Library,是上海交大最新开源的一套基于图优化的 GNSS+INS+Camera 集成导航定位库。基于 RTKLIB 处理 I/O 流、编解码;基于 OKVIS 因子图优化类型封装;基于 SVO 做特征提取。以 GNSS 为主,再加入 INS、Camera 做组合,支持相当多的数据格式、定位模式,包含很多 GNSS 因子、惯导因子、视觉因子及运动约束。以处理实时数据为主,后处理也采用模拟实时数据处理的方式进行。

典型应用方式如下图:

1689512108793

包含以下估计器:

1690024555067

补充:GICI 还在持续更新,前段时间看作者还准备加 PPP/IMU/Camera 紧组合模式。

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


SoftGNSS 是《软件定义的GPS和伽利略接收机》附带的程序,MATLAB 编写,实现了一套最简单的 GNSS 软件接收机功;输入经过天线接收,射频前端滤波下变频后的数字中频信号文件,进行 GPS L1 C/A 码的捕获跟踪,生成伪距观测值,解译导航电文,最小二乘定位解算;代码量很小也很简单,适合作为 GNSS 基带数字信号处理的入门阅读程序。主要执行流程如下:

SoftGNSS流程图

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


与双目相机和 RGB-D 相机相比,单目相机具有结构简单、成本低和处理速度快的优点。然而,单目 VSLAM 存在尺度不确定性、无法对齐位姿和重力方向的自身缺点和快速运动导致的运动模糊的环境下容易跟踪丢失等不足。为弥补此问题,可将单目相机和 IMU 相结合的传感器融合,这种融合方案被称为单目视觉惯性里程计(Visual Inertial Odometry,VIO)或单目视觉惯性 SLAM(Visual-inertial SLAM,VINS)。

  • IMU 也可以弥补视觉 SLAM 在短时间、快速运动上的不足,另外由于 IMU 不依赖外界环境信息,对环境变化不敏感,也可以在少纹理、明暗变化较大或者光线较弱场景内提供短期的定位方案以及位姿估计方案。

  • 较之惯性信息,视觉里程计可以提供丰富的外界信息,在低速平稳的运动中位姿估计稳定,而且视觉里程计在长时间运行后的漂移较小,并且可以通过回环检测修正自身位置以减小累积误差。

香港科技大学沈劭劼团队开发的 VINS 系统,用了一种紧耦合的非线性优化方法。该团队在 2017 年发布的 VINS-Mono 通过在四元数上进行 IMU 的预积分,并且采用滑动窗口法融合 IMU 信息和相机观测到的特征数据,实现了数据的紧耦合。并且采用四自由度的图优化方法实现了回环检测模块,来得到全局约束。在 2019 年,该团队又发布了 VINS-Fusion,在 VINS-Mono 的基础上又加入了双目、双目+IMU 等更多的传感器类型,以及支持了 VINS 和 GPS 的融合。它支持在线标定相机及 IMU 参数及鱼眼相机模型,并且支持保存当前地图和加载过往地图。在与 IMU 的结合上,它采用了四元数积分方案,与视觉信息进行紧耦合,具有很强的鲁棒性和定位精度。

img

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


ORB 指 Oriented FAST and rotated BRIEF,是一种结合 FAST 和 BRIEF,并引入旋转不变性的一种特征点和描述子;SLAM 指 Simultaneous Localization and Mapping,指的是同时进行实时定位和地图构建。

ORB-SLAM3 是迄今为止,最完整的视觉惯性 SLAM 系统系统,它是第一个集成了单目相机、双目相机、RGB-D相机,以及单目相机结合 IMU、双目相机结合 IMU 的 SLAM 系统。并且在 ORB-SLAM2 的基础上,改进了相机模型,使其不再局限于传统的小孔成像模型,而是可以扩展到鱼眼模型。在与 IMU 的结合上,它根据运动模型在流形上进行 IMU 的预积分的方式,然后采用非线性优化的**,将 IMU 的预积分结果和视觉 SLAM 的重投影模型一同进行图优化,使得预积分残差以及重投影误差共同达到最小,以此来完成视觉信息和惯导系统的紧耦合。并且它采用了更为快速的初始化方法,以及丢失跟踪后利用惯导系统快速重定位方法。此外,它还采用地图集的方式,实现了对大场景的定位建图。这也是如今众多开源方案中,功能最强大、最精准的方法。系统框图如下:

image-20230815102741960

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


GNSS-SDR(GNSS: Global Navigation Satellite Systems、SDR: Software Defined Receiver),在 GitHub 上搜索 “GNSS” 排第一的仓库,收藏量也高达 1.3k。与上面列举的 RTKLIB、GAMP 等 GNSS 数据处理软件不同,GNSS-SDR 直接对信号进行处理,是一个用 C++ 实现的 GNSS 软件接收机开源项目。有了 GNSS-SDR,用户可以通过创建一个图来构建 GNSS 软件接收器,图中的节点是信号处理块,线条代表它们之间的数据流。该软件为不同的合适射频前端提供接口,并实现从接收器一直到 PVT 解算的所有功能。它的设计允许任何形式的定制,包括信号源、信号处理算法、与其他系统的互操作性、输出格式的互换,并为所有中间信号、参数和变量提供接口。

软件旨在促进新信号处理技术的发展,提供一种简便的方法来衡量这些技术对接收机整体性能的影响。通过对每个软件模块进行系统功能验证,以及使用真实和合成信号对整个接收机进行实验验证,对所有流程进行测试。

目前的技术仍无法以卫星发射频率(约 1.5 GHz)对信号进行数字处理,因此我们仍需要一个射频前端,将信号降频到较低频率,在此过程中进行一些滤波和放大,并以一定的速率进行采样,将量化的数字原始采样流传输到计算平台(通过 USB、以太网等)。

软件接收机可在普通的 PC 中运行,并通过 USB 和以太网总线为各种市售或定制的射频前端提供接口,使处理算法适应不同的采样频率、中间频率和采样分辨率。它还可以处理存储在文件中的原始数据样本。软件对可用的卫星信号进行信号采集和跟踪,对导航信息进行解码,并计算定位算法所需的观测值,最终实现完整导航解决方案。处理输出可存储在 RINEX 文件中,或通过 TCP/IP 服务器以 RTCM 3.2 消息形式实时传输。导航结果以 KML 和 GeoJSON 格式存储。

GeneralBlockDiagram

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


KF-GINS 是武大 i2Nav 实验室开源的一套松组合导航程序;可以读取 IMU 数据文件、GNSS 结果文件,进行松组合解算,计算位置、速度、姿态、陀螺仪零偏、加速度计零偏、陀螺仪比例、加速度计比力,共 21 维状态向量。代码量小,有详细的文档、注释和讲解,代码结构很好理解,有一些可以学习的工程技巧。

kf-gings structure

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


武大 I2NAV 开源,基于图优化的 IMU/GNSS 松组合解算,IMU 预积分算法相比以视觉为主的 ORB-SLAM3、VINS 要精细一些。

OB-GINS 执行流程

相关链接:

  • 开源地址:https://github.com/i2Nav-WHU/OB_GINS,
  • 相关论文:
    • Hailiang Tang, Tisheng Zhang, Xiaoji Niu, Jing Fan, and Jingnan Liu, “Impact of the Earth Rotation Compensation on MEMS-IMU Preintegration of Factor Graph Optimization,” IEEE Sensors Journal, 2022. 下载
    • Junxiang Jiang, Xiaoji Niu, and Jingnan Liu, “Improved IMU Preintegration with Gravity Change and Earth Rotation for Optimization-Based GNSS/VINS,” Remote Sensing, vol. 12, no. 18, p. 3048, Sep. 2020, doi: 10.3390/rs12183048. 下载
    • Le Chang, Xiaoji Niu, and Tianyi Liu, “GNSS/IMU/ODO/LiDAR-SLAM Integrated Navigation System Using IMU/ODO Pre-Integration,” Sensors, vol. 20, no. 17, p. 4702, Aug. 2020, doi: 10.3390/s20174702. 下载

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


功能简单来说,就是根据输入的里程计等传感器的信息流和机器人的全局位置,通过导航算法,计算得出安全可靠的机器人速度控制指令。广泛用在一些对可靠性要求没那么高的自主导航机器人场景中,比如扫地机器人、物流机器人等。

image-20231111160631063

img

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


《北斗GPS双模软件接收机》书配套程序,MATLAB 编写,程序运行相当耗时,70s 的示例程序要算几个小时。

GnssRcvr_V14程序文件结构

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


PocketSDR 是 RTKLIB 作者写的一款 GNSS 软件接收机,包含一个射频前端和一套后处理 GNSS 接收机程序(只支持后处理),实现了一整套完整的 GNSS 接收机功能,采用 C、Python 编写,支持几乎所有的 GNSS 信号(比商业接收机支持的还要多),目前 0.8 版本的程序支持的信号如下:

  • GPS: L1C/A, L1CP, L1CD, L2CM, L5I, L5Q,
  • GLONASS: L1C/A, L2C/A, L3OCD, L3OCP,
  • Galileo: E1B, E1C, E5aI, E5aQ, E5bI, E5bQ, E6B, E6C,
  • QZSS: L1C/A, L1C/B, L1CP,L1CD, L1S, L2CM, L5I, L5Q, L5SI, L5SQ, L6D, L6E,
  • BeiDou: B1I, B1CP, B1CD, B2I,B2aD, B2aP, B2bI, B3I,
  • NavIC: L5-SPS, SBAS: L1C/A, L5I, L5Q

image-20240110092301571

👆👆👆  转到源码解读   or   转到项目地址   or   回到开头   👆👆👆


💾 最后写点废话,介绍一下我自己,谈谈写这个仓库的初衷 💾

先介绍一下我自己吧,我是安理工导航工程的本科生,从大一上开始学 C 语言、学 Python,大一下开始学平差、学 GNSS、学机器视觉、学单片机,大二上开始看 RTKLIB;大二下开始学惯导、学视觉SLAM。说来惭愧,我做事情好高骛远、见异思迁、眼高手低、执行力太差,折腾了三年,还没发过论文,没写出啥实用的开源程序,唯一值得一提的项目就是这个仓库了。

前前后后跟过四位老师,想学东西的太多、想做的项目一换再换;可能老师觉得我水平高,给我定的课题都很大(一个老师让我写一套实时 PPP、另一个老师说要带我写一套多源融合,没个三五万行都搞不定),再加上写这个仓库占用了我相当多的时间,折腾了三年,啥正儿八经的科研成果也没有。但好歹打下了不错的编程基础,把导航各个方向的技术路线都摸的差不多了,粗浅算算下来,读过的代码有四五十万行,写过的有三四万行,看了不少开源程序;工程实践的经验还有所欠缺,那也是没办法的事了,读研或者工作了终究会补上的。

身边的同学都追求着比赛获奖、发论文、发专利、拿奖学金、荣誉称号,但这些真的重要吗?过个十年二十年回头看,完全不值一提,就像幼儿园时候老师奖励的小红花;不争保研,绩点毫无意义,找工作主要看能力,考研也只看你那一次考试的分数;国奖八千,看着很多,但也许也只是你未来一个星期的工资,长远来看,能力最重要。在追逐梦想的道路上,扎实的技能和强大执行力使你走的更快,但最终决定了你能走多远的,是眼界和见识。上海交通大学生存手册里的几句话说的好:

  • 现实总是令人遗憾的。我们当中太多人已经习惯于沿着那一成不变的“典型成功道路”前进:中考,高考,考研,出国......数不清的人们在埋头赶路。走在前面的已然迷失,跟在后面的却还未开始思考。这不应该是一个国家、一个时代的精神。
  • 大学四年留给你的是你的人生,在你毕业之时,那一串苍白的分数其实就已经作废了。如果把目光放得稍微长远些,哪怕只是毕业后一两年,GPA就会贬得一文不值。我们是不是应该为了这一块“敲门砖”而折衷了我们的远期目标?
  • 我们耗费了大量的时间和精力掌握的那些考点、技巧,在真正的知识殿堂里根本登不上大雅之堂。哪怕我们特征值求得再熟练,积分积得再复杂,**的载人飞船也不会因此而顺利上天。
  • 挖空心思研究解题技巧的学生们,与同样挖空心思研究出题技巧的老师们,构成了一个完美的圆环。在二者日复一日的机械劳动中,我只看到纸张、电力,以及粮食不断被浪费,却看不到中华之崛起。
  • 当我们迫于学校的教学计划,被迫选一些看上去比较没用的课程时,总会听到一些充满善意的劝慰:“这些知识多学一些也没有什么不好,没准哪天就能用得到呢!”这种话乍听起来仿佛很有道理,但实际上却是不折不扣的谎言。
  • 事务对我们都会有影响,其价值必须定量,而非定性地讨论。出去义务扫马路可以陶冶你的情操,还可以锻炼身体。坐在家里背单词背一天你可以学会数百个新单词,提升英语水平。按照上面提到的“善意的逻辑”,这两者各有好处,仿佛难以取舍。但是我想在实际操作中,不会有人认为前者对你的益处更大。

经常听说谁谁谁发了几篇核心、几篇SCI,但只字不提他在学术领域有啥贡献、为社会创造了什么价值;很多人定目标都直接是要发多少多少论文、要发顶刊顶会,而不是说要做成什么事。最初人门发论文是为了传播科学工程知识,但现在很大程度上已经沦为了考核指标,硕博学生水论文求毕业、青椒水论文评职称;只关心论文的数量、期刊的影响因子,而不在乎论文本身的价值。类似的课题反复研究,拼拼凑凑提出的新算法大都毫无工程实践价值,新算法还不如老算法调参来的有用;大多数的论文都不提供源代码,很难去复现,甚至有的论文想读懂都困难。

双非学校缺乏科研的土壤,也缺乏科研所需的软硬件,水论文的情况尤为严重,本科生发的论文更是重灾区;看看以前本科或者研究生学长学姐发的论文,大概就知道自己能发个啥玩意了,一开始我是奔着发论文去的,但随着学的越来越多,也不咋在乎了,又没有科研压力,何必做自己不认可的事;成果无所谓,更注重学了什么学会了什么,扎实不扎实,本科生最重要的,是打下扎实的软硬件基础、培养对专业广泛的认识。

最开始写博客是在大二下,受两位优秀学长(王杰孙国旗)的启发,用两个小时学了 Markdown,用了一个晚上加一个早上写出了我的第一篇博客,上传到了CSDN:

RTKLIB源码阅读(一)VS配置RTKLIB、manual、矩阵、最小二乘和Kalman滤波基本函数

以现在的眼光看,写的相当差劲,初学者估计根本看不下去,但还是受到了很多朋友的鼓励和赞赏,被评选为了CSDN每日最佳新人(虽然第二名是写了篇Hello World~),坚定了我写下去的念头。在此之前我记笔记都是手写,大一大二记了得有二十来本(高数、计算机概论、计算机网络、编程、单片机、平差、GNSS、WebGIS),厚厚一摞,记完了从来不看。记电子笔记,传到网上,不光有人看,还有人给我点赞,挺好!在 CSDN 上写了九篇 RTKLIB、三篇 PSINS、两篇 GraphGNSSLib 之后,我开了个这个仓库,把之前的笔记都传了上来。

我相信,这么一个仓库,无论是对我自己还是对社会,远比发两篇论文有意义的多。发两篇论文,估计根本没人会注意到我这么一个小小的本科生,也很难说能对社会产生多少价值;写这么一个仓库,起码能帮自己整理思路、建立知识体系,如果能帮几个初学者入门,也算是公德一件。

如果你也和我一样,同为初学者,我强烈建议你也试试写点笔记,写的过程可以帮自己整理思路,分享出去也能帮到别人入门。从零开始写很耽误时间,所以我建议你在我的基础上来做,都说做事要站在巨人的肩膀上,我虽不是巨人,没有多高大,但是在我的基础上做,起码比平地起高楼要强。Navigation-Learning仓库里所有内容都可以为你所用,里面有我写的原始Markdown文件、Visio画的流程图、XMind画的思维导图;你可以摘出觉得有价值的段落,可以在我的流程图、思维导图基础上按你的理解修改,在我的基础上整理出属于你自己的一套笔记。

然后建议你也分享出来,把这份经验传承下去,写一个我这样的仓库、或者发到CSDN、知乎上、亦或者建一个个人网站;形式不重要,重要的是内容,重要的是开始做,重要的是坚持。小孙同学的博客里的几句话说的好:

  • 从无序到有序,从碎片化到结构化,从输入到输出,当知识完整的经过了你的大脑,那我想他会永远属于你!
  • 面对一个全新的事情,刚开始做不完美几乎是板上钉钉的事情。如果要求自己上来就做的很好,就相当于找了根绳子把自己的手和脚都绑了起来,那又该如何行走呢。接受像“屎”一样的开始,我想,我现在便可以起航了!
  • 接受像屎一样的开始,不断优化、 不断迭代。做自己真正想做的事情,要听取他人的建议,但同时也要保留自己的观点和看法,人是会成长的,时间会证明一切。

先把仓库建起来,先写起来,刚开始内容差,甚至自己都看不下去,这无所谓;坚持下去,不断地写,不断地优化,不断的迭代,伴随着学识的增长、写作能力的提升,你会写的越来越好,内容质量终究会提上去的;读者会越来越多,收藏会越来越多,能帮助到的人也越来越多。

你我都是开源文化的受益者,都曾被前人的光芒所照亮,理应把这份光明延续下去,为之贡献自己的一份力,做一些对社会有价值的事。去试试,去努力给这个世界留下点什么,因为你来过,这个社会而变得更好。导航是个小众行业,圈子不大,让大家都认识认识你,多多交流,一定比自己闷头做要好。俗话说的好,赠人玫瑰,手有余香,照亮他人的同时,也成就了你自己。

在如今这个快节奏、碎片化的时代里,仍然有一群人能秉承着对科学技术的崇拜、怀揣着对美好生活的向往,保持着独立思考的能力,静静沉淀、悄悄改变、慢慢成长、默默奉献…

这里再推荐刘未鹏的两篇博客:为什么你应该(从现在开始就)写博客?书写是为了更好的思考

最后的最后,如果你有问题、有建议、有想法;如果你入门导航算法过程中遇到了困难、找不准方向;或者说你认可我的仓库、认可我的价值观,单纯地想交个朋友,都欢迎你加我的微信,和我联系,记得备注 学校+姓名,让我知道你是谁。

662bf58e5529e6a138945e9ffc90893e

👆👆👆  回到开头 👆👆👆

navigation-learning's People

Contributors

lizhengxiao99 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

navigation-learning's Issues

膜拜

感谢,感谢作者,感谢开源,感谢互联网

有关TGINS可视化的咨询

您好,我目前在TGINS的可视化中遇到了问题,已经下载了QT6.2.4,但是不会使用FUSING——PLOT,如果您能给出使用教程,或者使用教学视频的话,我将不胜感激。

编译出现问题

In file included from /home/zfs/gici-open/include/gici/estimate/graph.h:55, from /home/zfs/gici-open/include/gici/estimate/estimator_types.h:30, from /home/zfs/gici-open/include/gici/stream/formator.h:19, from /home/zfs/gici-open/include/gici/stream/streaming.h:18, from /home/zfs/gici-open/include/gici/stream/data_integration.h:11, from /home/zfs/gici-open/src/stream/data_integration.cpp:9: /home/zfs/gici-open/include/gici/estimate/homogeneous_point_local_parameterization.h:57:40: error: expected class-name before ‘,’ token 57 | public ceres::LocalParameterization, | ^ In file included from /home/zfs/gici-open/include/gici/estimate/graph.h:56, from /home/zfs/gici-open/include/gici/estimate/estimator_types.h:30, from /home/zfs/gici-open/include/gici/stream/formator.h:19, from /home/zfs/gici-open/include/gici/stream/streaming.h:18, from /home/zfs/gici-open/include/gici/stream/data_integration.h:11, from /home/zfs/gici-open/src/stream/data_integration.cpp:9: /home/zfs/gici-open/include/gici/estimate/parameter_block.h:143:20: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type 143 | const ceres::LocalParameterization* localParameterizationPtr) | ^~~~~~~~~~~~~~~~~~~~~ /home/zfs/gici-open/include/gici/estimate/parameter_block.h:150:24: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type 150 | virtual const ceres::LocalParameterization* localParameterizationPtr() const | ^~~~~~~~~~~~~~~~~~~~~ /home/zfs/gici-open/include/gici/estimate/parameter_block.h:164:16: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type 164 | const ceres::LocalParameterization* local_parameterization_ptr_; | ^~~~~~~~~~~~~~~~~~~~~ /home/zfs/gici-open/include/gici/estimate/parameter_block.h: In constructor ‘gici::ParameterBlock::ParameterBlock()’: /home/zfs/gici-open/include/gici/estimate/parameter_block.h:64:9: error: class ‘gici::ParameterBlock’ does not have any field named ‘local_parameterization_ptr_’ 64 | , local_parameterization_ptr_(nullptr) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/zfs/gici-open/include/gici/estimate/parameter_block.h: In member function ‘virtual void gici::ParameterBlock::setLocalParameterizationPtr(const int*)’: /home/zfs/gici-open/include/gici/estimate/parameter_block.h:145:5: error: ‘local_parameterization_ptr_’ was not declared in this scope; did you mean ‘localParameterizationPtr’? 145 | local_parameterization_ptr_ = localParameterizationPtr; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | localParameterizationPtr In file included from /home/zfs/gici-open/include/gici/estimate/graph.h:57, from /home/zfs/gici-open/include/gici/estimate/estimator_types.h:30, from /home/zfs/gici-open/include/gici/stream/formator.h:19, from /home/zfs/gici-open/include/gici/stream/streaming.h:18, from /home/zfs/gici-open/include/gici/stream/data_integration.h:11, from /home/zfs/gici-open/src/stream/data_integration.cpp:9: /home/zfs/gici-open/include/gici/estimate/pose_local_parameterization.h: At global scope: /home/zfs/gici-open/include/gici/estimate/pose_local_parameterization.h:62:40: error: expected class-name before ‘,’ token 62 | public ceres::LocalParameterization, | ^ In file included from /home/zfs/gici-open/include/gici/estimate/estimator_types.h:30, from /home/zfs/gici-open/include/gici/stream/formator.h:19, from /home/zfs/gici-open/include/gici/stream/streaming.h:18, from /home/zfs/gici-open/include/gici/stream/data_integration.h:11, from /home/zfs/gici-open/src/stream/data_integration.cpp:9: /home/zfs/gici-open/include/gici/estimate/graph.h:309:7: error: ‘ceres::LocalParameterization’ has not been declared 309 | ceres::LocalParameterization* local_parameterization); | ^~~~~ /home/zfs/gici-open/include/gici/estimate/graph.h:319:7: error: ‘ceres::LocalParameterization’ has not been declared 319 | ceres::LocalParameterization* local_parameterization) | ^~~~~ In file included from /home/zfs/gici-open/include/gici/estimate/graph.h:55, from /home/zfs/gici-open/include/gici/estimate/estimator_types.h:30, from /home/zfs/gici-open/include/gici/stream/formator.h:19, from /home/zfs/gici-open/src/utility/option.cpp:14: /home/zfs/gici-open/include/gici/estimate/homogeneous_point_local_parameterization.h:57:40: error: expected class-name before ‘,’ token 57 | public ceres::LocalParameterization, | ^ In file included from /home/zfs/gici-open/include/gici/estimate/graph.h:56, from /home/zfs/gici-open/include/gici/estimate/estimator_types.h:30, from /home/zfs/gici-open/include/gici/stream/formator.h:19, from /home/zfs/gici-open/src/utility/option.cpp:14: /home/zfs/gici-open/include/gici/estimate/parameter_block.h:143:20: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type 143 | const ceres::LocalParameterization* localParameterizationPtr) | ^~~~~~~~~~~~~~~~~~~~~ /home/zfs/gici-open/include/gici/estimate/parameter_block.h:150:24: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type 150 | virtual const ceres::LocalParameterization* localParameterizationPtr() const | ^~~~~~~~~~~~~~~~~~~~~ /home/zfs/gici-open/include/gici/estimate/parameter_block.h:164:16: error: ‘LocalParameterization’ in namespace ‘ceres’ does not name a type 164 | const ceres::LocalParameterization* local_parameterization_ptr_; | ^~~~~~~~~~~~~~~~~~~~~ /home/zfs/gici-open/include/gici/estimate/parameter_block.h: In constructor ‘gici::ParameterBlock::ParameterBlock()’: /home/zfs/gici-open/include/gici/estimate/parameter_block.h:64:9: error: class ‘gici::ParameterBlock’ does not have any field named ‘local_parameterization_ptr_’ 64 | , local_parameterization_ptr_(nullptr) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/zfs/gici-open/include/gici/estimate/parameter_block.h: In member function ‘virtual void gici::ParameterBlock::setLocalParameterizationPtr(const int*)’: /home/zfs/gici-open/include/gici/estimate/parameter_block.h:145:5: error: ‘local_parameterization_ptr_’ was not declared in this scope; did you mean ‘localParameterizationPtr’? 145 | local_parameterization_ptr_ = localParameterizationPtr; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ | localParameterizationPtr In file included from /home/zfs/gici-open/include/gici/estimate/graph.h:57, from /home/zfs/gici-open/include/gici/estimate/estimator_types.h:30, from /home/zfs/gici-open/include/gici/stream/formator.h:19, from /home/zfs/gici-open/src/utility/option.cpp:14: /home/zfs/gici-open/include/gici/estimate/pose_local_parameterization.h: At global scope: /home/zfs/gici-open/include/gici/estimate/pose_local_parameterization.h:62:40: error: expected class-name before ‘,’ token 62 | public ceres::LocalParameterization, | ^ In file included from /home/zfs/gici-open/include/gici/estimate/estimator_types.h:30, from /home/zfs/gici-open/include/gici/stream/formator.h:19, from /home/zfs/gici-open/src/utility/option.cpp:14: /home/zfs/gici-open/include/gici/estimate/graph.h:309:7: error: ‘ceres::LocalParameterization’ has not been declared 309 | ceres::LocalParameterization* local_parameterization); | ^~~~~ /home/zfs/gici-open/include/gici/estimate/graph.h:319:7: error: ‘ceres::LocalParameterization’ has not been declared 319 | ceres::LocalParameterization* local_parameterization) | ^~~~~ In file included from /home/zfs/gici-open/include/gici/estimate/estimator_base.h:16, from /home/zfs/gici-open/include/gici/estimate/estimating.h:21, from /home/zfs/gici-open/include/gici/stream/data_integration.h:12, from /home/zfs/gici-open/src/stream/data_integration.cpp:9: /home/zfs/gici-open/include/gici/estimate/marginalization_error.h: In constructor ‘gici::MarginalizationError::ParameterBlockInfo::ParameterBlockInfo(uint64_t, std::shared_ptrgici::ParameterBlock, size_t, bool)’: /home/zfs/gici-open/include/gici/estimate/marginalization_error.h:373:32: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’? 373 | if (parameter_block_ptr->localParameterizationPtr()) | ^~~~~~~~~~~~~~~~~~~~~~~~ | setLocalParameterizationPtr /home/zfs/gici-open/include/gici/estimate/marginalization_error.h:375:48: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’? 375 | local_dimension = parameter_block_ptr->localParameterizationPtr() | ^~~~~~~~~~~~~~~~~~~~~~~~ | setLocalParameterizationPtr In file included from /home/zfs/gici-open/include/gici/estimate/estimator_base.h:16, from /home/zfs/gici-open/include/gici/gnss/gnss_estimator_base.h:11, from /home/zfs/gici-open/include/gici/gnss/spp_estimator.h:11, from /home/zfs/gici-open/src/utility/option.cpp:19: /home/zfs/gici-open/include/gici/estimate/marginalization_error.h: In constructor ‘gici::MarginalizationError::ParameterBlockInfo::ParameterBlockInfo(uint64_t, std::shared_ptrgici::ParameterBlock, size_t, bool)’: /home/zfs/gici-open/include/gici/estimate/marginalization_error.h:373:32: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’? 373 | if (parameter_block_ptr->localParameterizationPtr()) | ^~~~~~~~~~~~~~~~~~~~~~~~ | setLocalParameterizationPtr /home/zfs/gici-open/include/gici/estimate/marginalization_error.h:375:48: error: ‘using element_type = class gici::ParameterBlock’ {aka ‘class gici::ParameterBlock’} has no member named ‘localParameterizationPtr’; did you mean ‘setLocalParameterizationPtr’? 375 | local_dimension = parameter_block_ptr->localParameterizationPtr() | ^~~~~~~~~~~~~~~~~~~~~~~~ | setLocalParameterizationPtr make[2]: *** [CMakeFiles/gici.dir/build.make:154: CMakeFiles/gici.dir/src/stream/data_integration.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [CMakeFiles/gici.dir/build.make:102: CMakeFiles/gici.dir/src/utility/option.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:195: CMakeFiles/gici.dir/all] Error 2 make: *** [Makefile:84: all] Error 2
想请问我编译gici时,出现源文件错误是怎么回事呀?

感谢

感谢分享,祝一切顺利。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.