You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将.bag转.mp4时出现ModuleNotFoundError: No module named 'roslib'问题求助

解决ROS2环境下运行rosbag2video出现roslib缺失的问题

问题根源

你使用的rosbag2video是基于ROS1开发的脚本,依赖ROS1的roslib、rospy等核心模块,但当前环境是ROS2 Humble——ROS2完全重构了Python API(用rclpy替代rospy,且不存在roslib这个包),因此无论如何配置PYTHONPATH都无法找到该模块。

可行解决方案

方案1:用ROS2原生工具提取图像再转视频

  1. 先查看bag文件中的图像话题:

    ros2 bag info location1.bag
    

    找到需要导出的目标图像话题(比如/camera/color/image_raw)。

  2. 从bag中提取所有图像帧为图片文件:

    ros2 run image_view image_saver --ros-args -p image_topic:=/camera/color/image_raw -p filename_format:="frame_{:04d}.jpg"
    

    执行命令后,运行ros2 bag play location1.bag,脚本会自动将所有图像帧保存到当前目录。

  3. 用ffmpeg将图片序列转为MP4:

    ffmpeg -framerate 30 -i frame_%04d.jpg -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4
    

    注意替换-framerate为你bag文件的实际帧率(可从ros2 bag info结果中查看)。

方案2:使用ROS2适配的bag转视频工具

选择专门为ROS2开发的bag转视频工具(如ros2bag_to_video),步骤如下:

  1. 克隆仓库到ROS2工作空间的src目录:
    cd ~/ros2_ws/src
    git clone https://github.com/ros2bag/ros2bag_to_video.git
    
  2. 安装依赖并编译:
    cd ~/ros2_ws
    rosdep install --from-paths src --ignore-src -r -y
    colcon build --symlink-install
    source install/setup.bash
    
  3. 运行工具转换bag:
    ros2 run ros2bag_to_video ros2bag_to_video --bag location1.bag --topic /camera/color/image_raw
    

内容的提问来源于stack exchange,提问作者J7er

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:42:32