目录
1.课程简介
2.实训目的
3.实训环境
4.实训原理
5.实训步骤
6.真机测试
1.课程简介
在前面课程我们讲解了如何进行通用插件的开发以及使用,本次课程以无线手柄为例,介绍无线遥控插件的开发流程,可按照本课程的内容轻松完成插件的开发,当然,如果需要开发更加复杂的插件,这需要您具有一定的编程基础,主要使用的是Qt开发环境,虽然实验中会介绍Qt的基本使用方法,但是更多的编程知识鼓励您参考专业书籍进行学习。
2.实训目的
了解USB无线手柄的驱动方法,并实时获取手柄的数据;掌握插件开发中使用AUBO SDK接口开发,控制机械臂运动与IO控制;掌握无线手柄遥控插件的开发方法3.实训环境
硬件:遨博E系列机器人、USB无线手柄;软件:AUBOPE虚拟机(Qt开发环境);4.实训原理
4.1 USB无线手柄简介
下图为USB无线手柄的结构和功能按键说明,分为USB接口和手柄主体两个部分,使用时需要将USB接口插入需要的设备,启动手柄的电源开关,即可自动配对,然后用户通过按键完成需要的功能。
无线手柄具备自动休眠模式,在开启无配对状态下,30s后启动休眠模式,开启并配对完成的状态下,5分钟无按键按下,然后启动休眠模式,按下START按钮即唤醒手柄。
4.2 USB无线手柄驱动
大多数情况下,Linux系统都带有手柄驱动模块joydev,当我们插上设备的时候可以通过指令(ls /dev/input/)查看是否检测到该设备,如果有出现js0 的设备,则证明设备能正常使用。
以上是使用软件进行游戏手柄的测试,在更多时候我们是需要其输出相关信息,下面介绍使用程序将游戏手柄的数据输出。
因为Linux中的list.h不能直接用,所以我们把它单独提出来,建立一个listop.c文件和listop.h文件。
listop.c的代码如下:
获取按键数据的执行代码如下:
4.3 AUBO SDK使用
AUBO SDK是基于TCP/IP网络协议实现的机械臂控制接口,接口提供了大量用于机械臂控制的方法,包括机械臂相关的数据结构,初始化,运动模块,常用算法模块,相关信息的获取与设置,IO模块等,SDK提供了机械臂控制的接口类(基于C++开发)的,接口类提供了一系列用于操作机械臂的方法。使用时,需要和机械臂处于同一个网络,通过机械臂的IP和端口8899,调用指定函数进行连接,具体函数接口可查询AUBO提供的接口说明书,下列是本实验需要的函数接口的介绍。
构造函数登录接口
函数功能:该函数用于与机械臂服务器建立网络连接,该函数调用成功,是使用其他接口的前提。
参数描述:
1、host机械臂服务器IP地址,即控制器的IP;
2、port默认为8899
3、userName用户名默认为:AUBO
4、possword密码默认为:123456
返回值:调用成功返回ErrnoSucc;错误返回错误号
示教运动的启动停止
函数功能:启动示教运动。
参数描述:
1、mode示教关节:JOINT1,JOINT2,JOINT3,JOINT4,JOINT5,JOINT6,
位置示教:MOV_X,MOV_Y,MOV_Z
姿态示教:ROT_X,ROT_Y,ROT_Z;
2、direction方向正方向true反方向false;
返回值:调用成功返回ErrnoSucc;错误返回错误号。
设置IO的状态
函数功能:根据类型和名称设置指定接口板IO的状态
参数描述:type IO类型
name IO名称
value IO状态
返回值:调用成功返回ErrnoSucc;错误返回错误号
设置机械臂运动速度
机械臂的运动分为关节型运动和末端型运动,本部分接口主要用于设置末端型运动的最大线速度、最大线加速度、最大角速度、最大角加速度。最大线速度不超过3米每秒,最大线加速度不超过3米每秒方,最大加速度不超过3米每秒方;最大角速度不超过180度每秒,最大角加速度不超过180度每秒方。
5.实训步骤
(1)环境准备
①打开虚拟机
在电脑Windwos系统环境中使用VMWare虚拟机软件打开配套的AUBOPE虚拟机,等待系统正常启动运行,如下图所示。
②插件开发代码环境
将本实验目录中的pluginmanager.tar.gz拷贝到虚拟机home目录,打开左侧的终端按钮,输入如下命令进行解压。
如下图所示:
(2)制作插件joystick
①新建joystickplugin插件包
在解压的插件开发包pluginmanager/src/plugins路径下,将实验目录中名为joystickplugin.zip的文件在此目录下解压,里面包含本次实验的全部代码,具体的代码分析请参照实验原理部分。
②修改plugins.pro
打开虚拟机左侧的Qt Creator按钮,选择文件->打开文件或项目,选择解压后的pluginmanager/目录,选择pluginmanager.pro文件,点击Open按钮,如下图所示。
在打开的插件开发包中,在工程路径中选择plugins.pro文件,并SUBDIRS参数后增加新建插件的文件夹名称joystickplugin,如下图所示。
(3)编译运行
①编译
自动构建完成后,可以看到工程已包含joystick插件,如下图所示。
点击Qt Creator的左下角小锤子按钮进行编译,等待编译完成,如下图所示。
②示教器程序中运行
上述编译完成后,会默认将插件编译到示教器软件的安装目录下/root/AuboRobotWorkSpace/teachpendant/lib/teachpendant/plugins,此示教器程序调用了aubosdk的动态库,如下图所示。
需要将动态库放置到示教器程序可以识别到的库路径,在此工程路径下,找到src/plugins/joystickplugin/pluginform/robot_control/sdk/lib下的4个以libaubo_sdk开头的库文件,将这4个文件复制到/root/AuboRobotWorkSpace/teachpendant/lib/teachpendant路径下,如下图所示。
拷贝完成后打开终端软件,执行如下命令生效:
在虚拟机桌面打开AUBOPE示教器程序,并根据提示进入到仿真模式,如下图所示。
依次选择扩展->Peripheral->Joystick,即可打开新建的插件,如下图所示。
将USB无线的USB接口模块连接到电脑,在虚拟机弹出设备选择中连接到虚拟机中,如下图所示,若未弹出下列弹窗,在菜单栏虚拟机->可移动设备中选择对于设备进行连接。
点击插件的启动按钮,可正常启动功能,会自动连接手柄,如下图所示。
在机械臂示教界面,点击初始位姿使机械臂进入初始位姿,或者运动到合适位置,启动手柄电源开关,默认进行位姿示教模式,速度控制滑杆控件可以手柄控制机械臂的速度。
左侧方向按键、L1、L2分别进行XYZ位置控制,右侧方向按键、R1、R2按键分别进行XYZ姿态控制。
点击MODE按钮切换到关节控制模式,左侧方向按键、L1、L2分别进行1-3轴控制,右侧方向按键、R1、R2按键分别进行4-6轴控制。
SELECT按键控制用户IO(U_DO_01);START按键控制用户IO(U_DO_02);左摇杆按下控制用户IO(U_DO_03);右摇杆按下控制用户IO(U_DO_04)。
6.真机测试
使用U盘将编译完成的插件文件libJoyStick.so,拷贝到真实机械臂的/root/AuboRobotWorkSpace/teachpendant/lib/teachpendant/plugins/目录下,并将上述4个libaubo_sdk.so库文件拷贝到真实机械臂的相同路径,执行ldconfig命令,重新打开AUBOPE软件,即可在扩展的相同位置看到插件正常运行,与在虚拟机中的一致。(注意调节机械臂控制的速度,防止过快)
如果觉得《遨博协作机器人插件开发-机械臂无线手柄遥控插件开发》对你有帮助,请点赞、收藏,并留下你的观点哦!