尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
北洋动力26赛季-控制架构
本文记录了26赛季无人车的底层控制会持续更新目的是供后续的学弟学妹们能够更快的上手无人系统的制作一、环境配置linux版本2004ros版本Ros1 Noetic二、无人系统架构我们的无人系统按照具体功能分成了如下四个部分视觉、感知、规划、控制。其中本文章主要针对的是控制部分无人车的控制模块按照决策和执行可以大致分成两层一层是负责由输入的车辆状态量输出车辆速度、角速度等输出量的狭义上的控制模块采用的是pid控制另一层是负责ros通信转译成can通信的接口层我们的接口依赖官方包socketcan_bridge他可以实现Ros与Can之间的收发互译而在这之上需要将控制层的输出量转换成电机控制协议可以理解的格式1、接口层结构由于can通信具有更好的实时性车辆的域控制器如果你不清楚是他是什么可以把它理解成一个电脑与电机控制器采用的是can协议通信而我们的控制器是以ros消息的形式输出控制量的因此需要一个中间的接口层负责接收控制器发布的ros消息将其以can消息的格式通过can总线发布给具体的装置也就是不同的canid。现在的抽象层次可以这么理解算法层目标点 / 速度│▼racecar_control/├── kinematics_node cmd_vel → 左右轮目标转速└── pid_node 目标 反馈 → 修正后目标值│ /cmd_vel▼ros_can_bridge/├── ze300_node 后驱双电机协议转换└── yuanqu_node 远驱协议转换│can_msgs/Frame▼socketcan_bridge│▼电机 /控制器然后为了实现pid的反馈反馈层次是这么做的电机 / 控制器│▼socketcan_bridge│▼ros_can_bridge/│▼pid_node接下来具体讲解一下这个接口的原理1.1:ros消息pid控制器的输出量通过ros话题cmd_vel发布这个话题是ros1里非常经典的速度指令话题我们可以找到他的消息类型geometry_msgs/Vector3 linearfloat64 xfloat64 yfloat64 zgeometry_msgs/Vector3 angularfloat64 xfloat64 yfloat64 z但是由于我们的电机控制器不知道什么是速度或者说至少不知道收到这个float64字段之后应该怎么办因此首先我们要做的是通过一些运动学的解算算出来电机应该在当前协议下怎么样才能实现我们的控制目标。这里大家可以去学习一下阿克曼转向模型阿克曼转向总之根据阿克曼模型可以设计一些方法将车辆的速度角速度这些量转换为远驱电机的速度档位转向和制动电机ze300的目标速度或扭矩我们将在这些基础上拼凑出can消息1.2:can消息详解CAN总线CAN总线报文格式—数据帧如果只从使用的角度我们只需要关注ID、DLC、数据这三个部分就好了当然如果能够全部理解是最好不过的了而socketcan_bridge这个包将Can消息制作成了can_msgs/Frame我将它打在下面并附上注释std_msgs/Header header # 消息头uint32 seq # 消息序号time stamp # 时间戳string frame_id # 坐标系CAN 帧用不上一般为空uint32 id # CAN IDbool is_rtr # 是否远程帧bool is_extended # 是否扩展帧29 位 IDbool is_error # 是否错误帧uint8 dlc # 数据长度uint8[8] data # 数据字节1.3:电机驱动协议# 远驱控制器控制命令std_msgs/Header headeruint8 device_iduint8 control_iduint8 control_typeuint8 gear # 0N 1前进 2后退uint8 three_speed # 01档 12档 23档 34档/BOOSTuint8 charge_state # 1停车 0正常uint8 side_stand # 1撑起 0合上uint8 sop_highuint8 sop_lowuint8 socuint8 command_index # 12/13/14/15 对应发送ID2~ID5# ZE300 电机控制命令对应 CAN 协议 V3.06b0std_msgs/Header headeruint8 device_addr # StdID: Dev_addr、(0x100|Dev_addr)、0x00、0xFFuint8 command_code # 0xC0/0xC1/0xC2/0xC3/0xC4/0xCE/0xCF/0xAF/0xB1...uint8 dlc # 数据长度int32 value # 命令数据含义由 command_code 决定2、使用为了验证通路可以先借助modprobe vcan仿真测试他允许我们在linux内核中加载虚拟can接口因为车辆的域控制器是有两路为了模拟这种情况需要建立两个vcan在电脑上模拟can的收发这步主要是测试链路通不通实际使用部分施工中使用的时候要思考一下车辆通信时候的时间延迟如何处理去年答辩的时候被问道相关题目了
RELATED

相关推荐

智能体关键能力:LLM Evals 与生产级评估体系

智能体关键能力:LLM Evals 与生产级评估体系

企业里把 LLM 和 Agent 真正用起来,最难的从来不是把它跑通。最难的是回答两个朴素的问题:它现在到底行不行,以及我改完之后有没有变差。确定性软件能用单元测试加覆盖率把这两个问题答得明明白白。LLM 是概率系统,输出是开放文本…

📅 2026/10/5 13:09:08
ZeroTermux 内置命令手册解读:file 命令——探测文件类型的三个检查过程与实战用法

ZeroTermux 内置命令手册解读:file 命令——探测文件类型的三个检查过程与实战用法

移动开发开发工具 【免费下载链接】ZeroTermux 项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTermux 点击查看 免费下载 导读 file 是 Linux 系统中用于探测文件真实类型的经典工具,它的特别之处在于不依赖文件扩展名,而是通过读…

📅 2026/10/5 13:09:08
Aperant Auto-Build 复杂度评估 Agent 深度解析:从任务描述到流水线选型的完整指南

Aperant Auto-Build 复杂度评估 Agent 深度解析:从任务描述到流水线选型的完整指南

人工智能AI Agent自主智能体代码智能体桌面应用前端开发工具 【免费下载链接】Aperant Autonomous multi-session AI coding 项目地址: https://gitcode.com/gh_mirrors/au/Aperant 点击查看 免费下载 本文以 Aperant 仓库 复杂度评估 Agent 系统提示词 为核心&…

📅 2026/10/5 13:09:08
MORE NEWS

更多资讯

📰

【VLM】Qwen3.8-Omni-Flash长音视频理解Agentic模型

note Qwen-MM-Plugins视频问答:给视频问答加了三类工具 记忆建设:omni-memory / video-memory(建结构化记忆再检索)模型驱动的时间区间定位 粗看/细看:omni_av_grounding perceive_media直接一次性感知:…

📰

AI时代,为何软件工程基础依旧重要?

AI时代,为何软件工程基础依旧重要? 摘要 在AI编程工具快速发展的背景下,一种观点认为"代码可以变得廉价",软件开发流程应当从传统的"设计-编码-测试"转向"规格描述-AI生成代码"的范式。然而&#x…

📰

房山区统计年鉴(2005-2025)

房山区统计年鉴(2005-2025)数据来源:房山区统计局数据年份:2005-2025数据格式:pdf、excel、exe应用程序目录:第一部分 统计公报北京市房山区2024年国民经济和社会发展统计公报第二部分 统计表一、综 合简要…

📰

第四节 【Git基础篇】Git入门必读:核心概念、工作流程与首次提交实战

第四节 【Git基础篇】Git入门必读:核心概念、工作流程与首次提交实战 前言 一、Git介绍 1.1 Git简介 1.2 Git主要特点 二、从一个真实痛点开始:没有版本控制的日子 三、版本控制的四次演进 3.1 本地版本控制(Local VCS) 3.2 集中式版本控制(CVCS)——以 SVN、CVS 为代表 …

📰

【路径规划与定位,例程分享】三维RRT+APF路径规划与TOA-AOA-TDOA融合定位算法,MATLAB,附下载链接

可直接运行,有中文注释 文章目录量测模型运行结果MATLAB源代码程序采用 RRT 与 APF 串联的混合规划结构。首先利用 RRT 在三维连续空间中完成全局采样搜索,得到一条可行的避障路径;随后对这条路径进行稠密化,并基于人工势场法在每…

📰

系统化地坪方案在幼教空间的安全应用与施工要点

地面铺装,核心是搭建完整工程系统,而非简单铺设单一材料。幼儿园属于高频活动、人员密集的密闭空间,对地面安全、环保、耐久性能要求极高。传统只关注面层材料的铺装方案,很容易出现地坪受潮起鼓、磨损开裂、环保指标不达标等工程…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬