我读过关于如何从节点获取速度的常见问题。然而,在所描述的方法中,没有一个具有从无源伺服电机(电机感应)获得速度的方法。
我试图使用电机,设置为扭矩0,这使它‘松散’,作为一个附加倒立摆的速度传感器。
标准电机节点具有.getVelocity()方法,该方法应允许接收应用于电机的速度。在实际的伺服系统中,它们甚至会以被动模式提供数据。然而,在webots中,API描述:
注意,如果没有使用wb_motor_set_velocity函数显式设置速度,则wb_motor_get_velocity和wb_motor_get_max_velocity函数返回相同的值。
为什么是这样,有没有办法用无源马达/伺服来测量速度,就像一个真正的伺服系统一样?
发布于 2020-02-26 16:01:09
要获得速度,不应依赖Motor,而应使用位置传感器:https://www.cyberbotics.com/doc/reference/positionsensor
位置传感器允许你得到一个关节的当前位置(例如,其旋转关节的角度)。然后,从位置上可以很容易地计算出关节的速度(只需在前一步取当前位置与位置的差,除以时差(即控制器的时间步长))。
https://stackoverflow.com/questions/60417313
复制相似问题