orin Ubuntu 20.04 配置 Realsense-ROS
librealsense安装
sudo apt-get install libudev-dev pkg-config libgtk-3-dev
sudo apt-get install libusb-1.0-0-dev pkg-config
sudo apt-get install libglfw3-dev
sudo apt-get install libssl-dev
sudo apt-get install ros-noetic-ddynamic-reconfigure
二进制安装librealsense
sudo apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo bionic main" -u
sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev
拉取librealsense
git clone https://github.com/IntelRealSense/librealsense.git
//也可以指定版本
//git clone -b v2.50.0 https://github.com/IntelRealSense/librealsense.git
//sudo chmod u+x ./installLibrealsense.sh
//./installLibrealsense.sh
cd librealsense
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make
sudo make install
realsense-viewer
Cloning into ‘libcurl’…
error: RPC failed; HTTP 408 curl 22 The requested URL returned error: 408
fatal: the remote end hung up unexpectedly
直接去 https://github.com/curl/curl 下载curl.zip。
注释掉 ~/librealsense/CMake 文件下的 external_libcurl.cmake 的 GIT_REPOSITORY "git://github.com/curl/curl.git" 。即在 GIT_REPOSITORY "git://github.com/curl/curl.git"前加#。
并将提前下载后的 curl.zip 解压后 改名为 libcurl ,放入到 ~/librealsense/build/third-party。
由此可跳过git clone libcurl 失败的问题。
ROS包安装
cd ~/catkin_ws/src
git clone https://github.com/IntelRealSense/realsense-ros.git
git checkout ros1-legacy
git branch
cd ~/catkin_ws && catkin_make
roslaunch realsense2_camera demo_pointcloud.launch
roslaunch realsense2_camera rs_camera.launch
[ INFO] [1683620250.396558236]: Done Setting Dynamic reconfig parameters.
/opt/ros/noetic/lib/nodelet/nodelet: symbol lookup error: /home/bitcq/fast-drone-250/devel/lib//librealsense2_camera.so: undefined symbol: _ZN2cv3MatC1Ev
or
Could not find a package configuration file provided by “OpenCV“
未定义标识符undefined symbol: _ZN2cv3MatC1Ev。猜测是OpenCV库的问题,未找到链接库。
先在终端输入命令查找路径
locate OpenCVConfig.cmake
OpenCVConfig.cmake所在路径为/usr/lib/aarch64-linux-gnu/cmake/opencv4/OpenCVConfig.cmake
打开realsense-ros的功能包文件夹下 realsense2_camera 文件夹下的 CmakeLists.txt文件,做出如下修改:
添加
set(OpenCV_DIR /usr/lib/aarch64-linux-gnu/cmake/opencv4)到find_package前,添加OpenCV REQUIRED到find_package里
set(OpenCV_DIR /usr/lib/aarch64-linux-gnu/cmake/opencv4)
find_package(catkin REQUIRED COMPONENTSmessage_generationnav_msgsroscppsensor_msgsstd_msgsstd_srvsnodeletcv_bridgeimage_transporttfddynamic_reconfigurediagnostic_updaterOpenCV REQUIRED)
添加${OpenCV_LIBS}到目标链接库里
target_link_libraries(${PROJECT_NAME}${realsense2_LIBRARY}${catkin_LIBRARIES}${CMAKE_THREAD_LIBS_INIT}${OpenCV_LIBS})
[ WARN] [1683681450.133423931]: Hardware Notification:Depth stream start failure,1.68368e+12,Error,Hardware Error
将深度相机分辨率设置为与RGB相机相同即可
<arg name="depth_width" default="1280"/><arg name="depth_height" default="720"/><arg name="enable_depth" default="true"/>
多主机ROS通信
export ROS_HOSTNAME=[master_host_ip]
export ROS_MASTER_URI=http://[host_ip]:11311
rgbd_launch是一组打开RGBD设备,并load 所有nodelets转化 raw depth/RGB/IR 流到深度图(depth image), 视差图(disparity image)和点云(point clouds)的launch文件集。
sudo apt-get install ros-noetic-rgbd-launch