这篇文章和大家分享的是VREP 中Joints的相关知识
01
—
关节类型
有三种Joint类型分别是Revolute Joint(旋转关节)、Prismatic Joint(棱柱关节)、Screw and Spherical Joint(螺旋关节和球形关节)
02
—
关节模式
一共有五种关节模式,分别为:
在Torque or force mode转矩或力模式下,点击Show dynamic properties dialog:
3种控制模式:
03
—
关节控制器
如果关节处于力/力矩模式并且动态启用,那么物理引擎将会间接的处理它,如果关节motor不启动,那么此关节将不受控制。另外关节还可以处于以下两种动态模式:
如果您的关节的电机是启用的,但控制回路是禁用的,那么物理引擎将应用指定的最大力量/扭矩,并加速关节,直到达到目标速度。如果负载很小并且/或者最大力/力矩很大,那么目标速度就会很快达到。否则,将需要一些时间,如果力/扭矩不够大,目标速度将永远不会达到。可以用sim.setJointTargetVelocity(或者,在基于b0的远程API的情况下:simxSetJointTargetVelocity,或者,在传统的远程API的情况下: simxSetJointTargetVelocity)编程方式调整目标速度。用sim.setJointForce(例如,在基于b0的远程API的情况下:simxSetJointForce,或在传统的远程API情况下:simxSetJointForce)调节最大力/扭矩。处于force/torque模式下,在子脚本中编写精确的关节控制器之前,需注意: 默认情况下,模拟循环运行的时间步长为50ms(在模拟时间内)。但是物理引擎将以5毫秒的时间步长运行,也就是10倍的频率。子脚本将在每个模拟步骤中调用,而不是在每个物理引擎计算步骤中调用。这意味着,如果以常规方式从子脚本控制关节,那么对于10个物理引擎计算步骤,您只能提供一次新的控制值:您将丢失9个步骤。解决这个问题的一种方法是更改默认的模拟设置,并指定模拟时间步长为5ms,而不是50ms。这可以很好地工作,但是请记住,所有其他计算(例如,视觉传感器、接近传感器、距离计算、IK等)也将运行10倍以上的频率,并最终降低模拟速度(大多数情况下,您不需要如此高的刷新频率来进行其他计算模块。但是物理引擎需要如此高的刷新率)。另一个更好的选择是使用一个联合回调函数(或者一个动态回调函数),这将在后面解释。
另一方面,如果你想要运行一个精确的和定期联合外部控制器(例如远程API客户端,ROS节点或BlueZero节点),设置模拟循环率的物理引擎率相同,然后运行V-REP在同步模式下,外部控制器(如远程API客户端)将会精确触发每个仿真步骤。
如果您的关节电机是启用的,控制回路也是启用的,那么物理引擎将根据设置处理关节:你的关节可以在位置控制(即PID控制)、在弹簧/阻尼模式、或在自定义控制。PID和弹簧/阻尼器参数可以从子脚本、远程API客户端、ROS或BlueZero节点更新。请参考对象参数IDs 2002-2004和2018-2019。目标位置可通过sim.setJointTargetPosition(或一个基于b0的远程API客户端:simxSetJointTargetPosition,传统的的远程API客户端:simxSetJointTargetPosition)。当需要一个精确的定制控制器时,应该使用联合回调函数(或动态回调函数)。 最后,如果你需要在外部应用程序中实现一个精确的PID或自定义控制器,您需要确保仿真步骤是一样的物理引擎计算步骤:默认情况下,V-REP的仿真循环运行20赫兹(在模拟时间),而物理引擎运行在200赫兹。您可以在仿真设置中调整仿真步长,并且需要确保在同步模式下运行V-REP。
03
—
关节属性
场景对象属性对话框中包含关节属性,对关节属性进行编辑点击[Menu bar->Tools->Scene object properties],另外还需要双击场景书中的对象图标;或者点击下图按钮:
在场景对象属性对话框中,点击关节按钮来显示关节对话框(只有最后一个选择是关节时才会出现关节按钮)。对话框显示最后选择的关节的设置和参数。如果选择了多个关节,那么可以将一些参数从最后选择的关节复制到其他选择的关节(应用于选择按钮,请注意,这只会在相同类型或模式的关节之间产生影响):
Position is cyclic位置为循环:表示关节位置是否为循环(-180 ~ +180度,不受限制)。只有转动关节可以是循环的。 Screw pitch螺距:关节的节距值。当位置为循环复选框时,此属性只有在旋转关节/螺旋式关节时才可用。 Position minimum位置极小值:非循环转动关节、螺钉或移动关节的最小允许值。 Position range位置范围:非循环转动关节、螺钉或移动关节的变化范围。这种关节的位置限制在位置最小值和位置最小值+位置范围之间。 Position位置:转动关节、移动关节或螺钉的固有关节位置。 IK calculation weightIK计算重量:逆运动学计算时关节的重量。例如,在冗余操作臂的情况下,这个选项使您能够在逆运动学解决方案中优先选择某些关节。与其他关节相比,重量较小的关节的位置变化相对较小。 Maximum step size最大步长:在一次运动计算过程中允许的最大位置变化。较小的步长通常会导致较长的计算,但可能更稳定。对于逆运动学计算,这个值可以被忽略的max覆盖。步长项目在逆运动学对话框。 Mode模式:关节的控制模式。关节可以处于被动模式、逆运动学模式、依赖模式或扭矩/力模式。
Hybrid operation混合操作:当联合在被动模式下,逆运动学模式或依赖的模式,它也可以是混合的方式操作:混合操作允许联合在一个常规的方式来操作,但除此之外,就在动力学计算,目前的关节位置将被复制到目标关节的位置,然后,在动力学计算,联合处理作为位置控制电动机(当且仅当它是动态地启用)。详情请参阅联合类型和操作部分。 Adjust dependency equation调整相依性方程:如果关节处于相依性模式,那么可以指定一个线性方程将关节与另一个相连。对话框的这个部分的值都以米或弧度表示。 Length长度:关节的长度。没有功能意义。 Diameter直径:关节的直径。没有功能意义。 Adjust color A / B调整颜色A / B:颜色A是关节固定部分的颜色,颜色B是关节移动部分的颜色。 Show dynamic properties dialog显示动态属性对话框:切换关节动态属性对话框。关节动态对话框允许调整关节的动态属性。