精华内容
下载资源
问答
  • 机器人视觉伺服

    2012-03-28 11:46:36
    机器人视觉伺服 混合控制 基于图像 雅克比矩阵 Harris角点检测
  • 机器人视觉伺服综述

    2021-01-15 15:41:12
    系统论述了机器人视觉伺服发展的历史和现状。从不同角度对机器人视觉控制系统进行分类, 重点介绍了基于位置的视觉伺服系统和基于图像的视觉伺服系统。对人工神经网络在机器人视觉伺服 方面的应用情况作了...
  • 机器人视觉伺服综述pdf,机器人视觉伺服综述
  • 机器人视觉伺服系统的研究是机器人领域中的重要内容之一,其研究成果可以直接用于机器人自动避障、轨迹线跟踪和运动目标跟踪等问题中。本文针对机器人视觉伺服系统要求快速准确的特点,设计了基于TMS320C6201的...
  • 本文主要针对机器人视觉伺服系统要求快速准确的特点,为满足项目研究的需要,讨论研究了基于DSP的图像反馈机器人视觉伺服技术。
  • 针对受限移动机器人视觉伺服系统,提出一种移动机器人视觉伺服镇定准最小最大模型预测控制策略. 基于移动机器人视觉伺服镇定误差模型,建立移动机器人视觉伺服线性参数时变预测模型,进而引入准最小最大策略,设计移动...
  • 本文分析了机器人视觉伺服系统的基本原理,并设计了基于TMS320C6201和可编程逻辑器件FPGA协处理结构的视觉系统,实现了图像采集和图像目标的实时处理。在实验室中我们利用所设计的视觉系统构建了实验平台,通过实验...
  • 利用平面单应分解实现服务机器人视觉伺服
  • 机器人视觉伺服就是在闭环控制环节中使用计算机视觉数据来控制机器人运动 1.机器人视觉伺服的分类 从反馈信息类型的角度,可分为: 基于位置(position-based)的视觉控制 反馈偏差在3D直角坐标空间计算。使用特征...

    机器人视觉伺服就是在闭环控制环节中使用计算机视觉数据来控制机器人运动

    1.机器人视觉伺服的分类

    从反馈信息类型的角度,可分为:

    • 基于位置(position-based)的视觉控制
      反馈偏差在3D直角坐标空间计算。使用特征信息估计机器人与目标之间的相对位姿。需要对机器人和视觉系统进行标定。要进行图像解释、位姿估计,计算量较大。
    • 基于图像(image-based)的视觉控制
      反馈偏差在2D图像平面空间计算。即相机观测到的特征信息直接用于反馈,不需要估计三维姿态。

    未完待续

    展开全文
  • 文章编号:100220446(20040320277206机器人视觉伺服研究进展Ξ王麟琨,徐德,谭民(中国科学院自动化研究所复杂系统与智能科学实验室,北京100080摘要:,针对当前机器人视觉伺服所面临的主要问题,.关键词:机器人;视觉伺服;...

    文章编号

    :100220446(2004 0320277206

    机器人视觉伺服研究进展

    Ξ

    王麟琨

    ,

    徐德

    ,

    谭民

    (

    中国科学院自动化研究所复杂系统与智能科学实验室

    ,

    北京

    100080

    :,

    针对当前机器人视觉伺服所面临的主要问题

    , .

    关键词

    :

    机器人

    ;

    视觉伺服

    ;

    综述

    中图分类号

    :

    :Survey of R esearch on Robotic Visual Servoing

    WAN G Lin 2kun , XU De , TAN Min

    (L aboratory of Com plex S ystems and Intelligence Science , Instit ute of A

    utomation , Chi nese Academy of Sciences , Beiji ng

    100080, Chi na

    Abstract :In this paper , structures and contents of robotic visual servoing systems

    are introduced. Then , a comparison

    between methods of different robotic visual servoing systems is given. Furthermore ,

    some new methods are represented in detail to solve problems of robotic visual servoing.

    K eyw ords :robot ;visual servoing ;survey

    1

    引言

    (Introduction

    展开全文
  • 机器人视觉伺服中的手眼标定和单目定位实现代码
  • 受限环境下的软体机器人视觉伺服控制,王超,王贺升,软体机器人有着无限自由度、高安全性与灵活性等特性,这使得软体机器人在微创手术与探索营救领域有着广阔的应用前景。对应用于手
  • 本文以固高公司的GPM系列2—DOF并联机器人为执行机构,根据机器人视觉伺服系统精度高、实时性强的要求,研究并设计了一套基于DSP的智能机器人视觉伺服系统。 论文重点研究了智能机器人视觉识别技术,提出了基于...
  • 搭建了由移动机器人、机械臂、摄像头组成的家庭服务机器人视觉伺服系统,建立了此系统的运动学模型并对安装在机械臂末端执行器上的视觉系统进行了内外参数标定,通过分解世界平面的单应来获取目标物品的位姿参数,...
  • 基于图像的机器人视觉伺服控制研究 文档 供大家下载研究
  • 根据小脑模型关联控制器(CMAC)收敛速度快,适于实时控制系统的特点,设计了一种基于CMAC学习控制方法的机器人视觉伺服系统。在该系统中,CMAC被用作前馈视觉控制器对常规反馈控制器进行补偿。所提出的CMAC控制器...
  • MATLAB代码,实现六自由度机器人视觉伺服控制,代码运行前需要配置机器人工具箱
  • 引言  Altera公司的Nios II处理器是可编程逻辑器件的软核处理器。NiosII软核处理器和存储器、I/O接口等外设可嵌入到FPGA中,组成一个可编程单芯片系统(SOPC),...机器人视觉伺服控制器的研究与设计  机器人视觉伺
  • 机器人视觉伺服系统的图像处理和标定技术 视觉伺服 图像处理 标定
  • 基于嵌入式的机器人视觉伺服寻迹系统研究资料
  • 本文分析了基于图像的机器人视觉伺服的基本原理, 使用 BP 神经网络来确定达到指定位姿所需要的关节角度,将视觉信息直接融入伺服过程,在保证伺服精 度的情况下大大简化了控制算法。文中针对Puma560工业机器人的...
  • 针对使用的摄像机建立了...然后介绍了视觉伺服系统的双环模型,外环为图像环,利用图像信息进行闭环,内环为机器人关节位置环,利用关节处的编码器数据进行闭环。为了提高位置环的响应速度和控制精度,针对辨识得到的位...
  • 面向微操作的微小型机器人视觉伺服技术研究.kdh
  • 提出了一种模仿人类视觉过程的动态图像目标跟踪方法,其采用基于模板匹配的识别技术,...利用此方法实现了一套视觉伺服机器人的运动目标跟踪系统,通过实验说明该方法能够满足系统的实时性要求,同时具有一定的抗噪能力。
  • 机器人J。生的那大起.具有新度钳能的闩E移动机器人就 良是人们追求1引卅究旧罐高门拓。近年来随着计弹机技术、传感嚣技术16乏人l智艟等技术们迅瓶发展.白E移动机器人的研究已经有了长足的进步.jf逐步m:f:料应...

    从机器人J。生的那大起.具有新度钳能的闩E移动机器人就 良是人

    们追求1引卅究旧罐高门拓。近年来随着计弹机技术、传感嚣技术16乏人l智

    艟等技术们迅瓶发展.白E移动机器人的研究已经有了长足的进步.jf逐

    步m:f:料应川和,“‘业化方向发胜,有的L始进八商业化Jr发阶段。随精机

    器人性能小断地克普,移动机器人的应川范l刊夫为扩肥,白主移动机器八

    作为机器人-个匝耍分支已绛小仪仪也:.1业制造领域.『町lI往军‘抒、lej_|iJ,

    科学探索方面【}l科到了广泛沲川。

    M觉是人类I【【I!察眦界和认生¨ltl界的tl要下段。掘统n人类从外部世

    界获得的信息约仃Ho%一是}}I视觉获取的。这即醴明说硅信启.量H大,也袁【!|_|

    人类时说觉估息仃较-≈的利用牢.H时义体现了人粪桃啦功能的琥婴陆。

    随管信息技术的发艟,给训锋机、机器人或其他智能机器峨于人类视觉J=:lJ

    能.是人类多年以来的梦赳j。丑然目前还不能够使训算机、机器人或其他

    臀能机{|{;也具有像人类等啦物那样高教、是活和通川的视世,f1]自20世纪

    50年代以来税啦理论和技术得到了迅速发展。这健借人类的梦想诈存逐步

    实现。

    在诺多忙感器tn桃觉忙感器凶填信息量大、适¨j范围广等特点已成

    为最甫g的机器人传感器之 。『司此,机器人视觉系统的研究一直是各类

    智能机器人研究的个热点。机器人观世的研究r|标就是使机器人县肯通

    过幅或多幅劁艨认知胤用环境信息的能力.这种能力不救使机器^能感

    知坷、境『|_物体帕儿何信息,如je形状、位置、姿态、运动等.晰且能埘它

    们进行排述、存储、Ul55Ij与耻衅,训算机视世P|!论的最终研究闩桥:赋予计

    算机以人类的视觉认知功能,使计算机具有通过二维图像认知现实世界的

    能力。

    砚觉例服是机器人导航的卟重要方面。视赞俐服主要运用1二机器臂的控制

    近年采运『}J-丁移动机黔人的控制。试图改善现有智能机器人的陛能,使之在军事、

    A宅、工业等领域得到更由n广泛的运用。总之,机器人桃觉f11】服系统是个跨

    学科的研究领域,涉及高速图像处坤技术、计算机视觉技术、机器人运动

    学、动力学、控制理硷、实时汁算等多『J学科的复杂系统,足个具有重

    要意义的研究课题。

    1 2机器人视觉伺服控制研究综述

    r个【!上}d,60年代.山J:机器人和讣算机拄术的发胜,人们Jr始研究具

    柯视觉功能的机器人。在1973年,有人将税堂系统应J_};|J二机器人控制系统,

    年¨park挺出了“}见觉何服”(r㈨m】s”Fro)概念‘.眩力法采用视觉反馈闭

    环捧制厅案.利H{阿像特{l【:等观世信息舟线控制机撇f-位瓷耍玑挖制功能。1994

    年ItagerfiJ}究了手|Jf!分离配霄F,作意放雠的烈川机绀成立体视世;随控"I嚣人抓

    JJ|量系统插轴入孔的操作。。根叫届,视觉反馈的含义只是从视觉信息小提取

    J豆馈信号,|f|『税啦州服!』||』魁包括了从眦髓fj号处理.到机措人控制的全过

    _cIl:,所以桃啦伺吸比税慌反馈能史垒Ⅲ地反映机器人枞蹙和挡;制的有关研

    究内容。机器人枞啦伺服控制系统通过埘从1_}|儿掮得的l割像数掘进行分析.利

    用汁算机税觉方法侨汁机器人,…对rI:1标的化胥和姿态,』1:采用千¨应的控制策略

    实现预定任务。

    1 2 1机器人视觉伺服分类

    在过上儿年,}见+站挫术被运朋术控制移动机器人被广泛IiJ}究。坫f视觉的伺

    JJ|_}策略足采刖相机所观察的特征米控制机器人移动们种灵活有效的方法。视髓

    basedv{suaI

    何雌j:耍分为一利,:娃于位置的视’赴何服(PBVS:Positton

    s叭VOi vi

    ng)”“、驰r旧像的桃啦伺服(1BVS:liliHge—basedsua|s。rv('illg)

    “和混舟控制观证伺服”…。

    牡j:他霄的视觉伺服基本结构枷图ll所币,它利川相机的参数来建立图像

    像信

    环反

    与三维税觉伺暇不同,堪于图像的艇健伺服将实时}914量得到的图像信号与给

    定图像信号直接进行在线比较.然后利片I所获得的图像误

    展开全文
  •   本文主要介绍了如何实现Pionner3dx移动机器人视觉伺服仿真,仿真环境是ROS+Gazebo,控制对象是Pioneer3dx(先锋)移动机器人,控制算法借助visp_ros工具实现。视觉伺服控制部分主要参考了visp_ros中的例程...

    开发环境:Unbuntu 18.04 LTS + ROS Melodic + ViSP 3.3.1

      本文主要介绍了如何实现Pionner3dx移动机器人视觉伺服仿真,仿真环境是ROS+Gazebo,控制对象是Pioneer3dx(先锋)移动机器人,控制算法借助visp_ros工具实现。视觉伺服控制部分主要参考了visp_ros中的例程tutorial-ros-pioneer-visual-servo.cpp,但由于原本的例程是需要对真实的pionner机器人进行控制,对于没有pionner机器人的同学而言就无法使用了,所以我借助gazebo仿真工具,通过仿真的方法创建一个虚拟的pionner机器人并通过ros实现对机器人的运动控制。整个工程项目我已经上传至github:https://github.com/EmptyCity1995/visual_servo
      首先通过一个视频,简单的演示一下视觉伺服控制的效果。

    视觉伺服仿真效果演示

      可以看到随着目标物体的移动,机器人会自动调整自己的位姿以保证目标始终处于相机的中心。在机器人相机视角观察的效果是这样的,一开始目标物体偏离相机视野中心位置
    在这里插入图片描述
      经过视觉伺服控制机器人运动之后,目标物体回到相机视野中心,绿色线条表示视野中心,红色十字表示目标物体的中心。
    在这里插入图片描述
      下面介绍整个工程实现方法,文件结构如下所示

    visual_servo/
    ├── ar_tags
    │ ├── blend
    │ ├── images
    │ ├── model
    │ │ └── marker0
    │ │ ├── materials
    │ │ │ └── textures
    │ │ └── meshes
    │ └── scripts
    ├── include
    │ └── visual_servo
    ├── launch
    ├── src
    ├── urdf
    └── world

      首先需要配置环境,本项目的开发环境为Ubuntu18.04 + ROS Melodic + Visp_ros,所以要把必要的工具包都安装好,关于ViSP,visp_version, visp_ros的安装方法可参见这篇博客:Ubuntu18.04环境下visp、visp_ros、vision_visp手动安装完整指南
      然后就是下载本文的工程文件了,需要将本工程放到ROS的工作空间中

    cd ~/catkin_ws/src
    git clone git://github.com/EmptyCity1995/visual_servo.git
    

      编译一下

    cd ~/catkin_ws
    catkin_make
    source ./devel/setup.bash
    

      利用ar_tags工具创建一个目标模型用于视觉伺服

    cd ~/catkin_ws/src/visual_servo/ar_tags/scripts
    ./generate_markers_model.py -i ../images/
    

      此时在gazebo模型库中会增加一个名为target的模型,路径为~/.gazebo/models/target,生成好模型文件后,我们不着急添加,先把机器人模型加载到仿真环境中

    roslaunch visual_servo gazebo_pioneer_amcl.launch
    

      此时程序会自动打开gazebo仿真环境,并添加一个机器人进去
    在这里插入图片描述

      我们可以通过insert添加我们的目标模型

    在这里插入图片描述
      最后则是编译和运行视觉伺服程序

    cd ~/catkin_ws/src/visual_servo/src/
    mkdir -p build
    cd build
    cmake ..
    make 
    ./tutorial-ros-pioneer-visual-servo
    

      此时屏幕中会出现一个窗口,显示了机器人自带相机所捕捉到的画面
    在这里插入图片描述
      我们用鼠标点击目标模型中的黑色圆圈部分,用于选中视觉伺服的跟踪目标,并开始视觉伺服。小车会自动移动,最终是的目标物体处于相机视野的中央位置
    在这里插入图片描述
      在gazebo环境中移动目标物体,可以发现小车也会跟随目标移动。因为只使用了一个目标点(圆形区域的中心)所以只能对X方向进行约束,视觉伺服效果并不能达到很好,本项目旨在演示视觉伺服的效果和visp_ros+gazebo联合仿真的方法。最后介绍一下视觉伺服控制程序

    #include <iostream>
    #include <ros/ros.h>
    #include <geometry_msgs/Twist.h>
    
    #include <visp/vpCameraParameters.h>
    #include <visp/vpDisplayX.h>
    #include <visp/vpDot2.h>
    #include <visp/vpFeatureBuilder.h>
    #include <visp/vpFeatureDepth.h>
    #include <visp/vpFeaturePoint.h>
    #include <visp/vpHomogeneousMatrix.h>
    #include <visp/vpImage.h>
    #include <visp/vpImageConvert.h>
    #include <visp/vpServo.h>
    #include <visp/vpVelocityTwistMatrix.h>
    #include <visual_servo/vpSimulatorPioneer.h>//这个头文件中包含了pioneer机器人仿真参数及相关函数的声明
    #include <visp_ros/vpROSGrabber.h>
    // #include <visp_ros/vpROSRobotPioneer.h>
    
    #if defined(VISP_HAVE_DC1394_2) && defined(VISP_HAVE_X11)
    #  define TEST_COULD_BE_ACHIEVED
    #endif
    
    #ifdef TEST_COULD_BE_ACHIEVED
    
    int main(int argc, char **argv)
    {
       ros::init(argc, argv, "velocity_publisher");//初始化速度话题发布
    
        // 创建节点句柄
       ros::NodeHandle n;
    
      // 创建一个Publisher,发布名为/pionner/cmd_vel的topic,消息类型为geometry_msgs::Twist,队列长度10
       ros::Publisher pionner_vel_pub = n.advertise<geometry_msgs::Twist>("/cmd_vel", 10);
       geometry_msgs::Twist vel_msg;//创建一个geometry_msgs::Twist类型的速度消息
    
      try {
        vpImage<unsigned char> I; // Create a gray level image container
        double depth = 1.; //创建一个期望的距离(目标与小车之间)
        double lambda = 0.6; //视觉伺服增益参数
        double coef = 0.25;// 用于计算目标和小车之间距离的比例参数
       
        vpSimulatorPioneer robot; //创建一个pionner的仿真实例
        
        vpCameraParameters cam; //创建相机参数实例
        
        vpROSGrabber g;//创建图像捕捉实例
        g.setCameraInfoTopic("/camera_rgb/camera_info");//设置相机信息话题
        g.setImageTopic("/camera_rgb/image_raw");//设置图像话题
        g.setRectify(true);
    
        // Set camera parameters 
        cam.initPersProjWithoutDistortion(600,600,I.getWidth()/2, I.getHeight()/2);//设置相机参数
        g.open(I);//打开图像捕捉实例
        g.acquire(I);//获取第一帧图像
    
        //创建图像显示器,并显示图像
        vpDisplayX d(I, 10, 10, "Current frame");
        vpDisplay::display(I);
        vpDisplay::flush(I);
    
        // 创建一个连通区域跟踪器,根据鼠标点击来选择连通区域
        vpDot2 dot;
        dot.setGraphics(true);
        dot.setComputeMoments(true);
        dot.setEllipsoidShapePrecision(0.);  // to track a blob without any constraint on the shape
        dot.setGrayLevelPrecision(0.9);  // to set the blob gray level bounds for binarisation
        dot.setEllipsoidBadPointsPercentage(0.5); // to be accept 50% of bad inner and outside points with bad gray level
        dot.initTracking(I);//跟踪连通区域
        //输出连通区域中心的坐标
        std::cout << "dot_cog_x: " <<  dot.getCog().get_u()
                            << "dot_cog_y: " <<  dot.getCog().get_v()
                            << std::endl;
        std::cout <<"dot_size:"<<dot.m00<<std::endl ;//输出连通区域的一阶图像距,可以表示图像的面积信息
        vpDisplay::flush(I);
        
        //创建一个视觉伺服人物
        vpServo task;
        task.setServo(vpServo::EYEINHAND_L_cVe_eJe) ;//设置视觉伺服计算方法eyeinhand cVe_eJe
        task.setInteractionMatrixType(vpServo::DESIRED, vpServo::PSEUDO_INVERSE) ;//设置交互矩阵类型
        task.setLambda(lambda) ;//设置增益参数
        
        vpVelocityTwistMatrix cVe ;//创建cVe矩阵,描述相机与机器人之间的坐标变换关系
        cVe = robot.get_cVe() ;//从机器人中获取cVe矩阵信息
        task.set_cVe(cVe) ;//将cVe矩阵添加到视觉伺服任务中
        std::cout << "cVe: \n" << cVe << std::endl;//打印cVe矩阵参数
    
        vpMatrix eJe;//创建eJe矩阵,机器人雅可比矩阵
        robot.get_eJe(eJe) ;//从机器人中获取eJe矩阵信息
        task.set_eJe(eJe) ;//将eJe矩阵添加到视觉伺服任务中
        std::cout << "eJe: \n" << eJe << std::endl;//打印eJe矩阵参数
    
        // 创建目标中心点的x坐标特征,s_x表示当前位置,s_xd表示期望位置
        vpFeaturePoint s_x, s_xd;
    
        // 根据相机参数和连通区域中心点的坐标获取当前位置下的x坐标特征
        vpFeatureBuilder::create(s_x, cam, dot);
       
        // 创建期望位置处的x坐标特征,0.5表示x方向是图像中心,0.89是y方向对应的图像位置,depth是空间坐标系下的距离
        s_xd.buildFrom(0.5, 0.89, depth);
    
        // 把x坐标特征添加到视觉伺服任务中
        task.addFeature(s_x, s_xd) ;
    
        // 创建目标中心点的z坐标特征log(Z/Zd),s_Z表示当前位置,s_Zd表示期望位置
        vpFeatureDepth s_Z, s_Zd;
    
        //根据连通区域的面积来估计相机与目标之间的距离,距离的平方与面积成反比例关系,面积约小表示距离越远(近大远小)
        double surface = 1./sqrt(dot.m00/(cam.get_px()*cam.get_py()));
        double Z, Zd;//创建目标中心点的空间距离参数,Z表示当前位置,Zd表示期望位置
        Z = coef * surface ;      //初始化目标与相机之间的距离
        Zd = Z;// 设置期望距离等于当前距离
        std::cout << "Z :" << Z << std::endl; //输出当前位置处的距离信息
        s_Z.buildFrom(s_x.get_x(), s_x.get_y(), Z , 0); // 设置当前位置处的Z坐标特征,因为Z=Zd,所以特征log(Z/Zd)=0
        s_Zd.buildFrom(s_x.get_x(), s_x.get_y(), Zd , 0); // 设置期望位置处的Z坐标特征,因为Z=Zd,所以特征log(Z/Zd)=0
        task.addFeature(s_Z, s_Zd) ;//把Z坐标特征添加到视觉伺服任务中
    
        vpColVector v; // 创建速度向量
    
        while(1)
        {
          g.acquire(I);//获取相机图像
          vpDisplay::display(I);//显示相机图像内容
          dot.track(I);//跟踪目标连通区域
          
          vpFeatureBuilder::create(s_x, cam, dot);//更新x坐标特征
          // 更新Z坐标特征
          surface = 1./sqrt(dot.m00/(cam.get_px()*cam.get_py()));
          Z = coef * surface ;
          s_Z.buildFrom(s_x.get_x(), s_x.get_y(), Z, log(Z/Zd)) ;
    
         //更新cVe矩阵信息
          robot.get_cVe(cVe) ;
          task.set_cVe(cVe) ;
         //更新eJe矩阵信息
          robot.get_eJe(eJe) ;
          task.set_eJe(eJe) ;
    
          // 根据视觉伺服算法计算控制律
          v = task.computeControlLaw() ;
          //输出速度信息
          std::cout << "Send velocity to the pionner: " << v[0] << " m/s "
                    << vpMath::deg(v[1]) << " deg/s" << std::endl;
    
          // 将速度指令发送到机器人
          vel_msg.linear.x =v[0];
          vel_msg.angular.z =vpMath::deg(v[1]);
    
            // 发布消息
          pionner_vel_pub.publish(vel_msg);
          ROS_INFO("Publsh turtle velocity command[%0.2f m/s, %0.2f rad/s]", 
              vel_msg.linear.x, vel_msg.angular.z);
              
          std::cout <<"s_x:"<<s_x.get_x()<<std::endl;
          std::cout <<"s_y:"<<s_x.get_y()<<std::endl ;
          std::cout << "dot_cog_x: " <<  dot.getCog().get_u()
                            << "dot_cog_y: " <<  dot.getCog().get_v()
                            << std::endl;
          std::cout <<"Z:"<<Z<<std::endl ;
          std::cout <<"Error:"<<task.getError()[0]<<std::endl;//输出x方向上的误差信息
          
          // 绘制一条绿色的竖线表示x方向上的期望位置
          vpDisplay::displayLine(I, 0, 300, 600, 300, vpColor::green);
          vpDisplay::flush(I);
    
          // 点击图像退出
          if ( vpDisplay::getClick(I, false) )
            break;
          //当x方向的误差小于阈值时,命令机器人停止运动
          if (abs(task.getError()[0])< 0.001) {
            std::cout << "Reached a small error. We stop the loop... " << std::endl;
            std::cout << "Ending robot thread..." << std::endl;
            vel_msg.linear.x =0;
            vel_msg.angular.z = 0;
            pionner_vel_pub.publish(vel_msg);
            std::cout << "Robot  is stopped" << std::endl;
          }
        };
        //程序结束后,命令小车停止运动
        std::cout << "Ending robot thread..." << std::endl;
        vel_msg.linear.x =0;
        vel_msg.angular.z = 0;
        pionner_vel_pub.publish(vel_msg);
        std::cout << "Robot  is stopped" << std::endl;
    
        task.print() ;//输出视觉伺服控制信息
        task.kill();//结束视觉伺服控制
      }
      catch(vpException e) {
        std::cout << "Catch an exception: " << e << std::endl;
        
        //有异常抛出时,命令机器人停止运动
        vel_msg.linear.x =0;
        vel_msg.angular.z = 0;
        pionner_vel_pub.publish(vel_msg);
        std::cout << "Robot  is stopped" << std::endl;
        return 1;
      }
    }
    #else
    int main()
    {
      std::cout << "You don't have the right 3rd party libraries to run this example..." << std::endl;
    }
    #endif
    
    

    如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。在这里插入图片描述

    展开全文
  • Altera公司的Nios II处理器是可编程逻辑器件的软核处理器。NiosII软核处理器和存储器、I/O接口等外设可嵌入到FPGA中,组成一个可编程单芯片系统(SOPC),大大降低了系统的成本、体积和功耗。适合网络、电信、数据通信...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 210
精华内容 84
关键字:

机器人视觉伺服