快速入门
本指南将帮助您开始使用 MetaCar 库,通过简单的步骤与仿真环境建立连接并控制车辆。
基本用法
以下是使用 MetaCar 的基本步骤:
1. 导入必要的包和类
from metacar import SceneAPI, VehicleControl, GearMode
2. 创建 SceneAPI 实例并连接到仿真环境
api = SceneAPI()
api.connect() # 这将阻塞直到与仿真环境成功连接
3. 获取场景静态数据
static_data = api.get_scene_static_data()
# 静态数据包含路线、道路信息和子场景信息
4. 进入主循环,获取实时数据并控制车辆
for sim_car_msg, frame in api.main_loop():
# sim_car_msg 包含车辆状态、传感器数据、障碍物信息等
# frame 是当前相机视图(OpenCV 格式的图像)
# 创建控制命令
control = VehicleControl()
control.throttle = 0.5 # 设置油门 (0-1)
control.steering = 0.0 # 设置方向盘 (-1 左, 0 中, 1 右)
# 发送控制命令到仿真环境
api.set_vehicle_control(control)
完整示例
以下是一个完整的示例,展示了如何创建一个简单的控制循环:
import logging
from metacar import SceneAPI, GearMode, VehicleControl
# 设置日志
logging.basicConfig(filename="autodrive.log", level=logging.DEBUG)
logger = logging.getLogger(__name__)
def main():
# 创建 API 实例
api = SceneAPI()
# 连接到仿真环境
api.connect()
logger.info("已连接到仿真环境")
# 获取静态数据
static_data = api.get_scene_static_data()
logger.info(f"路线点数量: {len(static_data.route)}")
# 进入主循环
for sim_car_msg, frame in api.main_loop():
# 创建简单的前进控制
vc = VehicleControl()
vc.gear = GearMode.DRIVE
vc.throttle = 0.3 # 30% 油门
# 发送控制命令
api.set_vehicle_control(vc)
# 记录信息
logger.info(f"当前速度: {sim_car_msg.data_main_vehicle.speed}")
# 这里可以添加图像处理、决策逻辑等
logger.info("仿真结束")
if __name__ == "__main__":
main()