ROS
文章平均质量分 81
Tipriest_
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
记录使用valgrind调试ROS程序内存泄漏的一次过程
本文介绍了使用Valgrind工具调试ROS程序内存泄漏问题的方法。首先通过apt和snap安装Valgrind及Massif可视化工具,然后使用memcheck工具运行ROS节点生成调试日志。调试过程中发现gridPathFinder::initGridNodeMap函数存在内存未释放问题,通过多次分析确认问题并修复。需要注意的是,Valgrind运行ROS节点时速度会变慢,且需要通过关闭终端来结束调试进程。最后提到可使用launch文件的prefix前缀进行进一步调试。转载 2025-11-21 17:53:16 · 76 阅读 · 0 评论 -
ROS 打包发布工具 bloom 详解
摘要: Bloom 是 ROS 社区提供的打包工具,用于将 ROS 源码包转换为 Debian 包并发布到官方软件仓库(ROS build farm),实现用户通过 apt 直接安装。其核心功能包括生成发布配置、自动化依赖处理、校验元信息等,涉及源代码仓库、发布仓库和 rosdistro 配置的交互。使用流程包括环境准备、配置发布、推送到 rosdistro 和版本更新。Bloom 简化了打包流程,但需注意版本管理、依赖声明等问题,是 ROS 生态中标准化发布的重要工具。原创 2025-11-08 11:53:49 · 1034 阅读 · 0 评论 -
自定义ROS topic 的常用消息格式及类型
ROS消息是节点间通信的基础数据类型,主要分为标准(std_msgs)、几何(geometry_msgs)、传感器(sensor_msgs)和导航(nav_msgs)四大类。标准消息包括Bool/Int32/String等简单类型;几何消息处理位姿(Pose)、速度(Twist)等空间信息;传感器消息涵盖图像(Image)、激光(LaserScan)等感知数据;导航消息用于路径(Path)、里程计(Odometry)等任务。用户也可自定义消息,通过.msg文件定义数据结构并在CMakeLists.txt中配原创 2025-11-01 15:41:27 · 1063 阅读 · 0 评论 -
rosbag使用详细指南
本文介绍了ROS1 Noetic中rosbag工具的使用方法,主要内容包括:rosbag的基本概念和功能,如录制、回放和分析ROS消息数据;常用命令如rosbag record、play、info和filter的具体用法及参数;数据过滤与Python解析接口;以及实际应用案例和常见问题解决方案。文章适合具备ROS基础的开发者,旨在帮助读者掌握rosbag的核心功能,提高机器人开发调试效率。原创 2025-10-27 00:03:41 · 1036 阅读 · 0 评论 -
SRDF 文件详解与使用方法
SRDF(Semantic Robot Description Format)是ROS系统中描述机器人语义信息的XML格式文件,与URDF的物理结构描述互补。SRDF定义了规划组、默认姿态、虚拟关节、末端执行器和可忽略碰撞对等高层信息,对MoveIt!等运动规划框架至关重要。文件可通过手动编写或使用MoveIt Setup Assistant工具生成,需注意与URDF的命名一致性。SRDF与URDF配合使用,能优化运动规划效率和机器人行为定制。原创 2025-10-18 21:11:40 · 1039 阅读 · 0 评论 -
ROS与SDF/URDF的关系及其设计差异(为什么ROS不能直接调用sdf模型进行控制)
ROS不直接支持SDF:因其核心定位不依赖仿真器,且URDF已满足基础需求。间接协作:通过Gazebo的转换和接口插件,ROS可以间接使用SDF模型的全部功能。未来趋势:ROS 2和Gazebo的深度整合(如ros_gz)可能进一步简化SDF在ROS中的应用。纯ROS功能(如可视化、运动规划)→ 使用URDF。高保真仿真(多机器人、复杂物理)→ 使用SDF并通过Gazebo与ROS交互。原创 2025-09-08 21:11:37 · 812 阅读 · 0 评论 -
urdf中joint的类型,含义,区别以及它们之间的关系
URDF关节类型详解 URDF中的<joint>定义了机器人部件间的连接方式,主要分为两类: 无自由度关节 FIXED:刚性连接,无相对运动。 有自由度关节 REVOLUTE(旋转,有限角度) CONTINUOUS(无限旋转,如车轮) PRISMATIC(线性滑动) PLANAR(平面内2平移+1旋转) FLOATING(6自由度自由运动) UNKNOWN为占位类型,不建议使用。 关键区别: REVOLUTE与CONTINUOUS均旋转,但后者无角度限制。 PRISMATIC仅单轴平移,而PLA原创 2025-08-27 15:57:09 · 754 阅读 · 0 评论 -
urdf文件可以使用的一些工具(urdf检查和可视化)
本文介绍了ROS中机器人模型文件(xacro/urdf)的处理方法:1) 使用xacro命令将xacro文件转换为urdf格式;2) 通过check_urdf命令解析urdf文件,输出link层级关系;3) 利用urdf_to_graphiz命令生成包含joint和link结构的可视化PDF。这些工具可以帮助开发者验证和调试机器人模型文件的结构完整性。原创 2025-08-27 15:24:08 · 742 阅读 · 0 评论 -
ROS配置debug指南
如果没有.vscode文件夹的话就自己创建一个.vscode文件夹,然后创建一个名为。这里面需要将launch文件替换为你需要进行debug的那个launch文件。按下键盘上的F5开始debug即可。的文件,如下图所示,剩下的两个。下面的这一个插件过期了。原创 2025-08-14 20:54:38 · 701 阅读 · 0 评论 -
解决ROS编译顺序不对,需要内部依赖,因此要多次编译的问题
在ROS的catkin工作空间中,当多个包存在依赖关系时,常见首次编译失败问题。主要原因是依赖声明不完整(package.xml或CMakeLists.txt未正确声明build_depend/exec_depend)、消息定义依赖缺失或混合使用find_package()与手动路径。解决方法包括:1)补全所有依赖声明;2)使用catkin build --summarize检查依赖;3)分步编译核心依赖包;4)清理后全量重建;5)避免混用catkin_make和catkin build。根本解决方法是确保原创 2025-08-12 22:30:34 · 974 阅读 · 0 评论 -
记录一次ubuntu20.04 解决gmock not found问题的过程
摘要:在Ubuntu 20.04系统上编译MoveIt时,电脑B出现"gmock not found"错误,而电脑A和C正常。通过对比发现电脑B缺少部分gmock文件,可能是之前手动安装Google Test时未正确编译gmock组件。最终解决方案是使用fdfind命令排查系统文件差异,过滤掉无关目录后,确认电脑A在/usr/src/googletest/googlemock路径下有完整的gmock库文件,而电脑B缺失这些文件。建议重新安装完整的Google Test库以解决问题。(14原创 2025-08-09 15:38:32 · 884 阅读 · 0 评论 -
wstool的一个完整的工作流解析
本文详细解析了使用wstool和rosdep工具编译MoveIt仓库源码的标准流程。该流程包含四个关键步骤:1) wstool init src初始化工作空间;2) wstool merge合并官方rosinstall文件;3) wstool update下载所有源码包;4) rosdep install安装系统依赖。通过类比"购物清单"和"工具采购"形象地解释了每个命令的作用,最终为执行catkin build编译MoveIt做好充分准备。这套流程是ROS 1中管理原创 2025-08-08 20:38:30 · 948 阅读 · 0 评论 -
wstool和git submodule优劣势对比
wstool和git submodule是两种管理外部代码依赖的工具,但设计理念和适用场景不同。git submodule是Git原生功能,通过嵌套仓库实现精确版本锁定,适合紧密耦合的依赖管理,但学习成本高且仅支持Git。wstool则通过清单文件管理多个独立代码库,支持多种版本控制系统,灵活性高,特别适合ROS项目开发。前者强在精确控制和Git集成,后者优势在于易用性和多源支持。选择取决于项目需求:需严格版本控制选git submodule,需灵活管理多源依赖则选wstool。原创 2025-08-08 15:45:26 · 790 阅读 · 0 评论 -
wstool和catkin_tools工具介绍
python3-wstool和python3-catkin-tools是ROS开发中的两个关键工具,分别负责源代码管理和项目构建。wstool作为"源代码采购员",通过.rosinstall文件从Git等平台获取ROS包源码到工作空间src目录;而catkin-tools作为"项目工程师",负责编译这些源码生成可执行程序。典型工作流程是:先用wstool下载源码,再用catkin build进行编译,二者协同完成从源代码到可执行文件的完整构建过程。wstool专注于源原创 2025-08-08 15:37:33 · 1014 阅读 · 0 评论 -
rosdep更新已经终止的发行版的命令
摘要:在使用rosdep更新时遇到问题,系统跳过了已终止支持的ROS发行版(包括所需的noetic),却更新了不需要的版本(如humble、jazzy)。解决方案是使用rosdep update --include-eol-distros命令强制包含已终止支持的发行版,确保能正确更新所需的noetic版本。该命令解决了版本选择不当的问题。原创 2025-08-08 14:42:12 · 190 阅读 · 0 评论 -
ROS Launch 文件中的替换参数详解
roslaunch 以单次遍历方式处理 XML 文件。包含文件按深度优先顺序处理。标签按顺序解析,最后设置的参数值生效。因此,若某参数存在多次赋值,最终将采用最后一次指定的参数值。ROS launch 文件支持多种替换参数(substitution args),这些参数在文件被解析时会被替换为实际值。原创 2025-08-07 19:58:59 · 1015 阅读 · 0 评论 -
rosdep的作用以及rosdep install时的常用参数
rosdep的作用:一个跨平台的 ROS 系统依赖安装工具,它读取,将抽象的依赖名映射到具体的系统软件包并进行安装。的含义“请扫描我工作空间下的src文件夹,找出里面所有 ROS 源码包的系统依赖项。在安装时,请忽略掉那些源码已经存在于src文件夹里的包本身。整个过程请严格按照 ROS Humble 发行版的规则来执行。这个命令是在编译一个从源码获取的 ROS 2 工作空间之前,必须执行的关键步骤,它确保了编译过程不会因为缺少依赖库而失败。原创 2025-08-02 19:19:37 · 1056 阅读 · 0 评论 -
详细解释一个ros的CMakeLists.txt文件
【代码】详细解释一个CMakeLists.txt文件。原创 2025-07-27 21:45:46 · 217 阅读 · 0 评论 -
catkin_make生成的编译文件夹目录结构说明
若输出正常,说明 Python 脚本已被正确链接到。下有文件,则优先使用。原创 2025-07-27 21:10:59 · 602 阅读 · 0 评论 -
catkin_make与catkin build的关系与区别(使用catkin build的好处)
提供了一套名为的现代化命令行工具,它是 ROS1 默认构建工具的一个功能更强大、速度更快、用户体验更好的替代品。是一个为 ROS1 开发者准备的生产力工具。它通过提供等一系列命令,彻底革新了 ROS1 的开发工作流,带来了更快的编译速度、更清晰的工作空间管理和更友好的用户交互。对于任何还在使用 ROS1 (尤其是 Noetic) 的开发者来说,从切换到是一个毫无疑问的正确选择。原创 2025-07-27 21:08:40 · 2743 阅读 · 0 评论 -
linux ldd命令的作用以及在ROS中的应用(显示可执行文件所依赖的所有共享库)
ldd是 Linux 系统中用于打印共享库依赖关系的实用工具。它能够显示一个可执行文件或共享库所依赖的所有动态链接库(.so文件)及其路径。以下是关于ldd=>not found-v-u-d-r-dlddlddlddlddnot foundlddobjdumpreadelf通过ldd,你可以快速诊断程序与库的依赖关系,但务必注意其潜在的安全风险。对于生产环境,建议结合静态分析工具使用。原创 2025-07-25 18:50:28 · 918 阅读 · 0 评论 -
离线进行apt安装的过程(在只能本地传输的ubuntu主机上使用apt安装)
通过以上方法,可以在完全离线的环境中完成软件安装。推荐优先使用方法1或方法3,适用于单次安装;若需长期维护多台离线设备,方法2更高效。确保联网和离线设备的系统版本(如Ubuntu 20.04)和架构(amd64/arm64)相同,否则依赖可能不兼容。优先选择静态链接或依赖少的软件(如AppImage、Snap离线包),减少复杂度。文件通过U盘、移动硬盘或内网传输到离线设备的某个目录(如。若依赖不完整,会报错,此时需手动补全缺失的依赖包。报依赖错误,需手动下载缺失的依赖包。在无法联网的设备上使用。原创 2025-07-24 14:31:22 · 1669 阅读 · 0 评论 -
catkin build的config设置指南[设置多种make模式或策略]
在本篇文章中,我们来尽可能详细地深入探讨的使用方法。这是掌握工作流的关键,能极大地提升你的开发效率和项目的规范性。原创 2025-07-22 16:12:46 · 1174 阅读 · 0 评论 -
ROS OMPL路径规划库介绍
为 MoveIt!和自主导航提供强大的路径规划能力。如果你从事机器人运动规划研究或开发,掌握 OMPL 是必备技能!,提供多种基于采样的规划算法(如 RRT、PRM、EST 等),广泛应用于机械臂导航、无人机避障、自动驾驶等领域。通过 MoveIt!需要更具体的代码示例或算法对比吗?可以告诉我你的需求!OMPL 在 ROS 中的主要作用是为。代表 ROS 发行版,如。原创 2025-07-22 15:41:51 · 1318 阅读 · 0 评论 -
ROS-Industrial的一些知名和重要的工作介绍[Industrial Core, Universal Robots驱动, Fanuc 驱动, ABB 驱动, Industrial MoveI]
在工业自动化领域的扩展项目,旨在将 ROS 的强大功能应用于制造业、物流、机器人控制等工业场景。以下是 ROS-Industrial 生态系统中。领域的开发者,ROS-Industrial 提供了完整的工具链和案例参考!需要更详细的某个项目介绍吗?可以告诉我你的具体需求!ROS-Industrial(ROS-I)是。ROS-Industrial 的核心目标是。ROS-Industrial 正在向。原创 2025-07-22 15:01:14 · 1113 阅读 · 0 评论 -
ROS Package标准模板仓库ros-industrial-cmake-boilerplate介绍
是一个由 ROS-Industrial 社区维护的、用于创建专业级 ROS 包的官方模板。它通过提供一个预置了构建系统、测试、CI 和标准目录结构的项目框架,极大地节省了开发者的初始设置时间,并从一开始就引入了工业级的代码质量标准和最佳实践。对于任何想要认真开发、维护和分享 ROS 包的开发者来说,它都是一个强烈推荐的起点。原创 2025-07-22 14:44:50 · 841 阅读 · 0 评论 -
CMake与catkin_make的find_package()命令使用说明
在 CMake 中,是一个核心函数,用于查找并加载外部依赖库的配置。它的主要作用是,以便后续编译和链接。BoostEigen3version3.3REQUIREDCOMPONENTSsystemfilesystemNO_MODULEQUIET中的REQUIRED是可选的。如果不指定REQUIRED,CMake 会尝试查找包,但即使找不到也不会报错,而是继续执行后续的 CMake 脚本。此时,你需要通过检查变量来判断是否成功找到该包,并决定后续逻辑。原创 2025-07-21 23:02:37 · 1407 阅读 · 0 评论 -
ROS_INFO_STREAM, 模拟cout流输出机制的ROS输出接口
和ROS_INFO是 ROS(Robot Operating System)中用于输出日志信息的宏,它们的功能相似但用法不同,主要区别在于和。rosconsoleROS_DEBUGROS_WARNROS_ERRORprintfstd::cout%s%d两者最终都调用ROS的日志系统,但通过流式操作将内容传递给ROS_INFO的底层接口。ROS_INFO<<原创 2025-07-20 14:48:46 · 510 阅读 · 0 评论 -
RAII机制以及在ROS的NodeHandler中的实现
RAII是 “Resource Acquisition Is Initialization” 的缩写,中文译为“资源获取即初始化利用 C++ 对象生命周期的特性来自动化地管理资源。关键点:资源(Resource): 不仅仅指内存。它可以是任何“数量有限、必须在使用后正确释放”的东西,例如:文件句柄 (FILE*网络套接字 (Socket)数据库连接互斥锁 (Mutex)动态分配的内存 (new对象生命周期(Object Lifetime)原创 2025-07-20 13:26:46 · 739 阅读 · 0 评论 -
roslaunch 文件的核心语法和使用技巧
ROSlaunch文件是 ROS 项目中不可或缺的一部分,它能让你用一个命令启动和配置多个节点(Node),是管理复杂机器人系统的核心工具。下面我将从和三个方面来详细讲解。原创 2025-07-19 21:33:33 · 700 阅读 · 0 评论 -
Gazebo插件介绍[ros-noetic版本]
在ROS Noetic中,Gazebo官方提供的插件(通过包集)为仿真环境与ROS的集成提供了强大支持。/scan/imu/data/cmd_vel/odom/cmd_vel5.插件使用示例以为例,在URDF中的配置:</</</</</</</通过合理组合这些插件,可以构建复杂的仿真场景,涵盖从传感器数据采集到机器人控制的完整流程。原创 2025-07-04 23:06:44 · 1561 阅读 · 0 评论
分享