在WSL2 Ubuntu 22.04 + ROS2 Humble环境下驱动Nuwa-HP60C深度相机完整指南

📌 前言

最近在做一个SLAM相关的项目,需要用到Nuwa-HP60C深度相机。官方文档以Ubuntu20.04+ROS2 Foxy为例,而我是在Windows 11 + WSL2 Ubuntu 22.04 + ROS2 Humble环境下开发的,踩了不少坑。这篇文章记录了完整的配置过程,希望能帮助到和我遇到同样问题的朋友。


🎯 环境概览

项目版本
主机系统Windows 11
虚拟环境WSL2
Linux发行版Ubuntu 22.04 LTS
ROS2版本Humble Hawksbill
深度相机Yahboom Nuwa-HP60C(安思疆)

📦 第一步:ROS2环境准备

确认ROS2已安装

# 检查ROS2是否安装
ros2 --version

# 如果没有安装,参考官方文档安装ROS2 Humble

安装依赖包

# 注意:将foxy替换为humble
sudo apt install libgflags-dev nlohmann-json3-dev libgoogle-glog-dev \
  ros-humble-image-transport ros-humble-image-publisher

🔌 第二步:WSL2连接USB相机(Windows独有步骤)

这是WSL环境最关键的一步。WSL2默认无法直接访问USB设备,需要借助usbipd-win工具。

2.1 安装usbipd-win

  1. 访问 usbipd-win发布页面
  2. 下载 usbipd-win_x.msi 安装包
  3. 双击安装

2.2 连接相机到WSL

在Windows PowerShell(管理员)中:

# 查看所有USB设备
usbipd list

# 找到相机设备,记下BUSID(例如 2-4)
# 绑定设备
usbipd bind --busid <你的BUSID>

# 附加到WSL
usbipd attach --wsl --busid <你的BUSID>

在WSL终端中验证:

# 检查USB设备
lsusb

# 检查视频设备
ls -la /dev/video*

⚠️ 注意:每次重新插拔相机或重启电脑后,都需要重新运行usbipd attach命令。


🛠️ 第三步:编译相机驱动

3.1 获取驱动代码

从官方资料页下载:https://www.yahboom.com/study/hp60c

解压后将ascam_ros2_ws文件夹复制到home目录:

# 如果压缩包在Windows D盘
cp /mnt/d/Downloads/ascam_ros2_ws.zip ~/
cd ~
unzip ascam_ros2_ws.zip

3.2 解决编译依赖问题

问题1:ORB_SLAM2报错

错误信息: Could NOT find ORB_SLAM2

解决方案: 修改build.sh,跳过orbslam包

cd ~/ascam_ros2_ws
nano build.sh

将编译命令改为:

colcon build --packages-ignore ros2_orbslam
问题2:Boost库找不到

错误信息: common is required but boost was not found

解决方案: 安装完整的Boost库

sudo apt install libboost-all-dev

如果仍然报错,修改ascamera的CMakeLists.txt:

nano ~/ascam_ros2_ws/src/ascamera/CMakeLists.txt

find_package(PCL REQUIRED)之前添加:

find_package(Boost REQUIRED COMPONENTS system filesystem thread date_time iostreams)

并在target_link_libraries中添加${Boost_LIBRARIES}

问题3:OpenCV版本不匹配

错误信息: Could NOT find OpenCV with version 4.2.0

解决方案: 修改yahboomcar_kcftracker/CMakeLists.txt

nano ~/ascam_ros2_ws/src/yahboomcar_kcftracker/CMakeLists.txt

将:

find_package(OpenCV 4.2.0 REQUIRED)

改为:

find_package(OpenCV 4.2 REQUIRED)

3.3 编译

cd ~/ascam_ros2_ws
chmod a+x build.sh
./build.sh

编译成功后,你会看到类似输出:

Finished <<< ascamera
Summary: 7 packages finished

3.4 添加环境变量

echo "source ~/ascam_ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc

🔧 第四步:安装udev规则

cd ~/ascam_ros2_ws/src/ascamera/scripts
sudo bash create_udev_rules.sh

成功后会提示SUCCESS

重新插拔相机使规则生效。


📝 第五步:配置文件路径

检查配置文件是否存在:

ls ~/ascam_ros2_ws/src/ascamera/configurationfiles/

如果路径不正确,修改launch文件:

nano ~/ascam_ros2_ws/src/ascamera/launch/hp60c.launch.py

确保配置文件路径指向正确的位置。

修改后重新编译:

cd ~/ascam_ros2_ws
./build.sh

🚀 第六步:运行相机

6.1 启动相机节点

ros2 launch ascamera hp60c.launch.py

成功启动后你会看到:

[INFO] [ascamera_hp60c.camera_publisher]: get depth_width 640
[INFO] [ascamera_hp60c.camera_publisher]: get depth_height 480
[INFO] [ascamera_hp60c.camera_publisher]: Angstrong camera sdk version:v1.2.28

6.2 查看话题

打开新终端:

ros2 topic list

应该能看到:

/camera/camera_info
/camera/depth/image_raw
/camera/rgb/image_raw
/parameter_events
/rosout

6.3 查看彩色图像

ros2 run rqt_image_view rqt_image_view

在左上角选择/camera/rgb/image_raw

6.4 查看深度图

在rqt_image_view中选择/camera/depth/image_raw,记得将色彩映射改为rainbow

6.5 查看点云(RViz2)

rviz2

在RViz2中:

  1. 点击左下角 Add
  2. 选择 By topic
  3. 选择 /camera/pointcloudPointCloud2
  4. 在左侧Display中设置 Fixed Framecamera_link

📹 第七步:录制SLAM数据集

手持相机在房间里走动,录制rosbag:

# 录制所有相机话题
ros2 bag record -o my_walking_data \
  /camera/rgb/image_raw \
  /camera/depth/image_raw \
  /camera/camera_info

Ctrl+C停止录制。之后可以离线回放:

ros2 bag play my_walking_data

⚠️ 常见问题汇总

问题解决方案
package 'ascamera' not found运行source ~/ascam_ros2_ws/install/setup.bash
话题列表为空检查USB连接:usbipd attach --wsl
Boost库找不到sudo apt install libboost-all-dev
OpenCV版本不匹配修改CMakeLists.txt中的版本要求
ORB_SLAM2报错在build.sh中用--packages-ignore跳过

📚 参考资料

  • 官方资料页:https://www.yahboom.com/study/hp60c
  • usbipd-win:https://github.com/dorssel/usbipd-win
  • ROS2 Humble:https://docs.ros.org/en/humble/

💡 写在最后

整个配置过程最大的坑点在于WSL2的USB设备连接编译依赖的处理。如果你使用的是原生Ubuntu系统,会省去usbipd-win这一步,其他步骤基本相同。

希望这篇文章能帮助到正在使用Nuwa-HP60C相机的你。如果有任何问题,欢迎在评论区交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值