
ROS
文章平均质量分 85
ROS1、ROS2从入门到放弃
优惠券已抵扣
余额抵扣
还需支付
¥69.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
郭老二
没有人不爱惜他的生命,但很少有人珍视他的时间!
展开
-
【ROS】郭老二博文之:ROS目录
ROS学习汇总目录,内容包括:从ROS1到ROS2、从安装、配置、编辑、编译、运行、代码详解等原创 2023-06-10 15:37:52 · 2162 阅读 · 0 评论 -
【ROS2】SLAM入门:gmapping建图、导航测试记录
测试gmapping建图 和 导航功能。这篇博客详细记录建图和导航的使用步骤,下篇博客会详细分析源码。原创 2025-02-24 18:51:27 · 145 阅读 · 0 评论 -
【ROS2】卡尔曼滤波学习:概念、数学推导和C++实现方法
卡尔曼滤波器,Kalmen Filter;是一种递归滤波算法:最优化 递归 数字处理 算法。广泛应用于统计学、信号处理、控制工程等领域,如导航系统(GPS、惯性导航系统)、自动驾驶、金融市场(股票价格预测与风险管理)、机器人控制等领域中的各种不确定性。卡尔曼滤波器的核心思想是通过递归地利用系统的动态模型和测量数据,来估计系统的状态并更新对系统状态的不确定性(即误差协方差矩阵)。简单点说就是:预测 + 测量 → 最优估计预测:根据之前的水温(比如20°C)和加热速度,预测当前温度。原创 2025-02-21 22:33:40 · 128 阅读 · 0 评论 -
【ROS2】第三方库学习:Eigen(线性代数:矩阵、向量)
Eigen 是一个用于线性代数的 C++ 模板库:矩阵、向量、数值求解器和相关算法。3)Eigen 经过严格测试可靠性高。4)Eigen 接口简洁、易于使用。5)官网主页:https://eigen.tuxfamily.org/index.php?入门:https://eigen.tuxfamily.org/dox/GettingStarted.html教程:https://eigen.tuxfamily.org/dox/group__TutorialMatrixClass.html。原创 2025-02-20 16:35:10 · 281 阅读 · 0 评论 -
【ROS2】【ROS2】RViz2源码分析(八):Display中订阅ROS2消息(使用Qt信号和槽传递ROS2消息)
本篇博客,将会一起学习 RViz2 中如何使用 ROS2,以 Display 中订阅 ROS2 消息为例。原创 2025-02-20 08:52:16 · 242 阅读 · 0 评论 -
【ROS2】RViz2源码分析(七):DisplaysPanel 中的树状模型/视图
既然是树状结构,应该有一个根节点,类型为 DisplayGroup ,它继承自Display ,它的子节点也是各种各样的 Display。Property 属性的 aboutToChange() 和 changed() 信号,会在属性的数值发生变化事触发,接收 changed() 信号的槽函数随后应向属性本身询问新的数据。继承自 Property 的子类,包含的数据类型可以是各种各样的,因此使用 QVariant 类型来存储,可以调用 Property::setValue() 方法来存储数据。原创 2025-02-15 22:42:13 · 175 阅读 · 0 评论 -
【ROS2】RViz2源码分析(六):加载配置、创建面板(以DisplaysPanel为例)
RViz2在界面中,也可以通过点击“Panel”–> “Add New Panel” 按钮,触发 VisualizationFrame::openNewPanelDialog() 函数来加载Panel(VisualizationFrame::addPanelByName())VisualizationFrame::addPanelByName()函数中,通过工厂类创建面板(Panel):PanelFactory;,配置文件的Panels字段描述了各个面板,以 DisplaysPanel 为例,原创 2025-02-10 22:02:53 · 92 阅读 · 0 评论 -
【ROS2】RViz2自定义面板插件(rviz_common::Panel)的详细步骤
RViz2 使用 QT 作为 UI 框架,虽然 QT 也有插件机制,但是 RViz2 并没有使用QT的插件机制,而是通过 pluginlib 加载功能模块来实现。原创 2025-02-08 22:59:18 · 182 阅读 · 0 评论 -
【ROS2】IMU参数详解、数据计算
IMU硬件参数详解,ROS2中使用注意事项:去掉重力分量、注意零漂带来的累积误差原创 2025-02-07 19:15:00 · 101 阅读 · 0 评论 -
【ROS2】RViz2源码分析(五):界面类 VisualizationFrame 详解
VisualizationFrame 继承自 QMainWindow 和 WindowManagerInterface;窗口顶部是常规布局:菜单栏 和 工具栏窗口中心是 RenderPanel,用来渲染3D画面周围是dock区域,包括:DisplaysPanel、ViewsPanel、TimePanel、SelectionPanel 和 ToolPropertiesPanelWindowManagerInterface 是管理各种停靠面板的接口抽象类。原创 2025-01-25 18:00:00 · 134 阅读 · 0 评论 -
【ROS2】RViz2源码分析(四):初始化、启动
详细介绍RViz主函数中初始化 VisualizerApp::init() 函数的内容原创 2025-01-23 19:00:00 · 126 阅读 · 0 评论 -
【ROS2】SLAM算法汇总
激光 SLAM 框架一般分为前端扫描匹配、后端优化、闭环检测、地图构建四个关键模块。SLAM算法汇总、比较……原创 2025-01-16 17:09:06 · 117 阅读 · 0 评论 -
【ROS2】动态组件 ros2 component 详解
动态组件继承自rclcpp::Node,本身也是节点。因为组件不能控制线程,所以其构造函数里不能进行占用时间太长的或者是阻塞的任务。然而它可以使用计时器(tmier)来获取周期性的节律,除此以外它还可以创建publisher,subscriber,server,client等等。原创 2025-01-15 19:19:21 · 95 阅读 · 0 评论 -
【ROS2】数据记录(ros2 bag)详解
ros2 bag 用于记录、回放、分享ROS2消息。原创 2025-01-14 20:23:45 · 137 阅读 · 0 评论 -
【ROS2】URDF导入Gazebo中
spawn_entity.py通过接收命令行参数或ROS话题消息来确定要加载的模型及其初始状态(如位置、姿态等),然后调用Gazebo的服务将这些信息发送给gzserver,由gzserver负责将新实体集成到仿真环境中。gzserver使用物理引擎来模拟现实世界中的物理行为,如重力、碰撞检测等,并生成相应的传感器数据,以供客户端或其他系统使用。启动消息接收节点 spawn_entity.py,接受 robot_description 消息,然后调用Gazebo的服务将这些信息发送给gzserver。原创 2025-01-14 15:45:00 · 328 阅读 · 0 评论 -
【ROS2】URDF模型文件中Xacro宏语言详解
属性类似于变量,定义方法如下:例如定义轮子半径、小车的尺寸、PI值。宏定义:类似于函数实现,可以提高代码复用率和优化代码结构。使用 xacro:macro 标签来定义函数, 标签中的属性name表示函数名原创 2025-01-10 19:22:08 · 115 阅读 · 0 评论 -
【ROS2】RViz2加载URDF模型文件
1)运行RViz2rviz22)添加组件:RobotModel3)选择通过文件添加4)选择URDF文件,此时会报错,需要修改Fixed Frame为map即可原创 2025-01-09 20:28:35 · 452 阅读 · 0 评论 -
【ROS2】gazebo打开文件夹选择框时,卡主不动的解决方法
运行 gazebo 后,想从文件中加载URDF,在点击“insert” --> Add Path 时,界面卡主,文件夹窗口也没有出现。原创 2025-01-09 19:21:34 · 179 阅读 · 0 评论 -
【ROS2】从零开始使用URDF构建机器人
1)创建目录2)创建ROS包URDF不依赖其它ROS2包,可以不使用 --dependencies 来指定3)创建urdf目录一般URDF文件放置在urdf目录中,因此先创建urdf目录4)进入urdf目录后,建议使用vscode编辑urdf文件5)在vscode中安装URDF插件。原创 2025-01-08 21:13:55 · 464 阅读 · 0 评论 -
【ROS2】Qt事件循环和ROS2订阅机制一起使用有什么注意事项?
Qt的事件循环和ROS订阅回调函数都可能在阻塞函数中运行,例如:Qt的和 ROS的两个阻塞函数不能在同一个线程中使用,如果使用不当,会造成Qt不处理事件或者ROS2不处理订阅的回调函数。原创 2025-01-08 20:04:20 · 379 阅读 · 0 评论 -
【ROS2】APOLLO、CyberRT、AutoSAR、autoware简介
1)定义与目标AUTOSAR是一个全球性的标准组织,旨在制定汽车电子控制单元(ECU)的开放式和标准化软件架构。其目标是降低复杂性,提高软硬件的可重用性,以及适应快速变化的汽车电子需求。2)合作框架AUTOSAR组织提供了一个合作框架,促进汽车制造商、供应商和工具供应商之间的合作,以共同推动汽车软件的标准化。原创 2025-01-07 19:43:15 · 177 阅读 · 0 评论 -
【ROS2】坐标TF查询
ROS2坐标监听者示例: tf2_ros::TransformListener原创 2024-12-25 18:54:45 · 224 阅读 · 0 评论 -
【ROS2】坐标TF发布(动态)
ROS2发布动态坐标:tf2_ros::TransformBroadcaster原创 2024-12-25 18:55:08 · 116 阅读 · 0 评论 -
【ROS2】坐标TF发布(静态)
静态广播:tf2_ros::StaticTransformBroadcaster原创 2024-12-24 19:45:00 · 170 阅读 · 0 评论 -
【ROS2】坐标TF变换工具-tf2_ros
tf2_ros 功能包可以实现坐标静态发布、监听、转换、查看等功能。原创 2024-12-24 18:30:00 · 244 阅读 · 0 评论 -
【ROS2】坐标TF入门
1)定义:TF(TransForm)是用于坐标系管理的工具,它提供了快速、高效的坐标变换和时间同步功能。2)坐标系坐标系:在机器人系统中,存在多个坐标系,如基坐标系(Base Frame)、世界坐标系(World Frame)、工具坐标系、工件坐标系等。这些坐标系之间的关系在机器人的运动过程中会发生变化。坐标变换:坐标变换包括位置和姿态两个方面的变换,可以通过一个四乘四的矩阵进行描述。TF的底层原理就是对这些数学变换进行了封装。3)数据类型。原创 2024-12-17 19:52:27 · 94 阅读 · 0 评论 -
【ROS2】节点参数由服务机制实现(源码分析)
ROS2的节点参数由服务机制实现,分析ROS2 C++接口,rclcpp::Node 中关于参数 NodeParameters 的代码部分,调用了rclcpp::Service。原创 2024-12-17 20:06:00 · 208 阅读 · 0 评论 -
【ROS2】深度相机相关的话题、消息详解:CameraInfo、Image、PointCloud2
深度相机相关的话题、消息、字段详解:CameraInfo、Image、PointCloud2原创 2024-12-10 21:07:16 · 374 阅读 · 0 评论 -
【ROS2】深度相机ROS2包的使用
在ROS2中使用深度相机,显示可见光、深度图像、点云。原创 2024-12-10 17:32:41 · 304 阅读 · 0 评论 -
【ROS2】参数使用详解
ROS2参数详解:声明、定义、获取、设置、回调、事件、跨节点设置原创 2024-12-08 17:28:20 · 319 阅读 · 0 评论 -
【ROS2】tf2_ros:坐标变换、坐标系跟踪
在机器人导航中,tf2用于管理和转换机器人、传感器和环境之间的坐标系;在传感器数据融合中,它帮助同步和整合不同传感器的数据。原创 2024-11-27 20:58:57 · 247 阅读 · 0 评论 -
【ROS2】多传感器融合、实现精准定位:robot_localization
robot_localization在SLAM建图、导航中常用于将多个传感器融合(IMU、里程计、深度相机、GPS等),以提高定位精度,为机器人提供了在三维空间中的非线性状态估计另外:navsat_transform_node节点用于集成 GPS 数据。特点:1)可以实现任意数量传感器的融合。节点不限制输入源的数量。例如,如果机器人有多个 IMU 或多个里程计信息源,则其中的状态估计节点robot_localization可以支持所有这些信息源。2)支持多种 ROS 消息类型。原创 2024-11-21 19:00:00 · 817 阅读 · 0 评论 -
【ROS2】slam_toolbox建图详解
slam_toolbox建图详解:安装、配置激光雷达、发布里程计、启动RViz2、保存地图原创 2024-11-12 20:26:18 · 798 阅读 · 0 评论 -
【ROS2】日志系统详解
1)C语言 printf 格式2)C++ 流格式3)只打印一次(once)4)限制打印频率,如1秒最多打印1次或者使用现有的rclcpp::Duration5)限制打印频率,并跳过第一次,如1秒最多打印1次。原创 2024-11-11 21:09:35 · 195 阅读 · 0 评论 -
【ROS2】usb摄像头识别二维码
在ROS2中,通过usb摄像头识别二维码原创 2024-11-11 20:39:04 · 620 阅读 · 0 评论 -
【ROS2】接口(话题、服务、动作)的创建,编译后生成的C++代码详解
在创建接口文件后,编译时遇到几个错误,和接口文件名及内容中字段名有关。列举如下:1)接口文件名,开头要大写,不能有下划线,需要匹配正则表达式,否则报错:2)字段名,不能包含大写字母,可以使用下划线做单词间隔,需要匹配正则表达式,否则报错:1.2 创建1)接口包接口文件转C++或者Python文件时,需要依赖 rosidl 包,因此在创建包时,添加依赖2)创建文件分别创建三个文件夹:action-动作、msg-话题、srv-服务3)创建话题消息内容在msg目录中,新建文件:Laoer.msg原创 2024-11-06 18:30:00 · 104 阅读 · 0 评论 -
【ROS2】话题发布和订阅的频率控制
话题发布和订阅的频率控制方法、服务质量QoS原创 2024-11-05 18:00:00 · 245 阅读 · 0 评论 -
【ROS2】文档、教程、源码汇总
ROS2:文档、教程、源码汇总。掌握官方一手资料原创 2024-11-02 21:33:15 · 365 阅读 · 0 评论 -
【ROS2】hbm_img_msgs/msg/HbmMsg1080P 转 opencv cv::Mat
在ROS2中处理图像时,经常会用的OpenCV,因此常常会涉及到ROS2话题和cv::Mat的转换ROS2内置消息 sensor_msgs::msg::Image 可以使用 cv_bridge 转换成 OpenCV的 cv::Mat。在使用地平线X3派时,图像消息为hbm_img_msgs/msg/HbmMsg1080P,如何转换成cv::Mat呢?原创 2024-11-01 20:53:13 · 199 阅读 · 0 评论 -
【ROS2】在QtCreator中打开ROS工作目录
在QtCreator中打开已创建的ROS工程原创 2024-10-31 18:00:00 · 437 阅读 · 0 评论