网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 人工智能 > 人形机器人 >

摘要:本文介绍了一个开源项目USB2FDCAN-Demo-DM,它

时间:2026-03-24 09:45

人气:

作者:admin

标签:

导读:摘要:本文介绍了一个开源项目USB2FDCAN-Demo-DM,它通过两个USB2FDCAN模块在Linux系统上拓展4路CAN总线,实现对12台达妙电机的2000Hz高速控制。项目提供了完整的硬件配置指南(包括电机ID设...

大家好,最近我开源了一个针对达妙电机的高速控制项目 ——USB2FDCAN-Demo-DM,相信很多做四足机器人开发的朋友,都会遇到多电机高速控制的难题:CAN 总线带宽不足、多电机控制频率上不去、硬件拓展繁琐…

这个项目正好解决了这些痛点,它可以通过两个 USB2FDCAN 模块,让你的 Linux 系统电脑轻松拓展出 4 路 CAN 总线,实现对 12 台达妙电机的 2000Hz 高速控制,非常适合作为四足机器人的控制底层。今天就来手把手带大家上手这个开源仓库,从硬件准备到项目运行,一步到位。

项目开源地址:https://gitee.com/ding-lab/USB2FDCAN-Demo-DM.git


一、项目简介

本项目使用 C++ 在 Linux 环境开发,核心功能如下:

  • 通过 2 个 USB2FDCAN 模块拓展 4 路独立 CAN 总线

  • 单条总线可挂载 3 台达妙电机,总计支持 12 台电机同步控制

  • 实现 2000Hz 的超高控制频率,满足四足机器人的实时控制需求

  • 封装了完整的电机控制接口,开箱即用,无需重复造轮子


二、硬件准备

在开始使用项目之前,你需要提前准备好对应的硬件:

  1. USB2FDCAN 模块:本项目需要搭配肥猫机器人公司的 USB2FDCAN 模块使用,注意不要错买成普通的 USB2CAN 模块,本项目使用的是支持 FDCAN 高速传输的版本。

    模块购买地址:https://e.tb.cn/h.TBC18sl6EZKXUjL?tk=C5g5eLgyMf6HU071
    模块说明书与 SDK 下载:https://pan.baidu.com/s/1EwYDNQ0jMKyTSvJEEcj6aw?pwd=10ob

  2. 达妙电机:本项目默认适配达妙 DM-J10010L-2EC 电机,如果你使用其他型号的达妙电机,只需要修改对应参数即可兼容。

    电机购买地址:https://e.tb.cn/h.64misbVFgC99Sp6?tk=eKKrex5NSR0CZ193


三、前期环境配置

3.1 安装 USB 设备规则

为了让系统能够正常识别 USB2FDCAN 模块,我们需要先安装 udev 规则文件,这一步是硬件正常工作的前提:

  1. 首先克隆项目到本地(或者直接使用项目内的规则文件):

git clone https://gitee.com/ding-lab/USB2FDCAN-Demo-DM.git
  1. 进入项目的 can 目录:

cd USB2FDCAN-Demo-DM/can
  1. 复制规则文件到系统规则目录:

sudo cp usb_can.rules /etc/udev/rules.d/
  1. 重启 udev 服务让规则生效:

sudo udevadm trigger

完成这一步后,插入 USB2FDCAN 模块,系统就可以正常识别到设备了。


四、达妙电机的提前配置

这一步是最容易踩坑的环节,必须提前完成电机的配置,否则项目无法正常运行

4.1 电机 ID 配置

为了避免多电机的反馈报文冲突,本项目约定了电机 CAN ID 与反馈 Master ID 的对应关系:

  • CAN ID 为0x01的电机,Master ID 设置为0x11

  • CAN ID 为0x02的电机,Master ID 设置为0x22

  • CAN ID 为0x03的电机,Master ID 设置为0x33

  • 后续添加电机以此类推

你需要使用达妙官方的上位机,提前给每台电机设置好对应的 ID,确保和程序中的约定一致。

4.2 波特率与固件更新

  1. 波特率修改:本项目使用 5M 的 CAN 波特率,你需要提前将所有电机的 CAN 波特率修改为 5M,修改方法可以参考项目内达妙电机资料文件夹下的教程视频。

  2. 固件更新:请将电机的驱动固件更新到项目达妙电机资料文件夹下的对应版本,或者直接更新到最新版本,保证兼容性。

4.3 接线注意事项

  1. 达妙电机的 CAN 口与 USB2FDCAN 模块的 CAN 口线序是相反的,接线的时候请使用反序的 CAN 线。

  2. 请务必开启达妙电机的 120 欧终端电阻,否则 CAN 总线无法正常通信。


五、项目的编译与运行

完成了硬件和电机的配置后,我们就可以编译运行项目了:

  1. 进入项目根目录:

cd USB2FDCAN-Demo-DM
  1. 创建编译目录并编译项目:

mkdir build
cd build
cmake ..
make
  1. 运行编译好的程序:

./can_code

如果一切正常,程序就会启动,开始和电机建立通信,你就可以看到电机的状态数据打印在终端里了。


六、项目自定义与拓展

本项目做了非常完善的封装,你可以很方便地根据自己的需求修改代码:

  1. 自定义控制逻辑:项目的核心控制函数在src/Tangair_usb2can.cppCAN_TX_test_thread()函数中,这里包含了电机初始参数设置、实时控制指令发送、数据打印等逻辑,你可以直接在这里添加自己的自定义控制代码。

  2. 电机参数修改:如果你使用的不是默认的 DM-J10010L-2EC 电机,你可以修改include/Tangair_usb2can.h中的电机参数,适配你的电机型号。

  3. 硬件拓展:如果你需要控制更多的电机,你可以拓展更多的 USB2FDCAN 模块,单台电脑最多可以拓展 4 个模块,也就是 8 路 CAN 总线,对应 24 台电机,只需要在代码中添加对应的设备配置即可。


七、性能与注意事项

7.1 项目性能测试

我们对项目做了详细的带宽测试,结果如下:

  • 单电机控制命令间隔 104us 时,有效带宽可达 9247.57Hz,丢包率仅 3.3%

  • 单电机控制命令间隔 143.22us 时,开始出现丢包,对应频率为 7150Hz

  • 本项目默认的 2000Hz 控制频率。

7.2 使用注意事项

  1. 本项目默认的两个 USB2FDCAN 模块,设备名分别为USB2CAN0USB2CAN1,如果你的模块名称不同,请修改代码中的对应配置。

  2. 同一条 CAN 总线上的控制命令发送间隔不应小于 160us,你可以交错发送不同总线上的命令来提升效率。

  3. 项目封装了电机数据结构体,你只需要给结构体赋值后调用发送函数即可控制电机,数值范围请参考达妙电机的官方说明书。


八、相关配套项目

如果你想要基于本项目开发完整的四足机器人,你可以配合以下开源项目一起使用:


九、开源协议与引用说明

本项目采用 Apache-2.0 开源协议,你可以自由使用、修改和分发本项目的代码。如果你在研究中使用了本项目的代码,欢迎引用说明:


@software{tangair2026USB2FDCAN-Demo-DM,
author = {tangair},
title = {{USB2FDCAN-Demo-DM: An project based on USB2CAN and DM motor.}},
url = {https://github.com/SOULDE-Studio/USB2FDCAN-Demo-DM.git},
year = {2026}
}

如果大家在使用过程中遇到问题,欢迎在 Gitee 仓库提 Issue,也欢迎大家一起贡献代码,让这个项目变得更完善!

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信