Ubuntu18.04 + kinova joca2机械臂 + RealSense D435i深度相机进行eye to hand手眼标定

文章目录

  • 前言
  • 一、前期准备
    • 1. RealSense D435i安装
    • 2. Kinova-ROS安装
  • 二、手眼标定环境配置
    • 1. visip
    • 2. aruco_ros
    • 3. easy_handeye
  • 三、标定前准备
    • 1. 终端python版本设置
    • 2. opencv4安装
  • 四、手眼标定
    • 1. 准备aruco码
    • 2. 创建launch文件
    • 3. 参数修改
    • 4. 手眼标定
  • 总结
  • 参考连接


前言

本文主要使用kinova joca2机械臂 + RealSense D435i深度相机进行了eye to hand的手眼标定。
系统环境:Ubuntu18.04,ROS Melodic
硬件:Kinova joca2,RealSense D435i


一、前期准备

1. RealSense D435i安装

(1)完成realsense及其ros接口的安装测试。
请参考:http://zhaoxuhui.top/blog/2020/09/09/intel-realsense-d435i-installation-and-use.html
(2)realsense-ros接口安装部分可以依照官网文档进行安装测试:
https://github.com/IntelRealSense/realsense-ros

2. Kinova-ROS安装

(1)安装kinova-ros接口

cd ~/catkin_ws/src
git clone https://github.com/Kinovarobotics/kinova-ros.git kinova-ros
cd ~/catkin_ws
catkin_make

注意:要通过 USB 访问 arm,要将 udev 规则文件 10-kinova-arm.rules~/catkin_ws/src/kinova-ros/kinova_driver/udev复制到/etc/udev/rules.d/中:

sudo cp kinova_driver/udev/10-kinova-arm.rules /etc/udev/rules.d/

(2)安装moveit

sudo apt-get install ros-melodic-moveit
sudo apt-get install ros-melodic-trac-ik

(3)验证机械臂和moveit可用:

# 机械臂
roslaunch kinova_bringup kinova_robot.launch kinova_robotType:=j2n6s300
# moveit
roslaunch j2n6s300_moveit_config j2n6s300_demo.launch

二、手眼标定环境配置

1. visip

sudo apt-get install ros-melodic-visp
cd ~/catkin_ws/src
git clone  https://github.com/lagadic/vision_visp.git
cd ..
catkin_make --pkg visp_hand2eye_calibration

2. aruco_ros

cd ~/catkin_ws/src
git clone  https://github.com/pal-robotics/aruco_ros
cd ..
catkin_make

3. easy_handeye

cd ~/catkin_ws/src  # replace with path to your workspace
git clone https://github.com/IFL-CAMP/easy_handeye
cd ..  # now we are inside ~/catkin_ws
rosdep install -iyr --from-paths src
catkin_make
注:此处可能会报错:缺少transforms3d库。

使用如下指令进行安装:

pip install transforms3d

三、标定前准备

1. 终端python版本设置

查看终端python版本,切换python版本为2.7
参考:https://zhuanlan.zhihu.com/p/159483149

2. opencv4安装

ubuntu18.04默认安装的opencv3。低版本的opencv没有手眼标定函数,因此需要opencv4。

pip2 install opencv-python==4.2.0.32

四、手眼标定

1. 准备aruco码

网址:https://chev.me/arucogen/
选项选择如下:

Dictionary: Original ArUco
Marker ID:582
Marker size:100

生成PDF之后,原尺寸打印

注:Dictionary必须选Original ArUco。IDsize选择其他选项的,要对应文件中修改成对应的参数(ID要是aruco文件夹中包含的ID)。

2. 创建launch文件

注意:RealSense D435i相机和机械臂要分别启动,否则会报错!
~/catkin_ws/src/easy_handeye/easy_handeye/launch文件夹下新建kinova_realsense.launch
如使用其他相机,将相机信息和图像改为对应相机发布的信息,将相机坐标系改为对应相机的坐标系。使用其他机械臂的,launch文件编写请参考其他博主进行编写。

        
        
        
        

文件内容如下:

<launch>
    <arg name="namespace_prefix" default="kinova_d435i_handeyecalibration" />
 
    <arg name="marker_size" value="0.1" />
    <arg name="marker_id" value="582" />
 
    <!-- start ArUco -->
    <node name="aruco_tracker" pkg="aruco_ros" type="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 marker_size)"/>
        <param name="marker_id"          value="$(arg marker_id)"/>
        <param name="reference_frame"    value="camera_link"/>
        <param name="camera_frame"       value="camera_link"/>
        <param name="marker_frame"       value="camera_marker" />
 
    </node>
 
    <!-- start the robot -->
    <include file="$(find kinova_bringup)/launch/kinova_robot.launch">
    </include>
    
    <include file="$(find j2n6s300_moveit_config)/launch/j2n6s300_demo.launch">
    </include>

    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
    </node>
 
    <!-- start easy_handeye -->
    <include file="$(find easy_handeye)/launch/calibrate.launch" >
        <arg name="namespace_prefix" value="$(arg namespace_prefix)" />
        <arg name="eye_on_hand" value="false" />
 
        <arg name="tracking_base_frame" value="camera_link" />
        <arg name="tracking_marker_frame" value="camera_marker" />
        <arg name="robot_base_frame" value="j2n6s300_link_base" />
        <arg name="robot_effector_frame" value="j2n6s300_link_6" />
        <!--disable automatic robot movement-->
        <arg name="freehand_robot_movement" value="false" />
        
        <arg name="robot_velocity_scaling" value="0.5" />
        <arg name="robot_acceleration_scaling" value="0.2" />
    </include>
 
</launch>

3. 参数修改

(1) 将同目录下calibrate.launch文件中的第十三行move_groupdefault value改为arm

<arg name="move_group" default="arm"  doc="the name of move_group for the automatic robot motion with MoveIt!" />

(2)sudo gedit ~/catkin_ws/src/easy_handeye/easy_handeye/src/easy_handeye/handeye_calibration_backend_opencv.py

# 将
import cv2
# 改为
import sys
sys.path.remove('/opt/ros/melodic/lib/python2.7/dist-packages')
import cv2
sys.path.append('/opt/ros/melodic/lib/python2.7/dist-packages')

4. 手眼标定

(1)将aruco码固定在joca2机械臂的末端;
(2)启动RealSense D435i深度相机;

roslaunch realsense2_camera rs_camera.launch

(3)启动kinova_realsense.launch
cd ~/catkin_ws/src/easy_handeye/easy_handeye/launch

roslaunch kinova_realsense.launch

(4)配置成功会出现以下三个图;

Ubuntu18.04 + kinova joca2机械臂 + RealSense D435i深度相机进行eye to hand手眼标定_第1张图片
Ubuntu18.04 + kinova joca2机械臂 + RealSense D435i深度相机进行eye to hand手眼标定_第2张图片
Ubuntu18.04 + kinova joca2机械臂 + RealSense D435i深度相机进行eye to hand手眼标定_第3张图片

注:我是手动调整机械臂位置进行采样的,所以没用到第三张图。

如果意外遇到图二为空白(写博客准备截图时遇到):

rosrun rqt_gui rqt_gui --clear-config
然后选择plugins->configuration->dynamics configu

我没有出现image_view,就另打开终端,运行rqt指令。在打开的窗口选择plugins->Visualization->image_View,打开image_view界面。选择/aruco_ros/tracker/result话题,确认能检测到aruco码。

(5)手动调整机械臂的位置,调整一次,采样一次,采样17次后,点击compute,得到坐标转换关系。

Ubuntu18.04 + kinova joca2机械臂 + RealSense D435i深度相机进行eye to hand手眼标定_第4张图片

总结

总结下来就是一步一个坑啊。好在是标出来了。此外,十分感谢以下作者的工作,给了我十分重要的帮助!

参考连接

  1. http://zhaoxuhui.top/blog/2020/09/09/intel-realsense-d435i-installation-and-use.html
  2. https://blog.csdn.net/qq_37460503/article/details/121277822
  3. https://blog.csdn.net/zhang970187013/article/details/81098175
  4. https://blog.csdn.net/gyxx1998/article/details/122238052
  5. https://www.guyuehome.com/26524
  6. https://zhuanlan.zhihu.com/p/159483149

你可能感兴趣的:(ubuntu,经验分享)