原理介绍:
该两轮自平衡小车主要由两部分组成,分别是上位机体感识别的部分和下位机两轮自平衡部分。主要是使用微软的Kinect摄像头,这个摄像头可以输出景深图像,骨骼数据以及RGB数据。所谓的景深数据就是可以反应图像深度的数据,简单来说就是有这个数据可以得到视场范围内每一个点的三维坐标,然后根据这个三维坐标做图像处理得到骨骼数据。图像处理非常复杂,由微软提供,RGB数据我没有处理,直接显示了,然后做了一个简单的动作识别,基于空间点坐标和点之间向量,计算阀值,然后用WIFI传输数据,WIFI使用亚信提供的WIFI转串口方案,虽然我花了半个月时间看计算机网络,看TCP/IP协议,也没用看懂,到最后也没用用上。
下位机就是用陀螺仪和三轴加速度采样信号,用一个凯尔曼滤波做了一个数据融合,计算出角度和角角速度,然后就是几个PI调节器做的一个3闭环,姿态,速度,位置。具体的实现细节在论文里面有,有兴趣的可以看一下。凯尔曼滤波用的是别人的代码,这个是一个自适应的算法,参数什么的都不需要改动,只需要单片机就可以了,M051的确实快。
系统框图:
小车图片:
Kinect摄像头:
视频演示(小车上坡和上面放杯水):