用python计算机械臂工作区间(workspace)

如今最主流的机械臂分为串联式和并联式机械臂,本文主要举例为六轴串联式机械臂工作区间的计算方法

为什么要计算工作空间,工作空间和使用目的相关,当确定机械臂确定要完成某项任务,比如夹取1m外的小苹果时,就需要根据需求,设计或选购能满足该任务的机械臂,机械臂的工作空间就是其中一项指标。这里我提到的工作空间区别于灵巧度空间(dexterity space),只要求机械臂末端执行器能到达该坐标点即可。

可以参考工业中KUKA机械臂的表示方法,该六轴机械臂的工作空间分为左视图和俯视图,分别表示X-Z二维平面的最大运动轨迹,和Y-X二维平面的最大旋转角度,通过三个维度的信息就可以计算工作体积(volume):

相信大家可以看出,一般工业机械臂的旋转轴都在J1,所以图右非常显而易见,和J1的旋转角有关

而左边这张图呢,我这边是通过python枚举末端点坐标的方式,获得的,直接上代码显而易见,值得一提的是,在设计计算的时候需要对关节进行简化,只有在X-Z平面内做旋转(或者直线)运动的关节才被显示,否则可以根据设计做融合简化:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

d12 = 91
d23 = 92
d35 = 160.7
d56 = 155
theta23_min = -90
theta23_max = 76
theta35_min = -109
theta35_max = 109
theta56_min = -124
theta56_max = 124

angleinterval23 = np.linspace(theta23_min, theta23_max, 8)
angleinterval35 = np.linspace(theta35_min, theta35_max, 8)
angleinterval56 = np.linspace(theta56_min, theta56_max, 8)

result = []
origin = [91, 0] # [x, y]
num = 0
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print("the value of angle 23 is: \n", angleinterval23)
    print("the value of angle 35 is: \n", angleinterval35)
    print("the value of angle 56 is: \n", angleinterval56)
    for i in range(len(angleinterval23)):
        x23 = origin[0]+d23*np.cos(angleinterval23[i]*np.pi/180)
        y23 = origin[1]+d23*np.sin(angleinterval23[i]*np.pi/180)
        for j in range(len(angleinterval35)):
            x35 = x23+d35*np.cos(angleinterval35[j]*np.pi/180)
            y35 = y23+d35*np.sin(angleinterval35[j]*np.pi/180)
            for k in range(len(angleinterval56)):
                x56 = x35+d56*np.cos(angleinterval56[k]*np.pi/180)
                y56 = y35+d56*np.sin(angleinterval56[k]*np.pi/180)
                result.append([x56, y56])
                plt.figure()
                plt.plot([x23, x35], [y23, y35], linewidth =2)
                plt.plot([x35, x56], [y35, y56], linewidth =2)
                plt.plot([0, 95], [0,0], linewidth=2)
                plt.plot([95, x23], [0, y23], linewidth=2)
                plt.plot(x23, y23, "ko")
                plt.plot(x35, y35, "ko")
                plt.plot(x56, y56, "ko")
                plt.xlim(-100, 600)
                plt.ylim(-500, 500)
                # filename = "{i}_{j}_{j}".format(i=i,j=j,k=k)
                filename = num
                num += 1
                plt.savefig("C:/Users/liuy93/PycharmProjects/MazorXworkspace/jepg/"+str(filename))

    result = pd.DataFrame(result)
    result.to_csv("coordinate.csv")

得到的奇怪的图如下(左侧角度没有做充分的线性规划,所以显得有些不规则): 

 

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以用于机轨迹规划的开发和控制。机轨迹规划是指确定机在运动过程中的路径和姿态,以实现所需的运动任务。 在Python中,可以使用众多的机控制库和算法来进行轨迹规划。其中,最常用的是PythonRobotics和OpenRAVE。PythonRobotics是一个开源的机器人学算法库,包括了多种机器人运动规划算法,如A*算法、Dijkstra算法等,可以用于机的路径规划。OpenRAVE是一个开源的机器人仿真和规划库,提供了丰富的API和工具,可以用于机的动力学仿真和规划。 机轨迹规划通常分为离线规划和在线规划两种方式。离线规划是指在机实际运动之前,通过计算和仿真确定机的轨迹和姿态,并生成对应的控制指令。在线规划是指机在实际运动时,根据当前的环境和任务需求,实时地计算和调整机的运动轨迹和姿态。 在Python中进行机轨迹规划,需要首先了解机的结构和运动学模型。然后,根据实际需求选择合适的机控制库和算法,并编写相应的代码进行规划和控制。 总之,Python在机轨迹规划中发挥着重要作用,可以通过使用相关的库和算法来实现机的运动控制和路径规划。 ### 回答2: Python轨迹规划是使用Python编程语言来实现机在空间中的轨迹规划。机的轨迹规划是指确定机在指定时间内如何移动,以便完成任务或遵循特定的路径。Python是一种简单易学的编程语言,它具有丰富的库和工具,可以用于机轨迹规划。 在Python中实现机轨迹规划的关键是要了解机的运动学和逆运动学。运动学是研究机运动的学科,可以描述机各个连杆之间的关系。逆运动学是根据目标位置和姿态,计算机各个连杆的角度。 使用Python进行机轨迹规划需要利用数学库(如numpy)来进行向量和矩阵计算。可以使用机的运动学和逆运动学模型来推导出机的位置和姿态的变化规律,然后根据规划要求确定机在不同时间段内的位置和姿态。 同时,还可以使用Python中的绘图库(如matplotlib)来可视化机的轨迹规划结果。通过绘制机的轨迹,可以帮助用户更好地理解机的运动路径和轨迹规划效果。 综上所述,Python轨迹规划是利用Python编程语言和相关库来实现机在空间中的路径规划。通过运动学和逆运动学模型,可以计算机的位置和姿态,并绘制出机的轨迹。这种方法可以在机控制和自动化领域中发挥重要作用。 ### 回答3: Python轨迹规划是指使用Python编程语言来规划机的运动轨迹。机轨迹规划是实现机在特定空间里按照一定路径移动的过程。 使用Python进行机编程可以使规划过程更灵活、简单、高效。Python具有丰富的第三方库支持,例如NumPy和SciPy等,可以用于数学计算和优化问题求解。此外,Python还有许多用于机器人和自动化控制的专门库,如Robot Operating System (ROS)和PyRobot等,可以提供更多机规划和控制所需的功能。 在机轨迹规划中,常用的方法包括逆运动学、插补运动和路径规划等。逆运动学是通过设定机末端执行器的目标位置和姿态,计算出各个关节的运动参数,从而实现机的目标位置和姿态控制。插补运动是指在给定起始点和终点的情况下,通过插值方法计算出机运动的过渡轨迹,使机平滑、连续地移动。路径规划则是在给定起始点和目标点的情况下,通过搜索算法或优化方法计算出机的最佳移动路径,满足一定的约束条件。 使用Python进行机轨迹规划时,可以借助上述的数学计算和优化库,结合机器人和自动化控制的专门库,编写相应的代码实现。通过Python的灵活性和丰富的资源,我们可以更方便地实现机的自动化控制、路径规划和运动规划等功能,提高机的自主性、精确性和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值