昇腾社区首页
中文
注册

控制与运动部分

机械狗的运动控制部分的实现原理图如图1所示:

图1 机械狗运动控制原理图
  • 在上位机(开发者套件)上部署离线推理模型后,在上位机上根据推理结果生成对应的运动控制指令。指令下发到STM32单片机上,由串口中断函数来进行串口数据传输的接收。在上位机端和STM32使用相同的校验码的生成和校验方式,如果串口处接收到是上位机发出的指令,则会进入到对应的中断函数中进行运动状态的改变和操作。
  • 在下位机(STM32)的初始化过程中:
    1. 会开启多个任务序列,包括初始化电机零点位置、陀螺仪初始化、显示屏显示、LED灯显示、蜂鸣器初始化及串口发送数据初始化中断函数标记归位等操作。
    2. 主进程在完整这些操作之后,进入获取控制端以及四足行动的部分,在收取到上位机发出的指令后,下位机进行解析,获取机器狗的姿态全局变量参数以及运动的两个方向的线速度和角速度。
    3. 进入到机械狗的运动解析部分进行运算,解析接下来的运动需中每一个机械腿的运动位置,以及八个电机需要转到的目标位置,并下发指令到从控的STM32上,通过串口下发到电机处。其中的电机使用PID来编码,在整个姿态变化和运动的过程中,通过PID控制电机的目标位置和实际运动位置误差以及自我纠正误差。
    4. 同时,为了防止运动过程中机械狗摔倒,加入了陀螺仪的运算,且可以在显示屏上显示实际数据。MPU6050陀螺仪会计算平衡环的数值大小用来修正不同方向上的非水平位置变化,然后加入到机械腿的运动控制中。得到了控制机械腿的目标位置后,可以通过机械腿路径规划算法实现实时计算机械腿机械腿的运动位置,使机械狗能够稳步前进以及完成其他动作。
      图2 运动控制时序图1
      图3 运动控制时序图2