自平衡机器人是一个很酷的项目,许多创客喜欢在机器人世界的某个地方建造它。
在大多数情况下,您可以在互联网上找到自平衡机器人中使用的三种不同类型的电机:
步进电机
直流电动机
带正交编码器的直流电机
自平衡远程呈现机器人通过 https://cloud.husarion.com/ 提供的 Web 用户界面在全球范围内进行控制。您不仅可以控制该机器人,还可以通过 hVideo 应用程序(可在 App Store 或 Google Play 中找到)查看与该机器人集成的智能手机中的图像)
机器人的主要特点
• Web 用户界面
• 用于智能手机或小型平板电脑(iPad mini 是最大适配的平板电脑)的支架,带有 hVideo 应用程序(Android 或 iPhone/iPad))
• 稳定算法不受干扰
• 用于平衡启动/停止模式的伺服电机控制支腿
• 平稳驾驶
• 防止机器人损坏的底盘
机器人硬件概述

• 基于 Husarion CORE2 机器人控制器,具有 Arduino 兼容层和 RTOS
• 2 个带正交编码器的直流电机
• MPU9250惯性测量单元(陀螺仪 + 加速度计)和集成的 DMP 功能,用于完整的 3D 方向数据
• 1 个用于腿的舵机
• 3 个 18650 锂离子电池座(无需充电即可运行长达 8 小时)
稳定算法概述

该机器人使用 4 个 PID 调节器:
• 每个直流电机 1 个,带有用于电机速度调节的编码器
• 用于在机器人底盘和地面之间保持所需的角度
• 用于控制电机角度以获得整个机器人所需的速度
以下是稳定算法代码的示例:
void RobotController::regTask()
{
imu.resetFifo();
pidIMU.reset();
pidOut_IMU = 0.0;
pidV.reset();
pidOut_V = 0.0;
wheelLeft.reset();
wheelRight.reset();
while (1) {
dt = sys.getRefTime() - lastTime;
lastTime = sys.getRefTime();
//get new angle
angleNow = imu.getAngle(); //wait for interrupt and a new angle (every 20ms)
//compute mean speed
speedNow = (wheelLeft.getSpeed() + wheelRight.getSpeed()) / 2;
//PID to control robot speed
errSpeed = speedNow - targetSpeed;
pidOut_V = pidV.update(errSpeed, dt);
targetAngle = angle0 - pidOut_V;
//PID for controlling robot angle
errAngle = angleNow - targetAngle;
pidOut_IMU = pidIMU.update(errAngle, dt);
if ((angleNow - angle0) > 30.0 || (angleNow - angle0) < -30.0) {
pidIMU.reset();
pidOut_IMU = 0.0;
pidV.reset();
pidOut_V = 0.0;
wheelLeft.reset();
wheelRight.reset();
}
wheelLeft.setSpeed(pidOut_IMU + turnRight);
wheelRight.setSpeed(pidOut_IMU - turnRight);
wheelLeft.update(dt);
wheelRight.update(dt);
}
}
【Arduino 动手做】全新视角的自平衡远程呈现机器人算法
项目链接:https://medium.com/husarion-blog/fresh-look-at-self-balancing-robot-algorithm-d50d41711d58
项目作者:多米尼克·诺瓦克
项目视频(动画) :
https://miro.medium.com/v2/resize:fit:640/format:webp/0*3wf00ERu6WEgtRZm.
https://miro.medium.com/v2/resize:fit:640/format:webp/0*jJ06x3rUaJmhJBW2.
https://miro.medium.com/v2/resize:fit:640/format:webp/0*K_6SGkAljzrSUbOa.
https://miro.medium.com/v2/resize:fit:640/format:webp/0*AF1OEV1RkC2Tv9ag.
项目代码:https://github.com/husarion/self-balancing-telepresence-robot




评论