当我在Pycharm中调试我的Webots控制器时,我注意到电机将具有两个常数:LINEAR和ROTATIONAL。
NAO的原型将“ RShoulderPitch”列为旋转电动机(对于Hinge2Joint),但是在PyCharm中,电动机由以下代码返回
r_shoulder_pitch = getMotor(“ RShoulderPitch”)
具有以下常量:LINEAR = 1和ROTATIONAL = 0。
也许我误解了这些常量,但不是应该反过来(即ROTATIONAL = 1和LINEAR = 0)吗?
注意:
返回的位置传感器r_shoulder_pitch.getPositionSensor()
在PyCharm中也具有以下常量:ANGULAR = 0,LINEAR = 1,ROTATIONAL = 0。
答案 0 :(得分:1)
这不是很“ pythonic”,但是Motor.LINEAR
和Motor.ROTATIONAL
是常量,用于比较the Motor.getType()
function的返回值。
这些常数不包含当前电动机的类型。
典型用法是:
my_motor = my_robot.getMotor('RShoulderPitch')
if my_motor.getType() == Motor.ROTATIONAL:
print('my motor is rotational')
else:
print('my motor is linear')
我还有2条建议:
Hinge2Joint
进行了建模。这样一来就可以处理2个关节。但这是一种优化。 API仅查看设备级别(在这种情况下为Motors)。因此,无需知道它就是使用Hinge2Joint。