Wiki
Wiki
按文件與章節組織的長期知識庫。北極熊導航復現日誌
- ⌂文件首頁
- 1簡介
- 2環境配置與執行
- 3機器人模型與模擬
- 3.1robot_description(機器人模型與關節定義)
- 3.2MID360安裝位置
- 3.3Launch與包依賴配置
- 3.4模擬視覺最佳化(可選)
- 3.5新增地圖
- 4硬體對接與控制
- 4.1Linux與MCU資料對接
- 4.2Serial_Comm(序列埠通訊)
- 4.3Joy(手柄控制)
- 4.4MID360與TF聯調
- 5導航引數
- 5.1Point_LIO(雷射與IMU融合里程計,建圖與定位演算法)
- 5.2loam_interface(Point-LIO輸出的座標與話題適配)
- 5.3sensor_scan_generation(雷達點雲換系與底盤、雲臺位姿轉換)
- 5.4terrain_analysis(近場地面與障礙高差分析)
- 5.5terrain_analysis_ext(擴充套件遠場地形與近遠場結果合併)
- 5.6fake_vel_transform(雲臺系速度轉換與底盤自旋)
- 5.7small_gicp_relocalization(先驗點雲地圖重定位)
- 5.8pointcloud_to_laserscan(三維地形點雲轉二維掃描)
- 5.9slam_toolbox(二維地圖生成與軌跡最佳化)
- 5.10bt_navigator(行為樹導航任務排程)
- 5.11controller_server(路徑跟蹤、進度檢查與到達判定)
- 5.12local_costmap(區域性障礙代價地圖)
- 5.13global_costmap(全域性規劃代價地圖)
- 5.14map_server(已有二維地圖載入與釋出)
- 5.15map_saver(二維柵格地圖儲存)
- 5.16planner_server(Theta*全域性路徑規劃)
- 5.17smoother_server(全域性路徑平滑)
- 5.18behavior_server(恢復行為與空閒方向移動)
- 5.19waypoint_follower(逐點導航與到點等待)
- 5.20velocity_smoother(速度限幅與加減速平滑)
- 5.21pb_teleop_twist_joy_node(手柄輸入與可替換控制入口)
- 6開發問題與排查
- 7rosbag2
- 8決策
- 9ros2control
- 10RM模擬
STM32CubeIDE-VScode環境搭建
OpenCV教程
ESP32教程
Nuxt.js網站框架
Docker教程
ROS2機器人作業系統教程
- ⌂文件首頁
- 1ROS2介紹
- 2入門操作
- 3工作空間與功能包
- 4四大通訊
- 5ROS2其他通訊機制
- 6Launch
- 7回溯rosbag2
- 8座標變換TF
- 9視覺化平臺RVIZ2與URDF建模語言
- 10Stage_Ros2模擬平臺
- 11Gezebo模擬平臺
- 11.1Gezebo Classic
- 11.2Ignition Gazebo(Gazebo Fortress)
- 11.3Gz Sim(Gazebo Harmonic)
- 11.4將Ign Gazebo遷移至Gz Sim
- 12機器人導航Navigation2(模擬篇)
- 12.1Humble導航模擬
- 12.2Jazzy導航模擬
- 12.3Humble與Jazzy導航的差異
- 12.4有限狀態機FSM與行為樹BT
- 12.4.1有限狀態機(Finite State Machine)
- 12.4.2BehaviorTree.CPP v3.8.7
- 12.4.2.1基本概念
- 12.4.2.2控制與裝飾規則
- 12.4.2.3第一個完整程式
- 12.4.2.4節點之間傳資料
- 12.4.2.5持續任務與中止
- 12.4.2.6組合實際任務
- 12.4.2.7Groot1
- 12.4.3BehaviorTree.CPP v4.10.0
- 12.4.3.1基本概念
- 12.4.3.2控制與裝飾規則
- 12.4.3.3第一個完整程式
- 12.4.3.4節點之間傳資料
- 12.4.3.5持續任務與中止
- 12.4.3.6組合實際任務
- 12.4.3.7指令碼與前後置條件
- 12.4.3.8全域性Blackboard與資料更新
- 12.4.3.9Groot2
- 12.4.4v3與v4區別及遷移
- 13Linux硬體通訊
- 13.1UART序列埠通訊
- 13.1.1Boost.Asio庫
- 13.1.2ROS2 Serial Driver庫
- 13.2CAN通訊
- 13.2.1SocketCAN
- 13.2.2ROS2_SocketCAN
- 13.3TCP通訊
- 13.3.1Boost.Asio庫
- 13.4UDP通訊
- 13.4.1Boost.Asio庫
- 14機器人硬體
- 14.1機器人組成
- 14.2工控機之遠端開發環境
- 14.2.1遠端開發SSH
- 14.2.2遠端訪問桌面
- 14.3工控機之外接USB裝置
- 14.4分散式搭建
- 14.5最佳化日誌
- 14.6硬體平臺
- 14.6.1里程計Odom
- 14.6.2慣性計IMU
- 14.6.3雷射雷達LiDAR
- 14.6.4相機Camera
- 14.6.5全球定位GNSS
- 14.6.6手柄JOY
- 14.6.7鍵盤控制節點
- 14.7座標系與話題關係
- 14.8硬體平臺進階
- 14.8.1輪式里程計標定與融合
- 14.8.1.1輪式里程計標定
- 14.8.1.2輪式里程計與IMU融合
- 14.8.2雷射雷達工具
- 14.8.3相機使用進階
- 15ROS2_Control
- 15.1Humble版本
- 15.1.1環境準備與原始碼地圖
- 15.1.2ros2_control整體工作過程
- 15.1.3執行第一個RRBot例項
- 15.1.4從零建立學習工作區
- 15.1.5URDF與控制介面
- 15.1.6YAML與launch啟動過程
- 15.1.7從零編寫模擬硬體外掛
- 15.1.8狀態介面與命令介面原始碼
- 15.1.9硬體與控制器生命週期
- 15.1.10read-update-write控制週期
- 15.1.11狀態廣播與機器人顯示
- 15.1.12命令轉發與常用控制介面
- 15.1.13Joint-Trajectory-Controller
- 15.1.14機械臂物理模擬
- 15.1.15DiffBot與差速底盤控制
- 15.1.16差速底盤物理模擬
- 15.1.17多介面與硬體型別
- 15.1.18從零編寫控制器
- 15.1.19管理器與資源管理原始碼
- 15.1.20即時迴圈與非同步通訊
- 15.1.21虛擬序列埠與模擬下位機
- 15.1.22單執行器實物接入
- 15.1.23完整機器人與進階例項
- 15.1.24綜合工程與系統排錯
- 15.2Jazzy版本
- 15.2.1環境準備與原始碼地圖
- 15.2.2ros2_control整體工作過程
- 15.2.3執行第一個RRBot例項
- 15.2.4從零建立學習工作區
- 15.2.5URDF與控制介面
- 15.2.6YAML與spawner啟動過程
- 15.2.7從零編寫模擬硬體外掛
- 15.2.8狀態介面與命令介面原始碼
- 15.2.9硬體與控制器生命週期
- 15.2.10read-update-write控制週期
- 15.2.11狀態廣播與機器人顯示
- 15.2.12命令轉發與控制模式
- 15.2.13Joint-Trajectory-Controller
- 15.2.14Harmonic機械臂物理模擬
- 15.2.15DiffBot與差速底盤控制
- 15.2.16Harmonic差速底盤模擬
- 15.2.17多介面與硬體型別
- 15.2.18從零編寫控制器
- 15.2.19管理器與資源管理原始碼
- 15.2.20即時迴圈與非同步通訊
- 15.2.21虛擬序列埠與模擬下位機
- 15.2.22單執行器實物適配
- 15.2.23完整機器人與進階例項
- 15.2.24綜合工程與系統排錯
- 16Moveit2工業機器人機械臂
- 17機器人導航Navigation2(實體篇)
- 18MicroROS
- 19Webots模擬平臺
- 20OpenCV
電控視覺環境搭建
STM32-FreeRTOS教程
C/C++教程
- ⌂文件首頁
- 1C++開發環境搭建與測試
- 1.1Linux開發環境搭建與測試
- 1.2Windows開發環境搭建與測試
- 2C++基礎初識
- 3資料型別與資料存放
- 4輸入輸出
- 5運算子
- 6程式流程結構
- 7陣列
- 8函式與標頭檔案
- 9指標
- 10結構體與共用體
- 11記憶體分割槽與生命週期
- 12引用
- 13函式提高
- 14名稱空間
- 15類和物件
- 15.1封裝
- 15.2物件初始化和清理
- 15.3物件模型與this指標
- 15.4友元與運算子過載
- 15.5繼承
- 15.6多型
- 16函式指標
- 17檔案操作
- 18異常處理
- 19模板
- 20STL提高程式設計
- 20.1STL初識
- 20.2std::array
- 20.3string容器
- 20.4vector 容器
- 20.5deque 容器
- 20.6stack 容器
- 20.7queue 容器
- 20.8list 容器
- 20.9set / multiset 容器
- 20.10map / multimap 容器
- 20.11函式物件與謂詞
- 20.12常用演算法
- 21C++型別轉換
- 22現代C++
- 22.1auto
- 22.2nullptr
- 22.3using
- 22.4enum class
- 22.5範圍 for 迴圈
- 22.6結構化繫結
- 22.7constexpr
- 22.8RAII
- 22.9智慧指標
- 22.10右值引用和移動語義
- 22.11Lambda 表示式
- 22.12std::function
- 22.13std::bind
- 22.14std::optional
- 22.15std::variant
- 22.16std::span
- 22.17std::format / std::print
- 22.18std::chrono
- 22.19併發、並行與協程
- 22.19.1併發是什麼
- 22.19.2並行是什麼
- 22.19.3協程是什麼
- 22.19.4併發程式設計
- 22.19.5std::thread
- 22.19.6mutex 與 RAII 鎖
- 22.19.7std::atomic
- 22.19.8condition_variable
- 22.19.9future、async、promise 與 packaged_task
- 22.19.10jthread 與 stop_token
- 22.19.11semaphore、latch 與 barrier
- 22.20std::filesystem
- 22.21modules 簡介
- 23常用庫學習
- 23.1Boost.Asio非同步IO庫
- 23.1.1定時器與非同步 IO
- 23.1.2Boost.Asio 基礎
- 23.1.3序列埠通訊教學
- 23.1.4序列埠通訊序列埠包協議例項
- 23.1.5TCP 通訊
- 23.1.6UDP 通訊
- 23.1.7機器人工程寫法與 ROS2 整合
- 23.2Eigen線性代數庫
- 23.3OpenCV計算機視覺庫
- 23.4PCL點雲庫
- 23.5Sophus 李群李代數庫
- 24CMake工程模板
- 24.1CMakePresets與構建安裝
- 24.2頂層CMake與公共編譯選項
- 24.3src與lib模組CMake詳解
- 24.4第三方庫依賴寫法
- 24.5模板擴充套件與常見問題