NPC.apply_control(VehicleControl(throttle=1.0, steer=0.0, brake=0.0, hand_brake=False, reverse=False, manual_gear_shift=False, gear=0, target_speed=50.0)) Boost.Python.ArgumentError: Python argument types in VehicleControl.__init__(VehicleControl) did not match C++ signature: __init__(struct _object * __ptr64, float throttle=0.0, float steer=0.0, float brake=0.0, bool hand_brake=False, bool reverse=False, bool manual_gear_shift=False, int gear=0) __init__(struct _object * __ptr64)
时间: 2024-03-24 13:35:48 浏览: 57
demo1401_ThrottlePWMControl2.zip_MBD_Throttle _electronic contro
这个错误提示意味着你在调用VehicleControl时传递的参数类型与C++签名不匹配。也就是说,你传递的参数类型与VehicleControl类的构造函数所期望的参数类型不同。
根据错误提示,我们可以看到,C++签名中期望的throttle、steer和brake都是浮点数类型,而你传递的可能是整数或其他类型的对象。因此,你需要确保传递的参数类型与C++签名中所期望的类型匹配。
例如,你可以尝试将所有参数都显式地转换为浮点数类型,比如:
```
from carla import VehicleControl
NPC.apply_control(VehicleControl(throttle=1.0, steer=0.0, brake=0.0, hand_brake=False, reverse=False, manual_gear_shift=False, gear=0, target_speed=50.0))
```
这里,我们将gear和target_speed参数都转换为浮点数类型,确保与C++签名中期望的类型匹配。
阅读全文