![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS
文章平均质量分 72
晓晨的博客
这个作者很懒,什么都没留下…
展开
-
ROS多消息同步(如LiDAR点云与IMU数据)
Message Filters: message_filters还提供了一些过滤器,例如message_filters::Subscriber(订阅一个主题的消息)、message_filters::Cache(缓存一段时间内的消息)和message_filters::TimeSequencer(确保消息按时间顺序处理)。Time Synchronizer: message_filters::TimeSynchronizer允许你同步两个或多个主题的消息,这些消息的时间戳必须完全相同。原创 2024-02-29 10:33:43 · 692 阅读 · 1 评论 -
FAST-LIO2论文阅读
之前写的一个关于FAST-LIO论文阅读的总结,可以参考FAST-LIO2是港大MaRS实验室在FAST-LIO框架的基础上进行了修改而成,集成了他们课题组的几个工作,形成了一个非常优秀且极具代表性的框架。系统的整体框架如下,与FAST-LIO相同仍然使用了一个紧耦合迭代扩展卡尔曼滤波(红色框内)。不同的地方主要在于1)直接使用输入的激光雷达原始点进行配准,去除了特征提取模块;2)增加一个ikd-tree的数据结构,能够快速的查询、增删,提高效率。原创 2023-06-04 15:40:53 · 1442 阅读 · 0 评论 -
Hesai激光雷达使用PTP时间同步
PTP是一个网络同步时钟的协议,全称是Precise Time Protocol,也称为IEEE 1588,其有IEEE1588v1和IEEE1588v2两个版本(其中v1版本是为工业自动化测量和控制系统开发的,适用于工业局域网应用。v2版本是在v1版本的基础上,专门针对通信网改进的,我们使用的是IEEE1588v2版本)。当硬件支持时,PTP 精度能达到亚微秒,在外界第三方PTP Master接入时连接方式如图 2中所示。原创 2023-06-03 15:22:09 · 2456 阅读 · 0 评论 -
Ouster激光雷达使用PTP时间同步
IEEE1588(the Precision Time Protocol 简称为 PTP )全称是“网络测量和控制系统的精密时钟同步协议标准”,可以使用ubuntu中的网卡作为时间的master也可以外接一个精准的时钟,来实现传感器的时间同步。本篇博客主要介绍单独使用一个NUC连接Ouster OS1-128激光雷达来实现PTP时间同步。原创 2023-05-12 21:29:08 · 1336 阅读 · 0 评论 -
ROS bag包提取数据
日常使用中有时需要提取bag包中的某个topic数据为新的bag包,或者裁剪其中的一段时间数据。这些功能均可以通过命令实现。可以看到,其中包含ouster的激光雷达数据(/os_cloud_node_1/points),内部IMU数据(/os_cloud_node_1/imu)以及外部IMU数据(/imu/data),总时长为202s。原创 2023-05-10 11:37:33 · 2625 阅读 · 1 评论 -
自定义Ouster(OS1-128)点云类型
我们在使用ROS接收Ouster点云数据的对应topic,处理其点云数据时,如果仅使用PCL库中定义的PointXYZ或者PointXYZI等类型,会导致丢失一些非常有用的信息。如每个点的线号(ring),在当前帧中的对应时间等。中的xyz,intensity,t,reflectivity,ring,ambient,range等一系列属性信息了。因此有必要根据驱动自定义对应的点类型,方便我们使用更全的点云信息。PCL中自定义点云类型。之后,我们就可以使用。原创 2023-02-05 15:29:54 · 492 阅读 · 0 评论 -
ROS中PointCloud转换为PointCloud2类型
convertPointCloudToPointCloud2函数转换ROS中PointCloud数据为PointCloud2类型。原创 2022-06-25 16:17:17 · 2325 阅读 · 0 评论 -
解决dpkg: warning: files list file for package(libboost-dev libpcl-dev)
遇到下述的问题 dpkg: warning: files list file for package “XXXXXX”原因可能是原先自己装过源码编译的boost库解决方案原创 2022-06-19 11:11:57 · 638 阅读 · 0 评论 -
Cartographer配置与安装
cartographer_ros实战安装原创 2022-02-06 22:55:27 · 6332 阅读 · 0 评论 -
Cartographer 3D 建图实战-(基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实际进行实验)
组内大佬师兄今天抽出时间总结了一篇博客,主要内容是:把“Cartographer 3D 建图”调整为适合自己设备需要修改哪些文件,并进行实验。博客内容全是干货,手把手教学修改URDF文件中的TF树、lua文件参数、以及Launch文件,可以帮助大家少踩很多坑。在这里推荐给大家:基于禾赛32线雷达和Xsens MTi-G-710 组合导航模块,松灵Scout mini 底盘实现 Cartographer 3D 建图过程欢迎大家点赞、关注。...原创 2022-01-22 22:34:10 · 1865 阅读 · 0 评论 -
ROS学习-写一个tf broadcaster(C++)
本博客主要介绍如果广播坐标框架到tf中。我们将通过本博客以及后续一篇博客来重现tf 介绍教程中的例子。之后,我们再通过后续的教程来实现 tf 更高级的特性。创建一个learning_tf包开始之前,我们需要创建一个新的ros包(参考:ROS学习-创建一个Package包),假设包的名字为learning_tf,依赖于tf、roscpp 、rospy、和turtlesim 等包。 # 切换到自己的工作空间的src文件夹下 $ cd %YOUR_CATKIN_WORKSPACE_HOME%/src原创 2021-11-20 17:22:21 · 2250 阅读 · 0 评论 -
ROS学习-tf介绍
tf简介一个机器人系统一个时间段通常有多个3D坐标系在变化,如世界全局坐标系,world frame, base frame, gripper frame(手臂/夹子坐标框架),head frame等。tf包能够一次性的跟踪这些所有的框架,并且允许我们询问类似于下述问题:在5秒之前,头坐标框架相对于世界坐标框架在哪里?机器人夹子上的物体相对于基座的位姿。基座框架在地图框架中现在的位姿是什么?tf能够在一个分布式系统上工作。这意味着关于机器人的坐标框架的所有信息都能够在任意电脑系统中所有的ROS原创 2021-11-20 14:59:16 · 7769 阅读 · 0 评论 -
Anaconda 与 ROS 冲突解决
Anaconda默认使用Python 3 而 ROS默认使用Python2,若同时使用二者则会在调用一些ros包时出现冲突。目前解决方案是先在.bashrc文件中注释掉Anaconda:# export PATH=/usr/bin/anaconda/bin:$PATHTypically I have found that ROS will interfere with an installation of anaconda on Ubuntu (or vice versa).The way to r原创 2021-11-20 11:47:29 · 2254 阅读 · 0 评论 -
ROS学习-下一步探索方向
本博客讨论了关于在实际机器人或者模拟机器人系统上的选项。作为初学者的教程,我们应该对ROS的核心概念有一个了解。假设存在一个robot能够运行ROS,我们可以用此来了解通过robot发布话题和订阅话题,为了确定这些主题所使用的消息,然后编写自己的节点来处理传感器数据并在真实世界中行动。ROS真正具有吸引力的地方不在于发布话题和订阅话题中间件本身,而在于ROS为世界各地的开发人员提供了一种标准机制来共享他们的代码。ROS最好的特性就是其庞大的社区。其可用的package非常多,所以本博客尝试介绍一下怎么原创 2021-11-18 21:41:31 · 233 阅读 · 0 评论 -
ROS学习-roswtf入门
首先,关闭上一博客中所启动的roscore。检查是否安装了roswf原创 2021-11-18 20:15:16 · 618 阅读 · 0 评论 -
ROS学习-从bag文件中读取messages
学习两种从bag文件指定topic中读取message的方式,包括使用ros_readbagfile脚本的方式。下载或者记录bag文件首先,我们需要一个bag文件。可以从上一个博客:ROS学习-记录和回放数据中生成,或者从webviz中下载一个demo也可以通过下述命令:wget https://open-source-webviz-ui.s3.amazonaws.com/demo.bag或者,假设我们已经有一个能够运行ROS的系统,则可以通过下述命令记录30秒的数据到指定的bag文件中。.原创 2021-11-18 14:37:37 · 8186 阅读 · 0 评论 -
ROS学习-记录和回放数据
本博客将介绍怎么使用ROS系统来记录数据到一个.bag文件中,然后回放数据,在运行系统中产生类似的效果。记录数据(创建一个bag文件)从一个运行的ROS系统中记录topic数据,并存储到bag文件中。首先,打开一个Terminal窗口,运行roscore。roscore打开第二个Terminal窗口,运行turtlesim包中的turtlesim_node节点:rosrun turtlesim turtlesim_node打开第三个Terminal窗口,运行turtlesim包中的tu.原创 2021-11-18 09:15:21 · 2493 阅读 · 1 评论 -
ROS学习-写一个简单的Service 和 Client
写一个Service节点这里我们将会创建一个名为"add_two_ints_server"的Service节点,其接收两个整型数,并返回两个数的和。首先,切换到我们之前所创建的“beginner_tutorials”包中:roscd beginner_tutorials同时,请确保我们在前面博客:ROS学习-创建一个ROSmsg和一个srv中已经创建了这里所需要的AddTwoInts.srv文件。Service节点源码在“beginner_tutorials”包中的/src文件夹下创建一原创 2021-11-17 14:23:33 · 744 阅读 · 0 评论 -
ROS学习-写一个简单的Publisher和Subscriber
写一个Publisher节点原创 2021-11-16 22:41:07 · 1883 阅读 · 0 评论 -
ROS学习-创建一个ROS msg和一个srv
目录ROS msg和srv的介绍使用msg创建一个msgmsg和srv的通用步骤ROS msg和srv的介绍msg:msg文件是一个描述ROS消息字段的简单文本文件。它们用于为消息生成不同语言的源代码。srv:一个srv文件描述了一个service。其由两个部分组成,包括一个请求和一个响应。msg文件存储在package包中的msg文件夹,srv文件存储在srv文件夹。msg文件只是一个简单的文本文件,每一行包括一个字段类型和一个字段名称。字段可以使用下述类型:iint8, int16,原创 2021-11-16 13:48:26 · 2161 阅读 · 1 评论 -
ROS学习-使用rosed来编辑ROS中的文件
此博客将介绍如何使用rosed来使得编辑更加容易。使用rosed命令rosed命令是rosbash集合的一部分,其允许我们能够不使用package包的路径而仅使用package包的名字来直接编辑包中的文件。用法如下:$ rosed [package_name] [filename]例如对roscpp包中的Logger.msg文件进行编辑,命令如下:$ rosed roscpp Logger.msg注意:如果上述例子中的命令没有正常工作,这可能是因为没有还没有安装Vim。可以通过下述命令.原创 2021-11-15 22:59:43 · 1199 阅读 · 0 评论 -
ROS学习-使用rqt_console 和 roslaunch
主要介绍rqt_console命令和 rqt_logger_level命令来进行调试,roslaunch进行一次性启动多个节点。# <distro>替换为自己电脑上对应的ROS版本sudo apt-get install ros-<distro>-rqt ros-<distro>-rqt-common-plugins ros-<distro>-turtlesim我们在前述博客中已经安装过这些包,如果没有安装的话可以执行上面的sudo apt-get.原创 2021-11-15 22:31:36 · 1414 阅读 · 0 评论 -
ROS学习-理解ROS Services 和 Parameters
假设上一篇博客:ROS学习-理解ROS话题中所启动的小乌龟turtlesim节点仍然还在运行。Services服务是节点之间进行相互联系的另外一种方式,允许节点之间进行发送请求和接收响应。使用 rosservicerosservice可以轻松的链接到ROS的client/service框架,其有很多关于service的命令,如下所示:rosservice list print information about active servicesrosservice list .原创 2021-11-15 14:33:26 · 880 阅读 · 0 评论 -
ROS学习-理解ROS话题
首先,与上一个博客类似的:ROS学习-理解ROS节点 使用roscore启动ROS$ roscore注意,当前只能运行一个roscore,如果上一个博客中没有关闭roscore,那么会提示类似于下述错误信息。roscore cannot run as another roscore/master is already running. Please kill other roscore/master processes before relaunching移动turtle类似于上一博客中所介原创 2021-11-14 22:41:49 · 1510 阅读 · 2 评论 -
ROS学习-理解ROS节点
理解几个概念Nodes: 一个节点是ROS中与其他节点进行联系的可执行文件。(注意:事实上节点就是package中的一个可执行文件,ROS节点使用ROS的客户端库client library来与其他节点进行通讯。节点可以发布或者接收话题,同时,节点也可以提供或者使用服务)。客户端库client library包括,rospy = python client library和roscpp = c++ client library。允许我们使用不同的编程语言进行编写。Messages: 当原创 2021-11-14 15:45:39 · 1864 阅读 · 0 评论 -
ROS学习-编译Package包
开始之前,先确定我们找到环境设置文件的来源,使用sourc命令,类似于下述形式:source /opt/ros/kinetic/setup.bash注意如果我们在安装ros过程中把上述命令添加到.bashrc中,那么就不需要每次都重复使用这个命令 echo “source/opt/ros/melodic/setup.bash” >> ~/.bashrcsource ~/.bashrc使用catkin_make切换到工作空间路径,然后使用下述形式的catkin_make命令:#原创 2021-11-14 11:44:32 · 1122 阅读 · 0 评论 -
ROS学习-创建一个Package包
Package由什么组成?每一个Package中都必须包括以下两个文件:package.xml能够提供当前Package包的描述(元)信息CMakeLists.txt如果它是一个catkin元包,它必须具有相关的样板文件CMakeLists.txt文件。此外,每个Package包必须有其自己的文件夹,这就意味着没有嵌套的包,也不存在多个package包共享同一个文件夹。最简单的package包可能结构如下所示:my_package/ CMakeLists.txt pack原创 2021-11-13 17:40:08 · 5248 阅读 · 0 评论 -
ROS学习-了解ROS的文件结构
开始之前,我们先安装一个ros-tutorials中的package,使用下述命令:sudo apt-get install ros-<distro>-ros-tutorials把上述命令中的换成你的ros版本,比如说我的是melodic,则上述命令变为:sudo apt-get install ros-melodic-ros-tutorialsROS 中 package是一个基础的组织单元,每个package可以包括库、执行文件或者其他组件。下面学习ROS中几个常用的命令1)使原创 2021-11-13 15:33:40 · 1050 阅读 · 0 评论 -
ROS学习-创建一个工作空间
安装ros的过程可以参考:Ubuntu 18.04.05 LTS配置ROS Melodic各种问题详细解决(填坑)创建工作环境:创建当前工作空间路径,并使用catkin_make进行第一次编译。# mkdir创建文件夹,-p可以创建多级文件夹# 后面的路径可以自己指定mkdir -p ~/catkin_ws/src# 切换到创建的文件路径cd ~/catkin_ws/# catkin_make是ros自带的命令,类似于我们学习的Cmake .. 和 makecatkin_make我们原创 2021-11-13 14:22:32 · 1176 阅读 · 0 评论 -
Ubuntu 18.04.05 LTS配置ROS Melodic各种问题详细解决(填坑)
Ubuntu 18.04.05 LTS配置ROS Melodic各种问题详细解决前言安装过程介绍案例使用前言ROS包括多个版本,适应于各不同版本的Linux系统。(查看各版本对应关系)本文主要针对:操作系统:Ubuntu 18.04.05 LTSROS版本:Melodic进行处理。安装过程主要参考:ROS官方教程安装过程介绍对ROS官方教程简单介绍如下:1) 打开“软件与更新(soft & update)”,选择"restricted," “universe,” and “mul原创 2021-06-14 11:46:33 · 1703 阅读 · 0 评论