From eb8d79af6352206bb127d96d40170111a6e62b2e Mon Sep 17 00:00:00 2001 From: corkyw10 Date: Thu, 15 Apr 2021 12:58:27 +0200 Subject: [PATCH] Removed ROS documentation and added link to the new ROS doc home --- Docs/ros_installation.md | 180 +----------------- Docs/ros_launchs.md | 392 --------------------------------------- Docs/ros_msgs.md | 350 ---------------------------------- 3 files changed, 8 insertions(+), 914 deletions(-) delete mode 100644 Docs/ros_launchs.md delete mode 100644 Docs/ros_msgs.md diff --git a/Docs/ros_installation.md b/Docs/ros_installation.md index ecac2c016..681860263 100644 --- a/Docs/ros_installation.md +++ b/Docs/ros_installation.md @@ -1,178 +1,14 @@ -# ROS bridge installation +# ROS Bridge The ROS bridge enables two-way communication between ROS and CARLA. The information from the CARLA server is translated to ROS topics. In the same way, the messages sent between nodes in ROS get translated to commands to be applied in CARLA. -* [__Requirements__](#requirements) - * [Python version](#python-version) -* [__Bridge installation__](#bridge-installation) - * [A. Using Debian repository](#a-using-debian-repository) - * [B. Using source repository](#b-using-source-repository) -* [__Run the ROS bridge__](#run-the-ros-bridge) -* [__Setting CARLA__](#setting-carla) +The ROS bridge is compatible with both ROS 1 and ROS 2. -!!! Important - ROS is still [experimental](http://wiki.ros.org/noetic/Installation) for Windows, so the ROS bridge has only been tested for Linux systems. +The ROS bridge boasts the following features: ---- -## Requirements + Provides sensor data for LIDAR, Semantic LIDAR, Cameras (depth, segmentation, rgb, dvs), GNSS, Radar and IMU. + Provides object data such as transforms, traffic light status, visualisation markers, collision and lane invasion. + Control of AD agents through steering, throttle and brake. + Control of aspects of the CARLA simulation like synchronous mode, playing and pausing the simulation and setting simulation parameters. -Make sure that both requirements work properly before continuing with the installation. - -* __ROS Kinetic/Melodic__ — Install the ROS version corresponding to your system. Additional ROS packages may be required, depending on the user needs. [rviz](http://wiki.ros.org/rviz) is highly recommended to visualize ROS data. - * [__ROS Kinetic__](http://wiki.ros.org/kinetic/Installation) — For Ubuntu 16.04 (Xenial). - * [__ROS Melodic__](http://wiki.ros.org/melodic/Installation/Ubuntu) — For Ubuntu 18.04 (Bionic). - * [__ROS Noetic__](http://wiki.ros.org/noetic#Installation) — For Ubuntu 20.04 (Focal). -* __CARLA 0.9.7 or later__ — Previous versions are not compatible with the ROS bridge. Follow the [quick start installation](start_quickstart.md) or make the build for [Linux](build_linux.md). - -### Python version - -The Python version needed to run the ROS bridge depends on the ROS version being used. - -* __ROS Kinetic__ and __ROS Melodic__ — Python2. -* __ROS Noetic__ — Python3. - -CARLA provides different Python support depending on the installation method. Here is a summary. - -* __CARLA release packages__ — Provide support for Python2 and Python3, so these can be used with any ROS version. -* __Windows build__ — Provides Support for the default Python installation in the system, so the ROS installation should match this. -* __Linux build__ — Provides support for Python3 by default (ROS Noetic). If Python2 is needed, the PythonAPI can be built for Python2 running the following command in the CARLA root directory. -```sh -make PythonAPI ARGS="--python-version=2" # The numeric argument can be changed to build for any specific Python version -``` - ---- -## Bridge installation - -!!! Important - To install ROS bridge versions prior to 0.9.10, change to a previous version of the documentation using the pannel in the bottom right corner of the window, and follow the old instructions. ![docs_version_panel](img/docs_version_panel.jpg) - -### A. Using Debian repository - -Set up the Debian repository in the system. -```sh -sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1AF1527DE64CB8D9 -sudo add-apt-repository "deb [arch=amd64] http://dist.carla.org/carla $(lsb_release -sc) main" -``` -Install the ROS bridge, and check for the installation in the `/opt/` folder. -```sh -sudo apt-get update # Update the Debian package index -sudo apt-get install carla-ros-bridge # Install the latest ROS bridge version, or update the current installation -``` - -This repository contains features from CARLA 0.9.10 and later versions. To install a specific version add the version tag to the installation command. -```sh -sudo apt-get install carla-ros-bridge=0.9.10-1 # In this case, "0.9.10" refers to the ROS bridge version, and "1" to the Debian revision -``` - -### B. Using source repository - -A catkin workspace is needed to use the ROS bridge. It should be cloned and built in there. The following code creates a new workspace, and clones the repository in there. - -```sh -# Setup folder structure -mkdir -p ~/carla-ros-bridge/catkin_ws/src -cd ~/carla-ros-bridge -git clone https://github.com/carla-simulator/ros-bridge.git -cd ros-bridge -git submodule update --init -cd ../catkin_ws/src -ln -s ../../ros-bridge -source /opt/ros/kinetic/setup.bash # Watch out, this sets ROS Kinetic -cd .. - -# Install required ros-dependencies -rosdep update -rosdep install --from-paths src --ignore-src -r - -# Build -catkin_make -``` - ---- -## Run the ROS bridge - -__1) Run CARLA.__ The way to do so depends on the CARLA installation. - -* __Quick start/release package.__ `./CarlaUE4.sh` in `carla/`. -* __Debian installation.__ `./CarlaUE4.sh` in `opt/carla-simulator/`. -* __Build installation.__ `make launch` in `carla/`. - -__2) Add the source path.__ The source path for the workspace has to be added, so that the ROS bridge can be used from a terminal. - -* __Source for apt ROS bridge.__ -```sh -source /opt/carla-ros-bridge//setup.bash -``` - -* __Source for ROS bridge repository download.__ -```sh -source ~/carla-ros-bridge/catkin_ws/devel/setup.bash -``` - -!!! Important - The source path can be set permanently, but it will cause conflict when working with another workspace. - -__3) Start the ROS bridge.__ Use any of the different launch files available to check the installation. Here are some suggestions. - -```sh -# Option 1: start the ros bridge -roslaunch carla_ros_bridge carla_ros_bridge.launch - -# Option 2: start the ros bridge together with RVIZ -roslaunch carla_ros_bridge carla_ros_bridge_with_rviz.launch - -# Option 3: start the ros bridge together with an example ego vehicle -roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch -``` - -
- -
ImportError: no module named CARLA
-
- -The path to CARLA Python is missing. The apt installation does this automatically, but it may be missing for other installations. Execute the following command with the complete path to the .egg file (included). Use the one supported by the Python version installed. -

-Note: .egg files may be either in `/PythonAPI/` or `/PythonAPI/dist/` depending on the CARLA installation. - -```sh - export PYTHONPATH=$PYTHONPATH:/PythonAPI/ -``` - -Import CARLA from Python and wait for a sucess message to check the installation. -```sh -python3 -c 'import carla;print("Success")' -``` -
- ---- -## Setting CARLA - -To modify the way CARLA works along with the ROS bridge, edit [`share/carla_ros_bridge/config/settings.yaml`](https://github.com/carla-simulator/ros-bridge/blob/master/carla_ros_bridge/config/settings.yaml). - -* __Host/port.__ Network settings to connect to CARLA using a Python client. -* __Synchronous mode.__ - * __If false (default).__ Data is published on every `world.on_tick()` and every `sensor.listen()` callbacks. - * __If true__ The bridge waits for all the sensor messages expected before the next tick. This might slow down the overall simulation but ensures reproducible results. -* __Wait for vehicle command.__ In synchronous mode, pauses the tick until a vehicle control is completed. -* __Simulation time-step.__ Simulation time (delta seconds) between simulation steps. __It must be lower than 0.1__. Take a look at the [documentation](adv_synchrony_timestep.md) to learn more about this. -* __Role names for the Ego vehicles.__ Role names to identify ego vehicles. These will be controllable from ROS and thus, relevant topics will be created. - -!!! Warning - In synchronous mode only the ros-bridge is allowed to tick. Other clients must passively wait. - -### Synchronous mode - -To control the step update when in synchronous mode, use the following topic. The message contains a constant named `command` that allows to __Pause/Play__ the simulation, and execute a __single step__. - - - -| Topic | Message type | -| ------------------------------------------------ | ------------------------------------------------ | -| `/carla/control` | [carla\_msgs.CarlaControl](<../ros_msgs#carlacontrolmsg>) | - - - -The [Control rqt plugin](https://github.com/carla-simulator/ros-bridge/blob/master/rqt_carla_control/README.md) launches a new window with a simple interface. It is used to manage the steps and publish in the corresponding topic. Simply run the following when CARLA in synchronous mode. -```sh -rqt --standalone rqt_carla_control -``` +Full documentation of the ROS bridge is found [__here__](https://carla.readthedocs.io/projects/ros-bridge/en/latest/). diff --git a/Docs/ros_launchs.md b/Docs/ros_launchs.md deleted file mode 100644 index 84a9b7b9b..000000000 --- a/Docs/ros_launchs.md +++ /dev/null @@ -1,392 +0,0 @@ -# Launchfiles reference - ---- -## carla_ackermann_control.launch - -Creates a node to manage a vehicle using Ackermann controls instead of the CARLA control messages. The node reads the vehicle info from CARLA and uses it to define the controller. A simple Python PID is used to adjust acceleration/velocity. This is a Python dependency that can be easily installed with _pip_. -```sh -pip install --user simple-pid -``` -It is possible to modify the parameters in runtime via ROS dynamic reconfigure. Initial parameters can be set using a `settings.yaml`. The path to it depends on the bridge installation. - -* __Deb repository installation__, -`/opt/carla-ros-bridge/melodic/share/carla_ackermann_control/config/settings.yaml`. -* __Source repository installation__, -`/catkin_ws/src/ros-bridge/carla_ackermann_control/config/settings.yaml`. - - -

/carla_ackermann_control_ego_vehicle (Node)

-Converts [AckermannDrive messages](http://docs.ros.org/jade/api/ackermann_msgs/html/msg/AckermannDrive.html) to [CarlaEgoVehicleControl.msg](ros_msgs.md#carlaegovehiclecontrolmsg). Speed is in __m/s__, steering angle in __radians__ and refers to driving angle, not wheel angle. - -

Subscribed to:

- -* /carla/ego_vehicle/ackermann_cmd — [ackermann_msgs.AckermannDrive](http://docs.ros.org/jade/api/ackermann_msgs/html/msg/AckermannDrive.html) -* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](ros_msgs.md#carlaegovehicleinfomsg) -* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](ros_msgs.md#carlaegovehiclestatusmsg) - - -

Publishes in:

- -* /carla/ego_vehicle/ackermann_control/parameter_descriptions — [dynamic_reconfigure/ConfigDescription](http://docs.ros.org/melodic/api/dynamic_reconfigure/html/msg/ConfigDescription.html) -* /carla/ego_vehicle/ackermann_control/control_info — [carla_ackermann_control.EgoVehicleControlInfo](ros_msgs.md#egovehiclecontrolinfomsg) -* /carla/ego_vehicle/ackermann_control/parameter_updates — [dynamic_reconfigure/Config](http://wiki.ros.org/dynamic_reconfigure) -* /carla/ego_vehicle/vehicle_control_cmd — [carla_msgs.CarlaEgoVehicleControl](ros_msgs.md#carlaegovehiclecontrolmsg) - ---- -## carla_ego_vehicle.launch - -Spawns an ego vehicle (`role-name="ego_vehicle"`). The argument `sensor_definition_file` describes the sensors attached to the vehicle. It is the location of a __.json__ file. The format of this file is explained [here](https://github.com/carla-simulator/ros-bridge/tree/master/carla_ego_vehicle). - -To spawn the vehicle at a specific location, publish in `/carla/ego_vehicle/initialpose`, or use __RVIZ__ and select a position with __2D Pose estimate__. - - -

carla_ego_vehicle_ego_vehicle (Node)

-Spawns an ego vehicle with sensors attached, and waits for world information. - -

Subscribed to:

- -* /carla/ego_vehicle/initialpose — [geometry_msgs/PoseWithCovarianceStamped](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/PoseWithCovarianceStamped.html) -* /carla/world_info — [carla_msgs.CarlaWorldInfo](ros_msgs.md#carlaworldinfomsg) - ---- -## carla_example_ego_vehicle.launch -Based on carla_ego_vehicle.launch, spawns an ego vehicle (`role-name="ego_vehicle"`). The file `sensors.json` describes the sensors attached. The path to it depends on the bridge installation. - -* __Deb repository installation__, -`/opt/carla-ros-bridge/melodic/share/carla_ego_vehicle/config/sensors.json`. -* __Source repository installation__, -`/catkin_ws/src/ros-bridge/carla_ego_vehicle/config/sensors.json`. - - -

carla_ego_vehicle_ego_vehicle (Node)

-Spawns an ego vehicle with sensors attached and waits for world information. - -

Subscribed to:

- -* /carla/ego_vehicle/initialpose — [geometry_msgs/PoseWithCovarianceStamped](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/PoseWithCovarianceStamped.html) -* /carla/world_info — [carla_msgs.CarlaWorldInfo](ros_msgs.md#carlaworldinfomsg) - ---- -## carla_infrastructure.launch -Spawns infrastructure sensors and requires the argument `infrastructure_sensor_definition_file` with the location of a __.json__ file describing these sensors. - - -

/carla_infrastructure (Node)

-Spawns the infrastructure sensors passed as arguments. - -

Subscribed to:

- -* /carla/world_info — [carla_msgs.CarlaWorldInfo](ros_msgs.md#carlaworldinfomsg) - ---- -## carla_ros_bridge.launch -Creates a node with some basic communications between CARLA and ROS. - - -

carla_ros_bridge (Node)

-Publishes the data regarding the current state of the simulation. Reads the debug shapes being drawn. - -

Subscribed to:

- -* /carla/debug_marker — [visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html) - -

Publishes in:

- -* /carla/actor_list — [carla_msgs.CarlaActorList](ros_msgs.md#carlaactorlistmsg) -* /carla/objects — [derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs) -* /carla/status — [carla_msgs.CarlaStatus](ros_msgs.md#carlastatusmsg) -* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](ros_msgs.md#carlatrafficlightstatuslistmsg) -* /carla/world_info — [carla_msgs.CarlaWorldInfo](ros_msgs.md#carlaworldinfomsg) - ---- -## carla_ros_bridge_with_ackermann_control.launch - -Launches two basic nodes. One retrieves simulation data, the other controls a vehicle using [AckermannDrive messages](http://docs.ros.org/jade/api/ackermann_msgs/html/msg/AckermannDrive.html). - - -

carla_ros_bridge (Node)

-Publishes data regarding the current state of the simulation. Reads the debug shapes being drawn. - -

Subscribed to:

- -* /carla/debug_marker — [visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html) - -

Publishes in:

- -* /carla/actor_list — [carla_msgs.CarlaActorList](ros_msgs.md#carlaactorlistmsg) -* /carla/objects — [derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs) -* /carla/status — [carla_msgs.CarlaStatus](ros_msgs.md#carlastatusmsg) -* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](ros_msgs.md#carlatrafficlightstatuslistmsg) -* /carla/world_info — [carla_msgs.CarlaWorldInfo](ros_msgs.md#carlaworldinfomsg) - - -

/carla_ackermann_control_ego_vehicle (Node)

-Converts [AckermannDrive messages](http://docs.ros.org/jade/api/ackermann_msgs/html/msg/AckermannDrive.html) to [CarlaEgoVehicleControl.msg](ros_msgs.md#carlaegovehiclemsg). Speed is in __m/s__, steering angle is in __radians__ and refers to driving angle, not wheel angle. - -

Subscribed to:

- -* /carla/ego_vehicle/ackermann_cmd — [ackermann_msgs.AckermannDrive](http://docs.ros.org/jade/api/ackermann_msgs/html/msg/AckermannDrive.html) -* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](ros_msgs.md#carlaegovehicleinfomsg) -* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](ros_msgs.md#carlaegovehiclestatusmsg) - - -

Publishes in:

- -* /carla/ego_vehicle/ackermann_control/parameter_descriptions — [dynamic_reconfigure/ConfigDescription](http://docs.ros.org/melodic/api/dynamic_reconfigure/html/msg/ConfigDescription.html) -* /carla/ego_vehicle/ackermann_control/control_info — [carla_ackermann_control.EgoVehicleControlInfo](ros_msgs.md#egovehiclecontrolinfomsg) -* /carla/ego_vehicle/ackermann_control/parameter_updates — [dynamic_reconfigure/Config](http://wiki.ros.org/dynamic_reconfigure) -* /carla/ego_vehicle/vehicle_control_cmd — [carla_msgs.CarlaEgoVehicleControl](ros_msgs.md#carlaegovehiclecontrolmsg) - ---- -## carla_ros_bridge_with_example_ego_vehicle.launch - -Spawns an ego vehicle with sensors attached, and starts communications between CARLA and ROS. Both share current simulation state, sensor and ego vehicle data. The ego vehicle is set ready to be used in manual control. - - -

carla_ros_bridge (Node)

-In charge of the communications between CARLA and ROS. They share the current state of the simulation, traffic lights, vehicle controllers and sensor data. -

Subscribed to:

- -* /carla/debug_marker — [visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html) -* /carla/ego_vehicle/enable_autopilot — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) -* /carla/ego_vehicle/twist — [geometry_msgs.Twist](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/Twist.html) -* /carla/ego_vehicle/vehicle_control_cmd — [carla_msgs.CarlaEgoVehicleControl](ros_msgs.md#carlaegovehiclecontrolmsg) -* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](ros_msgs.md#carlaegovehiclecontrolmsg) -* /carla/ego_vehicle/vehicle_control_manual_override — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) - -

Publishes in:

- -* /carla/actor_list — [carla_msgs.CarlaActorList](ros_msgs.md#carlaactorlistmsg) -* /carla/ego_vehicle/camera/rgb/front/camera_info — [sensor_msgs.CameraInfo](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/CameraInfo.html) -* /carla/ego_vehicle/camera/rgb/front/image_color — [sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html) -* /carla/ego_vehicle/camera/rgb/view/camera_info — [sensor_msgs.CameraInfo](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/CameraInfo.html) -* /carla/ego_vehicle/camera/rgb/view/image_color — [sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html) -* /carla/ego_vehicle/gnss/gnss1/fix — [sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html) -* /carla/ego_vehicle/imu — [sensor_msgs.Imu](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Imu.html) -* /carla/ego_vehicle/lidar/lidar1/point_cloud — [sensor_msgs.PointCloud2](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/PointCloud2.html) -* /carla/ego_vehicle/objects — [derived_object_msgs.ObjectArray](http://docs.ros.org/kinetic/api/derived_object_msgs/html/msg/ObjectArray.html) -* /carla/ego_vehicle/odometry — [nav_msgs.Odometry](http://docs.ros.org/melodic/api/nav_msgs/html/msg/Odometry.html) -* /carla/ego_vehicle/radar/front/radar — [ainstein_radar_msgs.RadarTargetArray](http://wiki.ros.org/ainstein_radar_msgs) -* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](ros_msgs.md#carlaegovehicleinfomsg) -* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](ros_msgs.md#carlaegovehiclestatusmsg) -* /carla/objects — [derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs) -* /carla/status — [carla_msgs.CarlaStatus](ros_msgs.md#carlastatusmsg) -* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](ros_msgs.md#carlatrafficlightstatuslistmsg) -* /carla/world_info — [carla_msgs.CarlaWorldInfo](ros_msgs.md#carlaworldinfomsg) - - - -

/carla_manual_control_ego_vehicle (Node)

-Retrieves information from CARLA regarding the ego vehicle. Uses keyboard input to publish controller messages for the ego vehicle. The information retrieved includes static data, current state, sensor data, and simulation settings. - -

Subscribed to:

- -* /carla/ego_vehicle/camera/rgb/view/image_color — [sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html) -* /carla/ego_vehicle/collision — [carla_msgs.CarlaCollisionEvent](ros_msgs.md#carlacollisioneventmsg) -* /carla/ego_vehicle/gnss/gnss1/fix — [sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html) -* /carla/ego_vehicle/lane_invasion — [carla_msgs.CarlaLaneInvasionEvent](ros_msgs.md#carlalaneinvasioneventmsg) -* /carla/ego_vehicle/vehicle_control_manual_override — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) -* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](ros_msgs.md#carlaegovehicleinfomsg) -* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](ros_msgs.md#carlaegovehiclestatusmsg) -* /carla/status — [carla_msgs.CarlaStatus](ros_msgs.md#carlastatusmsg) - - -

Publishes in:

- -* /carla/ego_vehicle/enable_autopilot — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) -* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](ros_msgs.md#carlaegovehiclecontrolmsg) -* /carla/ego_vehicle/vehicle_control_manual_override — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) - - -

/carla_ego_vehicle_ego_vehicle (Node)

-Spawns an ego vehicle with sensors attached. Reads world information. - -

Subscribed to:

- -* /carla/ego_vehicle/initialpose — [geometry_msgs/PoseWithCovarianceStamped](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/PoseWithCovarianceStamped.html) - ---- -## carla_ros_bridge_with_rviz.launch - -Starts communications between CARLA and ROS, and launches RVIZ to retrieve Lidar data. - -

carla_ros_bridge (Node)

-Shares information between CARLA and ROS regarding the current simulation state. - -

Subscribed to:

- -* /carla/debug_marker — [visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html) - -

Publishes in:

- -* /carla/actor_list — [carla_msgs.CarlaActorList](ros_msgs.md#carlaactorlistmsg) -* /carla/objects — [derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs) -* /carla/status — [carla_msgs.CarlaStatus](ros_msgs.md#carlastatusmsg) -* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](ros_msgs.md#carlatrafficlightstatuslistmsg) -* /carla/world_info — [carla_msgs.CarlaWorldInfo](ros_msgs.md#carlaworldinfomsg) - - -

/rviz (Node)

-Runs an instance of RVIZ, and waits for Lidar data. - -

Subscribed to:

- -* /carla/vehicle_marker — [visualization_msgs/Marker](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/Marker.html) -* /carla/vehicle_marker_array — [visualization_msgs/MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html) -* /carla/ego_vehicle/lidar/front/point_cloud — [sensor_msgs.PointCloud2](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/PointCloud2.html) - - ---- -## carla_manual_control.launch - -A ROS version of the CARLA script `manual_control.py`. It has some prequisites. - -* __To display an image__, a camera with role-name `view` and resolution 800x600. -* __To display the position__, a gnss sensor with role-name `gnss1`. -* __To detect other sensor data__, the corresponding sensor. - - - -

/carla_manual_control_ego_vehicle (Node)

-Retrieves information from CARLA regarding the ego vehicle. Uses keyboard input to publish controller messages for the ego vehicle. The information retrieved includes static data, current state, sensor data, and simulation settings. - -

Subscribed to:

- -* /carla/ego_vehicle/camera/rgb/view/image_color — [sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html) -* /carla/ego_vehicle/collision — [carla_msgs.CarlaCollisionEvent](ros_msgs.md#carlacollisioneventmsg) -* /carla/ego_vehicle/gnss/gnss1/fix — [sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html) -* /carla/ego_vehicle/lane_invasion — [carla_msgs.CarlaLaneInvasionEvent](ros_msgs.md#carlalaneinvasioneventmsg) -* /carla/ego_vehicle/vehicle_control_manual_override — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) -* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](ros_msgs.md#carlaegovehicleinfomsg) -* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](ros_msgs.md#carlaegovehiclestatusmsg) -* /carla/status — [carla_msgs.CarlaStatus](ros_msgs.md#carlastatusmsg) - - -

Publishes in:

- -* /carla/ego_vehicle/enable_autopilot — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) -* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](ros_msgs.md#carlaegovehiclecontrolmsg) -* /carla/ego_vehicle/vehicle_control_manual_override — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) - ---- -## carla_pcl_recorder.launch -Creates a pointcloud map for the current CARLA level. An autopilot ego vehicle roams around the map with a LIDAR sensor attached. - -The point clouds are saved in the `/tmp/pcl_capture` directory. Once the capture is done, the overall size can be reduced. - -```sh -#create one point cloud file -pcl_concatenate_points_pcd /tmp/pcl_capture/*.pcd - -#filter duplicates -pcl_voxel_grid -leaf 0.1,0.1,0.1 output.pcd map.pcd - -#verify the result -pcl_viewer map.pcd -``` - -The launch file requires some functionality that is not part of the python egg-file. The PYTHONPATH has to be extended. - -```sh -export PYTHONPATH=/PythonAPI/carla/dist/carla-.egg:/PythonAPI/carla/ -``` - - -

carla_ros_bridge (Node)

-In charge of most of the communications between CARLA and ROS. Both share the current state of the simulation, traffic lights, vehicle controllers and sensor data. - -

Subscribed to:

- -* /carla/debug_marker — [visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html) -* /carla/ego_vehicle/enable_autopilot — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) -* /carla/ego_vehicle/twist — [geometry_msgs.Twist](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/Twist.html) -* /carla/ego_vehicle/vehicle_control_cmd — [carla_msgs.CarlaEgoVehicleControl](ros_msgs.md#carlaegovehiclecontrolmsg) -* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](ros_msgs.md#carlaegovehiclecontrolmsg) -* /carla/ego_vehicle/vehicle_control_manual_override — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) - -

Publishes in:

- -* /carla/actor_list — [carla_msgs.CarlaActorList](ros_msgs.md#carlaactorlistmsg) -* /carla/ego_vehicle/camera/rgb/front/camera_info — [sensor_msgs.CameraInfo](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/CameraInfo.html) -* /carla/ego_vehicle/camera/rgb/front/image_color — [sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html) -* /carla/ego_vehicle/camera/rgb/view/camera_info — [sensor_msgs.CameraInfo](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/CameraInfo.html) -* /carla/ego_vehicle/camera/rgb/view/image_color — [sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html) -* /carla/ego_vehicle/gnss/gnss1/fix — [sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html) -* /carla/ego_vehicle/imu — [sensor_msgs.Imu](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Imu.html) -* /carla/ego_vehicle/lidar/lidar1/point_cloud — [sensor_msgs.PointCloud2](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/PointCloud2.html) -* /carla/ego_vehicle/objects — [derived_object_msgs.ObjectArray](http://docs.ros.org/kinetic/api/derived_object_msgs/html/msg/ObjectArray.html) -* /carla/ego_vehicle/odometry — [nav_msgs.Odometry](http://docs.ros.org/melodic/api/nav_msgs/html/msg/Odometry.html) -* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](ros_msgs.md#carlaegovehiclestatusmsg) -* /carla/ego_vehicle/radar/front/radar — [ainstein_radar_msgs.RadarTargetArray](http://wiki.ros.org/ainstein_radar_msgs) -* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](ros_msgs.md#carlaegovehicleinfomsg) -* /carla/marker — [visualization_msgs.Marker](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/Marker.html) -* /carla/objects — [derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs) -* /carla/status — [carla_msgs.CarlaStatus](ros_msgs.md#carlastatusmsg) -* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](ros_msgs.md#carlatrafficlightstatuslistmsg) -* /carla/world_info — [carla_msgs.CarlaWorldInfo](ros_msgs.md#carlaworldinfomsg) - - -

/carla_manual_control_ego_vehicle (Node)

-Retrieves information from CARLA regarding the ego vehicle. Uses keyboard input to publish controller messages for the ego vehicle. The information retrieved includes static data, current state, sensor data, and simulation settings. - -

Subscribed to:

- -* /carla/ego_vehicle/camera/rgb/view/image_color — [sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html) -* /carla/ego_vehicle/collision — [carla_msgs.CarlaCollisionEvent](ros_msgs.md#carlacollisioneventmsg) -* /carla/ego_vehicle/gnss/gnss1/fix — [sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html) -* /carla/ego_vehicle/lane_invasion — [carla_msgs.CarlaLaneInvasionEvent](ros_msgs.md#carlalaneinvasioneventmsg) -* /carla/ego_vehicle/vehicle_control_manual_override — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) -* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](ros_msgs.md#carlaegovehicleinfomsg) -* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](ros_msgs.md#carlaegovehiclestatusmsg) -* /carla/status — [carla_msgs.CarlaStatus](ros_msgs.md#carlastatusmsg) - - -

Publishes in:

- -* /carla/ego_vehicle/enable_autopilot — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) -* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](ros_msgs.md#carlaegovehiclecontrolmsg) -* /carla/ego_vehicle/vehicle_control_manual_override — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) - - -

/carla_ego_vehicle_ego_vehicle (Node)

-Spawns an ego vehicle with sensors attached. Waits for world information. - -

Subscribed to:

- -* /carla/ego_vehicle/initialpose — [geometry_msgs/PoseWithCovarianceStamped](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/PoseWithCovarianceStamped.html) - - -

/enable_autopilot_rostopic (Node)

-Changes between autopilot and manual control modes. - -

Publishes in:

- -* /carla/ego_vehicle/enable_autopilot — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html) - - - -

/pcl_recorder_node (Node)

-Receives the cloud point data. - -

Subscribed to:

- -* /carla/ego_vehicle/lidar/lidar1/point_cloud — [sensor_msgs.PointCloud2](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/PointCloud2.html) - ---- -## carla_waypoint_publisher.launch - -Calculates a waypoint route for an ego vehicle. The route is published in `/carla//waypoints`. The goal is either read from the ROS topic `/carla//goal`, or a fixed spawnpoint is used. -The prefered way of setting a goal is to click __2D Nav Goal__ in RVIZ. - -The launch file requires some functionality that is not part of the python egg-file. The PYTHONPATH has to be extended. -```sh -export PYTHONPATH=$PYTHONPATH:/PythonAPI/carla-.egg:/PythonAPI/carla/ -``` - - -

/carla_waypoint_publisher (Node)

-Uses the current pose of the ego vehicle as starting point. If the vehicle is respawned or moved, the route is calculated again. - -

Subscribed to:

- -* /carla/world_info — [carla_msgs.CarlaWorldInfo](ros_msgs.md#carlaworldinfomsg) diff --git a/Docs/ros_msgs.md b/Docs/ros_msgs.md deleted file mode 100644 index b21f90355..000000000 --- a/Docs/ros_msgs.md +++ /dev/null @@ -1,350 +0,0 @@ -# CARLA messages reference - -The following reference lists all the CARLA messages available in the ROS bridge. - -Any doubts regarding these messages or the CARLA-ROS bridge can be solved in the forum. - -
- -

- -CARLA forum -

-
- ---- -## CarlaActorInfo.msg - -Information shared between ROS and CARLA regarding an actor. - -| Field | Type | Description | -| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | -| `id` | uint32 | The ID of the actor. | -| `parent_id` | uint32 | The ID of the parent actor. \`0\` if no parent available. | -| `type` | string | The identifier of the blueprint this actor was based on. | -| `rolename` | string | Role assigned to the actor when spawned. | - - - - ---- -## CarlaActorList.msg - -A list of messages with some basic information for CARLA actors. - -| Field | Type | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `actors` | [CarlaActorInfo](<#carlaactorinfomsg>) | List of messages with actors' information. | - - - ---- -## CarlaCollisionEvent.msg - -Data retrieved on a collision event detected by the collision sensor of an actor. - -| Field | Type | Description | -| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `header` | [Header]() | Time stamp and frame ID when the message is published. | -| `other_actor_id` | uint32 | ID of the actor against whom the collision was detected. | -| `normal_impulse` | geometry\_msgs/Vector3 | Vector representing resulting impulse from the collision. | - - - - ---- -## CarlaControl.msg - -These messages control the simulation while in synchronous mode. The constant defined is translated as stepping commands. - -| Field | Type | Description | -| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | -| `command` | int8 | **PLAY**=0
**PAUSE**=1
**STEP\_ONCE**=2 | - -
- -!!! Important - In synchronous mode, only the ROS bridge client is allowed to tick. - ---- -## CarlaEgoVehicleControl.msg - -Messages sent to apply a control to a vehicle in both modes, autopilot and manual. These are published in a stack. - -| Field | Type | Description | -| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| `header` | [Header]() | Time stamp and frame ID when the message is published. | -| `throttle` | float32 | Scalar value to cotrol the vehicle throttle: **[0.0, 1.0]** | -| `steer` | float32 | Scalar value to control the vehicle steering direction: **[-1.0, 1.0]** to control the vehicle steering | -| `brake` | float32 | Scalar value to control the vehicle brakes: **[0.0, 1.0]** | -| `hand_brake` | bool | If **True**, the hand brake is enabled. | -| `reverse` | bool | If **True**, the vehicle will move reverse. | -| `gear` | int32 | Changes between the available gears in a vehicle. | -| `manual_gear_shift` | bool | If **True**, the gears will be shifted using `gear`. | -
- ---- -## CarlaEgoVehicleInfo.msg - -Static information regarding a vehicle, mostly the attributes used to define the vehicle's physics. - -| Field | Type | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `id` | uint32 | ID of the vehicle actor. | -| `type` | string | The identifier of the blueprint this vehicle was based on. | -| `type` | string | The identifier of the blueprint this vehicle was based on. | -| `rolename` | string | Role assigned to the vehicle. | -| `wheels` | [CarlaEgoVehicleInfoWheel](<#carlaegovehicleinfowheelmsg>) | List of messages with information regarding wheels. | -| `max_rpm` | float32 | Maximum RPM of the vehicle's engine. | -| `moi` | float32 | Moment of inertia of the vehicle's engine. | -| `damping_rate_full_throttle` | float32 | Damping rate when the throttle is at maximum. | -| `damping_rate_zero_throttle`
`_clutch_engaged` | float32 | Damping rate when the throttle is zero with clutch engaged. | -| `damping_rate_zero_throttle`
`_clutch_disengaged` | float32 | Damping rate when the throttle is zero with clutch disengaged. | -| `use_gear_autobox` | bool | If **True**, the vehicle will have an automatic transmission. | -| `gear_switch_time` | float32 | Switching time between gears. | -| `clutch_strength` | float32 | The clutch strength of the vehicle. Measured in **Kgm^2/s**. | -| `mass` | float32 | The mass of the vehicle measured in Kg. | -| `drag_coefficient` | float32 | Drag coefficient of the vehicle's chassis. | -| `center_of_mass` | geometry\_msgs/Vector3 | The center of mass of the vehicle. | - - -
- - ---- -## CarlaEgoVehicleInfoWheel.msg - -Static information regarding a wheel that will be part of a [CarlaEgoVehicleInfo.msg](#carlaegovehicleinfomsg) message. - -| Field | Type | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `tire_friction` | float32 | A scalar value that indicates the friction of the wheel. | -| `damping_rate` | float32 | The damping rate of the wheel. | -| `max_steer_angle` | float32 | The maximum angle in degrees that the wheel can steer. | -| `radius` | float32 | The radius of the wheel in centimeters. | -| `max_brake_torque` | float32 | The maximum brake torque in Nm. | -| `max_handbrake_torque` | float32 | The maximum handbrake torque in Nm. | -| `position` | geometry\_msgs/Vector3 | World position of the wheel. | - - -
- ---- -## CarlaEgoVehicleStatus.msg - -Current status of the vehicle as an object in the world. - -| Field | Type | Description | -| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `header` | [Header]() | Time stamp and frame ID when the message is published. | -| `velocity` | float32 | Current speed of the vehicle. | -| `acceleration` | geometry\_msgs/Accel | Current acceleration of the vehicle. | -| `orientation` | geometry\_msgs/Quaternion | Current orientation of the vehicle. | -| `control` | [CarlaEgoVehicleControl](<#carlaegovehiclecontrolmsg>) | Current control values as reported by CARLA. | - - - -
- ---- -## CarlaLaneInvasionEvent.msg - -These messages publish lane invasions detected by a lane-invasion sensor attached to a vehicle. The invasions detected in the last step are passed as a list with a constant definition to identify the lane crossed. - - - -| Field | Type | Description | -| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | -| `header` | [header]() | Time stamp and frame ID when the message is published. | -| `crossed_lane_markings` | int32[] | **LANE\_MARKING\_OTHER**=0
**LANE\_MARKING\_BROKEN**=1
**LANE\_MARKING\_SOLID**=2 | - - -
- ---- -## CarlaScenario.msg - -Details for a test scenario. - - -| Field | Type | Description | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | -| `name` | string | Name of the scenario. | -| `scenario_file` | string | Test file for the scenario. | -| `destination` | geometry\_msgs/Pose | Goal location of the scenario. | -| `target_speed` | float64 | Desired speed during the scenario. | - - -
- ---- -## CarlaScenarioList.msg - -List of test scenarios to run in ScenarioRunner. - - -| Field | Type | Description | -| -------------------------------------- | -------------------------------------- | -------------------------------------- | -| `scenarios` | [CarlaScenario[]](<#carlascenariomsg>) | List of scenarios. | - - -
- ---- -## CarlaScenarioRunnerStatus.msg - -Current state of the ScenarioRunner. It is managed using a constant. - - -| Field | Type | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| `status` | uint8 | Current state of the scenario as an enum:
**STOPPED**=0
**STARTING**=1
**RUNNING**=2
**SHUTTINGDOWN**=3
**ERROR**=4 | - - - -## CarlaStatus.msg - -Current world settings of the simulation. - - -| Field | Type | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `frame` | uint64 | Current frame number. | -| `fixed_delta_seconds` | float32 | Simulation time between last and current step. | -| `synchronous_mode` | bool | If **True**, synchronous mode is enabled. | -| `synchronous_mode_running` | bool | **True** when the simulation is running. **False** when it is paused. | - - - -## CarlaTrafficLightStatus.msg - -Constant definition regarding the state of a traffic light. - -| Field | Type | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `id` | uint32 | ID of the traffic light actor. | -| `state` | uint8 | **RED**=0
**YELLOW**=1
**GREEN**=2
**OFF**=3
**UNKNOWN**=4 | - - - -## CarlaTrafficLightStatusList.msg - -List of traffic lights with their status. - -| Field | Type | Description | -| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | -| `scenarios` | [CarlaTrafficLightStatus[]](<#carlatrafficlightstatusmsg>) | A list of messages summarizing traffic light states. | - - - -## CarlaWalkerControl.msg - -Information needed to apply a movement controller to a walker. - -| Field | Type | Description | -| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | -| `direction` | geometry\_msgs/Vector3 | Vector that controls the direction of the walker. | -| `speed` | float32 | A scalar value to control the walker's speed. | -| `jump` | bool | If **True**, the walker will jump. | - - - -## CarlaWaypoint.msg - -Data contained in a waypoint object. - -| Field | Type | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| `road_id` | int32 | OpenDRIVE road's id. | -| `section_id` | int32 | OpenDRIVE section's id, based on the order that they are originally defined. | -| `lane_id` | int32 | OpenDRIVE lane's id, this value can be positive or negative which represents the direction of the current lane with respect to the road. | -| `is_junction` | bool | **True**, if the current Waypoint is on a junction as defined by OpenDRIVE. | -| `is_junction` | [geometry\_msgs/Pose]() | **True** when the simulation is running. **False** when it is paused. | - - - -## CarlaWorldInfo.msg - -Information about the current CARLA map. - -| Field | Type | Description | -| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | -| `map_name` | string | Name of the CARLA map loaded in the current world. | -| `opendrive` | string | .xodr OpenDRIVE file of the current map as a string. | - - - -## EgoVehicleControlCurrent.msg - -Current time, speed and acceleration values of the vehicle. Used by the controller. It is part of a `Carla_Ackermann_Control.EgoVehicleControlInfo.msg` message. - -| Field | Type | Description | -| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | -| `time_sec` | float32 | Current time when the controller is applied. | -| `speed` | float32 | Current speed applied by the controller. | -| `speed_abs` | float32 | Speed as an absolute value. | -| `accel` | float32 | Current acceleration applied by the controller. | - - - -## EgoVehicleControlInfo.msg - -Current values within an Ackermann controller. These messages are useful for debugging. - -| Field | Type | Description | -| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| `header` | [header]() | Time stamp and frame ID when the message is published. | -| `restrictions` | [EgoVehicleControlMaxima](<#egovehiclecontrolmaximamsg>) | Limits to the controller values. | -| `target` | [EgoVehicleControlTarget](<#egovehiclecontroltargetmsg>) | Limits to the controller values. | -| `current` | [EgoVehicleControlCurrent](<#egovehiclecontrolcurrentmsg>) | Limits to the controller values. | -| `status` | [EgoVehicleControlStatus](<#egovehiclecontrolstatusmsg>) | Limits to the controller values. | -| `output` | [CarlaEgoVehicleControl](<#carlaegovehiclecontrolmsg>) | Limits to the controller values. | - - - -## EgoVehicleControlMaxima.msg - -Controller restrictions (limit values). It is part of a `Carla_Ackermann_Control.EgoVehicleControlInfo.msg` message. - -| Field | Type | Description | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `max_steering_angle` | float32 | Max. steering angle for a vehicle. | -| `max_speed` | float32 | Max. speed for a vehicle. | -| `max_accel` | float32 | Max. acceleration for a vehicle. | -| `max_decel` | float32 | Max. deceleration for a vehicle. Default: **8m/s^2** | -| `min_accel` | float32 | Min. acceleration for a vehicle. When the Ackermann taget accel. exceeds this value, the input accel. is controlled. | -| `max_pedal` | float32 | Min. pedal. | - - - -## EgoVehicleControlStatus.msg - -Current status of the ego vehicle controller. It is part of a `Carla_Ackermann_Control.EgoVehicleControlInfo.msg` message. - -| Field | Type | Description | -| -------------------------------- | -------------------------------- | -------------------------------- | -| `status` | string | Current control status. | -| `speed_control_activation_count` | uint8 | Speed controller. | -| `speed_control_accel_delta` | float32 | Speed controller. | -| `speed_control_accel_target` | float32 | Speed controller. | -| `accel_control_pedal_delta` | float32 | Acceleration controller. | -| `accel_control_pedal_target` | float32 | Acceleration controller. | -| `brake_upper_border` | float32 | Borders for lay off pedal. | -| `throttle_lower_border` | float32 | Borders for lay off pedal. | - - - - -## EgoVehicleControlTarget.msg - -Target values of the ego vehicle controller. It is part of a `Carla_Ackermann_Control.EgoVehicleControlInfo.msg` message. - -| Field | Type | Description | -| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | -| `steering_angle` | float32 | Target steering angle for the controller. | -| `speed` | float32 | Target speed for the controller. | -| `speed_abs` | float32 | Speed as an absolute value. | -| `accel` | float32 | Target acceleration for the controller. | -| `jerk` | float32 | Target jerk for the controller. | - -