本帖最后由 liren1979 于 2017-5-3 18:00 编辑
详细说明见作品说明书!!!!
正常情况下,由于六足机器人各个关节机械结构存在加工误差、安装误差,机器人爬行时表现出极强的各向异性特征,即机器人前进爬行时的运动轨迹是椭圆弧而不是直线。本次设计借鉴四轴飞行器导航原理,利用惯性导航模块为机器人爬行加入矫正反馈环节。惯性导航模块由三轴陀螺仪、三轴加速度计、三轴磁力计三个部分组成。三轴陀螺仪和三轴加速度计可通过数据融合算法合成得到 YZ平面、XZ平面的欧拉角位移,XY平面欧拉角位移通过三轴磁力计补偿获取。本次设计选用SensorTile的LDM6DSM的三轴陀螺仪、三轴加速度计和LSM303AFG三轴磁力计作为机器人的惯性导航反馈单元。SensorTile扩展板运算结果通过UART与机器人控制通信。
机器人的前进动作采用经典 PID控制方法,具体控制方法为:机器人的 A、B两组腿采用非对称控制方式,即机器人的前进运动由旋转动作和滑行动作两个动作合成,其中,A、B两组腿的滑行动作滑行距离相等,旋转动作旋转角度根据 PID运算求得。若机器人当前读取的 Yaw航向角小于控制指令,表明机器人已向左偏离预期方向,此时控制 B组腿的执行较大角度的右偏旋转角度,使机器人回到预计运行轨迹;反之,增加A组腿的左偏旋转角度。
运动计算的流程图如图 3.19所示:控制器首先读取惯性导航模块的航向角 Yaw数据,同时与指令数据 Expected_Angle进行 PID运算得到偏差角度 Angle_ErrorData;随后将该数据代入将旋转运动和滑动运动合成的运动计算公式获得腿部末端的坐标;均将后将腿部末端数据代入图 2.4公式求得每条腿三个关节舵机的旋转角度。
运动计算的部分代码如图 3.20所示,其中 FAngle_ErrorData为 A组角度偏差数据, SAngle_ErrorData为 B组腿角度偏差数据。图 2.4的 D-H算法计算公式代码如图 3.21所示,其中 degree数组的三个元素分别为每条腿三个关节的舵机旋转角度。
另外,机器人可通过安卓APP控制,手机与机器人的通信通过SensorTile的BlueNRG蓝牙芯片。
github相关代码:https://github.com/liren197968/code/tree/master。