职位:9 线程:2 加入时间:2019年9月
声誉:
0
2019年09月26日,晚上8点37分
(本文最后修改:10-14-2019,09:16 PM by艾伯特.)
大家好!
我和我的同事想为客户的模拟创建一个5轴龙门,有3个线性轴和2个旋转轴。我尝试创建两个(3L, 2R)或三个(3L, 1R, 1R)机器实例,但似乎不可能按照我们想要的方式将它们链接起来(所有轴内部都指向一个机制)。
然后我开始搜索API文档,看看是否有一种方法可以创建一个.robot文件来创建任何机制。我发现 这个例子在在线文档中,它显示了建模一个机器人几何是很容易的。我也发现了 BuildMechanism ()函数 robolink.py,但这一个提出了很多问题:
对象的CAD文件是否应该在组装完成后导入,或者它们的相对位置/方向可以在稍后的机制创建过程中定义? -这是什么 参数参数需要什么?在在线文档中,它说“机器人参数与RoboDK菜单中显示的顺序相同:Utilities-Build Mechanism or robot”,但参数根据机制类型而异。它们到底是什么,数据类型又是什么? - joints_sense:绝对没有关于这个的信息,在 robolink.py文件或 在线.数据类型是什么,它需要什么?布尔值联合反演? —— 基地而且 工具矩阵,其位姿应根据站位参考系给出,否则为 工具依赖于 基地“年代? -DH参数似乎不需要。所以如何?程序必须需要一些东西来模拟正确的几何形状。
这是创造机器人的正确工具吗,还是我们需要更多的东西?
问题太多了,很抱歉。我们正在努力推广这款软件,因为它似乎有很大的潜力。
职位:9 线程:2 加入时间:2019年9月
声誉:
0
我已经开始使用这个函数,但是我的简单代码每次都会使软件崩溃。甚至改变 参数参数类型 没有一个来 int来 列表没有帮助。什么应该是一个基本的代码来调试和了解函数不能正常运行。知道为什么吗?
代码:
从robolink导入* # RoboDK API 从robodk导入机器人工具箱 RDK = Robolink()
robot_name = 'LR Mate 200iD' dfs = 6 List_obj = [] Pos_start = [0,0,0,0,0] Pos_home = pos_start J_senses = pos_start J_lim_low = [-170, -100, -67, -190, -125, -360] J_lim_high = [170, 145, 213, 190, 125, 360] Ref_base = xyzrpw_2_pose([0,0,0,0,0]) Ref_tool = xyzrpw_2_pose([465,0,365,0,-90,-180])
对于i在范围(dfs + 1): 如果I == 0: obj = RDK。项目(robot_name + 'Base', ITEM_TYPE_OBJECT) 其他: obj = RDK。项目(robot_name + 'J' + str(i), ITEM_TYPE_OBJECT)
list_obj.append (obj)
RDK。BuildMechanism(ITEM_TYPE_ROBOT, list_obj, None, pos_start, pos_home, j_senses, j_lim_low, j_lim_high, ref_base, ref_tool, robot_name)
职位:9 线程:2 加入时间:2019年9月
声誉:
0
你好。已经一个多星期了。我只是回复这个帖子,直到它被查看为止。别担心,我知道你很忙。谢谢!
帖子:1776 线程:1 加入:2018年4月
声誉:
95
嗨,加布里埃尔,
我看了你的文件但是机器人的参数不见了。这是最重要的部分,因为它们代表了机器人的运动学。当你构建机器人或机构时,这些参数必须以相同顺序在RoboDK的用户界面中出现的值列表提供。RoboDK会根据这些参数自动构建DH表。一些简单的机制(如1或2个平移/旋转轴)不需要这些参数,因为假设您将围绕Z轴平移/旋转。
我附上了你为发那科LR Mate 200iD机器人工作的例子。
艾伯特
代码:
#启动RoboDK API 从robolink导入* 从robodk导入* RDK = Robolink()
定义你的新机器人或机制 #示例创建一个发那科LR Mate 200iD机器人 robot_name = '发那科LR Mate 200iD' dfs = 6
定义机器人/机构的关节 Joints_build = [0,0,0,0,0,0]
#定义机器人/机构的主位置(创建机构时的默认位置) 如果你选择“Home”,这也是机器人要去的位置 Joints_home = [0,0,0,0,0]
定义机器人参数。参数必须按照它们出现的顺序提供 实用新型机械或机器人 #一些基本机制,如1轴或2轴平移/旋转轴不需要任何参数 #(移动/旋转将围绕Z轴进行) #parameters = [] 参数= [330,50,0,330,35,335,80,0,-90,0,0,0,0]
#定义关节感(每个轴设置为+1或-1(+1作为ABB IRB120机器人的参考) Joints_senses =[+1, +1, -1, -1, -1, -1] #添加-1作为第7个索引,以考虑轴2和轴3的耦合
#关节极限(每个轴的下限) lower_limits = (-170, -100, -67, -190, -125, -360]
#关节极限(每个轴的上限) 上限= [170,145,213,190,125,360]
#基础帧姿态(通过应用基础帧转换来偏移模型) #base_pose = xyzrpw_2_pose([0,0,0,0,0]) # Fanuc和Motoman机器人的基础框架在轴1和轴2的交点 Base_pose = xyzrpw_2_pose([0,0, -330, 0,0,0])
#工具框架姿态(通过应用工具框架转换来偏移工具法兰) Tool_pose = xyzrpw_2_pose([0,0,0,0,0])
#从RoboDK中检索您的所有项目(它们应该事先手动加载或使用API的RDK.AddFile()命令) List_objects = [] 对于i在范围(dfs + 1): 如果I == 0: itm = RDK。项目(robot_name + ' Base', ITEM_TYPE_OBJECT) 其他: itm = RDK。项目(robot_name + ' ' + str(i), ITEM_TYPE_OBJECT)
list_objects.append (itm)
#创建机器人/机制 new_robot = RDK。BuildMechanism(MAKE_ROBOT_6DOF, list_objects, parameters, joints_build, joints_home, joints_senses, lower_limits, upper_limits, base_pose, tool_pose, robot_name) 如果不是new_robot.Valid(): 打印("创建机器人失败。检查输入值。” 其他: print("Robot/mechanism created: " + new_robot.Name())
职位:9 线程:2 加入时间:2019年9月
声誉:
0
10-08-2019,上午11:33
(这篇文章最后修改:10-08-2019,上午11:37由GabrielCabana.)
谢谢你,艾伯特。
所以,看起来几何参数是固定不变的。我必须输入一系列的d a和θ值,而不能指定(α, a, d, θ)每个关节的值。我不能创建自己的DH表来建模任何类型的几何,比如一个3L+2R龙门架,对吗?
而且,你的脚本也会让我这边的软件崩溃。我运行的是4.0.0。我们如何解决这个问题?
帖子:1776 线程:1 加入:2018年4月
声誉:
95
如果检索到的对象不存在,脚本将崩溃。确保这些对象存在(机器人基地、J1、J2等必须在RoboDK站中可用)。
最新版本没有这种崩溃。
职位:9 线程:2 加入时间:2019年9月
声誉:
0
|