机械臂与RealSense相机手眼标定

这篇具有很好参考价值的文章主要介绍了机械臂与RealSense相机手眼标定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:

本文主要使用kinova mico机械臂 + RealSense D435i深度相机进行了eye to hand的手眼标定。
系统环境:Ubuntu18.04,ROS Melodic
硬件:Kinova mico,RealSense D435i
特别注意:经测试,本方法有效可行,好多博客里说的运行写好的标定launch文件后,只有两个rviz界面,而没有标定的rqt_easy_handeye问题也可以解决。
准备工作:如果ubuntu系统长时间未使用,需要先更新软件包

rosdep update
sudo apt-get update
sudo apt-get dist-upgrade

一. RealSense D435i安装

完成realsense驱动及其ros接口的安装测试,详细步骤查阅我前面写的ubuntu18.04安装Realsense D435i相机SDK及realsense-ros记录,为后期运行yolo v5作准备

二. Kinova-ROS安装

(1)安装kinova-ros接口

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

注意:
1.我的工作空间名是cat_ws,
2. 如果git clone出错,是因为网络的原因,可以试着科学上网,或一直重复此步骤,这里就不教给大家科学上网的过程了
3.要通过 USB 访问 arm,要将 udev 规则文件 10-kinova-arm.rules从~/cat_ws/src/kinova-ros/kinova_driver/udev复制到/etc/udev/rules.d/中:

cd cat_ws/src/kinova-ros
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可用:

cd cat_ws
source /devel.setup.bash
roslaunch kinova_bringup kinova_robot.launch kinova_robotType:=m1n6s300
#重新打开一个终端运行
roslaunch m1n6s300_moveit_config m1n6s300_demo.launch

三、手眼标定环境配置
1、aruco_ros安装

我一般都从github下载压缩包,然后解压到src,这样可以避免下错版本,我下载的都是melodic版本的。
也可以使用下面指令进行安装,但是不建议

    cd ~/cat_ws/src
    git clone -b melodic-devel https://github.com/pal-robotics/aruco_ros.git
    cd ..
    catkin_make

2、vision_visp / visp_hand2eye_calibration安装

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

3、easy_handeye安装

cd ~/cat_ws/src    # replace with path to your workspace
git clone https://github.com/IFL-CAMP/easy_handeye
cd ..              # now we are inside ~/cat_ws
rosdep install -iyr --from-paths src
catkin_make

注:此处可能会报错:缺少transforms3d库。

执行命令

pip install transforms3d

但还是报错
机械臂与RealSense相机手眼标定,ubuntu,ros,手眼标定解决办法:更新一下pip,再安装

pip install --upgrade pip

然后重新在cat_ws文件夹下执行上述两个步骤:

pip install transforms3d
rosdep install -iyr --from-paths src

这一步是必须的,不然后面无法出现标定界面

四、手眼标定
1.准备aruco码

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

Dictionary: Original ArUco
Marker ID:582
Marker size:100
生成PDF之后,原尺寸打印

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

2.创建launch文件
注意:RealSense D435i相机和机械臂要分别启动,否则会报错!
在~/cat_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 m1n6s300_moveit_config)/launch/m1n6s300_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="m1n6s300_link_base" />
        <arg name="robot_effector_frame" value="m1n6s300_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_group的default value改为arm;

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

2)sudo gedit ~/cat_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;

roslaunch easy_handeye kinova_realsense.launch

(4)配置成功会出现以下三个图;
机械臂与RealSense相机手眼标定,ubuntu,ros,手眼标定机械臂与RealSense相机手眼标定,ubuntu,ros,手眼标定机械臂与RealSense相机手眼标定,ubuntu,ros,手眼标定kinova机械臂Check starting pose不好用,所以第三张图片的内容用不到,我是使用遥控的方法,调整标定板的位置。

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

遥控调整机械臂的位置,调整一次,采样一次,采样17次后,点击compute,得到坐标转换关系。

完结 撒花~~文章来源地址https://www.toymoban.com/news/detail-554790.html

到了这里,关于机械臂与RealSense相机手眼标定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Intel Realsense D455深度相机的标定及使用(一)——安装librealsense SDK2.0以及realsense-ros

             Intel® RealSense™ SDK 2.0 的DKMS内核驱动包(librealsense2-dkms)支持Ubuntu LTS内核版本4.4、4.8、4.10、4.13、4.15、4.18、5.0、5.3、5.4。 sudo cat /proc/version         如果非上述版本,需要手动安装和修补版本,请移步官网教程:https://github.com/IntelRealSense/librealsense/blob/master

    2024年01月23日
    浏览(34)
  • Realsense D455/435内参标定以及手眼标定

    内参数 与相机自身特性有关的参数,焦距,像素大小 外参数, 相机的位置,旋转方向 理想情况下,镜头会将一个三维空间中的直线也映射成直线(即射影变换),但实际上,镜头无法这么完美,通过镜头映射之后,直线会变弯,所以需要相机的畸变参数来描述这种变形效果

    2024年01月17日
    浏览(31)
  • JAKA+aruco+realsense+眼在手外的手眼标定

    (机械臂的运行节点商家一般会给,注意看使用说明里面的信息,容易踩雷)     用户使用说明里面会告诉你表示机器人位姿的(我的是toolpoint,这里有个大雷,后面说) (老师的驱动我用不了,就略过了,只是用aruco和calibrate两部分,眼在手外和手上的都能用,老师的是

    2024年02月21日
    浏览(41)
  • Ubuntu 20.04 Intel RealSense D435i 相机标定教程

    报错:sumpixel_test.cpp:2:10: fatal error: backward.hpp: 没有那个文件或目录,将sumpixel_test.cpp中# include \\\"backward.hpp\\\"改为:#include “code_utils/backward.hpp”。 报错 创建rs_imu_calibration.launch 找到realsense-ros包,进入/catkin_ws/src/realsense2_camera/launch(路径仅供参考),复制其中的rs_camera.launch,并重

    2024年01月16日
    浏览(34)
  • 机械臂进行手眼标定(眼在手上)python代码

    执行手眼标定(eye in hand)步骤: 收集数据:使用相机拍摄多张不同角度的标定板图像,并记录相机和机械臂的位姿数据。 提取标定板角点:使用OpenCV库中的函数cv2.findChessboardCorners()提取标定板图像中的角点坐标。 计算相机内参矩阵:使用OpenCV库中的函数cv2.calibrateCamera()计

    2024年02月16日
    浏览(28)
  • 机械臂 手眼标定 手眼矩阵 eye-in-hand 原理、实践及代码

    所谓 手眼系统 ,就是人眼睛看到一个东西的时候要让手去抓取,就需要大脑知道眼睛和手的坐标关系。而相机知道的是像素坐标,机械手是空间坐标系,所以手眼标定就是得到像素坐标系和空间机械手坐标系的坐标转化关系。 目前工业上通常使用两种方法进行机械臂的手眼

    2024年02月03日
    浏览(31)
  • ubuntu18.04安装Realsense D435i相机SDK及realsense-ros记录,为后期运行yolo v5作准备

    写在前面 :一定要注意各个版本之间的匹配问题,否则会报各种错误。 例如ROS版本和librealsense SDK版本之间的对应关系,以及realsense-ros(Wrapper)与librealsense SDK之间的对应关系 。 系统:ubuntu18.04 ros: melodic 附上Intel® RealSense github网站: https://github.com/IntelRealSense 以及安装教程

    2024年02月05日
    浏览(40)
  • Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置

    最近因为学习开发需要,要开始接触一些视觉相关的内容,拿到了一个Inter 的D435i深度相机,记录一下在Ubuntu18环境下配置SDK 包的历程 注意 : Intel官方最新版的librealsense版本与ROS1的ROS Wrapper是 版本不一致的 ,且ROS Wrapper支持的是较低版本的SDK ,具体可以去网站查看 如果完全

    2024年02月07日
    浏览(39)
  • intel realsense d435i相机标定中文文档

    此文档参考了官方的英文文档,原地址面向英特尔®实感™深度摄像头的 IMU 校准工具 (intelrealsense.com) IMU概述:惯性测量单元(imu)通常由加速度计组成,加速度通常以国际系统(SI)的米/秒为单位输出平方(m/s^2)和陀螺仪,陀螺仪通常以SI单位测量角速度弧度/秒(rad/s)。英特尔Real

    2024年02月09日
    浏览(34)
  • 基于虚拟机安装Ubuntu18.04+ROS的2D相机或电脑自带摄像头的在线标定方法

    硬件 :笔记本电脑自带摄像头或者通过usb接口连接的相机 软件 :虚拟机+ubuntu18.04+ROS1 melodic(针对ubuntu18.04对应的ROS版本) 首先确保在主目录下,创建ROS工程 克隆代码 编译代码 这个地方我报错了 – No package ‘libv4l2’ found CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:419

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包