ros中的电机速度控制_ROS与RACECAR教程-电调控制
ROS与RACECAR教程-电调控制
说明
介绍如何通过pwn控制电调,从而控制电机转速
原理:
为了控制伺服或ESC,PWM信号作为可变宽度的重复脉冲发送到器件。
这些设备通过标准的三线连接,两条直流电源线和一个用于控制的电缆连接,该电缆携带脉冲。
脉冲由帧大小定义,帧大小是脉冲的频率和作为信号的ON与OFF时间的PWM占空比。
这是一个单一的信号框架:
对于伺服或ESC,器件预计每20毫秒会看到一个帧,但这可能因设备而异。
对于这个讨论,我们将坚持50Hz(每秒50个周期),这是20ms帧(1秒= 1000毫秒,然后除以50)。
该器件预计在1.0和2.0 ms之间的脉冲。
对于伺服,脉冲宽度表示伺服电机的位置,1.0ms表示-90度,1.5ms表示0度(中心),2.0ms表示+90度。
对于ESC,脉冲宽度表示节气门位置,1.0 ms表示全反向(或最低节气门设置,取决于ESC的解释),1.5ms为中性,2.0表示全油门。
注意:
使用像Jetson这样的SoC时,与专用PWM驱动器或其他微控制器硬件接口可简化生成正确定时的PWM帧和脉冲。
部分原因是因为大多数SoC不运行实时操作系统,也不会为任务生成合适的时钟。
结果是定时信号可以在没有专用硬件的情况下漂移。
PWM Driver
PCA9685 PWM/Servo Driver/伺服驱动器连接到TRAXXAS Rally的电调从而控制电机
Traxxas ESC是Velineon VXL-3s,是一款无刷电机控制器,可从车载直流电池产生三相交流电源。
ESC包含一个微控制器,用于解释所提供的PWM信号,并使用内置固件适当地控制汽车电机。
ESC有三种表演方式:常规,比赛和训练。
为了Jetson RACECAR的目的,ESC被置于训练模式,将电机功率限制在50%。
PCA9685是一个12位设备,这意味着您可以将每个帧分解为2 ^ 12个插槽(4096)。
计算油门脉冲:
1.0ms/20ms*4096 = 204 full reverse
1.5ms/20ms*4096 = 307 neutral
2.0ms/20ms*4096 = 409 full forward
连线:
PCA9685-> I2C -> TX1 ,具体参考上一篇文章
转向伺服应连接到PCA9685的第一个PWM插槽。
接线前,确保Jetson已关闭电源。
为了将ESC连接到PCA9685,请从接收器中取出ESC连接器,并使用2.54mm m/f跳线将连接器黑线(GND)连接到PCA9685的第二个PWM插槽的GND。红线未连接。
注意:
红线为接收器供电(6V)。
由于PCA9685已经由辅助电源供电,所以不应使用额外的电源线。
看这里:
软件:
(1)安装i2c-tools:
安装驱动
$ sudo apt-get install libi2c-dev i2c-tools
使用:
$ sudo i2cdetect -y -r 1
PCA9685默认地址0x40
为了试验控制TRAXXAS Rally车的转向和ESC,已经编写了几个小型应用程序进行测试。
应用程序的来源位于Github上的JetsonHacks jetsonRACECAR github。
下载编译:
$ git clone https://github.com/jetsonhacks/jetsonRACECAR.git
$ cd jetsonRACECAR/research
通过Qt creator打开setThrottle和throttleControl目录下的 .pro文件并编译程序
电调校准:
对ESC进行校准,以便配合所提供的无线电发射机。
在我们将自己的信号替换为ESC的情况下,我们需要使用新的信号进行校准。
为此,打开终端并导航到构建的“setThrottle”应用程序的文件夹:
$ sudo ./setThrottle
这应该在启动时通过PWM发出“Neutral Throttle”信号。
连接小车的电池,并通过“TRULLXAS Rally快速启动指南”中的“校准速度控制”指令
使用屏幕“‘Full Reverse”,“Neutral”和“Full Throttle”按钮代替无线发射器。
一旦速度控制器被校准,断开汽车的电源。
在终端中,切换到“throttleControl”应用程序的构建目录,并执行:
$ sudo ./throttleControl
运行程序输出“Neutral”PWM信号。
接着接上电源并将其置于“Training”模式。
按住ESC的EZ-Set按钮,直到LED闪烁三次,然后释放。
然后LED将变为红色,表示汽车已装备并准备就绪。
有一个项目选择器选择ESC或转向伺服来控制。默认情况下,它是ESC。
确保车轮没有接触任何东西,并增加值直到电机启动。
在视频测试中以317的控制值开始启动电机。
应用程序中有一个“Neutral”按钮,将控制值设置为307.
您可以尝试这些值以查看电机的控制方式,以及用伺服控制器进行实验,找出最佳最大值,最小值和中心值。
参考:
http://www.jetsonhacks.com/2016/01/26/jetson-racecar-part-3-esc-motor-control/
ros中的电机速度控制_ROS与RACECAR教程-电调控制相关推荐
- ros中的电机速度控制_ROS 学习系列-- 四轮机器人线性速率、角速度和电机PWM线性关系的定量分析...
ROS中的机器人导航需要底层轮子驱动十分精确的对行进的速率和角速度进行控制.本文根据大量的实验数据进行图形化分析,找出线性速率.角速度和电机PWM线性关系,并得出计算公式. 1. ROS导航机器人驱动 ...
- ros中的电机速度控制_ROS与duckietbot指南-线速度和角速度校准
ROS与duckietbot指南-线速度和角速度校准 说明: 介绍如何通过校准让小车以最大的速度走直线 影响不能走直线原因: 电机通过电压值不同来控制电机转速,他们是正比关系,电压信号差异会导致走直线 ...
- ros中的电机速度控制_【RosBot】控制两路步进电机-学习笔记1-Arduino中文社区 - Powered by Discuz!...
本帖最后由 动手党 于 2017-12-11 20:05 编辑 收到之前比赛兑换的RosBot 基础板,顺便做一个学习笔记吧 一. 板子做工和用料 rosbot主板1.jpg (302.71 KB, ...
- 单片机STM32直连电调控制航模涵道电机的方法总结
单片机STM32直连电调控制航模涵道电机的方法总结 文章目录 单片机STM32直连电调控制航模涵道电机的方法总结 前言 一.硬件情况 二.涵道电机两种常见的驱动方式 1.有线控制方式 2.无线控制方案 ...
- 【RoboMaster】从零开始控制RM电机(3)- 建立与电调的通信
硬件以及软件环境: STM32Cube_FW_F4_V1.26.2 MDK-ARM 5.29.0.0 大疆RoboMaster开发板A型开发板(STM32F427IIHx)/C型开发板(STM32F4 ...
- 在ROS中通过Arduino实现对4WD轮式机器人的简单控制
本文涉及的内容都是针对四轮小车的,如果你的是两轮或者其他形式的小车,请参考其他文章.当然如果你感兴趣的话,本文也有一定的参考价值.另外,本文的内容仅供参考,如有错误,望各位不吝赐教. 目录 目录 运动 ...
- ROS中实现A*路径规划
ROS中实现A*路径规划 1. 方案设计目标 2. 技术指标 3. 主要研究内容 3.1 A*算法的思想与原理 3.2 A*算法的计算方法 4. 代码实现与优化 4.1 启发函数 4.2 代码介绍 5 ...
- 通用状态机和ROS中的SMACH状态机
状态机 状态机表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型. 有限状态机是由有限的状态及其相互之间的转换构成.而状态转移则表示了当前状态到下一状态的对应关系及转移条件.有限状态机在任何 ...
- 【RoboMaster】从零开始控制RM电机(2)-CAN通信原理及电调通信协议
硬件以及软件环境: STM32Cube_FW_F4_V1.26.2 MDK-ARM 5.29.0.0 大疆RoboMaster开发板A型开发板(STM32F427IIHx)/C型开发板(STM32F4 ...
- 从方波控制到无感FOC电调,什么促使电机系统发生巨变?
从方波控制到无感FOC电调,什么促使电机系统发生巨变? 采用方波控制算法的电调,让无刷电机真正被引入航模及无人机领域.不过在使用过程中,这种控制算法的劣势也越来越明显.这也让一种早已有之的算法--FO ...
最新文章
- 【第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛】Simone and Graph Coloring
- (JAVA学习笔记) 关于类的封装
- 关于重复接收NSNotificationCenter发送的通知的问题
- NOIP模拟测试19「count·dinner·chess」
- Linux环境下安装部署AWStats日志分析系统实例
- 【转】asp.net Core 系列【一】——创建Web应用
- MinIO Server config.json (v18) 指南
- haproxy 负载_负载测试HAProxy(第1部分)
- HTML_DOM简介
- 12306 java_My12306-1.0 一个用java web写的仿12306火车订票系统 - 下载 - 搜珍网
- 计算机实验报告14,计算机14实验报告模板.doc
- API 接口设计中 Token 类型的分类与设计
- yuv422,yuv420,yuv444的区别
- 【阿里开发规范】Java开发手册(嵩山版)
- 【小程序开发】uniapp引入iconfont图标及使用方式
- HTML---表格table标签中thead、tbody、tfoot的作用
- echarts地图设置边界线颜色显示不全
- 重新认识融云,「不止即时通讯」
- Java笔记 - 黑马程序员_08(Lambda表达式,接口组成更新,方法引用,类加载器,反射)
- 2020年全球救市两种方法的分析,从世界高度来理解富人思维