回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【Arduino 动手做】全新视角的自平衡远程呈现机器人算法 简单

头像 驴友花雕 2025.06.24 3 0

自平衡机器人是一个很酷的项目,许多创客喜欢在机器人世界的某个地方建造它。

在大多数情况下,您可以在互联网上找到自平衡机器人中使用的三种不同类型的电机:

步进电机
直流电动机
带正交编码器的直流电机

自平衡远程呈现机器人通过 https://cloud.husarion.com/ 提供的 Web 用户界面在全球范围内进行控制。您不仅可以控制该机器人,还可以通过 hVideo 应用程序(可在 App Store 或 Google Play 中找到)查看与该机器人集成的智能手机中的图像)

机器人的主要特点

• Web 用户界面
• 用于智能手机或小型平板电脑(iPad mini 是最大适配的平板电脑)的支架,带有 hVideo 应用程序(Android 或 iPhone/iPad))
• 稳定算法不受干扰
• 用于平衡启动/停止模式的伺服电机控制支腿
• 平稳驾驶
• 防止机器人损坏的底盘

机器人硬件概述

 

00.jpg

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

稳定算法概述

 

01.jpg

该机器人使用 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

 

00172---=.gif
00173.gif
00173-.gif
00173--.gif

评论

user-avatar
icon 他的勋章
    展开更多