1.2-SDK方式实现机械臂三维空间移动《智能机器人技术应用》_第1页
1.2-SDK方式实现机械臂三维空间移动《智能机器人技术应用》_第2页
1.2-SDK方式实现机械臂三维空间移动《智能机器人技术应用》_第3页
1.2-SDK方式实现机械臂三维空间移动《智能机器人技术应用》_第4页
1.2-SDK方式实现机械臂三维空间移动《智能机器人技术应用》_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目一机械臂移动与物体抓取创灵实验平台SDK方式实现机械臂三维空间移动任务三职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三

SDK方式实现机械臂三维空间移动了解Python-SDK并掌握安装方法;了解Python-SDK控制机械臂的原理以及常用函数的使用;学习通过Python-SDK编写控制机械臂Python脚本方法并能够熟练自行编写对应脚本完成所需要求。了解Python-SDK;掌握Python-SDK安装方法;了解Python-SDK控制机械臂原理;掌握Python-SDK常用函数的使用;掌握使用Python-SDK编写控制机械臂Python脚本方法。职业能力目标01实验目的实验内容职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三

SDK方式实现机械臂三维空间移动

此任务要求同学们了解Python-SDK并掌握安装方法,了解Python-SDK控制机械臂的原理以及常用函数的使用,并学习通过Python-SDK编写控制机械臂Python脚本方法并能够熟练自行编写对应脚本完成所需要求。任务描述任务要求了解SDK、Python-SDK的原理;成功安装Python-SDK;完成Python-SDK控制机械臂原理学习与实验;完成使用Python-SDK编写控制机械臂Python脚本方法。任务描述与要求02职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三

SDK方式实现机械臂三维空间移动任务分析思考一下,我们呢要如何通过SDK控制机械臂呢?我们要通过什么方式编写脚本,并学习相关知识呢?三.根据自己的了解,要怎样去应用所学知识,可以促进自己进一步地学习?任务分析与计划03任务计划表项目名称创灵实验平台任务名称SDK方式实现机械臂三维空间移动计划方式自主设计计划要求请用6个计划步骤来完整描述出如何完成本次任务序号任务计划1

2

3

4

5

6

通过上面的思考,你是否对本任务要完成的工作有所了解?让我们一起来制订完成本次任务的实施计划吧!任务分析与计划03职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三

SDK方式实现机械臂三维空间移动05知识储备Python-SDK安装方法2Python-SDK1uArm-Python-SDK源码阅读3

Python-SDK是一个使用Python封装的用于Swift/SwiftPro机械臂基本控制的库,机械臂基本控制的库在本地【./uArm-Python-SDK-2.0/】文件夹下,github地址为:/uArm-Developer/uArm-Python-SDK。Python-SDK包含Swift/SwiftPro机械臂常用的基本操作,如移动、吸盘吸泵吸放、电动夹子基本使用以及各种拓展功能等等。丰富的函数,使得编写控制机械臂的编程变得极为简单。什么是Python-SDK?Python-SDK04Python-SDK04

SDK就是SoftwareDevelopmentKit的缩写,中问意思是:软件开发工具包。为了解释“SDK”我们引入API、动态连接库、导入库等概念:(1)API(ApplicationProgram--mingInterface):是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令。我们要怎么使用API?Python-SDK04

(2)DLL(DynamicLinkLibary)动态连接库:我们经常看到一些.dll格式的文件,这些文件就是动态连接库文件,其实也是一种可执行文件格式。跟exe文件不同的是,dll文件不能直接执行,他们通常由.exe在执行时装入内含有一些资源以及可执行的代码等。思考一下,在生活中我们有哪些地方用到了.dll?Python-SDK04

(3)导入库:导入库是为了在DLL中找到API的入口点而使用的,所以,为了使用API函数。我们要又跟API所对应的.H和.LIB文件,而SDK正式提供了一整套开发Windows应用程序所需的相关文件、范例和工具的“工具包”。思考一下,我们要怎么导入对应库?什么是API?04

API(ApplicationProgrammingInterface,应用编程接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令(动作)。其实早在DOS时代就有API的概念,只不过那个时候的API是以中断调用的形式(INT21h)提供的,我们要怎么使用API?什么是API?04

在DOS下跑的应用程序都直接或间接的通过中断调用来使用操作系统功能,比如将AH置为30h后调用INT21h就可以得到DOS操作系统的版本号。而在Windows中,系统API是以函数调用的方式提供的。同样是取得操作系统的版本号,在Windows中你所要做的就是调用GetVersionEx()函数。我们要怎么使用API?什么是DLL?04

DLL,即DynamicLinkLibrary(动态链接库)。在Windows环境下含有大量.dll格式的文件,这些文件就是动态链接库文件,其实也是一种可执行文件格式。跟.exe文件不同的是,.dll文件不能直接执行,通常由.exe在执行时装入,内含有一些资源以及可执行代码等。其实Windows的三大模块就是以DLL的形式提我们要怎么使用DLL?什么是DLL?04

供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了API函数的执行代码。为了使用DLL中的API函数,必须要有API函数的声明(.h)和其导入库(.lib),导入库可以先这样理解,导入库是为了在DLL中找到API的入口点而使用的。我们要怎么使用DLL?Python-SDK04

SDK包含了使用API的必需资料,所以也常把仅使用API来编写Windows应用程序的开发方式叫做“SDK编程”。而API和SDK是开发Windows应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如VCL和MFC,虽然比起“SDK编程”来有着更高的抽象度,但这丝毫不妨碍在需要的时候随时直接调用API函数。我们要怎么使用DLL?Python-SDK04

那么我们知道了SDK是一个万能的软件工具包,可以作为辅助工具帮助我们开发所需软件。那么我们要怎么使用SDK呢?SDK有哪些常用函数,我们要怎么去使用它们呢?那么接下来我们将要介绍一些SDK的常用方法,如下表1-11-1为官方展示的一些使用uArm-Python-SDK控制机械臂的方法:Python-SDK04连接机械臂:swift.connect()##连接机械臂swift.disconnect()##断开连接获取方法:swift.get_power_status()##获取工作状态swift.get_limit_switch()##获取工作信息swift.get_gripper_catch()##机械臂抓取swift.get_pump_status()##获取吸泵状态swift.get_mode()##获取模型swift.get_servo_attach(servo_id=2)##获取电机加载swift.get_servo_angle()##获取电机角度swift.get_polar()##获取坐标系swift.get_position()##获取位置swift.get_analog(0)##获取模拟swift.get_digital(0)##获取数据

SDK常用方法:Python-SDK04设置方法:swift.set_speed_factor(1)##设置速度参数swift.set_mode(mode=0)##设置模拟量值swift.set_wrist(90)swift.set_servo_attach()##设置电机加载swift.set_servo_detach()##设置电机分离swift.set_buzzer(frequency=1000,duration=2)swift.set_pump(on=True)##设置吸泵swift_set_gripper(catch=True)##设置机械臂移动swift.reset()##重置状态swift.set_position(x=200,y=0,z=100,speed=100000)##设置参数swift.set_polar(stretch=200,rotation=90,height=150)##设置坐标swift.set_servo_angle(servo_id=0,angle=90)##设置舵机属性

SDK常用方法:05知识储备Python-SDK安装方法2Python-SDK1uArm-Python-SDK源码阅读3Python-SDK安装方法04

在本小节的学习中,我们将要了解如何安装Python-SDK。前提环境要求:安装Python-SDK要求必须具备Python3环境,下面提供了在开发板上安装Python-SDK的方法。(本章节不讲述Python3环境安装,安装步骤详情请自行查阅官网:/)Python-SDK安装方法04

步骤一:首先我们要解压任务同级目录下的uArm-Python-SDK-2.0.zip包,如图所示:

步骤二:使用unzip命令解压压缩包:

步骤三:进入安装包目录,执行安装命令:

出现如下图提示表明安装成功:安装成功提示05知识储备Python-SDK安装方法2Python-SDK1uArm-Python-SDK源码阅读3uArm-Python-SDK源码阅读04

进入解压出来的安装包,查看安装包源码的目录结构,这里可以在左边的目录界面查看目录结构,如图所示:uArm-Python-SDK源码阅读04

了解列表核心的uarm代码目录树结构,如图所示:uArm-Python-SDK源码阅读04

当我们程序报错,出bug无法运行的时候,我们可以通过阅读了解每个.py、.txt等文件名来进行相关代码的修正。uArm-Python-SDK源码阅读04

那么我们如何阅读一段源码的结构呢?源码之所以叫源码,是因为它不是几个文件,几行代码组成的。源码都是一个很庞大很复杂的东西。几百个文件,几万行代码。这样让我们第一次拿到源码后,不知从何下手。所以,我们拿到源码后,不要着急看,要先找入口,根据文件功能找入口。例如,阅读一个SDK的源码,首先看看文档里面,第一个调用SDK的方法。当带有目的去看源码,顺着一条线去找源码,这样才会让你有明确的方向感。uArm-Python-SDK源码阅读04uArm-Python-SDK核心代码结构说明:1.uarm/wrapper/swift_api.py:uArm-Python-SDK核心API模块,主要核心的方法都在这个模块中2.uarm/tools/threads.py:线程管理模块3.uarm/tools/list_ports.py:获取串口端口号的方法集成模块4.uarm/tools/config.py:机械臂固定的配置文件5.uarm/swift/protocol.py:控制机械臂过程用到的串口命令6.uarm/swift/pump.py:吸泵控制模块职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三

SDK方式实现机械臂三维空间移动使用uArm-Python-SDK编写控制机械臂的Python脚本204任务实施uArm-Python-SDK实现控制机械臂原理1

SDK方式实现机械臂三维空间移动任务三通过指令控制机械臂uArm-Python-SDK实现控制机械臂原理:

通过源码阅读可以发现,uArm-Python-SDK是通过串口方式与机械臂进行通信,uArm-Python-SDK将串口指令封装在【uarm/swift/protocol.py】中,当执行API函数时,则通过向机械臂发送对应串口指令完成控制机械臂的任务,示意图如图所示:

SDK方式实现机械臂三维空间移动任务三uArm-Python-SDK常用函数使用:常用函数举例如下:swift=SwiftAPI():连接机械臂,初始化机械臂;swift.reset(speed=1000):机械臂重置,默认速度是1000,可根据实际需要进行调整;swift.get_position():获取机械臂位置方法,返回的是x,y,z浮点类型值;swift.set_position(x=100,y=100,z=80):移动机械臂到指定坐标方法;swift.set_pump(on=False):打开或关闭吸泵方法,默认是Flase吸泵是关闭,需要打开是将on=True即可。05任务实施使用uArm-Python-SDK编写控制机械臂的Python脚本2uArm-Python-SDK实现控制机械臂原理13SDK编写机械臂的Python脚本我们要怎样根据预览代码去编写机械臂右移、上移等?我们要如何编写相应代码去达到我们所需目的,例如通过机械臂左右移动到指定位置?使用uArm-Python-SDK编写控制机械臂的Python脚本

05通过上面的思考,你是否对本任务要完成的任务有所了解?接下来我们进入使用uArm-Python-SDK编写控制机械臂的Python脚本的环节进行学习吧!使用uArm-Python-SDK编写控制机械臂的Python脚本05进入学习编写Python脚本

在本小节中,我们已经了解了如何阅读uArm-Python-SDK源码结构,学习了uArm-Python-SDK核心代码以及常用函数。同时还学习了uArm-Python-SDK控制机械臂的原理,那么接下来我们来学习编写控制机械臂的Python脚本。使用uArm-Python-SDK编写控制机械臂的Python脚本05

在之前的章节中,我们曾接触过装饰器,通过了解他的定义,API、DLL、导入库等概念大致知晓了他的使用方法,那么在接下来的小节中,我们将具体介绍异步装饰器并使用在SDK编写控制机械臂的Python脚本中。Python装饰器:可以让被装饰的函数在不修改代码的情况下增加额外的功能,装饰器本质上是一个函数异步:即非阻塞,意味着在执行某项任务时候不会阻塞后续或其他任务的执行多线程:在进程基础上开辟多个执行任务的线程使用uArm-Python-SDK编写控制机械臂的Python脚本05实验预览:使用uArm-Python-SDK编写控制机械臂的Python脚本05#对应封装代码importtimefromuarm.wrapper

importSwiftAPIfromthreadingimportThreadswift=SwiftAPI()#调用API实例化time.sleep(3)swift.reset(speed=1000,z=100)#速度参数为1000,z轴高度100stop_=

False

def

async_call(fn):

"""异步装饰器:paramfn:函数:return:"""

def

wrapper(*args,**kwargs):#传入字典th=Thread(target=fn,args=args,kwargs=kwargs)th.start()

returnwrapper

实验预览:使用uArm-Python-SDK编写控制机械臂的Python脚本05#对应封装代码importtimefromuarm.wrapper

importSwiftAPIfromthreadingimportThreadswift=SwiftAPI()#调用API实例化time.sleep(3)swift.reset(speed=1000,z=100)#速度参数为1000,z轴高度100stop_=

False

def

async_call(fn):

"""异步装饰器:paramfn:函数:return:"""

def

wrapper(*args,**kwargs):#传入字典th=Thread(target=fn,args=args,kwargs=kwargs)th.start()

returnwrapper

@async_calldef

move_left():position=swift.get_position()x=position[0]y=position[1]z=position[2]

whileTrue:y=y-2swift.set_position(x=x,y=y,z=z)#坐标参数设置time.sleep(0.5)

ifstop_:

break

def

stop_button():

globalstop_stop_=Trueswift.disconnect()

print("停止成功")实验预览:使用uArm-Python-SDK编写控制机械臂的Python脚本05开始(点击运行,机械臂开始向左移动):move_left()结束(点击运行,机械臂结束移动):stop_button()通过阅读并运行代码,你是否了解了通过SDK控制机械臂的原理吗?那你能不能举一反三,思考如何更改上述代码,控制机械臂向右、向上、向下移动呢?#请根据课本所学,编写相应代码:实验预览:使用uArm-Python-SDK编写控制机械臂的Python脚本05我们刚刚已经通过阅读代码并运行向左移动机械臂这一实验,对SDK控制机械臂有了一定的了解了吧,那么接下来我们来学习如何控制吸泵的开启与关闭。importtimefromuarm.wrapper

importSwiftAPIswift=SwiftAPI()time.sleep(3)swift.reset(speed=1000)swift.set_pump(on=True)关闭吸泵:swift.reset(speed=1000)swift.set_pump(on=False)time.sleep(2)swift.disconnect()打开吸泵:职业能力目标01任务描述与要求02任务分析与计划03知识储备04任务实施05任务检查与评价06任务小结07任务拓展08任务三

SDK方式实现机械臂三维空间移动任务检查与评价06序号评价内容评价标准分值得分1知识运用(20%)掌握相关理论知识,理解本次任务要求,制定详细计划,计划条理清晰,逻辑正确(20分)20分

理解相关理论知识,能根据本次任务要求、制定合理计划(15分)了解相关理论知识,有制定计划(10分)无制定计划(0分)2专业技能(40%)完成SDK方式控制机械臂的Python脚本。(40分)40分

完成源码结构阅读学习以及SDK控制机械臂的原理学习。(25分)完成Python-SDK安装。(10分)没有完成Python-SDK安装。(0分)3核心素养(20%)具有良好的自主学习能力、分析解决问题的能力、整个任务过程中有指导他人(20分)20分

具有较好的学习能力和分析解决问题的能力,任务过程中无指导他人(15分)能够主动学习并收集信息,有请教他人进行解决问题的能力(10分)不主动学习(0分)4课堂纪律(20%)设备无损坏、设备摆放整齐、工位区域内保持整洁、无干扰课堂秩序(20分)20分

设备无损坏、无干扰课堂秩序(15分)无干扰课堂秩序(10分)干扰课堂秩序(0分)总得分1、请参照评价标准完成自评和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论