打印
[活动专区]

【杰发科技AC7802x测评】AC7802 + FreeRTOS+gcc实现Ros serial 控制电机速度

[复制链接]
2992|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 GrootBrain 于 2023-6-3 20:56 编辑

#申请原创# #有奖活动#

AC7802 + FreeRTOS+gcc实现Ros serial 控制电机速度


本贴将用AC7802来实现直流电机PID调速,并通过串口实现ROS(Robot Operating System, 机器人操作系统) Serial通信,通过ROS可以发送目标速度,由7802实现电机速度控制,并将实时速度返回给ROS。
为了更好的模块化设计程序代码,也为了让整个工程逻辑更加清晰化,7802侧代码将使用FreeRTOS操作系统。
由于ROS是在linux下开发的,为了方便开发,7802侧工程也将在linux下开发,使用gcc-arm工具链编译,使用pyOCD工具烧录。


方案框架图如下:



本方案的应用层将基于FreeRTOS开发,包含串口通信模块、LED模块和电机转速PID控制模块。
串口通信主要用于与ROS进行通信,接收ROS下发的目标转速,以及上传实时电机转速。
LED控制将实现LED周期性闪烁,主要目的是指示系统正常运行状态。
电机转速PID控制,由转速控制和转速检测两个模块组成。转速控制是计算出转速差值后经过PID计算,得到PWM占空比,输出给电压调制电路,电压调制电路输出对应电压,使直流电机产生对应扭矩达到一定的转速。电机转动带动正交编码器,产生经过正交编码脉冲,转速模块检测正交编码值变化规律,计算出转速和方向。


由于该方案设计到内容非常多,后续将以下涉及到的内容,单独整理成帖子分享出来。涉及到的内容有:
1.gcc环境下移植AC7802 FreeRTOS
    已完成。https://bbs.21ic.com/icview-3305428-1-1.html
2.基于AC7802 PWM实现直流电机开环控制
    已完成。https://bbs.21ic.com/icview-3305994-1-1.html
3.基于AC7802正交编码实现电机测速
    已完成。https://bbs.21ic.com/icview-3306404-1-1.html
4.基于AC7802实现电机PID调速
    --待完成
5.基于AC7802实现ROS serial通信
    --待完成

使用特权

评论回复

相关帖子

沙发
GrootBrain|  楼主 | 2023-5-30 00:44 | 只看该作者
gcc环境下移植AC7802 FreeRTOS 已完成

使用特权

评论回复
板凳
GrootBrain|  楼主 | 2023-6-3 09:17 | 只看该作者
基于AC7802 PWM实现直流电机开环控制 已完成

使用特权

评论回复
地板
GrootBrain|  楼主 | 2023-6-3 20:57 | 只看该作者
再接再厉,继续完成编码器测速功能

使用特权

评论回复
5
木偶ll| | 2023-6-5 15:23 | 只看该作者
这是有刷电机吗

使用特权

评论回复
6
GrootBrain|  楼主 | 2023-6-5 23:07 | 只看该作者
木偶ll 发表于 2023-6-5 15:23
这是有刷电机吗

很普通的直流电机,是有刷的。关于电机,我懂得太少了

使用特权

评论回复
7
keaibukelian| | 2023-6-10 11:08 | 只看该作者
rosserial是用于非ROS设备与ROS设备进行通信的一种协议。它为非ROS设备的应用程序提供了ROS节点和服务的发布/订阅功能,使在非ROS环境中运行的应用能够通过串口或网络能够轻松地与ROS应用进行数据交互。

使用特权

评论回复
8
xiaoqizi| | 2023-6-10 11:43 | 只看该作者
rosserial服务器是运行在ROS设备中的一个节点,作为串行协议和ROS网络的连接。rosserial服务器有C++和Python两种语言的实现。

使用特权

评论回复
9
wakayi| | 2023-6-10 11:55 | 只看该作者
rosserial分为客户端和服务器两部分。rosserial客户端运行在运行在没有安装ROS的环境的应用中,通过串口或网络与运行在ROS环境中的rosserial服务器连接,并通过服务器节点在ROS中发布/订阅话题。

使用特权

评论回复
10
tpgf| | 2023-6-10 13:17 | 只看该作者
虽然rosserial可以让非ROS设备轻松的与ROS节点通信,但是它也存在一些限制:
发布者和订阅者的数量限制为25;
序列化和反序列化缓冲区的大小限制为512字节,即ROS消息的大小必须小于512字节;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

90

帖子

2

粉丝