最新消息:

kobuki_core代码解读-kobuki_driver

Turtlebot2/二代机器人 少儿编程 1425浏览 0评论
kobuki_core代码解读

kobuki_core代码解读-kobuki_driver

说明

  • 介绍kobuki的核心驱动
  • 访问代码库

功能列表:

  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

您必须 登录 才能发表评论!