ODrive的CAN通信

SimpleFOC调参2-速度、位置控制 simpleFOC studio调节速度环、位置环过程总结 阅读详情
AI摘要

该文介绍了如何进行ODrive的硬件准备,包括购买链接,以及如何通过代码设置CAN通信的ID和波特率。文章详细讲解了读取电压、校准电机和设置目标位置的通信指令,适用于电机控制领域的技术人员。


 
SimpleFOC、ODrive和VESC 教程链接汇总:请点击
 
 

一、硬件准备

在这里插入图片描述

ODrive 购买链接:https://item.taobao.com/item.htm?ft=t&id=644329838237,图锐科技
电机购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

 
在这里插入图片描述

 

二、代码说明

 
ODrive的CAN通信采用标准帧格式,也就是11bit。Address = node_ID | cmd_ID。
节点ID(node_ID)为高6bit,设置范围1 — 0x3F,一个ODrive的M0/M1需设置为不同的node_ID。
命令ID(cmd_ID)为低5bit,目前共有26个指令,如下图。

 
在这里插入图片描述
 
ODrive默认CAN通信ID为0,默认波特率为250K。上电后CAN接口以0.1秒为周期发送心跳包。

在这里插入图片描述
 

三、通信操作

3.1、设置ID和波特率

odrv0.axis0.config.can_node_id = 2   //ID=2
odrv0.can.set_baud_rate(250000)      //设置波特率250K
odrv0.save_configuration()
odrv0.reboot()

节点地址为2,合成指令时需左移5位,
上电后上传的心跳 cmd_ID=0x01(MSG_ODRIVE_HEARTBEAT),msgID = (node_ID<<5) | cmd_ID = 0x041,

在这里插入图片描述

 

3.2、读取电压

 
读取当前电压值(MSG_GET_VBUS_VOLTAGE)cmd_ID=0x17,msgID = (node_ID<<5) | cmd_ID = 0x057,发送后没有反应,看代码需要rtr为1,打勾。

在这里插入图片描述
在这里插入图片描述
 

3.3、完整操作指令

假如已经通过USB口配置电机参数并保存。

下面通过CAN指令校准、进入闭环模式并设置目标位置。

设置Axis请求状态(MSG_SET_AXIS_REQUESTED_STATE)cmd_ID = 0x07,Adress=(node_ID<<5)|(cmd_ID)=0x047。

047 01 00 00 00 00 00 00 00 //AXIS_STATE_IDLE
047 02 00 00 00 00 00 00 00 //AXIS_STATE_STARTUP_SEQUENCE
047 03 00 00 00 00 00 00 00 //AXIS_STATE_FULL_CALIBRATION_SEQUENCE
047 04 00 00 00 00 00 00 00 //AXIS_STATE_MOTOR_CALIBRATION
047 05 00 00 00 00 00 00 00 //AXIS_STATE_SENSORLESS_CONTROL
047 06 00 00 00 00 00 00 00 //AXIS_STATE_ENCODER_INDEX_SEARCH
047 07 00 00 00 00 00 00 00 //AXIS_STATE_ENCODER_OFFSET_CALIBRATION
047 08 00 00 00 00 00 00 00 //AXIS_STATE_CLOSED_LOOP_CONTROL
047 09 00 00 00 00 00 00 00 //AXIS_STATE_LOCKIN_SPIN
047 0A 00 00 00 00 00 00 00 //AXIS_STATE_ENCODER_DIR_FIND
047 0B 00 00 00 00 00 00 00 //AXIS_STATE_HOMING

在这里插入图片描述
 
在这里插入图片描述
 
设置目标位置(MSG_SET_INPUT_POS)cmd_ID = 0x0C,Adress=(node_ID<<5)|(cmd_ID)=0x04C。

在这里插入图片描述

前4个字节为目标位置,
后2个字节限制最大速度,最后2个字节为限制最大力矩,如果之前已经通过USB配置过,此处可以设置为0。

设置目标位置为5,浮点数转为16进制0x40A00000,如下:

在这里插入图片描述
在这里插入图片描述
 
设置目标位置为0,如下:
在这里插入图片描述
 

3.4、其它指令

在这里插入图片描述
 
在这里插入图片描述
 
 
(完)
 
 
 

ODrive0.5.5源码分析(3) control_loop_cb ODrive0.5.5 control_loop_cb 阅读详情

相关推荐

Odrive无刷驱动器 开发过程学习记录(1)——window10系统下的基础配置

** Odrive无刷驱动器 开发过程学习记录(1) **——window10系统下的基础配置 开发说明: *ODrive 硬件版本: v3.6-56V ODrive 硬件内部固件版本: fw-v0.5.1 odrivetool版本: 0.5.1.post0 (pip install odrive==0.5.1.post0)* 配置环境: windows10 一、基础硬件配置 1. ODrive 驱动开发板 2. 一至二个无刷电机,ODrive可以驱动两个无刷电机。 3. 一个功率耗散电阻。推荐使用5

qq_42857120的博客 7534

Makerbase oDrive第九课 CAN测试

标题第1部分 硬件介绍 1.1 硬件清单 序号 品名 数量 1 ODRIVE主板 1 2 MKS X2212电机 1 3 MKS X2212电机 1 4 USB数据线 1 5 12V 2.0A电源适配器 1 6 杜邦线 2 7 编码器连接线 1 8 50W 2欧 耗散电阻 1 9 CANable_Z USB to CAN 1 硬件清单如下图所示。 1.2 硬件连接 电机与ODrive主板接线参考之前课程,这次需要介绍的是CANable_Z与主板,连接。

gjy_skyblue的博客 8947

用STM32CubeMX和HAL库搞定Odrive的CAN通信:从波特率设置到控制函数编写(避坑指南)

本文详细介绍了如何使用STM32CubeMX和HAL库实现Odrive的CAN通信,涵盖波特率设置、过滤器配置及控制函数编写等关键步骤。通过图形化配置和标准化API,开发者可快速完成硬件连接与软件调试,适用于工业控制和机器人领域的高可靠性通信需求。

weixin_31887307的博客 519

ODrive移植(一)—— 国产替代方案(VScode版移植)

官方网站:https://odriverobotics.com/github网站:https://github.com/odriverobotics/ODrive官方使用说明:https://docs.odriverobotics.com/v/latest/guides/getting-started.html,在左下角选择对应的版本,比如ODrive-V3.6的当前最新版本是0.5.6,

loop222的博客 1万+

手把手教你用STM32CubeMX和HAL库搞定Odrive的CAN通信(附完整代码)

本文详细介绍了如何使用STM32CubeMX和HAL库实现STM32与Odrive的CAN通信系统,包括硬件选型、CubeMX配置、HAL库实战代码及调试技巧。特别针对工业控制与机器人开发领域,提供完整的配置指南和优化策略,帮助开发者快速掌握CAN通信技术。

weixin_33640562的博客 495

odrive中can的使用,以及usb配置命令大全

odrive中can的使用。以及usb配置命令大全。

pvmsmfchcs的博客 514

ODrive应用 #1 ODrive入门指南

ODrive 入门 文章目录ODrive 入门硬件需求需要准备以下硬件:ODrive 接线Wiring up the motorsWiring up the encodersSafety & Power UPDownloading and Installing ToolsWindowsOSXLinuxFirmwareStart `odrivetool`Configure M02. Set ...

codenocold 8万+

ODrive上位机开发实战:串口/CAN通信、参数读写与轨迹下发

上位机软件开发是嵌入式系统调试与集成的关键环节,其核心在于通过串口或CAN总线等物理链路实现PC与驱动器的稳定通信。在机器人关节、云台及CNC转台等场景中,开发者常需基于C#或Python构建交互界面,完成参数读写、实时曲线绘制与轨迹下发。通信协议的选择直接影响实时性与可靠性,例如ASCII协议便于调试,而二进制协议更适合高频指令传输。针对ODrive驱动器,上位机需解决串口丢包、CAN掉线及固件版本错配等工程问题,并通过环形缓冲区与多线程架构保障数据吞吐。本文围绕ODrive上位机开发,详解从链路选型到轨

weixin_42525632的博客 310

STM32,odrive之间的can通信配置

初步尝试用stm32F407来控制odrive驱动电机

weixin_45857444的博客 3466

ODrive上位机开发实战:USB/CAN通信、PID调试与参数持久化

在机器人运动控制中,FOC闭环伺服驱动是实现精准力矩与位置控制的核心技术,其原理是通过磁场定向将三相电流解耦为励磁与转矩分量,从而获得类似直流电机的控制特性。上位机作为人机交互与调试的关键环节,承担着参数整定、实时曲线监控与配置持久化等工程任务。对于ODrive这类双路无刷电机驱动器,开发者常需通过USB或CAN链路建立通信,完成PID参数在线调整、编码器校准及错误码诊断。典型应用场景包括机械臂关节调试、轮式底盘多轴协同以及云台伺服整定。本文围绕ODrive上位机开发,系统梳理通信层选型、参数读写、实时曲线

weixin_29184371的博客 165

CODESYS连接触摸屏

触摸屏:威纶通-MT8071iP(网络IP:192.168.1.10) 控制器:研华AMAX-5580(PAC)(Win10系统,网络IP:192.168.1.3) CODESYS RTE:RTE 64 V3.5 SP13 Build05 笔记本:Thinkpad L14(网络IP:192.168.1.2) CODESYS IDE:V3.5 SP13(ADD ON V3.5.13.5) 一、确认网络通讯正常(关闭防火墙) 笔记本与触摸屏网络测试情况 笔记本与控制器网络测试情况 二、控制器部分 1、新建

Leo的博客 1万+

odrive ——foc_can通信

stm32f103zet6与odrive的can通信

user2604530353的博客 977

通达信大单资金实时监控与播报插件:股票分析的实用利器——大红球

本文介绍了一款专为通达信软件设计的大单资金实时监控与播报插件,该插件以其傻瓜式操作和入门级特性在股民中广受欢迎。插件核心功能包括与通达信版面的无缝联动、大单金额范围的自定义设置、资金流动的可视化展示以及智能声音播报等。其技术架构基于本地网页形式,自带分时图显示功能,数据实时更新且无需L2账户,承诺永久免费升级。插件通过红绿球的大小和颜色直观展示资金规模与买卖方向,顶端全局统计功能提供宏观资金流动分析。尽管插件数据具有较高参考价值,但投资者仍需结合其他因素进行综合判断。插件界面可自适应调整,提供个性化使用体验

guleba的博客 6589

ODrive CAN通信上位机介绍

ODrive驱动板CAN通信模块和上位机

raodapeng0123的博客 803

Docker 磁盘占用过多问题处理过程记录

Docker 磁盘爆满问题处理

MR.骑士道 3553

Cadence Spectre仿真保姆级教程:从DC/AC到PSS/PV,手把手教你搞定模拟电路分析

作为业界标准的Cadence Spectre仿真器,以其精确的算法和丰富的分析类型,成为每个模拟IC工程师必须掌握的利器。本文将带你从零开始,系统掌握Spectre仿真的核心技能,从最基础的DC工作点分析到复杂的PSS相位噪声仿真,每个步骤都配有详细的操作指导和实用技巧。记得我第一次使用Spectre仿真一个简单的两级运放时,花了整整三天时间才得到正确的AC响应曲线。过程中踩过的坑、浪费的时间,现在想来都是宝贵的学习资源。与传统的AC分析不同,STB分析可以在不破坏环路的情况下评估稳定性。

weixin_30898555的博客 329

ODrive项目CAN总线通信指南

CAN(Controller Area Network)总线是一种广泛应用于汽车电子和工业控制领域的通信协议标准。它采用差分信号传输方式,仅需一对双绞线即可实现多设备间的可靠通信。 CAN总线的核心特点包括: - 多主架构:所有节点平等,无需主控设备 - 非破坏性仲裁机制:通过消息ID优先级解决冲突 - 差分信号传输:抗干扰能力强 - 错误检测与处理:内置CRC校验和错误帧机制 在ODrive...

gitblog_00663的博客 780

3D Gaussian Splatting环境配置和运行

使用conda命令根据environment.yml文件创建虚拟环境时,安装的pytorch是使用conda install 命令来安装的,实际上并不能成功安装带有gpu的pytorch,而这两个模块的安装依赖于带gpu的pytorch。如果不注释掉这三行,直接安装会报错

m0_46360757的博客 3326

ODrive项目CAN总线通信指南:从原理到实践

CAN(Controller Area Network)总线是一种广泛应用于汽车电子和工业控制领域的通信协议。它采用多主架构设计,允许多个设备通过一对双绞线进行通信,具有以下显著特点: 1. **差分信号传输**:使用CAN_H和CAN_L两条线传输差分信号,抗干扰能力强 2. **非破坏性仲裁**:基于消息ID的优先级机制,高优先级消息不会被低优先级消息阻塞 3. **广播通信**:所有节点都

gitblog_00605的博客 782

【智能体评测】BrowserUse:一款超越 Anthropic Computer Use 的开源智能体

本文将全面介绍 BrowserUse 的核心功能、配置与使用方法,以及通过多场景测试评估其性能。

surfirst的博客 4098

[苹果开发者账号]03 申请APPID、苹果开发者账号 常见问题整理

目录:问题持续更新问题一:提示:抱歉,您暂时不能注册问题二:Apple Developer Support提示:联系我们以继续流程 问题一:提示:抱歉,您暂时不能注册 申请苹果开发者账号,应该先注册AppleID,由于很多都是申请的公司使用的苹果开发者账号。一般操作申请动作的人,可能是新手操作,也可能图方便,有些信息会随便填写。 有些人会把姓名填写为,公司的产品、简称、缩写等等。这是不对的。 还有出生日期也会随便乱填。生日如果填写的不对,会被苹果限制使用一些功能的(苹果给的提示不是太明确)。 当生日填写的

专注于技术开发、项目管理 1万+

ODrive通信接口实战:USB、UART、I2C与CAN总线应用指南

ODrive是一款开源的高性能无刷电机驱动器,为机器人、CNC和自动化项目提供了强大的运动控制解决方案。本文将深入探讨ODrive的四大通信接口:USB、UART、I2C和CAN总线,帮助您选择最适合您项目的通信方式,并提供实用的配置指南。 ## 为什么需要多种通信接口? ODrive设计支持多种通信协议,以满足不同应用场景的需求。USB接口适合PC端调试和配置,UART适合微控制器直接通信,

gitblog_00629的博客 652

深入解析:AndroidManifest.xml 与 Qt 6.7.0 的整合

本文探讨了在Qt 6.7.0和CMake构建Android应用时,AndroidManifest.xml未被正确识别的问题。通过分析CMake配置错误、文件路径问题等可能原因,提出了在CMakeLists.txt中明确指定路径、确保目录结构正确等解决方案,并给出了示例项目演示。文章强调正确配置AndroidManifest.xml对获取权限和应用功能的重要性,为Qt开发者提供了实用的调试建议。

2501_90323865的博客 109

ODrive硬件接口完全指南:CAN、UART、I2C与USB通信详解

ODrive作为一款高性能电机控制解决方案,提供了丰富的硬件接口选项,包括CAN、UART、I2C和USB,满足不同应用场景下的通信需求。本文将详细介绍这些接口的配置方法、应用场景及最佳实践,帮助用户快速实现与ODrive的稳定通信。 ## 一、USB接口:开发与调试的首选方案 USB接口是ODrive最常用的通信方式,主要用于设备配置、固件更新和调试。ODrive通过USB实现了复合设备功能

gitblog_00066的博客 496

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ODrive CAN总线通信指南:多设备组网与实时控制

ODrive作为高性能电机控制平台,其CAN总线通信功能为多电机协同控制提供了强大支持。本文将详细介绍如何通过CAN总线实现ODrive设备的组网与实时控制,帮助新手用户快速掌握这一核心功能。 ## 📡 CAN总线基础:为何选择CAN进行电机控制? CAN(Controller Area Network)总线是一种高可靠性的串行通信协议,特别适合工业控制领域。对于ODrive电机控制器而言,

gitblog_00340的博客 464

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ODrive CAN协议详解:工业级机器人通信标准实现

ODrive CAN协议是ODrive无刷电机驱动器实现工业级机器人通信的核心技术,通过CAN总线实现多轴同步控制和实时数据交换。本文将详细介绍ODrive CAN协议的设计原理、消息格式、配置方法和实际应用,帮助开发者快速掌握这一强大的通信接口。 ## 🔌 CAN总线基础与ODrive实现 CAN(Controller Area Network)总线是一种广泛应用于汽车和工业自动化领域的通

gitblog_00841的博客 480

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: ODrive运放电路的分析和替代方案
下一篇: ODrive的梯形轨迹
loop222
博客等级 码龄8年 4091粉丝 61原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值