Plus Camera用户手册
一、ROS SDK安装
Tips:
- 目前仅支持Linux平台.
- 建议 Kinetic(ubuntu , debian)and Melodi (ubuntu , debian)
- ROS目前可运行Indigo版本, 但仍不建议Indigo版本, 因Ubuntu 14.04于2019年4月30日结束支持。这意味着在此日期之后Ubuntu 14.04用户将无法获得安全和维护更新。从而有可能出现ROS在ubuntu14.04后续升级依赖软件包时出现预期不到的问题,导致无法支持。
- 未适配Noetic版本
- 目前不支持Winows平台
- 目前不支持ROS2
在ROS SDK安装之前,您需要确保您的机器符合兼容的版本,并已经搭建好了最基础的ROS环境
点击ROS,进入官网安装说明界面,选择平台。
Indigo --- linux 14.04Kinetic --- linux 16.04
Melodic --- linux 18.04
配置好安装环境后,您可以点击以下链接来获得ROS SDK的源码文件
点击下载orbbec ROS SDK 提取码:kpqv
若提示您需要安装百度网盘,选择deb格式下载安装包的方式更快捷
成功下载ROS SDK源码文件后,您仍需要安装相关的ros依赖项:
sudo apt install ros-$ROS_DISTRO-rgbd-launch
sudo apt install ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTRO-libuvc-ros
注:若平台为linux 14.04,不建议安装ROS自带的libuvc库,详情请看:三、编译问题汇总-
下面开始安装和配置ROS SDK ,首先您需要创建一个用于存放和编译ROS SDK的工作空间:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source /devel/setup.bash
随后把下载的ROS SDK源码文件文档内的功能包提取到工作空间的src文件夹内
操作顺序为:进入ROS SDK文件夹--进入SDK文件夹--选择20220616--打开ROS SDK压缩包--提取ros_astra_camera功能包到src文件夹
由于文件权限如今仅限于root用户,所以您还需更改文件的权限:
cd ~/catkin_ws
sudo chmod 777 * -R
最后对工作空间内的ROS SDK功能包进行编译:
cd ~/catkin_ws
catkin_make --pkg astra_camera
若显示如下界面,则证明您的ROS SDK已经安装完毕
二、ROS SDK使用
您可以通过roslaunch命令来运行ROS SDK驱动:
roslaunch astra_camera astraplus.launch
你还可以用RViz可视化工具查看摄像头所捕获的图像.
打开一个新的终端并运行以下指令:
> rviz
如果您的rviz可视化界面没有摄像头的窗口,那么需要您手动添加,点击左下角的 Add
按钮进行添加,会弹出一个小窗口,选中里面的Image
,然后点击ok
就会添加成功.
添加成功后,需要进行设置,才能让Image框显示图像,找到侧边栏的Image点击使其展开,将Visiblity
选框中的勾去掉,设置Image Topic
的图像话题,一般我们选择的是/camera/rgb/image_raw
或/camera/depth/image_raw
注意: 如果您的图像窗口无法正常显示摄像头所捕获图像,请点击侧边栏的 Camera Status
,查看status是否是 Warn
或者 Error
, 并点击Status
下的 Camera Info
查看详细信息。
一般而言,如果Camera Info 显示的信息为 "No image received"
or "For frame[xxx]:Fixed Frame [map] does not exist"
.
则你需要点击侧边栏的Global Options
中的Fixed Frame
,并根据Camera Info
所提示信息对其进行设置:
如果您想修改相机驱动的某些功能,可以参照以下几个教程:
1、修改分辨率
方法1:修改ROS的参数服务器,适合用于机器人参数可视化在线调试。减少在调试机器人时修改完参数再编译的低效操作过程。
注:重启命令框,或者相机上下电,都需要重新修改参数服务器
命令:rosrun rqt_reconfigure rqt_reconfigure
- 先启动astraplus相机节点
roslaunch astra_camera astraplus.launch
- 再启动参数服务器 rosrun rqt_reconfigure rqt_reconfigure
- 参数服务器中,选择camera/driver/下,depth_mode为640400_30H(13)
- 启动rviz工具,选择添加rviz/image,选择topic为/camera/depth/image_raw,可显示正常深度图
方法2:通过rosparam命令对参数服务器进行操作修改。
- 先启动launch文件。
- rosparam list 列出参数服务器中的参数。
- 结合Astra.cfg中output_mode_enum分辨率定义数组。
在launch文件末尾加入如下:(修改深度图分辨率为640x400)
<rosparam>
/camera/driver/depth_mode: 13
</rosparam>
重新启动launch文件,rviz可视化工具即可看到调整后的深度图。
方法3:修改Astra.cfg文件,可固定相机的分辨率
注:修改cfg文件,需重新catkin_make编译工作区,才能生效。
- 打开Astra.cfg,路径:ros_astra_camera\cfg\Astra.cfg
- 查找"depth_mode",修改gen.add中对应640x400的值,如下(Astra.cfg默认depth分辨率 为VGA)
gen.add("depth_mode", int_t, 0, "Video mode for depth camera", 8, 1, 17, edit_method = output_mode_enum)
- 重新catkin_make工作区。
- 重新启动launch文件,此时显示的分辨率为640x400。
2、通过修改软件层来降低帧率
/src/astra_driver.cpp下,
- 1、修改AstraDriver::configb 中 dataskip = 3 ,降到10FPS
- 2、重新编译工作空间源代码 执行catkin_make
- 3、rostopic hz /camera/depth/points
3、启动多个相机
步骤1:接入相机,获取相机系列号(serial number)
- 正常启动相机lanuch文件(以astra相机为例)
- 需在工作空间内,通过rosservice list命令列出服务,找到camera/get_serial,在执行此服 务获取相应系列号。
如上图获取相机系列号为:17121830167 同理获取接到机器上其他同型号相机系列号
步骤2:修改多相机启动launch文件
例程launch: 两台astra[提取码:7ao0]
三、编译问题汇总
1、提示libOpenNI2.so: undefined reference to CXXABI_1.3.8错误
解决方案:CXXABI_1.3.8错误,因系统gcc版本过低,可查看gcc版本,升级gcc到5.5
解决方法:升级 gcc 4.8到gcc 5.x
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
安装依赖的包(出现错误才需要如下这个)
(sudo apt-get install software-properties-common)
sudo apt-get install gcc-5 g++-5
sudo ln -s /usr/bin/gcc-5 /usr/bin/gcc -f
sudo ln -s /usr/bin/g++-5 /usr/bin/g++ -f
2、ubuntu14.04编译时提示关于libuv出现错误
解决方案:如下安装指令为造成libuvc错误原因,因ROS在ubuntu14.04平台上自带的libuvc库比较老旧,接 口并没有更新,导致源码中使用libuvc接口找不到。
ros-$ROS_DISTRO-libuvc ros-$ROS_DISTRO-libuvc-camera ros-$ROS_DISTROlibuvc-ros
解决方法:
查找系统是否安装libuvc库
dpkg -l | grep libuvc
卸载已安装的libuvc
sudo apt-get remove ros-indigo-libuvc*
下载libuvc最新源码并安装
cd ~
git clone https://github.com/ktossell/libuvc
cd libuvc
mkdir build
cd build
cmake ..
make && sudo make install
3、编译过程中,提示有权限问题(Permerssion denied),如Astra.cfg或者UVCCamera.cfg
解决方案: 修改astra.cfg可执行文件(具体以本地文件所在路径为准)
解决方法:
cd ~/catkin_ws
chmod 777 -R /src/ros_astra_camera-master/cfg
4、编译过程中,提示缺少'gstremaer'相关package
解决方案:安装gstreamer模块时缺漏,重新安装
解决方法:
sudo apt-get install libgstremaer*k0