驱动深度相机前,需要在宿主机能够识别出astra相机设备;进入docker容器时候,需要挂载这个astra设备才能在docker容器中,识别到相机。配套的宿主机已经搭建好的环境,不需要额外配置,如果在新的宿主机上,则需要添加规则文件。添加方法很简单,把宿主机下的/etc/udev.rules.d/56-orbbec-usb.rules文件复制到新环境的/etc/udev.rules.d目录下,然后重启一次即可。
程序运行后,驱动Astra相机,可以获取到彩色RGB、深度Depth、红外IR的图像信息以及深度点云信息。
进入docker容器后,该功能源码的位置位于,
/root/yahboomcar_ros2_ws/software/library_ws/src/ros2_astra_camera/astra_camera/launch/
launch启动命令,
launch文件 | 相机型号 |
---|---|
ros2 launch astra_camera astra_pro.launch.xml | Astrapro |
ros2 launch astra_camera astro_pro_plus.launch.xml | Astraproplus |
ros2 launch astra_camera astra.launch.xml | Astramini |
以启动Astrapro相机为例,进入docker容器后,终端输入,
xxxxxxxxxx
ll /dev/astra*
这一步是检查Docker中是否能够识别到Astra相机设备,出现以下内容则表示Astra相机成功挂载到Docker容器中,
在Docker终端中输入,
xxxxxxxxxx
ros2 launch astra_camera astra_pro_plus.launch.xml
可以使用以下命令查看话题,Docker终端中输入,
xxxxxxxxxx
ros2 topic list
主要的几个话题如下,
话题名字 | 话题内容 |
---|---|
/camera/color/image_raw | RGB彩色图像数据 |
/camera/depth/image_raw | Depth深度图像数据 |
/camera/depth/points | Depth深度点云数据 |
/camera/ir/image_raw | IR红外图像数据 |
使用rqt_image_view工具查看图像数据,Docker终端中输入,
xxxxxxxxxx
ros2 run rqt_image_view rqt_image_view
然后在左上角选择相对应需要显示的图像话题,这里以显示RGB图像为例,
使用rviz2显示深度点云,Docker终端中输入,
xxxxxxxxxx
rviz2
然后在rviz中添加深度点云信息,
最后把Fixed Frame修改成camera_link即可查看点云信息,
如果是只需要深度信息的话,Astrapro与Astraproplus只需要启动以下命令即可,
xxxxxxxxxx
ros2 launch astra_camera astra.launch.xml
网页查看图像数据,
xxxxxxxxxx
ros2 run web_video_server web_video_server
然后打开浏览器,电脑与宿主机网络须在同一个局域网下,输入网址:你的宿主机ip+8080,比如,我的宿主机网络IP是192.168.2.53,我的docke容器也是用了宿主机的网络,因此两者的网络ip是一致的,所以在浏览器输入网址:
xxxxxxxxxx
http://192.168.2.53:8080/
然后,选择其中的一个图像话题数据,例如显示rgb图像,那就选择/camera/color/下的image_raw,