机器人算法汇总

机器人控制算法

文章目录

  • 机器人控制算法
    • i. 感知算法
      • i.i. 环境感知
        • i.i.i. 视觉
        • i.i.ii. slam算法
      • i.ii. 路径规划
    • ii. 控制算法
      • ii.i. 决策算法
      • ii.ii. 运动控制算法
        • ii.ii.i. pid控制算法
        • ii.ii.ii. 避障算法

i. 感知算法

i.i. 环境感知

i.i.i. 视觉

i.i.ii. slam算法

  1. 如扫地机器人(定位机器人):扫地机器人的行为决策和控制算法都是极其简单的,当遇到阻挡物时调整运动方位即可,扫地部件一致处于工作状态。
  2. 定位与地图构建:未知环境中机器人一边移动一边逐步描绘出此环境完全的地图

i.ii. 路径规划

  • 基于图论的经典的路径规划算法有DFS,BFS,Dijkstra,Astra
  • 智能路径规划算法有蚁群算法,遗传算法,模糊算法等

ii. 控制算法

ii.i. 决策算法

ii.ii. 运动控制算法

  • 还未突破
  • fsm,决策树,遗传算法,神经网络等

ii.ii.i. pid控制算法

  • PID(proportion integration differentiation)其实就是指比例,积分,微分控制
    机器人算法汇总_第1张图片
  1. 比例调节
  • 误差(目标值-测量值)*固定比例系数
  • 不足:(因为摩擦力)稳态误差
  • 例:把机器人从速度0.3m/s加速到1m/s并一直保持,初始时刻我们通过里程计测量到电机的输出速度是0.3m/s, 而我们的目标速度是1m/s,那么初始速度和目标速度存在一个误差Gap = 0.7(1.0-0.3),假设现在比例调节的参数K为0.6 (系统预设),那么当前时刻我们需要电机增加的速度是:Input = Gap * K =0.7 * 0.6 = 0.42(m/s), ,然后再测量现在的电机实际运行速度,假设现在电机是以0.6的速度(理想速度应该是0.3+0.42,但是考虑有摩擦等因素)运行,那么由于现在到目标的误差Gap是0.4了(1-0.6),那么下一时刻我们需要让电机增加的速度是:Input = 0.4 * 0.6 = 0.24,则理想期望速度为0.6+0.24=0.84,一直循环,这样机器人就会以变加速度的方式快速趋近于目标并保持。
  1. 积分调节
  • 再引入一个分量,该分量和误差的积分是正比关系
  • 例:用上面的例子来说明,第一次的误差Gap是0.8,第二次的误差是0.4,因此误差的积分(离散情况下积分其实就是做累加)就是0.8+0.4=1.2. 这个时候的控制量,除了比例的那一部分,还有一部分就是一个系数K2乘以这个积分项。由于这个积分项会将前面若干次的误差进行累计,会让输入增大,从而使得目标速度可以大于这个稳定值,渐渐到达目标的1.0,这就是积分项的作用。
  1. 微分调节
  • 微分在离散情况下,就是Gap的差值,就是t时刻和t-1时刻Gap的差,即Input=K3 *(Gap(t)- Gap(t-1)),其中的K3是一个系数项;在加速过程中,因为Gap是越来越小的,所以这个微分控制项一定是负数,在控制中加入一个负数项,就是为了防止机器人由于加速超过了目标速度。
  • 也就是越是靠近目标速度,越是应该注意控制速度,不能让超过,所以这个微分项的作用,就可以理解为刹车,当机器人离目标速度很近并且速度还很快时,这个微分项的绝对值(实际上是一个负数)就会很大,从而表示应该用力踩刹车才能让车保持恒定速度。 也就是能减少控制过程中的震荡。
  1. pid公式
    1括号内第一项是比例项,第二项是积分项,第三项是微分项,前面仅仅是一个系数。很多情况下,在离散的时候使用,则控制可以化为:
    机器人算法汇总_第2张图片整合系数化为Kp, Ki,Kd三个系数,我们在实际控制中就是通过修改这三个系数来达到一个优良的控制系统:
    3

ii.ii.ii. 避障算法

  • 自动、无人驾驶
  • 主要是dwa避障算法和vfh避障算法
  • DWA避障算法(dynamic window approach)
    • 步骤拆解
    1. 在速度空间取多组速度(v,w)
    2. 模拟这些速度在一段时间内的运动轨迹
    3. 通过一个评价算法对不同轨迹打分
    4. 最优速度发送给下位机
    • ros主要使用dwa算法,ros中每当move-base处于规划状态时就调用dwa计算出一条最佳速度指令,发送给机器人底盘。
    • 机器人在获得目的地信息后,首先经过全局路径规划规划出一条大致可行的路线,然后调用局部路径规划器根据这条路线及costmap的信息规划出机器人在局部时做出具体行动策略。
  • VFH(Vector Field Histogram):向量场直方图算法
    • 步骤拆解
    1. 算法会计算各个方向的行进代价,该方向的障碍越多,代价越高
    2. 根据距离,权重不同,累加该方向不同距离的障碍物
    3. 根据不同方向的行进代价,可以直观的用一个柱状图表示:横坐标为0-360度的方向,纵坐标是该角度下的行进代价;柱状图越高,表示向该方向行进的代价越高,也表明越不可能通过
      注:按低区域柱状图而行走路线可能最终偏离目标方向,需要用一个核心的平衡算法平和代价和目标方向。

你可能感兴趣的:(机器人)