准备工作
(1)安装 Realsense 环境
参考官方文档:librealsense/distribution_linux.md at master · IntelRealSense/librealsense · GitHub
注册服务器的公钥
1
| sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE
|
如果仍然无法检索公钥,请检查并指定代理设置 export http_proxy="http://<proxy>:<port>"
将服务器添加到存储库列表中
1
| sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u
|
安装库
1 2 3 4
| sudo apt-get install librealsense2-dkms sudo apt-get install librealsense2-utils sudo apt-get install librealsense2-dev sudo apt-get install librealsense2-dbg
|
验证安装,使用 realsense-viewer
测试驱动是否安装完成。
1 2 3 4
| mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b ros1-legacy https://github.com/IntelRealSense/realsense-ros.git cd ~/catkin_ws && catkin_make
|
一定要注意 clone 的分支,默认是 ros2,如果是 ros1 环境需要指定分支。
(2)安装 aruco_ros
首先创建一个工作空间,进入到工作空间的 src
目录下,下载 aruco_ros
包,注意根据自己的 ros 版本选择仓库分支,我这里选择的是 noetic-devel
1 2 3 4 5
| cd 【工作空间】/src git clone -b noetic-devel https://github.com/pal-robotics/aruco_ros.git cd .. catkin_make source devel/setup.bash
|
设置参数
主要修改 single.launch
文件。
- 修改要识别的 aruco 标记的 ID 和 size。
- 修改其中的
<remap from="/camera_info
和 <remap from="/image"
以及 <param name="camera_frame"
。
修改完成后如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <launch>
<arg name="markerId" default="66"/> <arg name="markerSize" default="0.07"/> <!-- in m --> <arg name="eye" default="left"/> <arg name="marker_frame" default="aruco_marker_frame"/> <arg name="ref_frame" default=""/> <!-- leave empty and the pose will be published wrt param parent_name --> <arg name="corner_refinement" default="LINES" /> <!-- NONE, HARRIS, LINES, SUBPIX -->
<node pkg="aruco_ros" type="single" name="aruco_single"> <remap from="/camera_info" to="/camera/color/camera_info" /> <remap from="/image" to="/camera/color/image_raw" /> <param name="image_is_rectified" value="True"/> <param name="marker_size" value="$(arg markerSize)"/> <param name="marker_id" value="$(arg markerId)"/> <param name="reference_frame" value="$(arg ref_frame)"/> <!-- frame in which the marker pose will be refered --> <param name="camera_frame" value="/camera_link"/> <param name="marker_frame" value="$(arg marker_frame)" /> <param name="corner_refinement" value="$(arg corner_refinement)" /> </node>
</launch>
|
测试
(1)启动相机
1
| roslaunch realsense2_camera rs_aligned_depth.launch
|
(2)启动 aruco_ros
1 2
| roslaunch aruco_ros single.launch roslaunch aruco_ros single.launch markerId:=582 markerSize:=0.057
|
(3)可视化
1
| rosrun image_view image_view image:=/aruco_single/result
|
(4)查看位姿
1
| rostopic echo /aruco_single/pose
|