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

php网站开发是什么意思做软件与做网站建设有什么区别

php网站开发是什么意思,做软件与做网站建设有什么区别,济南建站公司网站,网站开发技能有哪些视频讲解: MuJoCo 关节角速度记录与可视化,监控机械臂运动状态 代码仓库:GitHub - LitchiCheng/mujoco-learning 关节空间的轨迹优化,实际上是对于角速度起到加减速规划的控制,故一般来说具有该效果的速度变化会显得丝…

视频讲解:

MuJoCo 关节角速度记录与可视化,监控机械臂运动状态

代码仓库:GitHub - LitchiCheng/mujoco-learning

关节空间的轨迹优化,实际上是对于角速度起到加减速规划的控制,故一般来说具有该效果的速度变化会显得丝滑一些,不会那么生硬,这里我们结合评论区的疑问,将关节速度进行记录及可视化,可以比较直观的看到关节速度,下面通过两种方式计算关节速度:

1. 手动计算关节速度,其中timestep为仿真步长

calc_qvel = (self.last_qpos - self.q_vec[:7, self.index]) / self.model.opt.timestep

2. 使用data.qvel直接取得关节速度

self.joint_velocities[self.index] = self.data.qvel[:7]

两种方式计算出的关节速度基本一致,如下为完整代码:

import mujoco_viewer
import mujoco,time,threading
import numpy as np
import pinocchio
import matplotlib
# matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import itertoolsfrom pyroboplan.core.utils import (get_random_collision_free_state,extract_cartesian_poses,
)
from pyroboplan.ik.differential_ik import DifferentialIk, DifferentialIkOptions
from pyroboplan.ik.nullspace_components import (joint_limit_nullspace_component,collision_avoidance_nullspace_component,
)from pyroboplan.models.panda import (load_models,add_self_collisions,add_object_collisions,
)
from pyroboplan.planning.rrt import RRTPlanner, RRTPlannerOptions
from pyroboplan.trajectory.trajectory_optimization import (CubicTrajectoryOptimization,CubicTrajectoryOptimizationOptions,
)class Test(mujoco_viewer.CustomViewer):def __init__(self, path):super().__init__(path, 3, azimuth=180, elevation=-30)self.path = pathdef runBefore(self):# Create models and dataself.model_roboplan, self.collision_model, visual_model = load_models(use_sphere_collisions=True)add_self_collisions(self.model_roboplan, self.collision_model)add_object_collisions(self.model_roboplan, self.collision_model, visual_model, inflation_radius=0.1)data = self.model_roboplan.createData()collision_data = self.collision_model.createData()self.target_frame = "panda_hand"ignore_joint_indices = [self.model_roboplan.getJointId("panda_finger_joint1") - 1,self.model_roboplan.getJointId("panda_finger_joint2") - 1,]np.set_printoptions(precision=3)# Set up the IK solveroptions = DifferentialIkOptions(max_iters=200,max_retries=10,damping=0.0001,min_step_size=0.05,max_step_size=0.1,ignore_joint_indices=ignore_joint_indices,rng_seed=None,)self.ik = DifferentialIk(self.model_roboplan,data=data,collision_model=self.collision_model,options=options,visualizer=None,)self.nullspace_components = [lambda model_roboplan, q: collision_avoidance_nullspace_component(model_roboplan,data,self.collision_model,collision_data,q,gain=1.0,dist_padding=0.05,),lambda model_roboplan, q: joint_limit_nullspace_component(model_roboplan, q, gain=1.0, padding=0.025),]theta = np.pirotation_matrix = np.array([[1, 0, 0],[0, np.cos(theta), -np.sin(theta)],[0, np.sin(theta), np.cos(theta)]])q_start = self.getIk(self.random_valid_state(), rotation_matrix, [0.4, 0.0, 0.4])q_goal = self.getIk(self.random_valid_state(), rotation_matrix, [0.3, 0.0, 0.5])while True:# Search for a pathoptions = RRTPlannerOptions(max_step_size=0.05,max_connection_dist=0.5,rrt_connect=False,bidirectional_rrt=False,rrt_star=True,max_rewire_dist=0.5,max_planning_time=5.0,fast_return=True,goal_biasing_probability=0.25,collision_distance_padding=0.0001,)print("")print(f"Planning a path...")planner = RRTPlanner(self.model_roboplan, self.collision_model, options=options)q_path = planner.plan(q_start, q_goal)print(f"Path found with {len(q_path)} waypoints")if q_path is not None and len(q_path) > 0:print(f"Got a path with {len(q_path)} waypoints")if len(q_path) > 50:print("Path is too long, skipping...")continueelse:print("Failed to plan.")# Perform trajectory optimization.# self.model.opt.timestep = 0.1dt = self.model.opt.timestepoptions = CubicTrajectoryOptimizationOptions(num_waypoints=len(q_path),samples_per_segment=1,min_segment_time=0.5,max_segment_time=10.0,min_vel=-1.5,max_vel=1.5,min_accel=-0.75,max_accel=0.75,min_jerk=-1.0,max_jerk=1.0,max_planning_time=1.0,check_collisions=False,min_collision_dist=0.001,collision_influence_dist=0.05,collision_avoidance_cost_weight=0.0,collision_link_list=["obstacle_box_1","obstacle_box_2","obstacle_sphere_1","obstacle_sphere_2","ground_plane","panda_hand",],)print("Optimizing the path...")optimizer = CubicTrajectoryOptimization(self.model_roboplan, self.collision_model, options)traj = optimizer.plan([q_path[0], q_path[-1]], init_path=q_path)if traj is None:print("Retrying with all the RRT waypoints...")traj = optimizer.plan(q_path, init_path=q_path)if traj is not None:print("Trajectory optimization successful")traj_gen = traj.generate(dt)self.q_vec = traj_gen[1]print(f"path has {self.q_vec.shape[1]} points")self.tforms = extract_cartesian_poses(self.model_roboplan, "panda_hand", self.q_vec.T)self.plot(self.tforms)self.joint_velocities = np.zeros((self.q_vec.shape[1], 7))breakself.index = 0self.last_qpos = self.data.qpos[:7]def plot(self, tfs):positions = []for tform in tfs:position = tform.translationpositions.append(position)positions = np.array(positions)fig = plt.figure()ax = fig.add_subplot(111, projection='3d')ax.plot(positions[:, 0], positions[:, 1], positions[:, 2], marker='o')ax.set_xlabel('X')ax.set_ylabel('Y')ax.set_zlabel('Z')plt.show(block=False)plt.pause(0.001)def getIk(self, init_state, rotation_matrix, pose):while True:self.init_state = init_statetarget_tform = pinocchio.SE3(rotation_matrix, np.array(pose))q_sol = self.ik.solve(self.target_frame,target_tform,init_state=self.init_state,nullspace_components=self.nullspace_components,verbose=True,)if q_sol is not None:print("IK solution found")return q_soldef random_valid_state(self):return get_random_collision_free_state(self.model_roboplan, self.collision_model, distance_padding=0.001)def runFunc(self):calc_qvel = (self.last_qpos - self.q_vec[:7, self.index]) / self.model.opt.timestepself.data.qpos[:7] = self.q_vec[:7, self.index]self.last_qpos = self.data.qpos[:7]   print(f"qpos:{self.data.qpos[:7]}")     print(f"qvel:{self.data.qvel[:7]}")print(f"calc_qvel:{calc_qvel}")print(self.model.nv, self.model.nq)self.joint_velocities[self.index] = self.data.qvel[:7]self.index += 1if self.index >= self.q_vec.shape[1]:self.index = 0time_steps = np.arange(self.q_vec.shape[1])fig, axes = plt.subplots(7, 1, figsize=(10, 10))for j in range(7):axes[j].plot(time_steps, self.joint_velocities[:, j], label=f'Joint {j + 1}', color=f'C{j}')axes[j].set_ylabel('Angular Velocity (rad/s)')axes[j].set_title(f'Joint {j + 1} Angular Velocity')axes[j].grid(True)axes[j].legend()plt.tight_layout()plt.show()if __name__ == "__main__":test = Test("./franka_emika_panda/scene.xml")test.run_loop()


文章转载自:

http://8F3b0nZu.ymbqr.cn
http://gJ0TfGhd.ymbqr.cn
http://WPZBRp4g.ymbqr.cn
http://92Jr0nc2.ymbqr.cn
http://IZi1jn51.ymbqr.cn
http://Y0w7s1Ss.ymbqr.cn
http://WWEWvykW.ymbqr.cn
http://tSWv17RQ.ymbqr.cn
http://ai1WRUIk.ymbqr.cn
http://YSHJvHqZ.ymbqr.cn
http://2UG7Vv4Z.ymbqr.cn
http://nfo07PUS.ymbqr.cn
http://MJiFpPNm.ymbqr.cn
http://74SO2X3m.ymbqr.cn
http://6xQvSvoX.ymbqr.cn
http://8DfJ5lzz.ymbqr.cn
http://XEDy8s5M.ymbqr.cn
http://Hb4a5KAU.ymbqr.cn
http://3f2LR2pQ.ymbqr.cn
http://iautZrBM.ymbqr.cn
http://r96ZvMWP.ymbqr.cn
http://g3yODdhM.ymbqr.cn
http://waToCe0W.ymbqr.cn
http://D1ATuRaN.ymbqr.cn
http://luy1pA6B.ymbqr.cn
http://uBeKGtyf.ymbqr.cn
http://RSJokEZD.ymbqr.cn
http://61VDTCh1.ymbqr.cn
http://L4ROnJdp.ymbqr.cn
http://ZhUrYN6O.ymbqr.cn
http://www.dtcms.com/wzjs/770741.html

相关文章:

  • 湖南系统建站怎么用如何构建成交型网站
  • 电子商务网站建设与规划案例做淘宝优惠券网站
  • 个人网站建设如何选服务器关于建设工程资料的网站
  • 网站建设制作网络营销公司泉州互联网公司排名
  • 烟台做网站的价格陕西建设厅官网首页
  • 广州营销型网站制作江苏建筑模板厂家
  • 如何用手机制作网站汕头h5建站
  • 句容建设局网站招标小程序开发公司有哪些
  • 甘肃网站备案审核个人网页设计图片素材
  • 博客网站素材游戏设计师网站有哪些
  • 网站建设一般多少钱方案东莞 网站建设多少钱
  • 设计展厅的公司温州网站的优化
  • 湘潭网站设计外包服务wordpress国内支付
  • 可以做业务推广的网站有哪些好网站推理
  • 企业文化墙设计网站推荐百度安装免费下载
  • 如何做招聘网站统计表中英文企业网站怎么做
  • 烟台网站开发技术廊坊高端品牌网站建设
  • 免费网站申请域名39939cn常州网红打卡景点
  • 域名备案中网站可以开通个体做外贸的网站
  • 建设公司网站都需要什么科目网站建设和维护工作内容
  • 30天网站建设实录国际网站怎么做优化
  • 延安有哪些做网站的公司电子商务论文8000字
  • 品牌网站建设专家高端网站设计建设
  • 随州建设网站seo商学院
  • 游戏网站模板下载多个网站优化怎么做
  • 学校门户网站流程建设方案深圳建筑业网站建设
  • 兼职网站推广如何做外包公司网站开发
  • 家庭清洁东莞网站建设技术支持市场营销策略概念
  • 学校网站开发系统的背景网页设计难学吗有技术含量吗
  • 韩国网站源码下载wordpress词典插件下载