机器人素描程序说明.docx
《机器人素描程序说明.docx》由会员分享,可在线阅读,更多相关《机器人素描程序说明.docx(13页珍藏版)》请在冰豆网上搜索。
机器人素描程序说明
一、人脸素描实验流程框图:
开始新循环
拍摄一张人脸照片
选择处理精细模式:
详尽、一般、简略
彩色图转为 256 阶灰度
256 色灰度值=0.30*红色分量值+
0.587*绿色分量值+ 0.114*蓝色分量值
Canny 算子边缘检测
步骤:
用高斯滤波器平滑图像;
用一阶偏导的有限差分来计算梯度的幅值和方向;
对梯度幅值进行非极大值抑制;
用双阈值算法检测和连接边缘。
图像细化
先进行水平方向细化,
再进行垂直方向细化。
去除离散噪声:
如果孤立像素块像素
点小于一定阈值,则认为是离散噪声
点,需要去除。
轮廓跟踪
二、实验二基础运动控制实验:
2.1 机器人作业空间、绘图空间、轨迹图像坐标映射
机器人机械机构由两个臂组成,大臂有效长度 200 毫米,小臂有效长度(旋转中心到
绘图笔中心距离)为 150 毫米。
大臂运动范围±100 度,小臂运动范围±55 度。
机器人作业空间:
机器人末端点可以到达的区域,如下图所示(近似为一个扇环):
机器人绘图空间:
二自由度绘图机械臂配备了一个长方形绘图平台,在绘图平台上可
以铺上白纸,平台的尺寸是 280mm*240mm,结合机器人的环形的作业空间,我们取环形
工作空间和 绘图平台 交集 中的一个最大绘图矩形作为实际人脸素描绘图空间,大小取为
147mm*110mm(如此选择主要是满足长宽比例与图像风辨率 320*240 一致),该矩形中心点
在机器人坐标系中的坐标为(0,275),如下图所示:
轨迹图像坐标映射:
人脸图像在处理时缩放为 320×240 像素分辨率,在 Window 系统中绘
图坐标系的定义为:
图像左上角为原点,X 方向从左到右为正向,Y 方向从上到下为正向。
绘图空间坐标系定义:
绘图空间为在机器人坐标系中中心点坐标为(0,275)的大小为
147×110mm 的矩形,其中的坐标系定义为:
147×110 绘图矩形中心点为原点,X 方向从
左到右,Y 方向从下到上。
素描图像处理出来后得到的笔迹曲线在轨迹图像坐标系中表示,大小为 320×240,如果需
要将笔迹曲线绘制在绘图空间中,需要做坐标转化,从几个坐标系间的相对关系可以推导
得到:
如果 在 320×240 图像坐标系 中的 一个点 (x0,y0)映射到 机器人绘图空间的对
应坐标(x1,y1):
X1=x0/2.1818-147/2
Y1=110/2-y0/2.1818+275
其中的缩放系数 2.1818 为 将 320×240 的图像缩小到 147×110 绘图空间的比例系数:
240/110=2.1818
2.2 二自由度机械臂的运动学解:
机械臂通常具有两种运动方式:
关节空间运动和直角坐标运动。
关节空间运动模式是
指机器人操作臂的运动直接由各个关节的运动坐标来确定,所有关节变量构成一个关节矢
量。
所有关节矢量构成的空间称为关节空间。
所谓关节空间运动模式就是直接操作各个关
节的运动来完成机器人的运动。
下图 a)为二自由度机械臂的关节坐标空间定义,关节坐
标空间由两个关节组成。
直角坐标运动模式是指机器人末端工具的位置和方位通常是在直
角坐标空间中描述。
直角坐标空间运动模式通过指定机器人末端工具在直角坐标空间中的
运动来完成机器人操作任务。
下图 b)为二自由度机械臂直角坐标空间的定义,这是一个二
维的直角坐标空间。
a)关节坐标空间b)直角坐标空间
实际运行是通过对关节运动轴的伺服控制来实现的,也就是最终的机械臂的控制是在
关节坐标空间中进行的,但是对于操作者来说,直角坐标空间更容易让人理解和接受,操
作者对机械臂的操作一般是在直角坐标空间中进行的,这样就需要建立一种关节坐标空间
和直角坐标空间的对应关系,也就是说如果已知机械臂各个关节的坐标参数需要求解机械
手末端在直角坐标空间中的坐标,反过来如果已知机械手末端在直角坐标空间的坐标需要
求解各个运动关节的坐标参数,前一个问题称为机器人的运动学正解,后一个问题称为机
器人的运动学反解。
从数学的角度定义机器人的运动学正解和反解如下:
设机器人的关节坐标空间中的关节变量记为 q = [q1, q2 ,...qn ] ,机器人末端工具在直角
坐标空间中的坐标记为 x = [x, y, z,θ ,...] ,关节变量和直角坐标空间坐标间存在如下运动学
约束:
F (x, q) = 0
这是一个隐式方程,如果能够从上式式求解出:
x = f (q)
即由关节坐标变量表示的直角坐标变量,这就是机器人的运动学正解,一般的可以得到机
器人运动学的唯一正解。
如果能够从 4-1 式求解出:
q = g(x)
也就是已知机器人末端工具的直角坐标参数,求解出对应关节坐标空间中的各个关节变量,
这就是运动学的反解,通常难以得到解析的运动学反解,而且运动学反解一般也是不唯一
的,实际应用中常采用几何法和数值解法来求解。
下面我们来推导二自由度机械臂的运动学解:
1) 二自由度机械臂运动学正解
已知:
关节 1 连杆长度 l1 = 200mm ,关节变量 q1 (关节控制轴 1 角度位置),
关节 2 连杆长度 l2 = 150mm ,关节变量 q2 (关节控制轴 2 角度位置)。
求解:
关节连杆末端工具安装点在直角坐标空间的坐标 x = [x, y] 。
⎩ y = l1 sin q1 + l2 sin(q1 + q2 )
二自由度机械臂运动学正解
上图为二自由度机械臂的运动学正解的示意图,从图上可以得到机械臂末端的直角坐标:
⎧x = l1 cos q1 + l2 cos(q1 + q2 )
⎨
2) 二自由度机械臂运动学反解
已知:
关节 1 连杆长度 l1 = 200mm ,关节 2 连杆长度 l2 = 150mm ,
关节连杆末端工具安装点在直角坐标空间的坐标 x = [x, y] ,
求解:
关节变量 q1 (关节控制轴 1 角度位置),
关节变量 q2 (关节控制轴 2 角度位置)。
下图为求解二自由度机械臂运动学反解的示意图,如果不考虑奇异点则有如下推导:
r = x 2 + y 2
cosα 3 =
2 2
2l1l2
sinα 3 = 1 - cos2 α 3
sinα1 =
cosα1 =
l2 sinα 3
r
2
2 rl1
2
⎩q2 =α4 - q1
α1 = atan 2(sinα1, cosα1 )
α 2 = atan 2( y, x)
α 4 = atan 2(( y - l1 sin q1 ), (x - l1 cos q1 ))
得到运动学反解的计算公式:
⎧q1 = α 2 - α1
⎨
其中 atan2(x ,y)为计算
x
y
的反正切值(单位为弧度)的数学函数,利用双变量函数 atan2(x
y)计算 arctan( ) 的优点在于利用了 x 和 y 的符号能够确定角度所在的象限,例如
y
x
atan 2(-1.0,-1.0) = -135o ,而 atan 2(1.0,1.0) = 45o ,如果使用单变量的反正切函数则不
) = arctan(
能区分这两种情况 arctan(
- 1.0
- 1.0
1.0
1.0
) = arctan(1.0) = 45o,atan2(x
y)的值域为
(-π ,π ) ,当双变量反正切函数的两个参数都为零时,函数值不定。
y
(x,y)
α3
2
α1
α4
l1
q
α2
二自由度机械臂运动学反解
x
3)运动学反解的不唯一性
机器人运动学反解一般是不唯一的,也就是可能存在多组关节坐标变量值使得机械手
末端达到给定的目标位置。
二自由度机械手在工作空间中运动时存在两组运动学反解,如
下所示。
y
(x,y)
l2
l1
x
图 二自由度机械臂的两组反解
实际运行中如何从机器人运动学的多组反解中选择一组合适的解是一个值得研究的问
题,一般的具有多组反解的机器人运动学问题可以采用优化算法来解决,定义一定的优化
准则,选择满足优化准则的最优解作为机器人运动学的确定反解。
优化准则的选取分两种
情况:
一种是不存在障碍物时可以使用“最短行程”准则,因为机器人的运动是连续的,
结合前一次机器人运动学反解得到的关节坐标位置,选取使机器人关节运动量最小的一组
解作为反解,这种选取方法可以使得机器人运动保持连续;如果存在障碍物,沿“最短行
程”运动可能导致碰撞,这时应该结合机器人的有障碍路径规划和智能决策等方法来选取
反解。
4)运动学反解中的特殊情况
✧特殊情况 1:
如下图所示。
y
(x,y)
l2
l1
q
x
图 运动学反解特殊情况 1
在这时目标位置点(x, y)超出了机械臂运动空间范围,计算机数值计算的判别条件为:
∆ =
2 2
2l1l2
如果满足:
∆ > 1 + ε
则说明给定的目标位置超出了机械臂的运动空间范围,运动学反解不存在。
其中 ε 为一个
正小数,比如可以选取:
ε = 10-8
✧特殊情况 2:
如下图所示。
y
l2
(x,y)
l1
q
x
⎩q2 = 0
图 运动学反解特殊情况 2
这时目标位置刚好在机械臂工作空间边界上,也就是目标位置点处于奇异位置,在奇异点
位置附近机械臂的运动特性比较差,控制轴运动可能会产生跳变,一般实验时应该避开这
些位置。
对于这种奇异情况计算机数值计算的判别条件为:
∆ < -(1 - ε )
这种情况下机械臂运动学反解为:
⎧q1 = atan 2( y, x)
⎨
2.3 电机脉冲当量
机器人大臂驱动电机为 100W 松下交流伺服电机,小臂驱动电机为 50W 松下交流伺服
电机,电机后面都配备了光电编码器,光电编码器的分辨率为 2500 脉冲/转,光电编码器
的信号通过运动控制器中处理电路做了 4 倍频处理,也就是说最终在使用运动控制器时我
们得到的电机角度分辨率为 10000 脉冲/转。
机器人关节电机在驱动关节时还连接了谐波减速器,大臂减速比 100,小臂减速比 99.
如果需要大臂转动 1 度,需要下发脉冲数为:
10000 脉冲/转× 100 / 360度/转=
2777.7778 脉冲/度;
如果需要小臂转动 1 度, 需要下发脉冲数为:
10000 脉冲/转 × 99 /360 度/转
=2750 脉冲/度。
2.4 素描笔迹绘制策略:
图像处理后得到的素描轨迹为一个笔画一个笔画存储,在笔画的起点需要落下绘图笔,
在笔画的终点需要抬起绘图笔,一个笔画的终点到下一个笔画的起点间为抬臂快速移动,
不需要做插补运算(可以提高设备运行速度),笔画由一系列坐标点组成,笔画中的绘制策
略为:
取一个笔画坐标点,转化到机器人直角坐标系,通过运动学反解运算得到两个机器
人关节的角度,通过角度和电机脉冲数的变化关系转化为电机目标脉冲数,下发给运动控
制器,运动控制器协调电机驱动器控制关节电机运动到目标位置,此时绘图比落下也就在
绘图板白纸上绘制出笔迹,连续移动则绘制出一条连续笔画。
三、实验三机器人实时控制:
现有网络结构 设计为 主从结构(服务器/客户机结构),在实验系统中一共有 4 套二
自由度机械臂,每套机械臂具有两个运动关节(电机),总共 8 个运动控制轴,使用一套 8
轴 Galil 嵌入式网络运动控制器来统一控制 4 套机器人的 8 个运动轴。
设置一台计算机为服
务器(教师监督计算机),该服务器处理所有与运动控制相关细节,也就是说只有服务器才
能和运动控制器通讯连接直接控制运动控制器和机器人。
网络组织结构中有一台 16 口网络
交换机,8 轴运动控制器具有 192.168.0.101 IP 地址 连接到交换机的一个端口,服务器
(教师机)需要设置一个在 192.168.0.* 的 唯一 IP 地址 供 客户机 通过指定 IP 地址访
问。
8 套客户机(学生机)也指定唯一的在 192.168.0.*网段的IP 地址,比如从
192.168.0.110 到 192.168.0.117,客户机的所有操作和请求均先发送到服务器,通过服务器
解释后,合法并授权的命令将被服务器解释执行并发送到运动控制器,通过服务器和客户
机两个层次的设置确保了多套客户机对 4 台机器人的分时共享及其客户权限的设置。
在客户机上运行客户端程序,对客户机端的要求做前端预处理,归一化得到笔画数据,
如果申请到了服务器对机器人的访问权限则将笔画数据通过网络发送到服务器,由服务器
解释执行;
在服务器上运行服务器程序,服务器程序处理客户机的权限管理和机器人的实际控制。
客户端和服务器件网络通讯协议:
客户端和服务器间通讯流程:
1.客户端--》(CONNECT 请求)--》服务器
提请建立网络通讯连接请求,为了避免其他无关计算机连接到服务器干扰实验流程,
在这里采用了 客户机 网卡 MAC 地址校验,也就是说 我们先 保存了 能够连接服务
器 的 所有 客户计算机 网卡的 MAC 地址(MAC 地址在 客户端软件 运行后能够
在窗口中显示出来),客户端 发送 CONNECT请求时 服务器 会 在允许联
机的MAC地址列表中查找,如果找到则 分配给 客户机一个连接序号,并在服务
器上显示连接客户机的 学号、姓名、IP地址等信息;如果客户机的MAC地址与
服务器不匹配 则 拒绝 客户机的连接请求。
2.客户机 正确 联机 到服务器后,可以 向 服务器 提交 申请 实时控制请求:
客户机――》(CONTROLAPPLY)--》服务器,
此时如果 服务器 允许 客户机控制实际 机器人硬件 并且 4套机器人硬件有
空闲,则 分配 机器人编号给客户端,接下来客户端可以将 处理好的素描数据或
者鼠标绘图数据发送到服务器做实时绘制实验。
客户端完成实时绘制实验后应该自觉提请释放 实际机器人硬件:
客户端――》(CONTROLNOT)――》服务器,
此时服务器收回分配给客户机的机器人硬件资源,可以供其他客户器实验使用。
在服
务器上我们也显示了每套客户机联机时间,在服务器端也可以强制将长时间占用机器
人资源而不主动释放的客户机断开资源连接。
3. 客户机申请到机器人硬件资源后可以做三种类型实验:
人脸素描绘制、鼠标绘图绘制、
手写板实时控制,在实际实现中将人脸素描绘制和鼠标绘图绘制归一为文件发送绘制:
客户端――》(SENDFILE)――》服务器,
客户端提出发送文件申请,并将人脸素描轨迹数据文件或者鼠标绘图轨迹数据文件以
数据流的形式发送到服务器,服务器先保存为文件然后执行轨迹绘制作业。
客户端――》(REALDATASEND)-->服务器,
客户端发送手写板实时绘制请求,一次发送一个笔画数据到服务器。
客户端—》(HANDCONTROLNOT)--》服务器,
客户端完成手写板实时绘制请求后,发送断开实时绘制请求。
4.客户端—》(CLOSE)--》服务器,
客户端退出客户端应用程序后发送 COLSE 消息给服务器,在服务器上更新客户机联机
状态。