有多少人工,就有多少智能
摘要: 上一节我们推导并在代码中实现了运动学正解,本节我们来学习下运动学逆解,实现给定线速度和角速度,计算出轮子达到怎样的转速才能达到这个速度。 一、逆解推导我们直接用正解结果进行求逆解即可。 二、编写代码继续在上一节中的代码Kinematics.cpp中完善即可。 void Kinematics::kin 阅读全文
posted @ 2024-07-02 23:07 lvdongjie-avatarx 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 上一节了解了两轮差速运动学,本节我们线进一步的了解两轮差速正运动学的推导过程,并利用两轮差速运动学正解,来完成对小车的实时速度计算。 一、正运动学解推导两轮差速机器人是一种常见的移动机器人类型,由两个轮子和一个中心点组成。我们可以通过控制每个轮子的转速来实现移动,并且可以在一个平面上进行自由移动。 阅读全文
posted @ 2024-07-02 21:57 lvdongjie-avatarx 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 本节我们来了解下两轮差速运动学。 一、两轮差速运动学模型两轮差速模型指机器人底盘由两个驱动轮和若干支撑轮构成的底盘模型,像turtlebot和开源机器人fishbot都是两轮差速模型。 两轮差速模型通过两个驱动轮可以通过不同转速和转向,使得机器人的达到某个特定的角速度和线速度。 二、正逆解 了解了两 阅读全文
posted @ 2024-07-02 21:40 lvdongjie-avatarx 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 上一节我们通过编码器完成了对机器人单个轮子的速度测量,完成了电机速度闭环控制的重要一步-反馈。 有了反馈,接着我们需要设计一个控制器来帮助我们实现这个需求,这个控制器的输入是当前的速度和目标速度,输出是应该给到电机的PWM占空比。 一、PID控制器介绍PID控制器是一种广泛应用于工业控制、自动化控制 阅读全文
posted @ 2024-07-02 13:15 lvdongjie-avatarx 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 新建example26_max_speed_measurement 添加依赖 [env:featheresp32] ; 这是一个环境配置标签,指定了代码将运行的硬件平台和框架 platform = espressif32 ; 指定了使用的平台为Espressif 32 board = feather 阅读全文
posted @ 2024-07-02 12:53 lvdongjie-avatarx 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 这一节我们编写代码来尝试下是否能够读取到电机上编码器的脉冲数,并通过实验测试出小车的输出轴转速和编码器脉冲的比值。 一、新建工程并导入开源库新建example25_encoder 添加依赖 [env:featheresp32] ; 这是一个环境配置标签,指定了代码将运行的硬件平台和框架 platfo 阅读全文
posted @ 2024-07-02 12:30 lvdongjie-avatarx 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 上节做完小车,遥控时小车前进时你应该会发现,小车很难走一条直线,但明明我们给到两个电机的PWM占空比都是相同的,原因在于每一个电机的硬件参数并不能完全的保证一致,所以当我们采用开环控制时,即使我们给到每个电机相同的电压,也不能让两个电机保持相同的转速。 要解决这个问题我们就要把开环控制改成闭环控制, 阅读全文
posted @ 2024-07-02 12:18 lvdongjie-avatarx 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 本节我们结合上一节电机控制以及前面章节的MicroROS话题订阅部分知识点,来实现一个可以用键盘遥控的小车。 新建工程example24_ros2_car 修改配置 [env:featheresp32] ; 这是一个环境配置标签,指定了代码将运行的硬件平台和框架 platform = espress 阅读全文
posted @ 2024-07-02 11:21 lvdongjie-avatarx 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 前面了解了电机控制的原理并通过实验测试了对电机正反转以及转速的控制。本节我们采用开源库调用ESP32的外设MCPWM进行精细化的电机PWM控制。一、MCPWM简介MCPWM中文名是电机控制脉宽调制器 (Motor Control Pulse Width Modulator ),是一款多功能 PWM 阅读全文
posted @ 2024-07-02 10:31 lvdongjie-avatarx 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 前面说到通过控制对应的IO上的PWM占空比即可完成对电机速度的控制。关于PWM的介绍在ROS2硬件控制篇的舵机控制中已经介绍过了,所以我们知道通过改变PWM的占空比可以实现对输出电压的大小调节。占空比越大,输出电压越高;占空比越小,输出电压越低。接着我们通过一个实验来验证下一、新建工程新建examp 阅读全文
posted @ 2024-07-02 10:15 lvdongjie-avatarx 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 前面说到通过控制对应的IO电平变换即可完成对电机正反转的控制,本节我们尝试编写代码,进行实验。 一、新建工程新建example21_motor_direction_control 二、编写代码根据第前面硬件控制章节学到的内容可知,控制IO电平只需要使用pinMode和digitalWrite相关函数 阅读全文
posted @ 2024-07-02 10:06 lvdongjie-avatarx 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 一、电机驱动原理介绍正式编写代码前,我们先了解下电机驱动的原理,以便于我们了解我们如何才能通过代码控制电机的转速和正反转。1.1 H桥电路让电机动起来只需要通电就行,比如我们用的额定电压为12V 130RPM的电机,当给到12V的电压时可以达到额定转速130转/分,但如果我们给8V的电压,此时电机依 阅读全文
posted @ 2024-07-02 09:16 lvdongjie-avatarx 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 本节我们对移动机器人底盘结构进行简单的介绍,并着重介绍FishBot基础版的组成结构。 对于一个移动底盘来说,所要提供的核心功能有两个-感知和执行能力,我们分别进行介绍。 一、感知-传感器所谓感知即通过给类传感器获取环境信息的能力。在移动机器人中,我们常用的传感器有 距离传感器——雷达、超声波 轮子 阅读全文
posted @ 2024-07-02 09:10 lvdongjie-avatarx 阅读(10) 评论(0) 推荐(0) 编辑