拿到了一个 Orbbec Astro Pro 的摄像头,具体型号为: LeTMC301
在ubuntu中安装了相应的驱动
参考:
https://blog.csdn.net/EternallyAccompany/article/details/111299779
https://blog.csdn.net/jifaley/article/details/81677275
https://blog.csdn.net/weixin_37772351/article/details/121834815
在 https://developer.orbbec.com.cn/develop.html
下载文件 AstraSDK-v2.1.3-94bca0f52e-20210611T023312Z-Linux-aarch64。
在 https://github.com/choonyip/OpenNI-Linux-x64-2.3 下载文件:
OpenNI-Linux-x64-2.3.0.65.rar 。
如上图所示,为下载解压后的相关文件,忽略其它不相关文件。
cd AstraSDK(tab键补齐)
cd install
chmod a+x install.sh
然后运行:./install.sh
,输入密码后,便开始安装
Linux installer script for Astra SDK
Installing rules for orbbec devices into /etc/udev/rules.d/
Done.
NOTES:
We suggest adding the following lines to your .bash_profile or .bashrc
export ASTRA_SDK_INCLUDE=/home/xsl/Disk2/WorkSpace/Code/Orbbec/AstraSDK/install/include
export ASTRA_SDK_LIB=/home/xsl/Disk2/WorkSpace/Code/Orbbec/AstraSDK/install/lib
然后编辑 .bashrc文件,添加上述 export 路径
sudo gedit ~/.bashrc
在 .bashrc 文件中添加上面的两个 export,注意路径中的 install 要删除
export ASTRA_SDK_INCLUDE=/home/xsl/Disk2/WorkSpace/Code/Orbbec/AstraSDK/install/include
export ASTRA_SDK_LIB=/home/xsl/Disk2/WorkSpace/Code/Orbbec/AstraSDK/lib
最后 source ~/.bashrc
cd 到 OpenNI 目录下,对 install.sh 文件添加权限后,./install.sh 运行
然后
source OpenNIDevEnvironment
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:34: error:
这里参考文章,完成 gcc/g++ 版本的切换。
参考完成了配置,以下内容是我按照博主的教程进行配置时出现的一些错误。
1.安装依赖
这里,根据原博文,显示 ros-noetic-libuvc 无法定位软件包,需要手动下载后编译,我把下载好的资源包传了上来,供有需要的人使用
https://download.csdn.net/download/m0_43422224/82077544
解压后,创建 build 文件夹,cd 到 build 目录下,运行
cmake ../ make/ sudo make install
进行安装。
2.编译功能包
新建工作空间,并进行 catkin_make,下载软件包后对工作空间进行编译,这里出现了错误:
[ 98%] Built target astra_camera_node
/usr/bin/ld: CMakeFiles/camera_node.dir/src/libuvc_camera/camera_driver.cpp.o: in function `libuvc_camera::CameraDriver::~CameraDriver()':
camera_driver.cpp:(.text+0xcb4): undefined reference to `uvc_free_frame'
/usr/bin/ld: camera_driver.cpp:(.text+0xcd4): undefined reference to `uvc_exi
主要原因是找不到相应的库,于是在 ros_astra_camera 的 CMakeList.txt 中添加语句:
find_package(libuvc REQUIRED)
set(libuvc_INCLUDE_DIRS "/usr/local/include/libuvc")
set(libuvc_LIBRARIES "/usr/local/lib/libuvc.so")
libuvc的路径可根据自己的安装位置进行更改。
然后又出现了一个错误:
'nullptr' was not declared in this scope
在 ros_astra_camera 的 CMakeList.txt 中添加:
add_definitions(-std=c++11)
然后在工作空间下进行编译,catkin_make,这次没报错,编译成功
lsusb 查看设备id,
Bus 003 Device 011: ID 2bc5:0501 Azurewave Integrated Camera
Bus 003 Device 010: ID 2bc5:0403 VMware VMware Virtual USB Mouse
根据自己的 id 修改 astrapro.launch 中 0x0502 的值,我这里显示为 0501 ,因此需要将 product 参数的值修改为 0x0501
<param name="vendor" value="0x2bc5"/>
<param name="product" value="0x0502"/> #修改成自己相机的id
启动 launch 文件
source ~/catkin_ws/devel/setup.bash
roslaunch astra_camera astrapro.launch
启动 rviz:
订阅话题:
/camera/rgb/image_raw
/camera/ir/image
/camera/depth/image
订阅 PointCloud2 下 /camera/depth/points 话题