Motor/Sensor 在 Webots 与 Pycharm
Motor/Sensor in Webots vs. Pycharm
当我在 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.
这不是很 "pythonic",但是 Motor.LINEAR
和 Motor.ROTATIONAL
是 常量 来比较 return 值 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个建议:
- 我建议您使用 Webots reference manual 而不是挖掘 Python 对象状态。事实上,Python 库是使用 SWIG 自动创建的,因此生成的对象非常复杂。
- Nao 的肩膀确实是用
Hinge2Joint
建模的。这允许以一个的性能处理 2 个关节。但这是一种优化。 API 只能看到设备级别(在本例中为电机)。所以不用知道是Hinge2Joint就可以使用了。
当我在 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.
这不是很 "pythonic",但是 Motor.LINEAR
和 Motor.ROTATIONAL
是 常量 来比较 return 值 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个建议:
- 我建议您使用 Webots reference manual 而不是挖掘 Python 对象状态。事实上,Python 库是使用 SWIG 自动创建的,因此生成的对象非常复杂。
- Nao 的肩膀确实是用
Hinge2Joint
建模的。这允许以一个的性能处理 2 个关节。但这是一种优化。 API 只能看到设备级别(在本例中为电机)。所以不用知道是Hinge2Joint就可以使用了。