电机作为速度传感器?
Motor as Velocity Sensor?
我已阅读有关如何从节点获取 velocities 的常见问题解答。然而,在所描述的方法中,none 具有从被动伺服电机(电机传感)获取速度的方法。
我正在尝试使用电机,设置为扭矩 0,这使得它 'loose',作为附加倒立摆的速度传感器。
标准电机节点具有 .getVelocity() 方法,该方法应允许接收应用于电机的速度。在真正的伺服系统中,这些甚至会以被动模式提供数据。
然而在 webots 中,API 描述:
Note that if the velocity is not explicitly set using the
wb_motor_set_velocity function, then the wb_motor_get_velocity and
wb_motor_get_max_velocity functions return the same value.
为什么会这样,有没有办法使用被动 motor/servo 进行速度测量,就像使用真正的伺服系统一样?
要获得速度,您不应依赖电机 API,而应使用位置传感器:https://www.cyberbotics.com/doc/reference/positionsensor
位置传感器允许您获取关节的当前位置(例如旋转关节的角度)。然后,根据位置,您可以轻松计算出关节的速度(只需将当前位置与上一步位置之间的差异除以时间差(即控制器的时间步长))。
我已阅读有关如何从节点获取 velocities 的常见问题解答。然而,在所描述的方法中,none 具有从被动伺服电机(电机传感)获取速度的方法。
我正在尝试使用电机,设置为扭矩 0,这使得它 'loose',作为附加倒立摆的速度传感器。
标准电机节点具有 .getVelocity() 方法,该方法应允许接收应用于电机的速度。在真正的伺服系统中,这些甚至会以被动模式提供数据。 然而在 webots 中,API 描述:
Note that if the velocity is not explicitly set using the wb_motor_set_velocity function, then the wb_motor_get_velocity and wb_motor_get_max_velocity functions return the same value.
为什么会这样,有没有办法使用被动 motor/servo 进行速度测量,就像使用真正的伺服系统一样?
要获得速度,您不应依赖电机 API,而应使用位置传感器:https://www.cyberbotics.com/doc/reference/positionsensor
位置传感器允许您获取关节的当前位置(例如旋转关节的角度)。然后,根据位置,您可以轻松计算出关节的速度(只需将当前位置与上一步位置之间的差异除以时间差(即控制器的时间步长))。