跳到正文

Wiki

Wiki

按文件與章節組織的長期知識庫。
北極熊導航復現日誌40 章
  1. ⌂文件首頁
  2. 1簡介
  3. 2環境配置與運行
  4. 3機械人模型與仿真
  5. 3.1robot_description(機械人模型與關節定義)
  6. 3.2MID360安裝位置
  7. 3.3Launch與包依賴配置
  8. 3.4仿真視覺優化(可選)
  9. 3.5添加地圖
  10. 4硬件對接與控制
  11. 4.1Linux與MCU數據對接
  12. 4.2Serial_Comm(串口通信)
  13. 4.3Joy(手柄控制)
  14. 4.4MID360與TF聯調
  15. 5導航參數
  16. 5.1Point_LIO(激光與IMU融合里程計,建圖與定位算法)
  17. 5.2loam_interface(Point-LIO輸出的座標與話題適配)
  18. 5.3sensor_scan_generation(雷達點雲換系與底盤、雲台位姿轉換)
  19. 5.4terrain_analysis(近場地面與障礙高差分析)
  20. 5.5terrain_analysis_ext(擴展遠場地形與近遠場結果合併)
  21. 5.6fake_vel_transform(雲台系速度轉換與底盤自旋)
  22. 5.7small_gicp_relocalization(先驗點雲地圖重定位)
  23. 5.8pointcloud_to_laserscan(三維地形點雲轉二維掃描)
  24. 5.9slam_toolbox(二維地圖生成與軌跡優化)
  25. 5.10bt_navigator(行為樹導航任務調度)
  26. 5.11controller_server(路徑跟蹤、進度檢查與到達判定)
  27. 5.12local_costmap(局部障礙代價地圖)
  28. 5.13global_costmap(全局規劃代價地圖)
  29. 5.14map_server(已有二維地圖加載與發佈)
  30. 5.15map_saver(二維柵格地圖保存)
  31. 5.16planner_server(Theta*全局路徑規劃)
  32. 5.17smoother_server(全局路徑平滑)
  33. 5.18behavior_server(恢復行為與空閒方向移動)
  34. 5.19waypoint_follower(逐點導航與到點等待)
  35. 5.20velocity_smoother(速度限幅與加減速平滑)
  36. 5.21pb_teleop_twist_joy_node(手柄輸入與可替換控制入口)
  37. 6開發問題與排查
  38. 7rosbag2
  39. 8決策
  40. 9ros2control
  41. 10RM仿真
STM32CubeIDE-VScode環境搭建6 章
  1. ⌂文件首頁
  2. 1簡介
  3. 2參考視頻
  4. 3環境準備
  5. 3.1Linux環境準備
  6. 3.2Windows環境準備
  7. 4插件使用教程
OpenCV教程3 章
  1. ⌂文件首頁
  2. 1初識OpenCV
  3. 2數據載入、顯示與保存
  4. 3圖像基本操作
Flutter教程4 章
  1. ⌂文件首頁
  2. 1簡介
  3. 2參考資料
  4. 3環境配置
  5. 4Dart語言教程
ESP32教程4 章
  1. ⌂文件首頁
  2. 1簡介
  3. 2ESP32環境搭建
  4. 3參考視頻
  5. 4教程
MarkDown教程4 章
  1. ⌂文件首頁
  2. 1簡介
  3. 2環境搭建
  4. 3教學
  5. 4高級技巧
Linux-STM32-CMake-VScode環境搭建(已經廢棄)3 章
  1. ⌂文件首頁
  2. 1簡介
  3. 2Linux
  4. 3Windows
Nuxt.js網站框架3 章
  1. ⌂文件首頁
  2. 1簡介
  3. 2部署方案
  4. 3Nuxt Studio教程
Docker教程11 章
  1. ⌂文件首頁
  2. 1簡介
  3. 2安裝Docker
  4. 3Docker直通
  5. 4DockerHub換源
  6. 5docker容器裏的程序的圖形界面彈不出來
  7. 6Docker命令學習
  8. 7手動創建Docker鏡像
  9. 8VScode遠程開發
  10. 9各種Docker容器部署
  11. 10Docker使用優化
  12. 10.1Docker快速打開終端
ROS1機械人操作系統教程1 章
  1. ⌂文件首頁
  2. 1ROS介紹
Linux教程9 章
  1. ⌂文件首頁
  2. 1發行版推薦
  3. 2Linux裝機教程
  4. 3安裝必備配置
  5. 4命令教程(長期積累)
  6. 5各種環境配置
  7. 6其他可選配置
  8. 7QEMU-KVM虛擬機
  9. 8拓展功能
  10. 9其他操作
Arm-Keil-MDK6教程7 章
  1. ⌂文件首頁
  2. 1簡介
  3. 2官方教程
  4. 3Linux環境搭建(舊)
  5. 4Linux環境搭建(新)
  6. 5Windows環境搭建(舊)
  7. 6進階使用教程(全平台通用)
  8. 7常見問題
ROS2機械人操作系統教程130 章
  1. ⌂文件首頁
  2. 1ROS2介紹
  3. 2入門操作
  4. 3工作空間與功能包
  5. 4四大通信
  6. 5ROS2其他通信機制
  7. 6Launch
  8. 7回溯rosbag2
  9. 8座標變換TF
  10. 9可視化平台RVIZ2與URDF建模語言
  11. 10Stage_Ros2仿真平台
  12. 11Gezebo仿真平台
  13. 11.1Gezebo Classic
  14. 11.2Ignition Gazebo(Gazebo Fortress)
  15. 11.3Gz Sim(Gazebo Harmonic)
  16. 11.4將Ign Gazebo遷移至Gz Sim
  17. 12機械人導航Navigation2(仿真篇)
  18. 12.1Humble導航仿真
  19. 12.2Jazzy導航仿真
  20. 12.3Humble與Jazzy導航的差異
  21. 12.4有限狀態機FSM與行為樹BT
  22. 12.4.1有限狀態機(Finite State Machine)
  23. 12.4.2BehaviorTree.CPP v3.8.7
  24. 12.4.2.1基本概念
  25. 12.4.2.2控制與裝飾規則
  26. 12.4.2.3第一個完整程序
  27. 12.4.2.4節點之間傳數據
  28. 12.4.2.5持續任務與中止
  29. 12.4.2.6組合實際任務
  30. 12.4.2.7Groot1
  31. 12.4.3BehaviorTree.CPP v4.10.0
  32. 12.4.3.1基本概念
  33. 12.4.3.2控制與裝飾規則
  34. 12.4.3.3第一個完整程序
  35. 12.4.3.4節點之間傳數據
  36. 12.4.3.5持續任務與中止
  37. 12.4.3.6組合實際任務
  38. 12.4.3.7腳本與前後置條件
  39. 12.4.3.8全局Blackboard與數據更新
  40. 12.4.3.9Groot2
  41. 12.4.4v3與v4區別及遷移
  42. 13Linux硬件通信
  43. 13.1UART串口通信
  44. 13.1.1Boost.Asio庫
  45. 13.1.2ROS2 Serial Driver庫
  46. 13.2CAN通信
  47. 13.2.1SocketCAN
  48. 13.2.2ROS2_SocketCAN
  49. 13.3TCP通信
  50. 13.3.1Boost.Asio庫
  51. 13.4UDP通信
  52. 13.4.1Boost.Asio庫
  53. 14機械人硬件
  54. 14.1機械人組成
  55. 14.2工控機之遠程開發環境
  56. 14.2.1遠程開發SSH
  57. 14.2.2遠程訪問桌面
  58. 14.3工控機之外接USB設備
  59. 14.4分佈式搭建
  60. 14.5優化日誌
  61. 14.6硬件平台
  62. 14.6.1里程計Odom
  63. 14.6.2慣性計IMU
  64. 14.6.3激光雷達LiDAR
  65. 14.6.4相機Camera
  66. 14.6.5全球定位GNSS
  67. 14.6.6手柄JOY
  68. 14.6.7鍵盤控制節點
  69. 14.7座標系與話題關係
  70. 14.8硬件平台進階
  71. 14.8.1輪式里程計標定與融合
  72. 14.8.1.1輪式里程計標定
  73. 14.8.1.2輪式里程計與IMU融合
  74. 14.8.2激光雷達工具
  75. 14.8.3相機使用進階
  76. 15ROS2_Control
  77. 15.1Humble版本
  78. 15.1.1環境準備與源碼地圖
  79. 15.1.2ros2_control整體工作過程
  80. 15.1.3運行第一個RRBot實例
  81. 15.1.4從零創建學習工作區
  82. 15.1.5URDF與控制接口
  83. 15.1.6YAML與launch啓動過程
  84. 15.1.7從零編寫模擬硬件插件
  85. 15.1.8狀態接口與命令接口源碼
  86. 15.1.9硬件與控制器生命週期
  87. 15.1.10read-update-write控制週期
  88. 15.1.11狀態廣播與機械人顯示
  89. 15.1.12命令轉發與常用控制接口
  90. 15.1.13Joint-Trajectory-Controller
  91. 15.1.14機械臂物理仿真
  92. 15.1.15DiffBot與差速底盤控制
  93. 15.1.16差速底盤物理仿真
  94. 15.1.17多接口與硬件類型
  95. 15.1.18從零編寫控制器
  96. 15.1.19管理器與資源管理源碼
  97. 15.1.20實時循環與異步通信
  98. 15.1.21虛擬串口與模擬下位機
  99. 15.1.22單執行器實物接入
  100. 15.1.23完整機械人與進階實例
  101. 15.1.24綜合工程與系統排錯
  102. 15.2Jazzy版本
  103. 15.2.1環境準備與源碼地圖
  104. 15.2.2ros2_control整體工作過程
  105. 15.2.3運行第一個RRBot實例
  106. 15.2.4從零創建學習工作區
  107. 15.2.5URDF與控制接口
  108. 15.2.6YAML與spawner啓動過程
  109. 15.2.7從零編寫模擬硬件插件
  110. 15.2.8狀態接口與命令接口源碼
  111. 15.2.9硬件與控制器生命週期
  112. 15.2.10read-update-write控制週期
  113. 15.2.11狀態廣播與機械人顯示
  114. 15.2.12命令轉發與控制模式
  115. 15.2.13Joint-Trajectory-Controller
  116. 15.2.14Harmonic機械臂物理仿真
  117. 15.2.15DiffBot與差速底盤控制
  118. 15.2.16Harmonic差速底盤仿真
  119. 15.2.17多接口與硬件類型
  120. 15.2.18從零編寫控制器
  121. 15.2.19管理器與資源管理源碼
  122. 15.2.20實時循環與異步通信
  123. 15.2.21虛擬串口與模擬下位機
  124. 15.2.22單執行器實物適配
  125. 15.2.23完整機械人與進階實例
  126. 15.2.24綜合工程與系統排錯
  127. 16Moveit2工業機械人機械臂
  128. 17機械人導航Navigation2(實體篇)
  129. 18MicroROS
  130. 19Webots仿真平台
  131. 20OpenCV
Git教程5 章
  1. ⌂文件首頁
  2. 1Git簡介
  3. 2安裝Git
  4. 3Git實操
  5. 4高級工具
  6. 5常見問題
電控視覺環境搭建9 章
  1. ⌂文件首頁
  2. 1C/C++環境搭建
  3. 2ARM Keil MDK(ARM單片機環境搭建)
  4. 3Linux基本配置
  5. 4CMake工程搭建
  6. 5OpenCV_CUDA環境搭建
  7. 6YOLO環境搭建
  8. 7ROS環境搭建
  9. 8QT環境搭建
  10. 9Docker環境搭建
STM32-FreeRTOS教程4 章
  1. ⌂文件首頁
  2. 1前言
  3. 2arduino庫(瞭解即可)
  4. 351單片機(瞭解即可)
  5. 4stm32單片機(重點)
C/C++教程93 章
  1. ⌂文件首頁
  2. 1C++開發環境搭建與測試
  3. 1.1Linux開發環境搭建與測試
  4. 1.2Windows開發環境搭建與測試
  5. 2C++基礎初識
  6. 3數據類型與數據存放
  7. 4輸入輸出
  8. 5運算符
  9. 6程序流程結構
  10. 7數組
  11. 8函數與頭文件
  12. 9指針
  13. 10結構體與共用體
  14. 11內存分區與生命週期
  15. 12引用
  16. 13函數提高
  17. 14命名空間
  18. 15類和對象
  19. 15.1封裝
  20. 15.2對象初始化和清理
  21. 15.3對象模型與this指針
  22. 15.4友元與運算符重載
  23. 15.5繼承
  24. 15.6多態
  25. 16函數指針
  26. 17文件操作
  27. 18異常處理
  28. 19模板
  29. 20STL提高編程
  30. 20.1STL初識
  31. 20.2std::array
  32. 20.3string容器
  33. 20.4vector 容器
  34. 20.5deque 容器
  35. 20.6stack 容器
  36. 20.7queue 容器
  37. 20.8list 容器
  38. 20.9set / multiset 容器
  39. 20.10map / multimap 容器
  40. 20.11函數對象與謂詞
  41. 20.12常用算法
  42. 21C++類型轉換
  43. 22現代C++
  44. 22.1auto
  45. 22.2nullptr
  46. 22.3using
  47. 22.4enum class
  48. 22.5範圍 for 循環
  49. 22.6結構化綁定
  50. 22.7constexpr
  51. 22.8RAII
  52. 22.9智能指針
  53. 22.10右值引用和移動語義
  54. 22.11Lambda 表達式
  55. 22.12std::function
  56. 22.13std::bind
  57. 22.14std::optional
  58. 22.15std::variant
  59. 22.16std::span
  60. 22.17std::format / std::print
  61. 22.18std::chrono
  62. 22.19併發、並行與協程
  63. 22.19.1併發是什麼
  64. 22.19.2並行是什麼
  65. 22.19.3協程是什麼
  66. 22.19.4併發編程
  67. 22.19.5std::thread
  68. 22.19.6mutex 與 RAII 鎖
  69. 22.19.7std::atomic
  70. 22.19.8condition_variable
  71. 22.19.9future、async、promise 與 packaged_task
  72. 22.19.10jthread 與 stop_token
  73. 22.19.11semaphore、latch 與 barrier
  74. 22.20std::filesystem
  75. 22.21modules 簡介
  76. 23常用庫學習
  77. 23.1Boost.Asio異步IO庫
  78. 23.1.1定時器與異步 IO
  79. 23.1.2Boost.Asio 基礎
  80. 23.1.3串口通信教學
  81. 23.1.4串口通信串口包協議實例
  82. 23.1.5TCP 通信
  83. 23.1.6UDP 通信
  84. 23.1.7機械人工程寫法與 ROS2 集成
  85. 23.2Eigen線性代數庫
  86. 23.3OpenCV計算機視覺庫
  87. 23.4PCL點雲庫
  88. 23.5Sophus 李羣李代數庫
  89. 24CMake工程模板
  90. 24.1CMakePresets與構建安裝
  91. 24.2頂層CMake與公共編譯選項
  92. 24.3src與lib模塊CMake詳解
  93. 24.4第三方庫依賴寫法
  94. 24.5模板擴展與常見問題
機械人工程師成長計劃0 章
  1. ⌂文件首頁
OpenWrt編譯教學5 章
  1. ⌂文件首頁
  2. 1編譯環境準備
  3. 2個性化配置
  4. 3插件開發
  5. 4補充工具
  6. 5其他參考資料添加USB和硬盤格式還有網卡教程: