RIKIBOT-FOC使用系列-FOC无刷轮毂电机控制使用教程

一、简介

RIKIBOT-FOC无刷轮毂电机驱动板,是一款兼容市面上大数据3相8线500W以内霍尔轮毂电机,宽电压驱动:24-36V,最大电流15A,系统默认电机极对数为15,控制简单通过串口即可控制轮毂电机,轮毂电机的优势很明显,工作安静、扭力大、平稳、速度与负载可以兼得,像一般轮毂电机的单个负载都是150KG起,一改有刷电机有速度没负载,有负载没速度的尴尬情况,因此可广泛应用于ROS移动机器人、小型AGV、服务机器人领域。
在这里插入图片描述

二、控制板接口介绍

1、电机线

黄绿蓝三相电机线,为UVW三相电机线

2、电源接口

市面上常用的24-36V锂电池T型接口

3、开机按钮

为触发式自复位按钮信号,也就是按一下按钮可复位按钮即可,切记不要接自锁式按钮

4、左右侧电机霍尔线

从下图看,从左到右的接口顺序为GND-绿-蓝-黄-5V信号,每家电机对UVW线色可能不一样,所以在这里接线时,绿-蓝-黄不一定与板上一样,这个自己尝试后才能确认下来,如果接上去控制异常,自己需要调整这三个的线序

5、串口控制线

从下图看,从左到右的接口顺序为开机信号-TX(数据发送IO)-RX(数据接收IO)-GND,这里的开机信号与上面的开机按钮一样,如果不接开机按钮只需要给一个1秒左右高电平信号即可。都可以实现驱动板的开机。
在这里插入图片描述

三、控制协议

这里以stm32控制板为例,发送数据一个结构体与接收数据一个结构体,按下面的格式进行数据填充即可

typedef struct{                //接收数据结构体
    uint16_t  start;          //帧ID --0xABCD
    int16_t   rpmR;    				//右轮转速
    int16_t   rpmL;    				//左轮转速
    int16_t   batVoltage;     //驱动板电压
    int16_t   boardTemp;      //驱动板温度
    int16_t 	curL_DC;        //左轮电流
    int16_t 	curR_DC;        //右轮电流
    uint16_t  checksum;       //校验和
} RikibotFeedback;

typedef struct{           //发送结构体
   uint16_t start;        //帧ID 0xABCD
   int16_t  mSpeedR;      //右轮速度(驱动板速度映射为0-1000,然后转速为0-366,也就是0-366RPM通过map映射成0-1000的PWM值)
   int16_t  mSpeedL;      //左轮速度
   uint16_t checksum;     //校验和
} RikibotCommand;

接收校验和的计算为接收结构体内数据进行异或运算:

checksum = (uint16_t)(FrontFeedback.start ^ FrontFeedback.rpmR ^ FrontFeedback.rpmL
			^ FrontFeedback.batVoltage ^ FrontFeedback.boardTemp 
		      ^ FrontFeedback.curL_DC ^ FrontFeedback.curR_DC);

发送数据校验和的计算为发送结构体内的数据进行异或运算:

FrontCommand.checksum 	= (uint16_t)(FrontCommand.start ^ FrontCommand.mSpeedR ^ FrontCommand.mSpeedL);

开机信号,这里直接给一个1秒左右的高电平即可,关于开机信号,像树莓派或者jetson nano上的GPIO驱动电流过小不可以直接控制,需要通过信号隔离进行控制。

GPIO_SetBits(RIKI_MOTOR_EN1_GPIO_PORT, RIKI_MOTOR_EN1_PIN); 	
delay(1000);
GPIO_ResetBits(RIKI_MOTOR_EN1_GPIO_PORT, RIKI_MOTOR_EN1_PIN);	

四、工程示例

代码放在了gitee上,工程提供了arduino、stm32、ros1、ros2、liunx等相关示例,相关的用户可以根据自己需要构建相关的环境,构建时请参考示例的README文件来构建,代码连接:
rikibot-foc控制板代码连接

1、stm32示例工程建

在这里插入图片描述
用户只需要安装好keil,这里工程示例是基于stm32f103RC芯片构建,如果是其它芯片用户选择相关的芯片即可,然后编译烧写即可,下面是指导视频。

RIKIBOT-FOC使用系列-无刷轮毂电机驱动板介绍与基于STM32的控制示例

2、基于ROS的示例构建

安装依赖环境

sudo apt-get install ros-melodic-serial

如何构建

1、建立ros工作空间

mkdir ~/foc_ws/src -p

2、拷贝ros1目录下的源码包到工作空间

copy rikibot_foc_driver riki_msgs ~/foc_ws/src -rf

3、编译相关的工作环境

cd ~/foc_ws

catkin_make -j1

如何使用

1、首先接好开关按钮,或者信号触发上电驱动板,并接好电机线与控制串口

2、使用前修改rikibot_foc_driver/config/rikibot_params.yaml文件的串口设备好,系统默认是jetson nano的串口名称“/dev/ttyTHS1”

3、初始化工作空间,并启动

source ~/foc_ws/devel/setup.bash

roslaunch rikibot_foc_driver rikibot_driver.launch

4、键盘控制电机

rosrun teleop_twis t_keyboard teleop_twist_keyboard.py

5、查看相关数据,里面反馈了battery(控制板电量)与raw_vel(实时速度)话题

rostopic list

RIKIBOT-FOC使用系列-无刷(轮毂)电机驱动板基于ROS1接口控制示例包的使用

3、基于ROS2的示例构建

如何构建

1、建立ros2工作空间

mkdir ~/foc_ws/src -p

2、拷贝ros2目录下的源码包到工作空间

copy ros2/* ~/foc_ws/src -rf

3、编译串口包

cd serial-ros2/
mkdir build && cd build
cmake …
make && sudo make install

3、编译相关的工作环境

cd ~/foc_ws
colcon build

如何使用

1、首先接好开关按钮,或者信号触发上电驱动板,并接好电机线与控制串口

2、初始化ROS2环境

source ~/foc_ws/install/setup.bash

3、启动驱动包

ros2 launch rikibot_foc_driver rikibot_foc_driver.launch.py

4、启动键盘控制

ros2 run teleop_twist_keyboard teleop_twist_keyboard

5、查看相关的话题,驱动包产生了battery(驱动板电量)与raw_vel(电机速度)

ros2 topic list

RIKIBOT-FOC使用系列-无刷轮毂电机驱动板基于ROS2接口控制示例包的使用

4、基于Liunx的控制示例

如何构建

mkdir build
cd build
cmake … && make

如何使用

./rikibot_foc_ctrl

RIKIBOT-FOC使用系列-无刷轮毂电机驱动板基于liunx下的接口控制示例

五、交流方式

QQ交流群:130486387
RIKIBOT店铺连接

对于极速越野模型车所使用无刷电机驱动板,这类设备通常用于控制电动机的速度与方向,确保车辆能够稳定运行并且提供足够的动力输出。以下是有关无刷电机驱动板的技术规格以及应用场景的信息。 技术规格方面: - 支持的电压范围:不同的驱动板支持的工作电压有所不同,一般会标明最小和最大输入电压值,例如7V至25.2V。 - 最大电流承载能力:这决定了驱动板能处理的最大功率,比如持续工作下的电流可达几十安培以上。 - 控制信号接口:包括PWM(脉宽调制)、IIC、SPI等通信协议的支持情况。 - 编码器反馈支持:一些高级别的驱动板可能具备编码器连接端口,以便实现更精确的位置或速度闭环控制- 冷却方式:主动散热设计如风扇冷却或是被动式的金属外壳自然散热。 - 特殊功能:过流保护、短路保护等功能特性也是重要的考量因素之一。 应用场景涵盖: - 极速越野比赛中的赛车需要高性能的动力传输解决方案,因此会选择高效稳定的无刷电机驱动板来保证最佳表现。 - DIY爱好者构建个人项目时也会挑选适合的型号应用于自制机器人或其他自动化装置之中。 - 工业领域内的自动导引运输车(AGV)同样依赖此类组件完成物料搬运任务。 为了找到最适合特定需求的产品,建议查阅具体品牌及型号的数据手册获取详细的参数说明,并考虑实际应用环境的要求做出合理的选择。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值