一、项目

MilkTeaBrother是使用麦克纳姆移动方式的室内服务小车,动力系统为RoboMaster M2006,文中提到的相关文件可以在下方获取。
点击此处了解MilkTeaBrother相关信息

二、测试内容

测试在Ubuntu20.04环境下,在ROS读取电机位置或速度反馈信息控制电机,完成小车移动控制,通过PID控制算法,实现小车速度的闭环。

三、测试材料

① 优利德UNIT直流稳压电源UTP1310

UTP1310是经济型的直流稳压电源,具有过压保护、过流保护、过温保护、LED四位电压电流显示等功能。
了解UTP1310直流稳压电源相关信息

② RoboMaster M2006 P36直流无刷减速电机

了解M2006电机相关信息
M2006 P36电机采用三相永磁直流无刷结构,具有输出转速高、体积小、功率密度高的特点。M2006内置位置传感器,提供精确的位置反馈,以FOC矢量控制方式使电机产生连续的扭矩。减速箱减速比为36:1
电机的额定输入电压为24V,额定电流为3A

③ RoboMaster C610无刷电机调速器

了解C610电调相关信息
C610电调采用32位电机驱动定制芯片,使用磁场定向控制技术(FOC),实现对电机扭矩的精确控制,与M2006电机配合使用,可选用RoboMaster Assistant调参并升级固件

④ RoboMaster 电调中心板 2

了解RM2电调中心板相关信息
RoboMaster 电调中心板 2 是一款专为实现电源及 CAN Bus 通信接口扩展的转接板。中心板具有结构紧凑、接口集成度高等特性,可同时驱动 7 套动力系统;采用硅胶外壳设计提高了防护等级,保障产品可靠运行。

⑤ MakerbaseMKS CANable Pro V1.0 USB转CAN模块

CANable 是一款小型的、低成本的开源 USB 转 CAN 适配器。 CANable 在您的计算机上显示为虚拟串行端口,并充当 CAN 总线接口的串行线路。 使用可选的candlelight固件时,CANable 将作为 Linux 上的本机 CAN 接口被调用。
CANable Pro 是 CANable 的电隔离版本,具有增强的 ESD 保护和分离式固定孔。
了解CANable相关信息
了解Makerbase商家提供的测试案例

四、测试前准备

① 接线

开始测试前,需要首先将各部分接线如下:

1. 连接XT60电源线与中心板

RoboMaster Central Board 2额定输入电压为24V,额定输入电流为30A,电源输入接口为XT60

2. 连接中心板与XT30电源线

中心板上有七个XT30电源输出接口,额定电压为24V,额定输出电流为15A

3. 连接XT30电源线与C610电调

将XT30电源线正负两线,分别焊于电调的正负点位,对应焊接点在C610电调说明书中有具体描述。
C610电调额定电压为24V,最高支持10A的持续电流。

4. 连接中心板与CAN信号线

在中心板的顶部或侧面有多个2-Pin CAN总线接口,每个接口与板上其他CAN总线接口并联,用于CAN总线通讯。

5. 连接CAN信号线与C610电调

按照CAN信号线线序CAN_H、CAN_L,将CAN信号线焊接到C610电调背面对应端点,在说明书中有具体描述。
CAN总线比特率为1Mbps,M2006动力系统的CAN通信默认发送频率为1KHz

6. 连接C610电调与M2006电机的三相动力接头

连接时确保连线正确,在说明书中有具体说明。

7. 连接C610电调与M2006电机的4-Pin数据线

将M2006电机的4-Pin位置传感器数据线连接到C610电调对应端口上,在说明书中有具体描述。
最终接线情况应如下图所示:

② 接通电源并校准电机

1. 接通电源

待收到启动蜂鸣,电机与电调开始正常工作后,绿灯闪烁,此时可以开始校正电机。

2. 校正电机

校准过程中须保持空载,且不可触碰电机。
初次使用需校准电机,长按C610电调上的SET按键,直至指示灯变为绿灯高频闪烁,随后释放SET按键。此时电机将进入自动校准模式,校准完成后会自动退出校准模式。

五、测试

① 调试MakerbaseCANable USB转CAN模块

1. 获取CANable固件

可以从CANable官网下载固件。
也可查看文件夹中已经编译好的固件firmware.bin,或者是按照candlelight项目的编译步骤获取固件文件。

2. 烧录

使用STM32CubeProgrammer将固件烧录到板中。
下载STM32CubeProgrammer
将板上的boot跳线连接,开启DFU (Device Firmware Upgrade) 烧录模式,boot位置即图上红框处。

打开STM32CubeProgrammer,依次点击红绿蓝三个按钮,搜索可用的STM32设备。

随后按照图示顺序,加载本地的固件文件。

选择好本地的固件文件后,点击和上图中Read同位置的Download按钮,将固件文件载入板中。
当提示烧录成功后,断开跳线,准备开始下一步在Linux中进行测试。

② 在Linux中测试接收CAN总线信息

1. 安装测试软件包及其依赖

sudo apt-get install -y can-utils net-tools

2. 查看CAN设备是否能被发现

can设备在Linux下在ifconfig中和其他设备一同管理,图中红框所示为测试要用的CAN设备。

ifconfig -a

3. 启用CAN设备

以CAN设备名为can0为例,比特率为1000000,启用该设备。

sudo ip link set can0 up type can bitrate 1000000

4. 监听CAN端口

监听Can0收到的信息。

candump can0


此时扭动电机,可以看到can0处收到的信息在不断变化,证明能接收到CAN总线信息,可以准备下一步测试,按照协议规则,读取CAN设备传达的具体信息。

③ CAN通讯

要通过CAN总线收发电机的信息,首先要了解CAN本身,着重了解数据帧部分
了解CAN通讯数据帧相关内容
因为只涉及到应用CAN,因此对其底层的具体实现不需要全部掌握,使用python-can在Ubuntu中开发。
python-can 库为 Python 提供控制器区域网络支持,为不同的硬件设备提供通用抽象,以及一套用于在 CAN 总线上发送和接收消息的实用程序。
查看MilkTeaBrother的can通讯模块

④ 控制电机

在了解完CAN通讯后,依照MilkTeaBrother的CAN模块,接收并向电机发送控制指令
查看MilkTeaBrother的电机主程序

⑤ 初步PID闭环调节

需要完成对电机的初步pid调节后,电机可以按照用户想要的值转动
查看MilkTeaBrother的PID模块

⑥ 移植到ROS中

在ROS中调用电机的主程序,并将参数传向参数服务器,在上位机中对pid常数作优化调整

参考资料如下:
广东工业大学USB2CAN项目
CAN通讯
python串口通信控制电机驱动

大疆M2006电机测试文档相关推荐

  1. 软件工程 期末大作业参考 【餐厅点餐系统 】(面向对象模型:需求分析+面向对象设计书+可行性分析+测试文档+java界面)

    软件工程大作业(餐厅管理系统)参考:需求分析+面向对象设计书+可行性分析+测试文档+JAVA项目 一.需求分析部分截图 二.面向对象设计书部分截图 三.可行性分析部分截图 四.测试文档部分截图 本文主 ...

  2. ASP.NET Web API 使用Swagger生成在线帮助测试文档

    ASP.NET Web API 使用Swagger生成在线帮助测试文档 Swagger-UI简单而一目了然.它能够纯碎的基于html+javascript实现,只要稍微整合一下便能成为方便的API在线 ...

  3. 多模态大模型时代下的文档图像智能分析与处理

    多模态大模型时代下的文档图像智能分析与处理 0. 前言 1. 人工智能发展历程 1.1 传统机器学习 1.2 深度学习 1.3 多模态大模型时代 2. CCIG 文档图像智能分析与处理论坛 2.1 文 ...

  4. 软件工程小组问世第八章之测试文档

    1.引言 1.1编写目的 编写此文档的目的主要在于确定整个测试阶段建立测试测试的内容和范围,以供软件测试人员作为软件测试实施的参考. 1.2 项目背景 项目名称:燃烧我的卡路里 项目提出者/开发者/实 ...

  5. DATAHUB 调研测试文档

    DATAHUB 调研测试文档 李达 20200710 lida2012@foxmail.com 1.环境安装 服务器配置: 服务器ip:192.168.123.80 系统版本:CentOS Linux ...

  6. 使用Confluence如何输出一份结构清晰 可读性高的测试文档?

    一.前言 很多小伙伴们 , 会有输出文档的好习惯 :但 如何 输出一份 结构清晰&可读性高 的测试文档 / 帮助文档呢 ? 你写的流程文档 / 帮助文档 / 使用教程 ,别人看完了之后能上手操 ...

  7. 我的成长笔记20210402(测试文档编写)

    记录第四天 1.今天写了一篇工具的使用手册文章,被我们测试团队的伙伴们夸奖:图文并茂,结构清析,我的直属Leader也说:以后来教教我们写文档吧! 2.简单说说文档该如何写:列好大纲 ,补充细节 ,可 ...

  8. PG系列数据库TPCH测试文档

    PG系列数据库TPCH测试文档 该文档适用于使用postgresql语法的数据库 一.机器环境 此次测试只为走通该测试的测试流程,准备的服务器是本地虚拟化的机器,故性能不具备参考价值 主机名 ip 内 ...

  9. 大疆A型板使用经验分享(七)——大疆M3508电机和PID控制

    一. 大疆M3508电机 大疆M3508电机可以从RM官网下载很多相关资料,这里不做过多赘述.关于电机配套电调使用的时候,重点是如下两张图: 第一张图是电调接收报文的格式,即如果要发送数据给1号到4号 ...

最新文章

  1. 什么是shell【TLCL】
  2. Python初探---2x版本与3x版本的区别
  3. HOWTO:安装包卸载时如何保留部分文件不被卸载
  4. phoenix 3.1 + hbase 0.94.21 的安装和使用
  5. shell模拟php多进程从redis获取数据(多个redis实例)
  6. html5 tab菜单切换页面,11个常用的jQuery TAB切换菜单源码及制作教程
  7. clickhouse官方文档_clickhouse分析:结合grafana和metabase完成监控和数据分析
  8. eth_type_trans的处理流程图
  9. encapsulation
  10. java8中的接口与时间操作
  11. (1)Spring框架----通俗易懂的IoC原理
  12. 南阳理工ACM——106背包问题
  13. linux挂载卸载美色商城,索尼爱立信LT18i
  14. MySQL数据库主从同步,一致性解决方案
  15. 基于深度学习的单目视觉深度估计研究综述
  16. Content type ‘application/json;charset=UTF-8‘ not supp...
  17. 一。回合制游戏 加暴击 掉落 二。柜台商品管理系统
  18. 从自己的角度比较 天书夜读 和 寒江独钓
  19. DOM 对象的方法和属性
  20. JavaScript 教程---菜鸟教程

热门文章

  1. 第十届蓝桥杯B组国赛题
  2. DeepMind联合UCL,推出2021强化学习最新课程!
  3. Oracle APEX 系列文章15:无人值守一键安装Oracle APEX环境
  4. KR|腰围60cm,舞王式看不出肋骨外翻
  5. NLP成功十四项心理定律
  6. 滑块验证码(selenium)
  7. k8s使用StatefulSet部署MongoDB集群
  8. 【学习札记NO.00004】Linux Kernel Pwn学习笔记 I:一切开始之前
  9. java网上商城学年论文_java网上商城论文(DOC毕业设计论文)
  10. php sftp文件上传 文件上传