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 浏览: 70
这个错误提示意味着你在调用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++签名中期望的类型匹配。
相关问题
NPC.apply_control(VehicleControl(throttle=1.0, target_speed=50)) Boost.Python.ArgumentError: Python argument types in VehicleControl.__init__(VehicleControl)
这个错误提示意味着你在调用VehicleControl时没有正确传递参数。VehicleControl类需要至少一个参数,即throttle(油门)。你可以尝试以下代码:
```
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))
```
这里,除了throttle之外,其他参数都是可选的,如果你不需要使用它们,可以将它们省略。同时,也要确保你已经正确导入了VehicleControl类。
NPC.apply_control(VehicleControl(throttle=1.0, target_speed=50)) NameError: name 'VehicleControl' is not defined
这个错误提示意味着你尝试使用一个未定义的名称"VehicleControl"。在使用VehicleControl之前,请确保已经正确导入相关的模块或类。通常情况下,VehicleControl是carla库中的一个类,你需要在程序的开头添加以下导入语句:
```
from carla import VehicleControl
```
这样就可以正确使用VehicleControl了。
阅读全文