- 博客(889)
- 资源 (7)
- 收藏
- 关注
原创 【ROS1】15-静态坐标变换
摘要: 本文介绍了ROS中静态坐标变换的概念与应用。案例演示了如何通过C++和Python实现静态坐标的发布与订阅,关键步骤包括创建StaticTransformBroadcaster发布变换、使用TransformListener监听并转换坐标点,同时介绍了ROS内置节点static_transform_publisher的快捷使用方法。最终通过RViz可视化验证了坐标系的正确关系。
2025-08-08 17:04:15
680
原创 【ROS1】14-launch文件用法
文章详细讲解了Launch文件的优势(自动化启动、参数管理、节点重命名等)、基本使用方法以及常用标签的功能和语法:<launch>:根标签<node>:启动节点<include>:包含其他launch文件<rosparam>:参数服务器交互<remap>:名称重映射<param>:设置单个参数<group>:节点分组管理<arg>:参数声明与传递通过示例代码展示了如何创建和使用launch文件,包括参数加载、命名空间管理和条件启动等高级功能,为构建复杂的ROS系统提供了有效工具。
2025-08-07 14:50:51
1369
原创 【ROS1】12-python自定义模块导入
摘要:本文介绍了在ROS中使用自定义Python模块的方法。通过将功能代码组织成独立模块(tools.py),可以提高代码的复用性和可维护性。文章演示了两种调用方式:不推荐的硬编码路径方式可能因路径变更失效;推荐的动态路径方式通过os.path.abspath获取当前路径,确保代码可移植性。正确的模块化开发能有效管理命名空间,使主节点脚本更简洁,符合ROS开发规范。
2025-08-06 15:02:58
925
原创 【ROS1】11-自定义头文件与源文件
本文介绍了在ROS开发中如何使用自定义头文件和源文件的完整流程。主要内容包括:1)自定义文件的作用(模块化、可读性、可重用性);2)标准目录结构规范;3)具体实现步骤:头文件编写(定义类和方法)、源文件实现(功能具体实现)、可执行文件调用;4)重点讲解了CMakeLists.txt的配置方法,包括库声明、依赖关系设置和链接选项。通过将代码拆分到不同文件中,可以显著提升ROS项目的可维护性和扩展性。文中以"hello"示例演示了从文件创建到最终执行的完整过程,并提供了常见问题的解决方案。
2025-08-06 13:42:21
717
原创 【ROS1】10-ROS定时器的简单使用
摘要:本文介绍了ROS中定时器的核心概念与应用。定时器用于按固定周期或延迟执行回调函数,主要包含周期、回调函数、一次性触发和回调队列四个要素。其应用场景包括周期性发布数据、状态检查、延时任务和超时处理等。文章对比了定时器与循环延时的优劣,强调了定时器更符合ROS事件驱动模型。注意事项部分指出定时器精度受系统调度影响,回调耗时需小于周期,并讨论了多线程优化的必要性。最后提供了C++和Python两种语言实现定时器的基本代码示例,包括周期性打印时间戳的功能实现。
2025-08-04 15:05:35
1059
原创 【3DsMax+Zbrush+SP】风格化低多边形模型制作教程——以制作杯子为例——03在Substance Painter中制作材质
本文介绍了使用Substance Painter为3D杯子模型制作材质并导出效果的完整流程。首先导入低模和高模进行烘焙,然后从资源库添加木制材质,通过图层遮罩和几何填充为杯体不同部位分配Iron、Gold等材质。接着使用智能材质添加灰尘等细节效果,最后导出贴图并导入UE引擎完成最终渲染。教程详细演示了从材质制作到最终渲染的每个步骤,包括UV区域选择、材质参数调整等关键操作。
2025-07-27 17:00:41
648
原创 【ROS1】09-ROS通信机制——参数服务器
摘要:本文介绍了ROS参数服务器的概念、作用与操作实现,操作包括在C++和Python中实现参数的增删改查
2025-07-24 20:07:44
944
原创 【ROS1】08-ROS通信机制——服务通信
本文介绍了ROS服务通信的概念与实现。服务通信采用请求/响应模式,由服务端提供功能,客户端发送请求并等待响应。文章比较了服务通信与话题通信的区别,并提供了C++和Python两种实现案例。案例展示了如何创建服务端处理加法请求,以及客户端发送请求并接收结果。针对常见问题,文章给出了优化方案:动态参数传递和等待服务端启动机制,提升了客户端的健壮性。这些实现细节为ROS开发中的服务通信提供了实用参考。
2025-07-21 19:36:22
806
原创 【ROS1】07-话题通信中使用自定义msg
本文详细介绍了在ROS中创建和使用自定义消息的完整流程。主要内容包括: 自定义msg的必要性:相比标准消息类型,自定义msg能更好地表达特定业务数据,提高代码可读性和效率。 实现步骤: 创建msg文件并定义数据结构 配置package.xml和CMakeLists.txt 编译生成中间文件 应用案例:分别演示了C++和Python两种语言的实现方式,包含发布方和订阅方的完整代码示例,以及相关环境配置和编译说明。
2025-07-21 15:22:37
691
原创 【ROS1】06-ROS通信机制——话题通信
本文介绍了ROS话题通信的基本原理与实现方法。主要内容包括:1. 话题通信的四大核心要素(节点、话题、消息、ROSMaster);2. 详细的工作流程解析,包括发布订阅机制和节点间连接建立过程;3. 具体实现案例,分别演示了C++和Python两种语言下发布/订阅节点的代码实现,包括消息发布频率控制、日志输出等功能;4. 展示了如何使用rqt_graph工具可视化节点通信关系;5. 验证了C++与Python节点间的跨语言通信能力。文章展示了ROS话题通信从理论到实践的过程。
2025-07-18 16:07:31
1011
原创 【ROS1】05-ROS计算图简单使用
ROS计算图是描述机器人系统中各组件连接关系的网络模型,由节点(Nodes)、ROSMaster、消息(Messages)与话题(Topics)、服务(Services)四大核心元素构成。节点作为独立进程实现特定功能,通过发布/订阅模式或请求/响应机制进行异步/同步通信。ROSMaster作为注册中心协调节点连接,不参与实际数据传输。计算图支持模块化开发、分布式部署和跨语言通信,典型应用如小乌龟案例中键盘节点通过/turtle1/cmd_vel话题控制乌龟运动。用户可通过rqt_graph工具可视化计算图结
2025-07-17 19:40:03
907
原创 【ROS1】04-launch文件的简单使用
我们已经创建了两个打印helloworld的节点,分别是通过C++和Python写的。这里我们通过.launch文件一次性执行这两个节点。:指定节点所属的包名(这里是ROS 内置的示例包);添加如下内容,用于同时运行海龟仿真器和键盘控制节点。执行后可以看到一次性输出了两个文件的打印信息。在功能包中新建一个名为“launch”的目录。:指定要运行的节点名称或可执行文件名;在该目录下新建一个launch文件。再次执行如下命令来启动launch。新建一个.launch文件。:为节点指定运行时名称。
2025-07-09 19:30:04
291
原创 【ROS1】03-搭建集成开发环境
本文介绍了在Ubuntu系统中配置ROS开发环境的详细步骤。主要内容包括:1)安装Terminator终端工具,支持窗口分割;2)安装VSCode及必要插件(C/C++、Python、CMake等);3)创建ROS工作空间和功能包,配置智能提示和编译任务;4)实现C++和Python版HelloWorld程序,解决中文乱码问题;5)详细说明Python脚本的权限设置和运行方法。文章通过图文结合的方式,完整呈现了从环境搭建到代码编写的全过程,为ROS初学者提供了实用的开发指南。
2025-07-09 16:09:52
806
原创 【ROS1】02-实现“HelloWorld”
摘要:本文介绍了使用ROS创建工作空间和功能包的基本步骤。首先创建demo01_ws工作空间并初始化,然后建立helloworld功能包,添加roscpp、rospy和std_msgs依赖项。重点演示了C++节点的实现过程:创建包含ROS节点的cpp文件,修改CMakeLists.txt配置文件,编译并运行。最后说明如何通过修改.bashrc文件解决新终端无法运行节点的问题。该教程完整展示了ROS项目从创建到运行的全流程。
2025-07-09 10:55:02
363
原创 【ROS1】01-安装环境
本文详细介绍了在Ubuntu 20.04系统中安装ROS Noetic版本的全过程。主要内容包括:1)Ubuntu系统安装与扩展插件配置;2)ROS安装前的准备工作,包括账户权限设置、安装源配置和密钥添加;3)ROS核心包安装步骤及常见问题解决方案;4)环境变量配置和构建依赖安装;5)ROS安装验证方法,包括运行roscore和turtlesim示例。
2025-07-08 21:15:42
1129
原创 【ROS2 自动驾驶学习】03-ROS2常用命令
本文介绍了ROS2系统中14个常用命令行工具的功能,这些命令用于查询ROS2环境中的各类组件信息,包括软件包、运行节点、话题消息类型、服务接口等内容,帮助开发者了解系统通信结构和数据格式。
2025-07-08 11:33:40
979
原创 【ROS2 自动驾驶学习】02-安装ROS2及其配套工具
本文详细介绍了在Ubuntu系统中安装和配置ROS2(Humble)的完整步骤。首先确保系统支持UTF-8编码,添加必要的软件源和存储库。然后通过阿里云镜像源安装ROS2桌面完整版,并配置环境变量。接着测试安装是否成功,运行turtlesim仿真器验证。后续还介绍常用工具的安装,包括terminator终端、colcon构建工具、TF2坐标系工具、joint-state-publisher等。最后详细说明了第三方库(Eigen、yaml-cpp、matplotlib、osqp和osqp-eigen)的安装。
2025-07-07 21:05:12
942
原创 【ROS2 自动驾驶学习】01-工具链的安装
本文详细介绍了在VirtualBox虚拟机中安装Ubuntu 22.04系统的完整流程,包括:1) 虚拟机创建与系统安装步骤;2) 安装VirtualBox增强功能提升性能;3) 设置中文显示环境;4) VSCode编辑器安装及必备插件配置;5) CMake工具安装与验证。内容涵盖从系统基础配置到开发环境搭建的全过程,为后续安装ROS提供基础。
2025-07-04 17:03:37
869
原创 【3DsMax+Zbrush+SP】风格化低多边形模型制作教程——以制作杯子为例——02在Zbrush中制作高模
本文介绍了使用ZBrush加工杯子的完整流程。首先下载Orb金属笔刷并导入模型,然后分别对杯子底座、杯体、杯圈、杯把等部件进行加工:使用Orb_hammeredMetal笔刷添加金属锤纹,通过细分模型增加细节,配合DamStandard笔刷和不同Alpha纹理进行修饰。最后通过降低细分级别优化模型,合并所有部件并导出为FBX文件。
2025-07-02 20:56:49
804
1
原创 【Python】图像+点云 结合显示
本文介绍了一种将LiDAR点云投影到相机图像的方法,主要分为三个步骤:1)通过外参变换将LiDAR坐标系的点转换到相机坐标系;2)利用内参矩阵进行投影变换,将3D点投影到2D图像;3)过滤不可见点并可视化。具体实现包括加载KITTI数据集、解析标定文件、坐标转换和深度着色显示。其中关键是通过旋转平移矩阵实现坐标系转换,并利用相机内参矩阵完成透视投影。最终效果能直观显示点云在图像上的分布,并通过颜色编码反映深度信息。该方法可用于多传感器融合的自动驾驶场景。
2025-06-25 20:15:38
1143
原创 【3DsMax+Zbrush+SP】风格化低多边形模型制作教程——以制作杯子为例——01在3DsMax中制作模型
详细介绍了3D建模中杯子模型的制作流程,包含8个主要步骤:1)杯体和杯底建模;2)UV展开(采用分区域松弛法处理杯底和杯体);3)制作装饰杯圈;4)杯圈UV展开;5)添加杯圈疙瘩细节;6)创建杯把并展开UV;7)木质手柄建模;8)最终优化(涡轮平滑、UV重排和材质测试)。重点演示了UV展开技巧,包括毛皮贴图、多边形角松弛和缝合等方法,确保纹理均匀分布。最后完成模型命名并导出FBX格式。该教程系统展示了从基础建模到UV处理的完整工作流程。
2025-06-25 19:15:00
895
原创 【UE5】环形菜单教程
本文介绍了如何通过一系列步骤在UE中创建一个环形菜单界面。首先,从百度网盘下载所需的图片资源并导入工程。接着,创建三个控件蓝图,并分别设置其属性和功能,如图像控件的动画效果、自定义事件等。然后,新建一个材质用于实现渐变效果,并在控件中应用该材质。最后,在控件中创建环形菜单的图标和高亮显示槽,并通过玩家控制器和HUD实现菜单的显示与隐藏。
2025-05-21 20:00:17
1044
原创 【UE5 C++】“ProceduralMeshComponent”的使用记录
如下所示,通过“ProceduralMeshComponent”创建了一个自定义形状的Mesh,并且该Mesh包含碰撞信息,然后2s后更新Mesh形状。
2025-04-14 16:05:07
821
原创 【UE】渐变框材质
新建一个材质,这里命名为“M_GlowingBorder”,打开“M_GlowingBorder”后,设置材质域为“用户界面”,混合模式为“半透明”
2025-04-10 19:17:16
597
原创 【UE5 C++】HTTP客户端异步请求API接口并解析响应的JSON
本文以请求网络/本地时间API为例,介绍如何实现HTTP异步请求。步骤:一、 搭建异步蓝图节点框架;二、异步蓝图节点嵌入到引擎的执行流程;三、获取本地时间并异步返回;四、获取网络时间并异步返回;五、源码
2025-04-09 09:39:29
1486
原创 【UE5 C++课程系列笔记】34——结构体与Json的相互转化
主要通过借助FJsonObjectConverter类实现结构体和 JSON 之间的相互转换。
2025-04-07 11:09:46
694
原创 【UE5 C++课程系列笔记】33——商业化Json读写
有时候我们会获取到如下形式的Json,其中Data字段的内容经过字符串化处理。本篇文章介绍如何读写这种形式的Json。
2025-04-03 15:49:19
546
原创 【UE5 C++课程系列笔记】32——读Json文件并解析
在上一篇中我们已经将Json存储到Json文件中,本篇会通过读取该Json文件来解析Json。
2025-04-03 13:27:02
608
原创 【UE5 C++课程系列笔记】31——创建Json并保存为文件
一、生成普通Json对象 二、对象嵌套对象三、对象嵌套数组四、对象嵌套数组再嵌套对象
2025-04-03 09:31:23
969
原创 【UE】多窗口插件“MultiWindow”的基本使用(多视角显示)
7. 打开控件蓝图“WBP_FirstPersonView”,添加一个画布面板和一个图像控件,设置图像控件铺满画布面板,然后设置图像为“M_FirstPersonView”5. 回到赛车蓝图“SportsCar_Pawn”中,选中场景捕获2D组件,然后设置纹目标为“TRT_FirstPersonView”8. 打开关卡蓝图,这里在关卡运行后创建小窗口,小窗口显示的内容就是控件蓝图“WBP_FirstPersonView”的显示内容。打开“M_FirstPersonView”,设置材质域为“用户界面”
2025-03-13 16:52:59
958
Blender+BlenderGIS插件
2022-11-18
ControlCAN.dll(64位)
2022-10-17
【pyqt5+socket】实现客户端A经socket服务器中转后主动向客户端B发送文件
2022-08-03
https://blog.csdn.net/ChaoChao66666/article/details/12578559的图片
2022-07-18
musicapp 源程序
2022-04-13
pyqt5 展示使用opencv 自带 opencv_traincascade.exe 的识别结果
2022-04-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人