问题标签 [rosbag]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ros - 将包文件转换为常见的点云格式
操作系统:Ubuntu 18.04
激光雷达:Livox Mid 40
你好,
我使用 livox mid 40 将点云导出到 .lvx 文件或 rosbags。我正在寻找一种方法将这些文件转换为常见的点云格式,如 ply、las、laz,以便我可以将其用于 cloudcompare、meshlab 或其他程序。我尝试了一些解决方案,例如rosrun pcl_ros bag_to_pcd <input_file.bag> <output_directory>或 cloud_assembler 但第一个创建多个 pcd 而不是单个点云(它为每个帧创建一个 pcd),第二个不起作用(cloud_assembler_try)。
我真的很困惑!!
任何帮助,将不胜感激。
ros - 为什么 Velodyne PointCloud2 消息记录到 rosbags 不一致?
我有一个 Velodyne VLP-16 “Puck”激光雷达,我正在尝试在 ROS 中与 Google Cartographer 一起使用。我已将 velodyne 驱动程序中的“npackets”设置为 1,以获取我们在 Google 的示例包文件中看到的消息频率,但这些消息似乎是零星发布的(请参阅随附的 RQT 图像)。
这里的限制因素是什么?
我已经尝试过在我的 VLP-16 和计算机之间进行直接以太网连接,以及运行带有 Intel Core I5-7600 处理器和 Core I5-8365U 处理器的 Ubuntu 的计算机。
这些处理器是否不够快,或者是否存在其他瓶颈导致这些消息暂停?
结果,Cartographer 验证器抱怨一条消息在前一条消息结束之前开始:
timestamp - ROS时间。记录到文件时尝试恢复时间
我正在尝试获取特定 ROS 消息的时间戳,将其记录在文件中,读取文件并恢复原始时间戳。至今未果。
这是我的代码
结果我得到了
所以你可以看到,首先我得到了时间戳(原始)并记录了转换为秒(1625151029.99)。我将它记录到一个文件中(其中记录了该数字),恢复的时间戳与原始时间戳不同(ns 部分从 987577614 变为 990000009)。我想这是由于进行了to_sec
转换
为了纠正这一点,我做了第二部分(在===之后)。我记录了我读取的 nsecs 数(1625151029987577614),首先正确地作为一个字符串,然后作为一个浮点数(以科学计数法显示)但在最后一部分(“恢复”)我不知道如何正确转换这个数字到 ROS 时间。我得到的价值是完全错误的
如何在此处获取原始时间戳?
编辑:我试过
但是虽然更接近原作了,但还是不明白
另外,不能是一个更简单和正确的方法吗?
ros - Rosbag 记录不记录第一条消息
我遇到了 ROS rosbag 的问题。我有一个生成和发布消息的 python 脚本。我尝试记录它们,rosbag record
但生成的 rosbag 似乎不包含第一条消息。
我做了以下事情:
在我拥有的其他终端中运行脚本,
rostopic echo /the_message
我可以看到所有消息都已正确生成->所以这不是脚本的问题首先在一个终端中运行(以防需要一些“初始化时间”)
rosbag record -O data.bag /the_message
,然后在另一个终端中运行脚本。我得到了正确的包文件。但是当在其他终端上玩包时rosbag play --clock data.bag
,rostopic echo /the_message
我只收到第三条或第四条消息的消息。从来没有第一条消息
会发生什么?以及如何确保录制包括第一条消息?
ros - rosbag play(和 rqt_bag)和 rosbag.Bag 的 read_messages() 使用的时间戳不同
我有一些 rosbags 发生了一些非常奇怪的事情。这些 rosbags 包含sensor_msgs/Image
其他主题中的类型消息。
所以我这样做:
第一种情况
我在一个终端上运行rostopic echo /the_image/header
,因为我对实际数据不感兴趣,只对标题信息感兴趣。在另一个终端我运行rosbag play --clock the_bag.bag
有了这个我得到
第二个场景
我和前面的场景做同样的事情,但是我运行的是 rosbag play 而不是运行rqt_bag the_bag.bag
,在那里我右键单击消息以发布它们。这样我得到了类似的值,但是(我之前已经报告过这个问题)第一条消息被跳过了。(这不是这个问题的问题)
第三个场景
奇怪的部分来了。我没有像上面那样做,而是有一个 python 脚本
如您所见,我打开包并获取时间戳列表并将其记录在文本文件中。这使:
如您所见,价值观完全不同!!!
这里会发生什么?
ros - ROS中use_sim_time的效果
我试图了解在录制和播放 rosbag 时将 use_sim_time 设置为 true 有什么特别的效果,但不幸的是,信息很少且难以理解。
我已经知道如何将其设置为 true,所以没问题。怎么做
我用我拥有的 rosbag 文件做了一些实验,我注意到:
- 当我这样做时
rosplay play file.bag
,主题不会发布\clock
- 当我这样做时
rosplay play file.bag --clock
,主题\clock
已发布
我也注意到,当我做rostopic echo \clock
和我玩包的时候,很多时候发布的都是一样的!(这是什么意思??)
最后,我注意到这对任何这些结果use_sim_time
都没有影响。
那么设置这个参数为true有什么影响呢?
ros - 如何同步两个 ROS 包?
想象一下,我有一个 rosbag,上面记录了一些消息。
我想提取一些消息,对其进行一些操作,然后记录另一个“结果”包。
后来我想要rosbag play
两个包文件,我希望它们以相同的速度播放,因此同步。
我怎样才能做到这一点?
ros - 如何提取 rosbag 中主题的频率(以 Hz 为单位)?
我有一个 rosbag 文件,里面记录了几个主题的消息。
有没有办法可以知道特定主题的消息发布(和记录)的频率?
当我这样做时,rosbag info
我会得到类似的东西
google-cloud-platform - 安装 Debian 软件包以运行 Airflow DAG
我正在运行一个 Airflow DAG,其中一个操作员是 BashOperator,并且依赖 rosbag 包才能运行。我在 GCP 的虚拟机中安装了气流和 rosbag,一切正常,但是当我触发 DAG 时,它一直说 rosbag: command not found any idea how to solve it?
python - 循环通过 ROS 包文件消息的矢量化方式
是否有一种矢量化的方式(类似于 Numpy、Pandas)来遍历包文件消息并对其执行计算?这就是我目前所做的:
参考:http : //docs.ros.org/en/diamondback/api/rosbag/html/python/rosbag.bag.Bag-class.html#read_messages