首頁 > 學習kobuki_core代碼解讀 > kobuki_core代碼解讀-kobuki_driver
2019
01-18

kobuki_core代碼解讀-kobuki_driver

kobuki_core代碼解讀-kobuki_driver

說明

功能列表:

  1. kobuki的差速驅動實現

  2. kobuki的事件實現

文件樹及說明:

├── CHANGELOG.rst
├── CMakeLists.txt
├── doxygen                             #doxygen文檔
├── firmware_changelog.md
├── include                             #kobuki底盤的核心驅動的類定義
│   └── kobuki_driver
│       ├── command.hpp                 #命令類定義
│       ├── event_manager.hpp           #事件管理類定義
│       ├── kobuki.hpp                  #kobuki核心類定義
│       ├── macros.hpp                  #宏定義
│       ├── modules                     #功能包類定義
│       │   ├── acceleration_limiter.hpp#速度平滑處理類定義,這個類檢查速度命令,如果太快就進行控制。
│       │   ├── battery.hpp             #電池管理類定義
│       │   ├── diff_drive.hpp          #差速驅動類定義
│       │   ├── digital_output.hpp      #數字輸出類定義
│       │   ├── led_array.hpp           #LED燈組類定義
│       │   └── sound.hpp               #聲音管理類定義
│       ├── modules.hpp                 #導入功能包頭文件
│       ├── packet_handler              #數據包處理類定義
│       │   ├── packet_finder.hpp       #提供了簡單的數據包探測器類定義,探測器由stx, etx, payload組成
│       │   ├── payload_base.hpp        #負載的基類定義
│       │   └── payload_headers.hpp     #負載的頭類定義,枚舉了負載類型
│       ├── packets                     #數據包類定義
│       │   ├── cliff.hpp               #懸崖傳感器數據包類定義
│       │   ├── controller_info.hpp     #控制器信息類定義
│       │   ├── core_sensors.hpp        #核心傳感器數據包類定義
│       │   ├── current.hpp             #級別類定義
│       │   ├── dock_ir.hpp             #對接紅外數據包類定義
│       │   ├── eeprom.hpp              #eeprom數據包類定義
│       │   ├── firmware.hpp            #固件版本請求數據包類定義
│       │   ├── gp_input.hpp            #GPIO數據包類定義
│       │   ├── hardware.hpp            #硬件版本請求數據包類定義
│       │   ├── inertia.hpp             #慣性傳感器數據包類定義
│       │   ├── three_axis_gyro.hpp     #3軸陀螺儀數據包類定義
│       │   └── unique_device_id.hpp    #唯一設備ID請求數據包類定義
│       ├── packets.hpp               #導入數據包相關頭文件
│       ├── parameters.hpp            #參數管理的類定義
│       └── version_info.hpp          #版本信息的類定義
├── LICENSE
├── Makefile
├── package.xml
├── scripts                           #一些kobuki的自用腳本,對我們用處不大
│   ├── doxygen
│   │   ├── Readme.md
│   │   └── update_doxygen.bash       # 更新文檔腳本
│   └── web                           # 下載固件和界面工具的腳本
└── src
    ├── CMakeLists.txt
    ├── driver
    │   ├── battery.cpp               #電池/充電電源實現
    │   ├── CMakeLists.txt
    │   ├── command.cpp               #執行命令實現,實現LED燈控制,數字輸出,速度控制,設置外部電源,播放聲音,獲得版本信息,序列化等
    │   ├── core_sensors.cpp          #傳感器實現,實現傳感器數據序列和反序列,
    │   ├── diff_drive.cpp            #差速驅動類實現
    │   ├── event_manager.cpp         #事件管理類實現,按鈕事件,保險桿事件,跌落時間,輪事件,電源事件,輸入事件,機器人事件
    │   ├── kobuki.cpp                #設備驅動核心類實現,代碼初始化,讀取命令,設置命令,重置命令,打印狀態等
    │   ├── packet_finder.cpp         #數據包探測器處理類實現
    │   └── version_info.cpp.in       #版本信息獲取
    ├── test                          #測試腳本
    │   ├── CMakeLists.txt
    │   ├── initialisation.cpp        #初始化kobuki腳本
    │   ├── sigslots.cpp              #測試kobuki sigslots,可獲取不同的傳感器數據
    │   ├── simple_loop.cpp           #簡單的循環控制,返回位置數據
    │   └── velocity_commands.cpp     #速度命令的單位測試
    └── tools                         #簡單工具實現
        ├── CMakeLists.txt
        ├── simple_keyop.cpp          #鍵盤控制kobuki
        └── version_info.cpp          #獲取固件等的版本信息

重要知識點說明:

  1. ecl/sigslots.hpp

  2. ecl/time.hpp

  3. slot_stream_data

  4. ecl/geometry/legacy_pose2d.hpp

  5. ecl/linear_algebra.hpp


本文》有 0 條評論

留下一個回復