Skip to content

brian00715/BUPT_RobotTeam_Libraries

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

北邮机器人队程序库v1.0使用说明

Author: Simon

Date: 2021-03-11

程序库分为ChassisLib,MotorLib,SimpleLib三个功能库,用途分别如下:

  • SimpleLib

    1. 实现了CAN中断接收回调函数的自动管理
    2. 实现了DMA方式的串口命令行
    3. 实现了常用外设的封装
    4. 实现了常用科学计算、PID算法等工具函数
  • ChassisLib

    1. ChassisLib高度依赖MotorLib。
    2. 实现了底盘控制的OOP框架,舵轮全向轮类、横辊子全向轮类、麦克纳姆轮类均继承于基类。基类包含了描述底盘的公有成员变量(例如当前位姿、期望速度等),通用的全向轮底盘状态机、跑点算法、轨迹跟踪算法的实现。
    3. 实现了舵轮全向轮、横辊子全向轮、麦克纳姆轮底盘的运动学解算及控制。
    4. 遥控手柄的数据处理等。
    5. 一些调试工具,例如/path_record中实现了PC接收主控通过蓝牙串口发来的底盘坐标,通过matplotlib库绘制底盘实时轨迹与期望轨迹。
  • MotorLib

    1. 实现了VESC驱动器、大疆驱动板、大疆C610/C620电调、ODrive驱动器的CAN总线收发协议封装。

1 引用方式

  • 在STM32 CubeMX中新建一个IAR工程,将本程序库整体拷贝在工程的根目录下,并重命名为BUPT_RobotTeam_Libraries

    使用时最好==删除==程序库中的.git文件夹,否则可能会影响工程的git操作。

    工程目录的结构看起来是这样的:

    ├── ChassisLib
    │   └── path_record
    ├── MotorLib
    ├── SimpleLib
    │   ├── can
    │   ├── cmd
    │   ├── core
    │   ├── flash
    │   ├── module
    │   ├── nrf
    │   ├── peripherals
    │   └── utils
    ├── Drivers
    ├── EWARM
    ├── .mxproject
    └── ***.ioc
    
  • 打开IAR,选择Project->Options(或按下Alt+F7),点击C/C++ Compiler,在Preprocessor选项卡的Additional include directories窗格中添加以下内容:

    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/SimpleLib
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/SimpleLib/can
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/SimpleLib/cmd
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/SimpleLib/core
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/SimpleLib/flash
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/SimpleLib/module
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/SimpleLib/nrf
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/SimpleLib/utils
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/SimpleLib/peripherals
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/ChassisLib
    $PROJ_DIR$/../BUPT_RobotTeam_Libraries/MotorLib
  • 在左侧Workspace的/Application/User/内新建三个Group:ChassisLib,MotorLib,SimpleLib,鼠标右键Group名可以看到Add->Add Files...,将希望使用的功能库内的==所有程序文件==都添加到相应的Group内。

  • 如果功能库内有子文件夹,则最好为每个子文件夹也创建一个group以便于管理。当然,也可以直接添加程序文件。

  • 如果只希望单独使用某个库,例如只使用SimpleLib,则ChassisLibMotorLib的Group中无需添加程序文件。

2 配置方式

查看功能库中的相关文档进行具体配置。