
【2】系统开发平台基础
文章平均质量分 85
本专栏会持续更新,结合本人在机器人、自动驾驶行业的研发经验,从常用的操作系统、通信方式、系统调试、代码优化方式、硬件设计、电机控制、文本读写等角度出发,探讨嵌入式系统硬软件开发的系统原理和项目实践。
RoboticsTechLab
一枚爱琢磨、愿意深耕的研发攻城狮,现从事于机器人、自动驾驶行业,不定期分享机器人、自动驾驶及工作经验相关内容,感谢关注!
展开
-
嵌入式系统平台硬软件底层开发导读
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对嵌入式系统平台硬软件底层开发导读做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-04-26 20:48:55 · 689 阅读 · 0 评论 -
日志关键信息提取--正则表达式std::regex
Regex”是“Regular Expression”(正则表达式)的缩写,它是一种强大的文本处理工具,用于匹配、搜索、替换和操作字符串。正则表达式在编程、文本编辑、数据处理等领域广泛应用。正则表达式的用途文本匹配:检查字符串是否符合特定的模式。例如,验证电子邮件地址、电话号码等。搜索和替换:在文本中查找符合模式的内容,并进行替换。字符串分割:根据特定规则将字符串分割成多个子字符串。数据提取:从复杂文本中提取特定格式的数据。正则表达式的语法。原创 2025-04-07 08:47:29 · 631 阅读 · 0 评论 -
第一章:【可视化工具项目实战】ROS jsk_rviz_plugins可视化插件介绍
是一个为 RViz 提供额外插件的 ROS(机器人操作系统)包。功能概述提供了一系列原始的 RViz 插件、面板和工具,用户可以通过启动 RViz 来直接使用这些功能。具体插件:用于显示分割数组。和:用于显示边界框及其数组。CameraInfo:显示相机信息。Footstep:显示脚印。:显示人体骨骼数组。:显示线性仪表。Normal:显示法线。:在 RViz 界面上叠加文本。:显示人员位置测量数组。Pictogram:显示图形符号。PieChart:显示饼图。Plotter2D。原创 2025-04-07 08:46:33 · 599 阅读 · 0 评论 -
【嵌入式】嵌入式硬软件开发见解
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言一、嵌入式的定义二、嵌入式硬件开发1.要求掌握的入门的能力(1)基础理论能力(2)基础工程能力2.嵌入式硬件开发一般工作(1)AD板层设计类型(2、4、6层板子)(2)通讯架构及接口协议(MODBUS\EtherCAT等等)(3)BOM文档整理(4)万用表示波器修BUG...三、嵌入式软件开发1.(STM32、ARM、DSP、FPGA)微控制器底层开发【实时系统、库开发】1、嵌入式原创 2021-11-01 20:56:37 · 4652 阅读 · 0 评论 -
【开发系统平台架构】通讯方式及组件选型方向
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言一、电机驱动系统选型及依据或设计二、电源供电系统设计三、高速通讯系统1.通讯架构2.通讯方式3.通讯方式选型及依据四、传感器系统1.内部传感器2.外部传感器3.手持控制器五、微控制器系统(低级处理器)(1)STM32系列(2)DSP系列(3)FPGA系列...六、处理器系统(1)GPU处理器(显卡、英伟达)(2)CPU处理器(X86、ARM架构)(3)CPU+GPU处理器(英伟达)原创 2022-01-03 23:13:55 · 947 阅读 · 0 评论 -
【编译器】使用gcc编译器和clang编译器的区别
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对使用gcc编译器和clang编译器的区别做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2023-10-10 17:42:01 · 1441 阅读 · 0 评论 -
【操作系统】操作系统内核原理
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对操作系统内核做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容线程是进程当中的一条执行流程。同一个进程内多个线程之间可以共享代码段、数据段、打开的文件等资源,但每个线程各自都有一套独立的寄存器和栈,这样可以确保线程的控制流是相对独立的线程是调度的基本单位,而进程则是资源拥有的基本单位。原创 2023-09-14 20:27:46 · 525 阅读 · 0 评论 -
【系统开发的了解】freeRTOS系统平台的使用
freertos原创 2022-07-13 19:35:47 · 1248 阅读 · 1 评论 -
第一篇:linux(ubuntu)系统实操学习
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言一、linux的认识1.Linux的应用领域2.Linux学习建议3.Linux的系统文件架构介绍二、用户开机、重启、登录、注销命令1.关机&重启命令2.用户登录和注销三、Linux用户管理1.添加用户2.给用户指定或者修改密码3.删除用户4.查询用户信息5.切换用户6.用户组注意四、实用文件操作指令(常用)1.帮助指令(1)man 获得帮助信息(2)help 指令2.文件原创 2021-11-09 14:40:44 · 4853 阅读 · 0 评论 -
第二篇:linux(ubuntu)系统应用工程经验
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言(1)终端命令行问题(2)ubuntu同一个终端打开多个窗口问题(3)ubuntu权限不够问题(4)ubuntu系统在bashrc的使用问题(5)ubuntu远程关机的使用(6)ubuntu寻找根目录的文件夹(7)ubuntu的安装包形式前言认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对linux(ubuntu)系统ubuntu的应用工程原创 2021-11-09 14:57:18 · 797 阅读 · 0 评论 -
【多线程开发】(1)多进程、多线程编程应用层开发理论
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对Linux应用层开发–多线程进程编程做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容1、开源性:Linux系统及其工具都是开源的,因此,Linux环境编程可以使用大量的免费工具和库。2、多用户支持:Linux系统是支持多用户和多任务的,这意味着Linux环境编程可以同时处理多个任务和用户。3、灵活的文件系统:Linux文件系统是非常灵活和可扩展的,这使得Linux环境编程更方便。原创 2023-07-02 12:09:34 · 311 阅读 · 0 评论 -
【多线程开发】(2)Linux实现多进程、多线程(附C++代码)
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对Linux实现多进程、多线程做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容1、开源性:Linux系统及其工具都是开源的,因此,Linux环境编程可以使用大量的免费工具和库。2、多用户支持:Linux系统是支持多用户和多任务的,这意味着Linux环境编程可以同时处理多个任务和用户。3、灵活的文件系统:Linux文件系统是非常灵活和可扩展的,这使得Linux环境编程更方便。原创 2023-07-31 20:52:33 · 595 阅读 · 0 评论 -
【多线程开发】(3)C++实现多进程、多线程(附C++代码)
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对C++实现多进程、多线程做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容C++11提供了语言层面上的多线程,包含在头文件中。它解决了跨平台的问题,提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。C++11 新标准中引入了5个头文件来支持多线程编程,如下图所示。原创 2023-08-02 21:02:49 · 1101 阅读 · 0 评论 -
【多线程开发】(4)代码实现一把读写锁(附C++代码)
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对代码实现一把读写锁做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2023-08-07 21:03:22 · 254 阅读 · 0 评论 -
【工程调试】日志系统的搭建及gdb代码debug方法
日志系统的搭建及代码debug方法原创 2022-10-17 15:06:40 · 1110 阅读 · 0 评论 -
【工程系统调试】常见的系统崩溃原因总结和解决方法
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对常见的系统崩溃原因总结和解决方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容大多数原因是语法导致的、也有系统平台硬件导致的。崩溃的原因:本质都是因为指针的地址出错导致的。原创 2023-08-10 20:40:49 · 759 阅读 · 0 评论 -
【工程调试】linux内存泄漏排查方法
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对linux内存泄漏排查方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-06-05 18:08:12 · 2418 阅读 · 0 评论 -
【工程调试】gdb操作系统开发的调试器
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对gdb操作系统开发的调试器做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2023-10-10 15:08:01 · 492 阅读 · 0 评论 -
【工程调试】通过键盘发送控制指令(附C++代码)
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对键盘控制应用做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2023-10-09 20:10:47 · 904 阅读 · 0 评论 -
【工程调试】代码实践即空间复杂度分析--查看linux的负载进程资源消耗
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对代码实践即空间复杂度分析–查看linux的负载进程资源消耗做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2023-09-27 17:37:52 · 427 阅读 · 0 评论 -
【工程优化】Linux系统性能、代码负载分析、代码性能优化
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对Linux系统性能分析做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容1、注意:火焰图上面的顺序并不是函数执行的顺序,是统计之后重新编排的顺序2、perf的运行原理简单概括就是给定一个采样频率,根据采样频率每隔一段时间对CPU进行一次中断并根据记录的程序符号表得到当前运行的函数。最后如果某个函数被抽样的次数越多,代表这个函数运行时间越长3、y 轴表示调用栈,每一层都是一个函数。原创 2024-02-06 09:13:46 · 479 阅读 · 0 评论 -
【工程调试】局部计时、全局计时、各个模块与系统时间同步的方法
系统计时的方法原创 2022-10-28 18:41:32 · 535 阅读 · 0 评论 -
【工程调试】joy遥控手柄通用Linux操纵杆的ROS驱动程序安装
joy遥控手柄通用Linux操纵杆的ROS驱动程序安装原创 2022-10-18 20:51:30 · 1567 阅读 · 0 评论 -
【工程开发】嵌入式软件开关机实现及数据保存与加载
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!提示:以下是本篇文章正文内容。原创 2023-03-20 14:42:05 · 591 阅读 · 0 评论 -
【开发环境】VMware虚拟机快照与克隆,保存系统运行环境
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对VMware虚拟机快照与克隆,保存系统运行环境做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2023-08-30 15:14:17 · 884 阅读 · 0 评论 -
机器人实时操作系统中间件--百度的cyberRT和博世的冰羚
量产得用自研中间件,主机厂不认ros2,搞示范运营 ros1 ros2都可以。后面补充百度的cyberRT和博世的冰羚的介绍和使用方法。中间件百度的cyberRT和博世的冰羚都可以用。原创 2023-07-02 12:36:26 · 741 阅读 · 0 评论 -
【进程的话题通讯】DDS数据分发服务中间件
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对系统平台同一网络下不同设备及进程数据通讯–DDS数据分发服务中间件做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容在分布式系统中,中间件是位于操作系统和用户应用程序之间的软件层,它将操作系统提供的资源进行抽象和封装,为应用程序提供各种各样的高级的服务和功能,比如通信或数据共享。原创 2023-10-26 16:55:59 · 1192 阅读 · 0 评论 -
【通讯传输】protobuf编码解码与通讯传输原理(附C++代码)
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对protobuf编码解码与通讯传输原理做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容Google Protocol Buffer( 简称 Protobuf)Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以理解为一个结构体格式,专门对应着.proto文件进行存储,可以用于结构化数据序列化(序列化即编码)。原创 2023-10-27 16:59:59 · 600 阅读 · 0 评论 -
【模块间通讯架构】导航系统中各个层次和模块间的数据隔离、共享与传递方法
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言一、方法一二、方法二三、方法三四、方法四总结前言认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对导航系统中各个层次和模块间的数据隔离与传递方法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容一、方法一每个模块和层次(mission->section)分别用一个类(工厂设计)来写,在类内原创 2021-11-16 23:45:57 · 723 阅读 · 0 评论 -
【网络通讯】TCP/IP、TCP、UDP的区别
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对网络通讯TCP/IP、TCP、UDP的区别做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容一般来说,如果数据传输的可靠性要求很高,建议使用TCP协议;如果对传输速度要求较高,可以使用UDP协议。参考链接。原创 2023-10-10 15:29:40 · 546 阅读 · 0 评论 -
【车机控制】线性底盘控制--CAN协议通讯
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言一、CAN通讯的相关学习二、CAN相关的调试工具参考资料前言认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对XXX做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容一、CAN通讯的相关学习CAN协议一般就是理解它的链路层和物理层,我们可以用STM32的片内外设来学习相关CAN收发器、总线寄存器原创 2022-10-14 16:14:43 · 3145 阅读 · 0 评论 -
MobaXtermSSH客户端远程连接
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对MobaXtermSSH客户端做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-02-06 09:59:42 · 890 阅读 · 0 评论 -
读写csv文件的C++实现(附C++代码)
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对读写csv文件的C++实现做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。原创 2024-06-05 17:55:31 · 1456 阅读 · 0 评论 -
储存数据文本json的读写(附C++代码)
认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对储存数据文本json的读写做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容JSON(JavaScript Object Notation) 是Douglas crockford于21世纪初指定的一种轻量级的 数据交换格式json提供读取类,写入类和数据类。原创 2023-10-10 16:54:33 · 545 阅读 · 0 评论 -
【四足机器人项目实战】四足机器人嵌入式硬件设计
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言一、电源管理板设计及制作二、通讯中继板设计及制作三、力控无刷电机驱动板设计及制作1.磁场定向控制FOC控制原理2.电机转子位置、速度检测原理3.硬件CAN通讯原理前言认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对四足机器人–嵌入式硬件设计做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容一、电原创 2022-03-30 20:11:40 · 10423 阅读 · 0 评论 -
【嵌入式--伺服电机】电磁理论的基础概念
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言1.左手定则2.右手定则3.右手螺旋定则4.永磁体同性相斥异性相吸原理5.旋转磁场的原理6.磁场矢量合成的原则前言认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对电磁理论的基础概念做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容电机就是一个能量转换装置,将电能转化成机械能,转换路径是电能 电原创 2021-12-17 10:27:53 · 949 阅读 · 0 评论 -
【嵌入式--伺服电机】直流有刷电机工作原理
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言1.磁场的产生方法小型的直流有刷电机磁场的产生方法大型的直流有刷电机磁场的产生方法2.电枢绕组及电枢电流定义3.换向器定义4.电枢定义5.有刷直流电机驱动硬件设计6.直流有刷电机速度控制:脉冲宽度调制技术(PWM)7.直流有刷电机速度和力矩、位置、方向控制规律前言认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对直流有刷电机工作原理做个简单的原创 2021-12-17 10:30:47 · 1414 阅读 · 0 评论 -
【四足机器人项目实战】无刷电机FOC驱动基本原理与设计
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言一、电磁理论的基础概念1.左手定则2.右手定则3.右手螺旋定则4.永磁体同性相斥异性相吸原理5.旋转磁场的原理6.磁场矢量合成的原则二、直流有刷电机工作原理1.磁场的产生方法小型的直流有刷电机磁场的产生方法大型的直流有刷电机磁场的产生方法2.电枢绕组及电枢电流定义3.换向器定义4.电枢定义5.有刷直流电机驱动硬件设计三、无刷直流电机FOC原理【重点】1.无刷直流电机的特点2.无刷直原创 2021-11-02 20:31:41 · 8280 阅读 · 0 评论 -
【四足机器人项目实战】伺服无刷电机相关
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言一、电机类型科普二、电机设计(1)电机功率考虑(2)转矩密度和速度的关系(3)间隙半径(4)减少电机惯性、齿轮摩檫力、增大扭矩的方法(5)驱动程序的控制结构框图总结前言认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对伺服无刷电机做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容一、电机类型科普原创 2021-11-01 21:19:13 · 1112 阅读 · 0 评论 -
【四足机器人项目实战】外转子无刷电机研究
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言一、足式机器人电机背景预研1.工业传统的电机预研2.力控电机预研3.足式机器人的驱动方式(液压、电驱)对比二、电机性能对足式机器人的重要性(1)电机驱动元件过流耐压性能决定了四足机器人的负载能力(2)电机通讯带宽及稳定性**决定了四足机器人的动态响应灵敏程度(3)电机传感器性能**决定了传感器的选型和控制算法的效果(4)电机驱动系统的性能考虑三、足式机器人电机的设计需求(1)从机械原创 2021-11-01 22:01:05 · 5016 阅读 · 0 评论