ROS合集(九)ROS Noetic 安装 usb_cam
环境说明
- Ubuntu 20.04
- ROS Noetic (ROS 1)
- 目标包:
ros-drivers/usb_cam
- 官方仓库默认以 ROS 2 为主,ROS 1 支持集中在
develop
分支
文章目录
一、前提准备
- 已安装好 ROS Noetic,并且
source /opt/ros/noetic/setup.bash
已加入~/.bashrc
- 已创建 Catkin 工作区(示例路径为
~/catkin_ws
或~/cesium-deepsea/SLAM/SVln2/svin_ws
)
二、获取 usb_cam
ROS 1 版(develop
分支)
# 进入你的 workspace/src
cd ~/cesium-deepsea/SLAM/SVln2/svin_ws/src
# 如果已存在旧版,先删掉
rm -rf usb_cam
# Clone 并直接检出 develop 分支
git clone --single-branch \
--branch develop \
https://github.com/ros-drivers/usb_cam.git
三、安装编译依赖
-
Video4Linux2 开发包
usb_cam
的 CMakeLists 会通过pkg-config
查找libv4l2
,需要安装:sudo apt update sudo apt install libv4l-dev v4l-utils pkg-config
-
相机校准管理器
CMake 中还会调用find_package(camera_info_manager)
:sudo apt install ros-noetic-camera-info-manager
若出现 404 / GPG 错误,可先更新 ROS 公钥:
sudo apt-key del F42ED6FBAB17C654 sudo apt install curl gnupg2 lsb-release curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc \ | sudo apt-key add - sudo apt update sudo apt install ros-noetic-camera-info-manager
四、编译并加载环境
# 回到 workspace 根目录
cd ~/cesium-deepsea/SLAM/SVln2/svin_ws
# 编译(或 colcon build)
catkin_make
# 刷新环境变量
source devel/setup.bash
Tip:若在其它 workspace(如
~/catkin_ws
)也有usb_cam
,可在~/.bashrc
顺序 source 两个 devel 文件:source /opt/ros/noetic/setup.bash source ~/catkin_ws/devel/setup.bash source ~/cesium-deepsea/.../svin_ws/devel/setup.bash
五、验证
-
查看话题
roslaunch usb_cam usb_cam-test.launch # 或者:roslaunch usb_cam usb_cam.launch
-
订阅并显示
-
如需可视化,用
image_view
:rosrun image_view image_view image:=/usb_cam/image_raw
-
若不希望启动可视化节点,删除 launch 中对
image_view
的<node>
即可,话题发布与订阅不受影响。
-
六、常见问题汇总
错误信息 | 解决方案 |
---|---|
No package 'libv4l2' found | 安装 libv4l-dev v4l-utils pkg-config |
find_package(camera_info_manager) not found | 安装 ros-noetic-camera-info-manager |
404 Not Found 或 GPG 错误 | 重新添加 ROS GPG 公钥,sudo apt update |
usb_cam 包找不到 | 确保 src/usb_cam 在当前 workspace 并已编译+source |
画面窗口意外弹出 | 删除或注释 launch 中 image_view 节点 |
工作区冲突:多个 workspace 同时使用 | 在 ~/.bashrc 中按顺序 source |
七、小结
ros-drivers/usb_cam
官方仓库支持 ROS 2,但其develop
分支可在 ROS 1 Noetic 下以 Catkin 编译- 安装必要的系统库和 ROS 包后,在 workspace 中 clone、编译、source 即可正常使用
- 可视化与 SLAM 等后端模块对话题无侵入,只需按需添加/移除
image_view
节点