如何利用ubuntu进行DCW2深度相机手眼标定
时间: 2025-05-06 16:21:26 浏览: 28
### Ubuntu 上使用 DCW2 深度相机进行手眼标定方法
#### 准备工作
为了在Ubuntu上使用DCW2深度相机完成手眼标定,需先确保ROS2环境已安装完毕,并且版本为Humble。操作系统应为Ubuntu 22.04 LTS。对于所使用的奥比中光DABAI_DCW双目结构光相机,需要按照官方说明配置好相应的SDK驱动程序[^1]。
#### 安装必要的依赖包
通过终端执行命令来更新软件源并安装一些基础工具:
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install ros-humble-camera-calibration ros-humble-image-geometry python3-opencv aruco-utils
```
#### 获取与编译手眼标定所需资源
从GitHub仓库克隆专门针对手眼协调的手眼标定库至本地计算机的工作空间内,通常位于`~/ros2_ws/src/`目录下:
```bash
cd ~/ros2_ws/src/
git clone https://github.com/ros-industrial-consortium/handeye_calibrator.git
```
接着,在同一路径下初始化和构建整个项目工程:
```bash
cd ~/ros2_ws
colcon build --symlink-install
source install/setup.bash
```
#### 进行手眼标定实验准备
启动深度相机节点以便获取图像流数据。这一步骤具体取决于之前已经成功部署好的相机驱动服务端口情况;假设一切正常,则可以通过如下指令激活设备连接状态:
```bash
ros2 launch dcw_camera_node start.launch.py
```
创建一个新的launch文件用于同时运行aruco单目检测器以及hand_eye_calibration_client客户端应用程序实例化过程中的参数设定。新建名为`calibrate_hand_eye.launch.py`的脚本放置于个人自定义package里边,内容大致如下所示(注意修改其中有关marker尺寸大小等细节部分以匹配实际标签规格):
```python
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
Node(
package='aruco_detect',
executable='single_marker_detector',
name='marker_detector',
parameters=[{'marker_size': 0.08, 'camera_frame_id': 'dcw_optical_frame'}],
remappings=[
('image', '/depth/image_rect_raw'),
('camera_info', '/depth/camera_info')
]
),
Node(
package='handeye_calibrator',
executable='client',
name='hand_eye_calib_client'
)
])
```
#### 开始手眼标定流程
当所有前期准备工作都完成后,便可以正式开启手眼校准环节了。打开新的终端窗口依次输入下面两条语句分别触发上述提到过的两个重要组件——ARUCO标记识别模块和服务请求者接口:
```bash
ros2 launch your_package_name calibrate_hand_eye.launch.py
```
此时应该能看到机器人末端执行机构携带特定图案经过摄像头视野范围内移动的画面序列变化情形。操作人员可根据提示信息调整姿态直至满足采样条件为止。期间务必保持稳定的速度和平滑的动作轨迹以免影响最终计算精度。
一旦收集到足够的样本数量之后就可以结束本轮测试进而获得一组较为理想的结果输出。这些数值能够帮助我们更好地理解两者之间的相对位置关系从而优化后续任务规划方案设计思路。
阅读全文
相关推荐












