Carla 阿克曼控制

carla_ackermann_control 软件包 用于通过阿克曼消息控制 Carla 车辆。该包将 阿克曼消息 转换为 CarlaEgoVehicleControl 消息。它从 Carla 读取车辆信息,并将该信息传递给基于 Python 的 PID 控制器,调用simple-pid控制器来控制加速度和速度。


配置

使用 ROS 1 和 ROS 2 时,可以在 配置文件 中初始设置参数,也可以在运行时通过 ROS 1 中的 ROS 动态重新配置 来设置参数。


测试控制消息

通过主题 /carla/<ROLE NAME>/ackermann_cmd 向汽车发送命令来测试设置。例如,通过运行以下命令以 10 米/秒的速度移动参与者名称为ego_vehicle的自我车辆:


# ROS 1
rostopic pub /carla/ego_vehicle/ackermann_cmd ackermann_msgs/AckermannDrive "{steering_angle: 0.0, steering_angle_velocity: 0.0, speed: 10, acceleration: 0.0, jerk: 0.0}" -r 10

# ROS 2
ros2 topic pub /carla/ego_vehicle/ackermann_cmd ackermann_msgs/AckermannDrive "{steering_angle: 0.0, steering_angle_velocity: 0.0, speed: 10, acceleration: 0.0, jerk: 0.0}" -r 10

或者让车辆向前移动,同时转弯 1.22 弧度的角度:


# ROS 1
rostopic pub /carla/ego_vehicle/ackermann_cmd ackermann_msgs/AckermannDrive "{steering_angle: 1.22, steering_angle_velocity: 0.0, speed: 10, acceleration: 0.0, jerk: 0.0}" -r 10

# ROS 2
ros2 topic pub /carla/ego_vehicle/ackermann_cmd ackermann_msgs/AckermannDrive "{steering_angle: 1.22, steering_angle_velocity: 0.0, speed: 10, acceleration: 0.0, jerk: 0.0}" -r 10


ROS 应用程序接口

订阅

主题 类型 描述
/carla/<ROLE NAME>/ackermann_cmd ackermann_msgs.AckermannDrive 转向命令的 订阅者


发布

主题 类型 描述
/carla/<ROLE NAME>/ackermann_control/control_info carla_ackermann_control.EgoVehicleControlInfo 控制器内使用的当前值(对于调试有用)