1.NaviPack工作流程及常见问题解答 - navipack/navi-panel GitHub Wiki

##          NaviPack工作流程及常见问题解答
#1. 版本修改信息

版本号 修改日期 修改内容
1.0 2016.08.02 初始创建
1.1 2016.08.03 加入了常见问题解答

#2. 工作流简介
  设备启动后,底盘控制器,需要按照固定的周期(10~50ms)不停地上报自己的工作状态和各种传感器参数(状态寄存器的传感器部分),并等待算法控制器的运动控制命令(控制寄存器的TargetLineVelocity,TargetAngleVelocity)。当底盘控制器收到运动控制命令后,开始控制电机,实现两个Velocity的控制。
  同时,算法控制器,等待人机接口的命令,并根据需要,发送地图,路径规划点,激光雷达的数据到人机接口板。
  整体流程如下图所示:
   

#3. 常见问题解答

  1. Navipack与市面上其他家所售的激光雷达有何不同?
      答:Navipack是乐行天下自主研发的定位与导航套件,集成了SLAM算法处理器,自动完成初始建图,智能避障,路径规划等功能;自主研发的光磁耦合技术,无需中间滑环,寿命大大提高;整体结构小巧,性能稳定;开发者仅需控制电机运转,大大的提高了客户的开发效率。

  2. Navipack工作流程是什么样的,我该怎么用起来?
     答:Navipack工作流程详情见上述流程图,仅需要底盘控制器和navipack算法处理器通信,控制电机的运转即可。

  3. 底盘的串口通信频率是多少?
     答:115200Hz。

  4. Navipack上的硬件接口分别是什么用途?
     答:Navipack的硬件接口详情见文档《Navipack硬件接口》。

  5. Navipack的软件可以接入其它的传感器吗?如超声波,防跌落?软件接口在哪里?怎么接入?
     答:可以接入其它传感器,目前支持的传感器有:RGBD、超声波、防跌落、碰撞等;这些传感器接入底盘的电路板,通过底盘处理器的串口把传感器数据发送给navipack算法板,软件接口见《navipack通信协议》。

  6. 底盘处理器需要给Navipack传输哪些信息?
    答:底盘处理器主要是把各种传感器数据发送到navipack,比如:编码器数据,按照通信协议发送到navipack;这里需要注意传感器数据的发送频率,在满足传感器采样周期和通信不过载的条件下,越快越好,尤其是编码器数据,推荐10ms。

  7. Navipack会给底盘处理器传输哪些信息?数据格式是什么样的?
     答:navipack主要是发送角速度和线速度给底盘处理器,数据格式详见通信协议文档。

  8. Navipack模块输出的线速度和角速度,底盘怎么用,频率如何?
     答:输出的线速度和角速度对于底盘来说,是期望值;即底盘自身需要实现角速度和线速度闭环控制,navipack是闭环控制的期望值输入;正常情况下,两者是主动输出给底盘使用,频率大概是50Hz。

  9. 底盘如何实现角速度和线速度闭环?
     答:先通过轮子编码器或IMU等传感器采样并换算出当前的角速度和线速度值,然后根据该采样值做 PID 闭环控制,让采样速度趋近于期望速度。

  10. 请给出底盘处理器与上位机通信的例子?
     答:详见《navipack通信协议》中“5.应用层协议”。