本动作编辑器适用于非常常见的17舵机人型机器人,也可取其中一部分用于更简单的机器人的动作编辑。

于2011年完成,当时为了给学校做机器人,做好之后就一直自己私藏着,如今将其公开,如果有做同类型机器人或者更简单的机器人时可以选择使用。

总体编辑过程大概是这样:

1、在使用动作编辑器编辑的过程中会同时向机器人发送指令,可以实时观察机器人的状态并调整动作,将一个个造型保存,最终导出一个 .source动作源文件。此步详见“动作编辑器和.source文件”。

2、把动作源文件(.source文件)用动作编译器打开,编译出动作文件 .action。详见“动作编译器和.action文件”

3、.action文件放到机器人身上执行(实际使用是把文件放在SD卡里,然后插到机器人上。你可以准备多张SD卡放不同的动作,也可以在一张SD卡里放多个动作,只要机器人能将动作文件读取出来即可)。

以上是我采用的控制方法,也可以不用我的控制方案,我会将动作编辑器的协议给出,可以从中针对性地取用一部分功能,或者按照自己的想法进一步开发。

一、动作编辑器和.source文件

1、界面说明

动作编辑器主要由左边的动作编辑滚动条和右边的一编好动作列表框组成,在左边编辑动作,在右边查看和修改编好的动作。

下面分别介绍一下每个命令按钮的功能:

这几个可以设置串口相关的参数,在编辑器修改动作进行编辑的过程中会讲当前动作状态实时发送出去,用的就是串口。

动作编辑滚动条,每个滚动条的值的变化范围是50~250(因为一般舵机脉宽变化范围是500us~2500us,将其200等分),每次修改滚动条的值都会把当前修改的值发送出去,用于让机器人实时地摆出造型,具体发送协议将在后面介绍。

立正:把所有17个舵机的脉宽值回到初始状态(一般是立正状态),并按规定协议发送出去,刷新机器人全身舵机。

同步机器人:不改变任何舵机的脉宽值,将现在17个滚动条所代表的的脉宽按照规定协议发送出去。

保存当前造型为立正姿势:每个机器人由于舵机安装初始状态不同,可能最佳立正姿势有所不同。单击此按钮会将当前滚动条状态设为默认状态,以方便编辑。

插入造型:在右边动作列表框选中动作的上面插入当前滚动条状态代表的一个动作。

保存造型:在右边动作列表框的最后插入当前滚动条状态代表的一个动作。

耗时文本框:从之前的动作变动到当前滚动条代表的动作用的时间,这个值会保存到动作源文件的每个动作的最后,在动作编译时会根据这里的时间把动作进行等时分割。详见“动作编译器和.action文件”。

删除行:删除右边动作列表框当前选中的动作行。

摆指定pose:把当前列表框选中的pose发送出去。

从指定处开始摆pose:从右边动作列表框选中的地方开始,对各个动作根据“耗时”进行分割,每20ms会根据规定的协议发送一次17路舵机的脉宽值,此时机器人的运动效果就是编译后的效果。(这个功能还有BUG,分割时间上会出问题,不建议使用)

全部pose:从右边动作列表框的第一项,对各个动作根据“耗时”进行分割,每20ms会根据规定的协议发送一次17路舵机的脉宽值,此时机器人的运动效果就是编译后的效果。(这个功能有BUG,发送动作的时间会有错误,不建议使用)

暂停在进行“从指定处开始摆pose”或“全部pose”过程中,单击此按钮会暂停,再次点击会继续之前的动作发送数据。

停止:在进行“从指定处开始摆pose”或“全部pose”过程中,单击此按钮会停止摆pose。

自动pose:每次在单击列表框,选择一个新的pose时会自动把这个pose发送出去。

导入源文件:可导入现有已经做好的动作源文件,如果动作列表框里已经有一些动作的话,新导入的文件将在当前选中项的下方插入进去。利用这个功能可以分步编辑动作,然后再把各个动作组合到一起。

后面会介绍.source文件的格式,如果你了解它的格式的话,可以直接使用文本编辑器进行编辑和组合。

重排序号和时间:重新排列所有动作的序号和经历的总时间。这个功能有BUG,重排序号和时间之后后面的注释会消失。

执行动作:当SD卡保存多套动作时可以通过此按钮指定执行几号动作。

停止动作:此按钮将发送一个固定的控制信号。当机器人正在执行它自身保存的动作时,此信号用于指示其停止。

2、协议说明:
2.1 动作编辑器输出协议说明

输出使用串口。

发送数据的结构是 控制信号 + 数据。其中数据就是舵机的脉宽信号,范围是50~250,代表脉宽值500us~2500us。剩下的0~49 并 251~255 作为控制信号。

具体有一下几种格式:

舵机序号 + 单个舵机脉宽:

【触发】在单个动作编辑滚动条发生变化时会自动发送这个指令。

【功能】指定某个舵机的脉宽(注意动作序号和动作编辑器的滚动条序号相同)。

【例】 10 + 200意思即为设置10号舵机脉宽为200*10us。

20(十进制) + 17个舵机脉宽:

【触发】

单击“摆指定pose”会发送一次本指令,把当前列表框选中的pose发送出去。

单击“从指定处开始摆pose”或者“全部pose”会对列表框的动作根据指定的耗时进行分割,每隔20ms发送一次本指令。

【功能】设置全身舵机脉宽,17个脉宽按照序号从小到大的顺序发送。

【例】 20 + 155 + 135 +212 + …… + 146,共18个字节。

30(十进制) + 动作序号(2字节):

【触发】单击“执行动作”按钮会发从一次本指令。

【功能】通知机器人执行几号动作。

动作序号是一个16位数据,先传高8位,后传低8位。也就是说最多允许保存和区分65536套动作(只要机器人能存得下)。

【例】 30 + 0x00 + 0x01,执行第1号动作。

31(十进制):

【触发】单击“停止动作”按钮。

【功能】通知机器人停止当前正在执行的动作。

2.2 source文件格式说明

source文件是自己定义的一个保存动作文件,具有记录序号、总耗时、各个动作及其耗时,以及添加注释的功能。

它实际就是一个文本文件,可以直接使用文本编辑器编辑,也可以使用动作编辑器生成,当然使用后者会方便得多。

具体格式如下:

文件由行为单位组成,分为三种行:动作行、结束行和注释行。

动作行:

这种行在文件中存在最普遍,下面是格式,黑色位内容,蓝色为固定不可改变的标识符:

序号\t总耗时\t|脉宽0(speace)脉宽1(speace)……脉宽17(speace)/动作耗时<注释

序号:各个动作的号码标识,不会参与动作编译,错了也没关系。

总耗时:本动作文件到当前这个造型所经历的总时间,不会参与编译。

脉宽0~脉宽17:下一个将要摆出的造型。舵机序号和动作编辑器所标明的序号相同。

动作耗时:从上个造型变化到本动作行所指定的造型所需的耗时,单位ms。动作编译器会根据上个造型以及本耗时时间,对各个舵机的脉宽进行20ms等分,以20ms的单位存储各个舵机信息,供给机器人刷新全身舵机。

比如耗时为1000ms,动作编译器则会把每个舵机的上个脉宽到本次买块平均分成50份,保存全身舵机的50帧数据,机器人只要每20ms读取并刷新一次全身舵机就可连贯地执行动作。

注释:注释的内容可以是中文及任何字符,但不能有回车。

注释行:

注释行以“<”开头,后面可以任意添加注释。

需要注意,动作编译器是可以识别注释行并能够正确编译,但是为了减小动作编辑器的难度,动作编辑器是识别不了注释行的。所以不建议使用注释行。

结束行:

仍和一个.source文件的最后都要以结束行结尾,编译器在扫描到结束行之后就不会再对之后的数据进行编译了。

结束行格式是33个“>”,实际上编译器只要检测到一个“>”就会立刻结束编译。

二、动作编译器和.action文件

要说本节内容,需要先了解一下机器人对动作的读取方法,我采用的方法是机器人每20ms刷新一次全身17个舵机,就像放电影一样。而舵机的数据保存在SD卡里(.action文件),每套动作的各帧数据连续排列,机器人只要连续地读取就行了。

1、action文件

action文件保存连续的舵机脉宽信息,属于二进制文件,由一帧一帧的脉宽信号组成,每一帧的格式如下:

0xff + 1号舵机脉宽 + 2号舵机脉宽 + ……+ 17号舵机脉宽

0xff是每一帧开始的起始信号,后面紧接着17个舵机的脉宽信号,机器人每20ms刷新一帧数据即可(读取数据则是以扇区为单位读取的)。

在winhex里查看action文件的内容如下:

一帧由18个字节组成,每帧由0xff标志开始。

执行一秒钟的动作需要50帧,也就是50*18=900个字节。1M的存储空间可以让机器人连续执行2^20/900 ~= 1165s ~= 19.4分钟。

2、动作编译器

.source文件具有良好的可读性,配合动作编辑器可以方便地编辑动作;

.action文件则对机器人有很方便的执行性。

动作编译器的功能就是把动作.source文件编译为.action文件。

使用方法只要在dos界面使用动作编译器打开.source文件即可,或者直接把.source文件拖到动作编译器上。

编译完成之后会生成一个.action文件,这个文件就可以直接给机器人执行了。

最后看一下当时做的效果吧:http://v.youku.com/v_show/id_XMzA2NjUyNDU2.html

下载地址:http://download.csdn.net/detail/nicekwell/6192535

机器人动作编辑器说明相关推荐

  1. ABB机器人动作监控和无动作执行的使用

    动作监控功能,也就是通常我们所说的碰撞保护功能,可以减少碰撞对机器人产生的影响力.目前主流机器人上都有类似的碰撞保护的功能.ABB机器人称这个功能叫做"动作监控". 除此之外ABB ...

  2. FANUC机器人动作指令的定位类型FINE和CNT详解

    FANUC机器人动作指令的定位类型FINE和CNT详解 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. FANUC机器人的定位类型,即定义动作指令中 ...

  3. 晨风机器人插件编辑器_晨风机器人文本编辑器

    晨风机器人文本编辑器提供文本编辑功能,可以在软件快速设计代码文本,软件已经提供多种添加功能,在编辑代码的时候可以添加宝物要求.坐骑要求.武器要求.防御要求.勋章要求.VIP等级要求.奴隶要求,从而快速 ...

  4. 示教器重定位下机器人动作_ABB基础知识8:手动操作ABB机器人

    华仔:致力于为学习ABB机器人与机器视觉的同道中人提供个人的经验,所写文章多为学习与兴趣所致,若有不足之处,还请读者多多包涵. 学习内容: 1.手动操作界面 2.单轴运动 3.线性运动 4.重定位运动 ...

  5. 【Cocoa(mac) Application 开发系列之四】动作编辑器(Cocos2dx)制作流程详解及附上响应鼠标滚轴事件、反转坐标系、导入/创建资源目录等知识点代码!

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/911.htm ...

  6. Unity XR新版动作编辑器的使用

    文章目录 XRI Default Input Actions![动作编辑器页面](https://img-blog.csdnimg.cn/7d18eb8b49684ab38fc2e7b6fd834e0 ...

  7. 示教器重定位下机器人动作_PDPS机器人虚拟调试——PS篇 第二十课 atc爪手安装与卸载...

    快换类型的工具应用很多,在项目中一台机器人可能既要进行取放工作,还要进行焊接工作,需要在焊枪和爪手直接切换,在PS软件中我们将使用Mount和UnMount指令来实现工具的安装与卸载,下面进行详细操作 ...

  8. 示教器重定位下机器人动作_ABB机器人学习笔记(四)-手动操纵机器人

    接上继续学习,手动操纵机器人共有三种模式:单轴运动,线性运动和重定位运动. 1.单轴运动:一般的,ABB机器人是由六个伺服电机分别驱动机器人的六个关节轴,每次手动操纵一个关节轴的运动,称之为单轴运动. ...

  9. 示教器重定位下机器人动作_ABB机器人基础应用练习题

    ABB机器人基础应用练习题 ABB Engineering Shanghai Ltd.3BCN700000Issued by DivisionDateLanguageRevisionPageFlexi ...

  10. 晨风机器人插件编辑器_晨风机器人文本编辑器使用方法

    软件功能:晨风QQ群机器人是一款操作简单,功能强大的QQ群聊天工具,通过晨风QQ群机器人,用户可以跟QQ群里的好友进行对话或收发图片.语音等,非常适合QQ营销人员使用.晨风qq群机器人实现与qq好友聊 ...

最新文章

  1. 【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇
  2. 体验一键php/java环境安装工具oneinstack
  3. snvr client怎么使用_TCGA官方工具gdc-client.exe的安装及使用
  4. 设计一个按优先数调度算法实现处理器调度的程序_计算机中的程序都是怎么运行的,来深入了解一下吧...
  5. 遍历删除_面试难题:List 如何一边遍历,一边删除?
  6. PHP笔记-所有错误统一输出404页面(详细错误日志输出,提高安全性)
  7. 微信小程序-setData()方法
  8. JetBrains 快捷键技巧:IntelliJ IDEA 中,你完全不需要鼠标的 10 种情况
  9. Windows Server 2008 计划任务配置(任务计划程序)每分钟执行BAT
  10. Linux常用基本命令及应用技巧1
  11. Pr 音频效果参考:特殊效果
  12. 大数据管理平台-数据处理与数据集市
  13. Office 2010如何打开MDI文件
  14. confusion matix
  15. 单片机裸机 vs RTOS多线程
  16. 数据库中索引原理及填充因子
  17. ARM Uboot经历——Uboot初始化代码解析
  18. NS3网络仿真项目(三)—— Events Simulator
  19. 卷积 对图像进行卷积操作 卷积神经网络
  20. 吴裕雄--天生自然 诗经:所见

热门文章

  1. java程序中的异常404 505错误
  2. html脱离文档流,css固定定位脱离文档流怎么解决?
  3. python解析mht文件_php解析mht文件转换成html
  4. 蓝桥杯--并查集1 sdutoj 小雷的冰茶几
  5. 附录E-分贝(dB和dBm)的理解
  6. 电子面单打印结果通知回调API接口
  7. 被高企的社会化网络精准营销
  8. mtk android内核代码,mtk log系统详解
  9. QCC3040---Log module
  10. C# 实现阴历阳历互转