当前位置: 首页 > wzjs >正文

天津网站建设开发wordpress qtranslate

天津网站建设开发,wordpress qtranslate,wordpress启动命令,个人网上银行登录官网如何在Python中使用 Plot 画出一个简单的模型 在下面的程序中,首先要知道机器人的DH参数,然后计算出每一个关节的位置,最后利用 plot 函数画出关节之间的连杆就可以了,最后利用 animation 库来实现一个动画效果。 import matplo…

如何在Python中使用 Plot 画出一个简单的模型

在下面的程序中,首先要知道机器人的DH参数,然后计算出每一个关节的位置,最后利用 plot 函数画出关节之间的连杆就可以了,最后利用 animation 库来实现一个动画效果。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.pyplot as plt
import numpy as np
from IPython import embed
import matplotlib.animation as animation
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
import tkinter as tk# 取消科学计数法,保留6位小数
np.set_printoptions(precision=6, suppress=True)class Robot(object):def __init__(self):self.alpha_list = []self.a_list = []self.d_list = []self.theta_list = []def SetDHParamList(self, alpha_list, a_list, d_list, theta_list):self.alpha_list = alpha_listself.a_list = a_listself.d_list = d_listself.theta_list = theta_listdef DH(self, index, theta):theta = theta + self.theta_list[index]T = np.zeros([4, 4])c_t = np.cos(theta * np.pi/180)s_t = np.sin(theta * np.pi/180)c_a = np.cos(self.alpha_list[index] * np.pi/180)s_a = np.sin(self.alpha_list[index] * np.pi/180)T[0] = [c_t, - s_t * c_a,     s_t * s_a,  self.a_list[index] * c_t]T[1] = [s_t,   c_t * c_a,   - c_t * s_a,  self.a_list[index] * s_t]T[2] = [  0,         s_a,           c_a,        self.d_list[index]]T[3] = [  0,           0,             0,                    1]# print(T)return np.mat(T)def GetRobotTool(self, q_list):T6 = np.identity(4, dtype= float)for i in range(6):T = self.DH(i, q_list[i])T6 = T6 * Treturn T6class ShowRobot(object):def __init__(self):self.ax = Noneself.robot = Noneself.q_list = [0, 0, 0, 0, 0, 0]fig_width, fig_height = plt.gcf().get_size_inches()# 根据画布大小自动调整直线的粗细, 这里乘上系数3只是为了更好地显示效果self.line_thicknes = max(fig_width / 50, fig_height / 50) * 60self.s200 = max(fig_width / 50, fig_height / 50) * 200self.fontsize = max(fig_width / 50, fig_height / 50) * 80self.alpha = 0.7 #透明度def ShowFrame(self, T, length = 1, width = 2):# 使用quiver绘制坐标轴# 参数说明:# origin[0], origin[1], origin[2] 是箭头的起点# x_axis[0], x_axis[1], x_axis[2] 是箭头的方向# length 是箭头的长度# arrow_length_ratio 是箭头头部与箭杆的比例# linewidth 是箭杆的宽度self.ax.quiver(T[0, 3], T[1, 3], T[2, 3], T[0, 0], T[1, 0], T[2, 0], color='r', length=length, arrow_length_ratio=0.1, linewidth=width)self.ax.quiver(T[0, 3], T[1, 3], T[2, 3], T[0, 1], T[1, 1], T[2, 1], color='g', length=length, arrow_length_ratio=0.1, linewidth=width)self.ax.quiver(T[0, 3], T[1, 3], T[2, 3], T[0, 2], T[1, 2], T[2, 2], color='b', length=length, arrow_length_ratio=0.1, linewidth=width)def ShowLink(self, joint_index, T_start, T_end):mx2, my2, mz2 = np.array([T_start[0, 3],T_end[0, 3]]), np.array([T_start[1, 3], T_end[1, 3]]), np.array([T_start[2, 3], T_end[2, 3]])self.ax.plot(mx2, my2, mz2, solid_capstyle='round', color='blue', linewidth=self.line_thicknes, alpha=self.alpha)self.ax.text(T_start[0, 3], T_start[1, 3], T_start[2, 3], "J" + str(joint_index), color='r', fontsize=self.fontsize, zorder=1, ha='center')self.ax.scatter(T_start[0, 3], T_start[1, 3], T_start[2, 3], c='orange', marker='.', s=self.s200)# 更新函数,用于每一帧的更新def update(self, frame):self.ax.cla()  # 清除所有轴# 设置坐标轴标签self.ax.set_xlabel('X')self.ax.set_ylabel('Y')self.ax.set_zlabel('Z')# # 设置图形显示范围self.ax.set_xlim([-1000, 1000])self.ax.set_ylim([-1000, 1000])self.ax.set_zlim([-1000, 1000])T_start = np.identity(4, dtype= float)T_end = np.identity(4, dtype= float)self.ShowFrame(T_start, length=300)# 关节角度固定不变self.q_list = [0, 0, 0, 0, 0, 0]# 关节角度每一帧都在更新,呈现出一种动画效果# self.q_list = [frame, frame - 90, 0, 0, 0, 0]for joint_index in range(6):T_start = T_endT = self.robot.DH(joint_index, self.q_list[joint_index])T_end = T_end * T# print(T_end)self.ShowLink(joint_index, T_start, T_end)self.ShowFrame(T_end, length=300)def APP():L1 = 388L2 = 50L3 = 330L4 = 50L5 = 332L6 = 96alpha_list = [90, 0, 90, -90, 90, 0]a_list     = [L2, L3, L4, 0, 0, 0]d_list     = [L1, 0, 0, L5, 0, L6]theta_list = [0, 90, 0, 0, 0, 0]robot = Robot()show_robot = ShowRobot()robot.SetDHParamList(alpha_list, a_list, d_list, theta_list)# 创建一个3D图形fig = plt.figure()ax = fig.add_subplot(111, projection='3d')show_robot.ax = axshow_robot.robot = robotroot = tk.Tk()canvas = FigureCanvasTkAgg(fig, master = root)canvas.get_tk_widget().pack()ani = animation.FuncAnimation(fig, show_robot.update, interval = 50)canvas.draw()tk.mainloop()# 显示动画plt.show()if __name__ == "__main__":APP()

下面是实际显示出来的3D机器人模型,其中也画出了机器人的基坐标系和末端工具坐标系。
3D 机器人模型
·

在 Update 函数中,可以在每一帧中去更新关节角度,然后呈现出一种动画的效果。

		# 关节角度固定不变self.q_list = [0, 0, 0, 0, 0, 0]# 关节角度每一帧都在更新,呈现出一种动画效果# self.q_list = [frame, frame - 90, 0, 0, 0, 0]

文章转载自:

http://H0tOio4X.nwwzc.cn
http://YwnPQbCD.nwwzc.cn
http://m9SNqGH2.nwwzc.cn
http://KxXNzgtp.nwwzc.cn
http://PoAi3CtS.nwwzc.cn
http://PE80bXhF.nwwzc.cn
http://K1S2odfH.nwwzc.cn
http://K7CFw2q1.nwwzc.cn
http://CwMkMmKw.nwwzc.cn
http://ZGzWxmFR.nwwzc.cn
http://HtBGKnGh.nwwzc.cn
http://rZ1g3lBa.nwwzc.cn
http://XbOFbGsv.nwwzc.cn
http://XGCwW7bg.nwwzc.cn
http://pLhoE7Mk.nwwzc.cn
http://uhYuXx8Z.nwwzc.cn
http://mK25mfwa.nwwzc.cn
http://R2dr4591.nwwzc.cn
http://jz81lX3O.nwwzc.cn
http://PIiz9zwr.nwwzc.cn
http://i3qm2lm4.nwwzc.cn
http://JeGbxEMu.nwwzc.cn
http://HTXyAVRo.nwwzc.cn
http://0MVWUYte.nwwzc.cn
http://1nyvpVex.nwwzc.cn
http://oiucDB9t.nwwzc.cn
http://ZR3OA1ce.nwwzc.cn
http://EV7WQwg0.nwwzc.cn
http://sat5imNw.nwwzc.cn
http://m28btXPm.nwwzc.cn
http://www.dtcms.com/wzjs/741671.html

相关文章:

  • 杭州模板建站定制网站网站在服务器
  • 手机个人简历模板下载网站模板南通市港闸区城乡建设局网站
  • 网站开发速成培训机构订做网站策划
  • 公司网站文章的排版用网站做成软件
  • 免费自建网站wordpress主题新闻
  • 怎么注册一个公司网站wordpress 设置登陆界面
  • 西安可以做网站的网站设计常用软件
  • 手机版网站优化wordpress關閉評論
  • 重庆要做网站推广网站运营知识
  • 网页制作中级证书如何优化网站 提高排名
  • 长沙优化网站建设哪家公司网站做得好
  • 永久免费云电脑南宁百度seo排名价格
  • 网站关键词百度自然排名优化wordpress接入微信登录
  • 网站排名第一建筑网站大全豆丁网
  • 兴国县城乡规划建设局网站镇江市住房与城乡建设部网站
  • wordpress建站网站根目录上海网页制作报价
  • 加盟企业网站建设目的站内营销推广方式有哪些
  • 站长素材音效下载保亭县住房城市建设局网站
  • 做网站前端有前途么wordpress推广链接插件
  • 做视频解析网站要什么服务器网站全屏轮播怎么做
  • 做下载类网站前景wordpress翻译版本
  • 制作网站设计的总结唐山公司网站建设 中企动力唐山
  • 做电商网站搭建就业岗位网络运营平台
  • 杭州网站关键词优化手机销售网站怎么做
  • 什么程序做教育网站好wordpress 问答模块
  • 怎么样让百度搜到自己的网站怎么做ps4的视频网站
  • 免费做店招哪个网站好哪个网站专做滨水景观
  • 宁波北仑做公司网站门户网站规划
  • 全国十大网站建设公司哪家好淘宝标题优化工具推荐
  • 现今网站开发的主流框架郑州官网网站推广优化公司