New iteration on docs

This commit is contained in:
sergi-e 2020-02-26 14:54:29 +01:00 committed by Marc Garcia Puig
parent 7588981727
commit 0be4c6e70d
3 changed files with 148 additions and 304 deletions

View File

@ -4,18 +4,20 @@
* [__Bridge installation__](#bridge-installation)
* a) apt-get ROS bridge
* b) Repository download
* Import error: No module named CARLA
* [__Run the ROS bridge__](#run-the-ros-bridge)
* [__Settings__](#settings)
* Import error: No module named CARLA
* [__Setting CARLA__](#setting-carla)
The ROS bridge enables communication between ROS and CARLA so that both softwares can reach full potential by combining their features.
The ROS bridge enables two-way communication between ROS and CARLA.
In order to do so, the information from the CARLA server is translated to ROS topics. For example, the information retrieved by sensors is structured to fit ROS structure.
And also vice versa, the messages sent between nodes in ROS get translated to commands to be applied in CARLA. This is commonly used to update the state of a vehicle and apply controllers.
---------------
##Requirements
<h4>ROS melodic</h4>
* __ROS Kinetic/Melodic:__ follow the official documentation to [install ROS](http://wiki.ros.org/melodic/Installation/Ubuntu). Some ROS packages could be necessary, depending on the user needs, such as [rviz](https://wiki.ros.org/ainstein_radar_rviz_plugins) to visualize ROS data.
* __CARLA:__ only __CARLA 0.9.7__ and later versions are supported. Follow the [quick start installation](../getting_started/quickstart) or make the build for the corresponding platform.
* __CARLA 0.9.7:__ only this and later versions are supported. Follow the [quick start installation](../getting_started/quickstart) or make the build for the corresponding platform.
!!! Important
Make sure that both CARLA and ROS work properly before continuing with the installation.
@ -27,13 +29,13 @@ The ROS bridge enables communication between ROS and CARLA so that both software
First add the apt repository:
* __For ROS Melodic:__
* __Bridge for ROS Melodic:__
```sh
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 81061A1A042F527D &&
sudo add-apt-repository "deb [trusted=yes] http://34.227.255.250/carla-ros-bridge-melodic/ bionic main"
```
* __For ROS Kinetic:__
* __Bridge for ROS Kinetic:__
```sh
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9BE2A0CDC0161D6C
sudo add-apt-repository "deb [trusted=yes] http://dist.carla.org/carla-ros-bridge-kinetic xenial main"
@ -47,7 +49,8 @@ sudo apt-get install carla-ros-bridge
<h4>b) Repository download</h4>
In order to work use the ROS bridge, first create a catkin workspace, instal the ROS bridge in there and build it to be available:
In order to use the ROS bridge a catkin workspace is needed. The ROS bridge should be cloned and built in there to be available.
The following fragment creates a new workspace and clones the repository in there.
```sh
#setup folder structure
mkdir -p ~/carla-ros-bridge/catkin_ws/src
@ -55,7 +58,7 @@ cd ~/carla-ros-bridge
git clone https://github.com/carla-simulator/ros-bridge.git
cd catkin_ws/src
ln -s ../../ros-bridge
source /opt/ros/kinetic/setup.bash
source /opt/ros/kinetic/setup.bash #Watch out, this sets ROS Kinetic.
cd ..
#install required ros-dependencies
@ -66,9 +69,46 @@ rosdep install --from-paths src --ignore-src -r
catkin_make
```
---------------
##Run the ROS bridge
__1) run CARLA:__ the way to do so will depend on the the CARLA installation chosen, so here is a brief summary:
* __Quick start/release package:__ run `./CarlaUE4.sh` in `/carla/`.
* __apt-get installation:__ run `./CarlaUE4.sh` in `/opt/carla/bin/`.
* __Build installation:__ run `make launch` in `/carla/`.
__2) Add the source path:__ the source path for the workspace should be added so that the ROS bridge can be used from a terminal:
* __Source for apt-get ROS bridge:__
```sh
source /opt/carla-ros-bridge/<melodic or kinetic>/setup.bash
```
* __Source for ROS bridge repository download:__
```sh
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
```
!!! Important
The source path can be added to environment to 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 that will serve to check if the bridge is running properly. 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
```
<h4>ImportError: no module named CARLA</h4>
The path to CARLA Python is missing. Please execute the following command with the complete path to the _.egg_ file (included). Use the one, that is supported by the Python version installed:
The path to CARLA Python is missing. The apt-get 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, that is supported by the Python version installed:
export PYTHONPATH=$PYTHONPATH:<path/to/carla/>/PythonAPI/<your_egg_file>
@ -82,60 +122,39 @@ python -c 'import carla;print("Success")'
---------------
##Run the ROS bridge
##Setting CARLA
__1) run CARLA:__ the way to do so will depend on the the CARLA installation chosen, so here is a brief summary:
* __Quick start/release package:__ run `./CarlaUE4.sh` in `/carla/`.
* __apt-get installation:__ run `./CarlaUE4.sh` in `/opt/carla/bin/`.
* __Build installation:__ run `make launch` in `/carla/`.
__2) __ The way to do so will depend on the the CARLA installation chosen, so here is a brief summary:
```sh
export PYTHONPATH=$PYTHONPATH:<path/to/carla/>/PythonAPI/<your_egg_file>
source ~/carla-ros-bridge/catkin_ws/devel/setup.bash
```
__3) start the ROS bridge:__ use any of the different packages available that will serve to check if the bridge is running properly. 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
```
---------------
##Settings
There is some configuration for CARLA available from the ROS bridge. This can be setup by editing the file: [`carla_ros_bridge/config/settings.yaml`](https://github.com/carla-simulator/ros-bridge/blob/master/carla_ros_bridge/config/settings.yaml).
There is some configuration for CARLA available from the ROS bridge. This can be setup by editing the file: [`share/carla_ros_bridge/config/settings.yaml`](https://github.com/carla-simulator/ros-bridge/blob/master/carla_ros_bridge/config/settings.yaml).
The parameters available refer to:
* __Ego vehicle:__ the list in `/carla/ego_vehicle/rolename` sets role names to identify ego vehicles. These will be controllable from ROS and thus, relevant topics will be created.
* __Host/port:__ the network settings to connect to CARLA using a Python client.
* __Simulation time-step:__ simulation time (delta seconds) between simulation steps. __It must be lower than 0.1__. Take a look at the [documentation](../simulation_time_and_synchrony) to learn more about this.
* __Host/port:__ the 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 sensor data that is expected within the current frame. This might slow down the overall simulation but ensures reproducible results.
* __If true:__ the bridge waits for all sensor data that is expected before the next tick. This might slow down the overall simulation but ensures reproducible results.
* __Wait for vehicle command:__ in synchronous mode, this boolean determines if a vehicle command should be received before executing the next tick.
* __Simulation time-step:__ simulation time (delta seconds) between simulation steps. __It must be lower than 0.1__. Take a look at the [documentation](../simulation_time_and_synchrony) to learn more about this.
* __Role names for the Ego vehicles:__ a 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 CARLA clients must passively wait.
<h4>Synchronous mode</h4>
* Pause/Play
* Execute single step
The following topic allows to control the stepping when in synchronous mode:
The following topic allows to control the stepping.
| Topic | Type |
| Topic | Message type |
| ---------------- | ----------------------- |
| `/carla/control` | carla_msgs.CarlaControl |
| `/carla/control` | [carla_msgs.CarlaControl](../ros_msgs#carlacontrolmsg) |
A CARLA [Control rqt plugin](https://github.com/carla-simulator/ros-bridge/blob/master/rqt_carla_control/README.md) is available to publish to the topic.
The message contains a constant named `command` that allows to:
* Pause/Play the simulation.
* Execute a single step.
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 to manage these steps and publish in the corresponding topic.
Simply run the following when CARLA is in synchronous mode:
```sh
rqt --standalone rqt_carla_control
```

View File

@ -8,16 +8,16 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/ego_vehicle/ackermann_cmd</b></font> — ackermann_msgs.AckermannDrive
* <font color="f8815c"><b>/carla/ego_vehicle/ackermann_cmd</b></font>[ackermann_msgs.AckermannDrive](http://docs.ros.org/jade/api/ackermann_msgs/html/msg/AckermannDrive.htm)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_info</b></font> — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_status</b></font> — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg)
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control_parameter_descriptions</b></font> — ???
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/control_info</b></font> — carla_ackermann_control.EgoVehicleControlInfo ???
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/parameter_updates</b></font> — ???
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/parameter_descriptions</b></font> — [dynamic_reconfigure/ConfigDescription](http://docs.ros.org/melodic/api/dynamic_reconfigure/html/msg/ConfigDescription.html)
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/control_info</b></font> — [carla_ackermann_control.EgoVehicleControlInfo](../ros_msgs#egovehiclecontrolinfomsg)
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/parameter_updates</b></font> — [dynamic_reconfigure/Config](http://wiki.ros.org/dynamic_reconfigure)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_cmd</b></font> — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg)
---------------
@ -25,15 +25,17 @@
<!---NODE-->
<h4 style="margin-bottom: 5px"> <u>carla_ros_bridge</u> <small><i>(Node)</i></small> </h4>
Publishes the data regarding the current state of the simulation: world, objects, trafic lights, actors...
Receives the debug shapes being drawn, which include: arrows, points, cubes and line strips.
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/debug_marker</b></font> — visualization_msgs.MarkerArray
* <font color="f8815c"><b>/carla/debug_marker</b></font>[visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html)
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/actor_list</b></font> — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg)
* <font color="80ba10"><b>/carla/objects</b></font> — derived_object_msgs.ObjectArrayring
* <font color="80ba10"><b>/carla/objects</b></font>[derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs)
* <font color="80ba10"><b>/carla/status</b></font> — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg)
* <font color="80ba10"><b>/carla/traffic_lights</b></font> — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist)
* <font color="80ba10"><b>/carla/world_info</b></font> — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg)
@ -47,12 +49,12 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/debug_marker</b></font> — visualization_msgs.MarkerArray
* <font color="f8815c"><b>/carla/debug_marker</b></font>[visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html)
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/actor_list</b></font> — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg)
* <font color="80ba10"><b>/carla/objects</b></font> — derived_object_msgs.ObjectArrayring
* <font color="80ba10"><b>/carla/objects</b></font>[derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs)
* <font color="80ba10"><b>/carla/status</b></font> — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg)
* <font color="80ba10"><b>/carla/traffic_lights</b></font> — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist)
* <font color="80ba10"><b>/carla/world_info</b></font> — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg)
@ -62,16 +64,16 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/ego_vehicle/ackermann_cmd</b></font> — ackermann_msgs.AckermannDrive
* <font color="f8815c"><b>/carla/ego_vehicle/ackermann_cmd</b></font>[ackermann_msgs.AckermannDrive](http://docs.ros.org/jade/api/ackermann_msgs/html/msg/AckermannDrive.htm)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_info</b></font> — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_status</b></font> — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg)
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control_parameter_descriptions</b></font> — ???
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/control_info</b></font> — carla_ackermann_control.EgoVehicleControlInfo ???
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/parameter_updates</b></font> — ???
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/parameter_descriptions</b></font> — [dynamic_reconfigure/ConfigDescription](http://docs.ros.org/melodic/api/dynamic_reconfigure/html/msg/ConfigDescription.html)
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/control_info</b></font> — [carla_ackermann_control.EgoVehicleControlInfo](../ros_msgs#egovehiclecontrolinfomsg)
* <font color="80ba10"><b>/carla/ego_vehicle/ackermann_control/parameter_updates</b></font> — [dynamic_reconfigure/Config](http://wiki.ros.org/dynamic_reconfigure)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_cmd</b></font> — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg)
--------------
@ -82,29 +84,29 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/debug_marker</b></font> — visualization_msgs.MarkerArray
* <font color="f8815c"><b>/carla/ego_vehicle/enable_autopilot</b></font> — ???
* <font color="f8815c"><b>/carla/ego_vehicle/twist</b></font> — geometry_msgs.Twist
* <font color="f8815c"><b>/carla/debug_marker</b></font>[visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html)
* <font color="f8815c"><b>/carla/ego_vehicle/enable_autopilot</b></font> — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
* <font color="f8815c"><b>/carla/ego_vehicle/twist</b></font>[geometry_msgs.Twist](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/Twist.html)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_cmd</b></font> — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_cmd_manual</b></font> — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font> — std_msgs.Bool
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font>[std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/actor_list</b></font> — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg)
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/front/camera_info</b></font> — sensor_msgs.CameraInfo
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/front/image_color</b></font> — sensor_msgs.Image
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/camera_info</b></font> — sensor_msgs.CameraInfo
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font> — sensor_msgs.Image
* <font color="80ba10"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font> — sensor_msgs.NavSatFix
* <font color="80ba10"><b>/carla/ego_vehicle/imu</b></font> — sensor_msgs.Imu
* <font color="80ba10"><b>/carla/ego_vehicle/lidar/lidar1/point_cloud</b></font> — sensor_msgs.PointCloud2
* <font color="80ba10"><b>/carla/ego_vehicle/objects</b></font> — derived_object_msgs.ObjectArray
* <font color="80ba10"><b>/carla/ego_vehicle/odometry</b></font> — nav_msgs.Odometry
* <font color="80ba10"><b>/carla/ego_vehicle/radar/front/radar</b></font> — ainstein_radar_msgs.RadarTargetArray
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/front/camera_info</b></font>[sensor_msgs.CameraInfo](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/CameraInfo.html)
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/front/image_color</b></font>[sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html)
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/camera_info</b></font>[sensor_msgs.CameraInfo](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/CameraInfo.html)
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font>[sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html)
* <font color="80ba10"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font> — [sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html)
* <font color="80ba10"><b>/carla/ego_vehicle/imu</b></font>[sensor_msgs.Imu](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Imu.html)
* <font color="80ba10"><b>/carla/ego_vehicle/lidar/lidar1/point_cloud</b></font>[sensor_msgs.PointCloud2](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/PointCloud2.html)
* <font color="80ba10"><b>/carla/ego_vehicle/objects</b></font>[derived_object_msgs.ObjectArray](http://docs.ros.org/kinetic/api/derived_object_msgs/html/msg/ObjectArray.html)
* <font color="80ba10"><b>/carla/ego_vehicle/odometry</b></font>[nav_msgs.Odometry](http://docs.ros.org/melodic/api/nav_msgs/html/msg/Odometry.html)
* <font color="80ba10"><b>/carla/ego_vehicle/radar/front/radar</b></font>[ainstein_radar_msgs.RadarTargetArray](http://wiki.ros.org/ainstein_radar_msgs)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_info</b></font> — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_status</b></font> — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg)
* <font color="80ba10"><b>/carla/objects</b></font> — derived_object_msgs.ObjectArrayring
* <font color="80ba10"><b>/carla/objects</b></font>[derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs)
* <font color="80ba10"><b>/carla/status</b></font> — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg)
* <font color="80ba10"><b>/carla/traffic_lights</b></font> — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist)
* <font color="80ba10"><b>/carla/world_info</b></font> — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg)
@ -115,11 +117,11 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font> — sensor_msgs.Image
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font>[sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html)
* <font color="80ba10"><b>/carla/ego_vehicle/collision</b></font> — [carla_msgs.CarlaCollisionEvent](../ros_msgs#carlacollisioneventmsg)
* <font color="80ba10"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font> — sensor_msgs.NavSatFix
* <font color="80ba10"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font>[sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html)
* <font color="80ba10"><b>/carla/ego_vehicle/lane_invasion</b></font> — [carla_msgs.CarlaLaneInvasionEvent](../ros_msgs#carlalaneinvasioneventmsg)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font> — std_msgs.Bool
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font>[std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_info</b></font> — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_status</b></font> — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg)
* <font color="80ba10"><b>/carla/status</b></font> — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg)
@ -127,16 +129,16 @@
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="f8815c"><b>/carla/ego_vehicle/enable_autopilot</b></font> — ???
* <font color="f8815c"><b>/carla/ego_vehicle/enable_autopilot</b></font> — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_cmd_manual</b></font> — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font> — std_msgs.Bool
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font>[std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
<!---NODE-->
<h4 style="margin-bottom: 5px"> <u>/carla_ego_vehicle_ego_vehicle</u> <small><i>(Node)</i></small> </h4>
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/ego_vehicle/initialpose</b></font> — ???
* <font color="f8815c"><b>/carla/ego_vehicle/initialpose</b></font> — [geometry_msgs/PoseWithCovarianceStamped](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/PoseWithCovarianceStamped.html)
---------------
@ -147,12 +149,12 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/debug_marker</b></font> — visualization_msgs.MarkerArray
* <font color="f8815c"><b>/carla/debug_marker</b></font>[visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html)
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/actor_list</b></font> — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg)
* <font color="80ba10"><b>/carla/objects</b></font> — derived_object_msgs.ObjectArrayring
* <font color="80ba10"><b>/carla/objects</b></font>[derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs)
* <font color="80ba10"><b>/carla/status</b></font> — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg)
* <font color="80ba10"><b>/carla/traffic_lights</b></font> — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist)
* <font color="80ba10"><b>/carla/world_info</b></font> — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg)
@ -162,24 +164,34 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/vehicle_marker</b></font> — ???
* <font color="f8815c"><b>/carla/vehicle_marker_array</b></font> — ???
* <font color="f8815c"><b>/carla/ego_vehicle/lidar/front/point_cloud</b></font> — sensor_msgs.PointCloud2
* <font color="f8815c"><b>/carla/vehicle_marker</b></font> — [visualization_msgs/Marker](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/Marker.html)
* <font color="f8815c"><b>/carla/vehicle_marker_array</b></font> — [visualization_msgs/MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html)
* <font color="f8815c"><b>/carla/ego_vehicle/lidar/front/point_cloud</b></font>[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` that receives and manages the information using ROS topics. It has some prerequisites:
* 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.
<!---NODE-->
<h4 style="margin-bottom: 5px"> <u>/carla_manual_control_ego_vehicle</u> <small><i>(Node)</i></small> </h4>
Retrieves from CARLA information regarding the ego vehicle. Uses keyboard input to publish messages containing the controller data to manage the ego vehicle.
The information retrieved includes both static and current state, the sensor data registered on every step and the general settings of the simulation.
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font> — sensor_msgs.Image
* <font color="f8815c"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font>[sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html)
* <font color="f8815c"><b>/carla/ego_vehicle/collision</b></font> — [carla_msgs.CarlaCollisionEvent](../ros_msgs#carlacollisioneventmsg)
* <font color="f8815c"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font> — sensor_msgs.NavSatFix
* <font color="f8815c"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font>[sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html)
* <font color="f8815c"><b>/carla/ego_vehicle/lane_invasion</b></font> — [carla_msgs.CarlaLaneInvasionEvent](../ros_msgs#carlalaneinvasioneventmsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font> — std_msgs.Bool
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font>[std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_info</b></font> — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_status</b></font> — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg)
* <font color="f8815c"><b>/carla/status</b></font> — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg)
@ -187,9 +199,9 @@
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/ego_vehicle/enable_autopilot</b></font> — ???
* <font color="80ba10"><b>/carla/ego_vehicle/enable_autopilot</b></font> — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_cmd_manual</b></font> — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font> — std_msgs.Bool
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font>[std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
--------------
##carla_pcl_recorder.launch
@ -199,30 +211,30 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/debug_marker</b></font> — visualization_msgs.MarkerArray
* <font color="f8815c"><b>/carla/ego_vehicle/enable_autopilot</b></font> — ???
* <font color="f8815c"><b>/carla/ego_vehicle/twist</b></font> — geometry_msgs.Twist
* <font color="f8815c"><b>/carla/debug_marker</b></font>[visualization_msgs.MarkerArray](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/MarkerArray.html)
* <font color="f8815c"><b>/carla/ego_vehicle/enable_autopilot</b></font> — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
* <font color="f8815c"><b>/carla/ego_vehicle/twist</b></font>[geometry_msgs.Twist](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/Twist.html)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_cmd</b></font> — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_cmd_manual</b></font> — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font> — std_msgs.Bool
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font>[std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/actor_list</b></font> — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg)
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/front/camera_info</b></font> — sensor_msgs.CameraInfo
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/front/image_color</b></font> — sensor_msgs.Image
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/camera_info</b></font> — sensor_msgs.CameraInfo
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font> — sensor_msgs.Image
* <font color="80ba10"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font> — sensor_msgs.NavSatFix
* <font color="80ba10"><b>/carla/ego_vehicle/imu</b></font> — sensor_msgs.Imu
* <font color="80ba10"><b>/carla/ego_vehicle/lidar/lidar1/point_cloud</b></font> — sensor_msgs.PointCloud2
* <font color="80ba10"><b>/carla/ego_vehicle/objects</b></font> — derived_object_msgs.ObjectArray
* <font color="80ba10"><b>/carla/ego_vehicle/odometry</b></font> — nav_msgs.Odometry
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/front/camera_info</b></font>[sensor_msgs.CameraInfo](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/CameraInfo.html)
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/front/image_color</b></font>[sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html)
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/camera_info</b></font>[sensor_msgs.CameraInfo](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/CameraInfo.html)
* <font color="80ba10"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font>[sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html)
* <font color="80ba10"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font> — [sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html)
* <font color="80ba10"><b>/carla/ego_vehicle/imu</b></font>[sensor_msgs.Imu](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Imu.html)
* <font color="80ba10"><b>/carla/ego_vehicle/lidar/lidar1/point_cloud</b></font>[sensor_msgs.PointCloud2](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/PointCloud2.html)
* <font color="80ba10"><b>/carla/ego_vehicle/objects</b></font>[derived_object_msgs.ObjectArray](http://docs.ros.org/kinetic/api/derived_object_msgs/html/msg/ObjectArray.html)
* <font color="80ba10"><b>/carla/ego_vehicle/odometry</b></font>[nav_msgs.Odometry](http://docs.ros.org/melodic/api/nav_msgs/html/msg/Odometry.html)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_status</b></font> — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg)
* <font color="80ba10"><b>/carla/ego_vehicle/radar/front/radar</b></font> — ainstein_radar_msgs.RadarTargetArray
* <font color="80ba10"><b>/carla/ego_vehicle/radar/front/radar</b></font>[ainstein_radar_msgs.RadarTargetArray](http://wiki.ros.org/ainstein_radar_msgs)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_info</b></font> — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg)
* <font color="80ba10"><b>/carla/marker</b></font> — visualization_msgs.Marker
* <font color="80ba10"><b>/carla/objects</b></font> — derived_object_msgs.ObjectArrayring
* <font color="80ba10"><b>/carla/marker</b></font>[visualization_msgs.Marker](http://docs.ros.org/melodic/api/visualization_msgs/html/msg/Marker.html)
* <font color="80ba10"><b>/carla/objects</b></font>[derived_object_msgs.ObjectArrayring](http://wiki.ros.org/derived_object_msgs)
* <font color="80ba10"><b>/carla/status</b></font> — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg)
* <font color="80ba10"><b>/carla/traffic_lights</b></font> — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist)
* <font color="80ba10"><b>/carla/world_info</b></font> — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg)
@ -232,11 +244,11 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font> — sensor_msgs.Image
* <font color="f8815c"><b>/carla/ego_vehicle/camera/rgb/view/image_color</b></font>[sensor_msgs.Image](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/Image.html)
* <font color="f8815c"><b>/carla/ego_vehicle/collision</b></font> — [carla_msgs.CarlaCollisionEvent](../ros_msgs#carlacollisioneventmsg)
* <font color="f8815c"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font> — sensor_msgs.NavSatFix
* <font color="f8815c"><b>/carla/ego_vehicle/gnss/gnss1/fix</b></font> — [sensor_msgs.NavSatFix](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/NavSatFix.html)
* <font color="f8815c"><b>/carla/ego_vehicle/lane_invasion</b></font> — [carla_msgs.CarlaLaneInvasionEvent](../ros_msgs#carlalaneinvasioneventmsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font> — std_msgs.Bool
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font>[std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_info</b></font> — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg)
* <font color="f8815c"><b>/carla/ego_vehicle/vehicle_status</b></font> — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg)
* <font color="f8815c"><b>/carla/status</b></font> — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg)
@ -244,23 +256,23 @@
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/ego_vehicle/enable_autopilot</b></font> — ???
* <font color="80ba10"><b>/carla/ego_vehicle/enable_autopilot</b></font> — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_cmd_manual</b></font> — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg)
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font> — std_msgs.Bool
* <font color="80ba10"><b>/carla/ego_vehicle/vehicle_control_manual_override</b></font>[std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
<!---NODE-->
<h4 style="margin-bottom: 5px"> <u>/carla_ego_vehicle_ego_vehicle</u> <small><i>(Node)</i></small> </h4>
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="f8815c"><b>/carla/ego_vehicle/initialpose</b></font> — ???
* <font color="f8815c"><b>/carla/ego_vehicle/initialpose</b></font> — [geometry_msgs/PoseWithCovarianceStamped](http://docs.ros.org/melodic/api/geometry_msgs/html/msg/PoseWithCovarianceStamped.html)
<!---NODE-->
<h4 style="margin-bottom: 5px"> <u>/enable_autopilot_rostopic</u> <small><i>(Node)</i></small> </h4>
<p style="margin-top:-10px;margin-bottom:-5px"> <b>Publishes in:</b> </p>
* <font color="80ba10"><b>/carla/ego_vehicle/enable_autopilot</b></font> — ???
* <font color="80ba10"><b>/carla/ego_vehicle/enable_autopilot</b></font> — [std_msgs.Bool](http://docs.ros.org/melodic/api/std_msgs/html/msg/Bool.html)
<!---NODE-->
@ -268,7 +280,7 @@
<p style="margin-bottom:-5px"> <b>Subscribed to:</b> </p>
* <font color="80ba10"><b>/carla/ego_vehicle/lidar/lidar1/point_cloud</b></font> — sensor_msgs.PointCloud2
* <font color="80ba10"><b>/carla/ego_vehicle/lidar/lidar1/point_cloud</b></font>[sensor_msgs.PointCloud2](http://docs.ros.org/melodic/api/sensor_msgs/html/msg/PointCloud2.html)
--------------
##carla_waypoint_publisher.launch

View File

@ -1,187 +0,0 @@
<h1>Supported features</h1>
The ROS bridge enables communication between ROS and CARLA so that both softwares can reach full potential by combining their features.
* [__Listed features__](#listed-features)
* [__ROS packages__](#ros_packages)
* [__ROS topics__](#ros_topics)
---------------
##Listed features
* __Sensors:__
* Lidar.
* Cameras (depth, RGB and segmentation).
* __Messages:__
* Transform publications.
* Manual control using Ackerman msg.
* Marker/bounding box messages for cars/pedestirans.
* __Other:__
* Synchronous mode in CARLA.
* Handling ROS dependencies.
* Add traffic lights.
---------------
##ROS packages
<h4> CARLA ego vehicle </h4>
`carla_ego_vehicle` provides a generic way to spawn an ego vehicle and attach sensors to it. You can find further documentation [here](carla_ego_vehicle/README.md).
<h4> CARLA infrastructure sensors </h4>
`carla_infrastructure` provides a generic way to spawn a set of infrastructure sensors defined in a config file. You can find further documentation [here](carla_infrastructure/README.md).
<h4> Waypoint calculation </h4>
To make use of the Carla waypoint calculation a ROS Node is available to get waypoints. You can find further documentation [here](carla_waypoint_publisher/README.md).
---------------
##ROS topics
<h4> Synchronous mode </h4>
It is possible to control the simulation execution:
- Pause/Play
- Execute single step
The following topic allows to control the stepping.
| Topic | Type |
| ---------------- | ---------------------------------------------------------- |
| `/carla/control` | [carla_msgs.CarlaControl](carla_msgs/msg/CarlaControl.msg) |
A [CARLA Control rqt plugin](rqt_carla_control/README.md) is available to publish to the topic.
<h4> Ego Vehicle </h4>
<h5> Sensors </h5>
The ego vehicle sensors are provided via topics with prefix /carla/ego_vehicle/&lt;sensor_topic>
Currently the following sensors are supported:
Publish GNSS location, collision events...
| Sensor | Topic | Type |
| | -------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| __Camera__ | `/carla/<ROLE NAME>/camera/rgb/<SENSOR ROLE NAME>/image_color` | [sensor_msgs.Image](http://docs.ros.org/api/sensor_msgs/html/msg/Image.html) |
| __Camera__ | `/carla/<ROLE NAME>/camera/rgb/<SENSOR ROLE NAME>/camera_info` | [sensor_msgs.CameraInfo](http://docs.ros.org/api/sensor_msgs/html/msg/CameraInfo.html) |
| __Lidar__ | `/carla/<ROLE NAME>/lidar/<SENSOR ROLE NAME>/point_cloud` | [sensor_msgs.PointCloud2](http://docs.ros.org/api/sensor_msgs/html/msg/PointCloud2.html) |
| __Radar__ | `/carla/<ROLE NAME>/radar/<SENSOR ROLE NAME>/radar` | [ainstein_radar_msgs.RadarTargetArray](https://github.com/AinsteinAI/ainstein_radar/blob/master/ainstein_radar_msgs/msg/RadarTargetArray.msg) |
| __IMU__ | `/carla/<ROLE NAME>/imu` | [sensor_msgs.Imu](https://docs.ros.org/melodic/api/sensor_msgs/html/msg/Imu.html) |
| __GNSS__ | `/carla/<ROLE NAME>/gnss/<SENSOR ROLE NAME>/fix` | [sensor_msgs.NavSatFix](http://docs.ros.org/api/sensor_msgs/html/msg/NavSatFix.html) |
| __Collision__ | `/carla/<ROLE NAME>/collision` | [carla_msgs.CarlaCollisionEvent](carla_msgs/msg/CarlaCollisionEvent.msg) |
|__Lane invasion__ | `/carla/<ROLE NAME>/lane_invasion` | [carla_msgs.CarlaLaneInvasionEvent](carla_msgs/msg/CarlaLaneInvasionEvent.msg) |
!!! Note
Radar data can be visualized on rviz using [ainstein_radar_rviz_plugins](https://wiki.ros.org/ainstein_radar_rviz_plugins).
<h5> Object sensor </h5>
| Topic | Type | Description |
| ---------------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| `/carla/<ROLE NAME>/objects` | [derived_object_msgs.ObjectArray](http://docs.ros.org/api/derived_object_msgs/html/msg/ObjectArray.html) | all vehicles and walkers, except the ego vehicle |
<h5> Control </h5>
| Topic | Type |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| `/carla/<ROLE NAME>/vehicle_control_cmd` (subscriber) | [carla_msgs.CarlaEgoVehicleControl](carla_msgs/msg/CarlaEgoVehicleControl.msg) |
| `/carla/<ROLE NAME>/vehicle_control_cmd_manual` (subscriber) | [carla_msgs.CarlaEgoVehicleControl](carla_msgs/msg/CarlaEgoVehicleControl.msg) |
| `/carla/<ROLE NAME>/vehicle_control_manual_override` (subscriber) | [std_msgs.Bool](http://docs.ros.org/api/std_msgs/html/msg/Bool.html) |
| `/carla/<ROLE NAME>/vehicle_status` | [carla_msgs.CarlaEgoVehicleStatus](carla_msgs/msg/CarlaEgoVehicleStatus.msg) |
| `/carla/<ROLE NAME>/vehicle_info` | [carla_msgs.CarlaEgoVehicleInfo](carla_msgs/msg/CarlaEgoVehicleInfo.msg) |
There are two modes to control the vehicle.
1. Normal Mode (reading commands from `/carla/<ROLE NAME>/vehicle_control_cmd`)
2. Manual Mode (reading commands from `/carla/<ROLE NAME>/vehicle_control_cmd_manual`)
This allows to manually override a Vehicle Control Commands published by a software stack. You can toggle between the two modes by publishing to `/carla/<ROLE NAME>/vehicle_control_manual_override`.
[carla_manual_control](carla_manual_control/) makes use of this feature.
For testing purposes, you can stear the ego vehicle from the commandline by publishing to the topic `/carla/<ROLE NAME>/vehicle_control_cmd`.
Examples for a ego vehicle with role_name 'ego_vehicle':
Max forward throttle:
rostopic pub /carla/ego_vehicle/vehicle_control_cmd carla_msgs/CarlaEgoVehicleControl "{throttle: 1.0, steer: 0.0}" -r 10
Max forward throttle with max steering to the right:
rostopic pub /carla/ego_vehicle/vehicle_control_cmd carla_msgs/CarlaEgoVehicleControl "{throttle: 1.0, steer: 1.0}" -r 10
The current status of the vehicle can be received via topic `/carla/<ROLE NAME>/vehicle_status`.
Static information about the vehicle can be received via `/carla/<ROLE NAME>/vehicle_info`
<h6> Sensors </h6>
| Topic | Type |
| ------------------------------------------- | -------------------------------------------------------------------------------- |
| `/carla/<ROLE NAME>/twist_cmd` (subscriber) | [geometry_msgs.Twist](http://docs.ros.org/api/geometry_msgs/html/msg/Twist.html) |
CAUTION: This control method does not respect the vehicle constraints. It allows movements impossible in the real world, like flying or rotating.
You can also control the vehicle via publishing linear and angular velocity within a Twist datatype.
Currently this method applies the complete linear vector, but only the yaw from angular vector.
<h6> Ackermann control </h6>
In certain cases, the [Carla Control Command](carla_msgs/msg/CarlaEgoVehicleControl.msg) is not ideal to connect to an AD stack.
Therefore a ROS-based node `carla_ackermann_control` is provided which reads [AckermannDrive](http://docs.ros.org/api/ackermann_msgs/html/msg/AckermannDrive.html) messages.
You can find further documentation [here](carla_ackermann_control/README.md).
<h4> Other actors </h4>
| Topic | Type | Description |
| ------------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------- |
| `/carla/objects` | [derived_object_msgs.ObjectArray](http://docs.ros.org/api/derived_object_msgs/html/msg/ObjectArray.html) | all vehicles and walkers |
| `/carla/marker` | [visualization_msgs.Marker](http://docs.ros.org/api/visualization_msgs/html/msg/Marker.html) | visualization of vehicles and walkers |
| `/carla/actor_list` | [carla_msgs.CarlaActorList](carla_msgs/msg/CarlaActorList.msg) | list of all carla actors |
| `/carla/traffic_lights` | [carla_msgs.CarlaTrafficLightStatusList](carla_msgs/msg/CarlaTrafficLightStatusList.msg) | list of all traffic lights with their status |
<h4> Status of CARLA </h4>
| Topic | Type | Description |
| ------------------- | -------------------------------------------------------------- | ------------------------------------------------------ |
| `/carla/status` | [carla_msgs.CarlaStatus](carla_msgs/msg/CarlaStatus.msg) | |
| `/carla/world_info` | [carla_msgs.CarlaWorldInfo](carla_msgs/msg/CarlaWorldInfo.msg) | Info about the CARLA world/level (e.g. OPEN Drive map) |
<h4> Walkers </h4>
| Topic | Type | Description |
| ---------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------ |
| `/carla/walker/<ID>/walker_control_cmd` (subscriber) | [carla_msgs.CarlaWalkerControl](carla_msgs/msg/CarlaWalkerControl.msg) | Control a walker |
| `/carla/walker/<ID>/odometry` | [nav_msgs.Odometry](http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html) | odometry of walker |
<h4> Other vehicles </h4>
| Topic | Type | Description |
| ------------------------------ | ---------------------------------------------------------------------------- | ------------------- |
| `/carla/vehicle/<ID>/odometry` | [nav_msgs.Odometry](http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html) | odometry of vehicle |
<h4> Debug marker </h4>
It is possible to draw markers in CARLA.
Caution: Markers might affect the data published by sensors.
The following markers are supported in 'map'-frame:
- Arrow (specified by two points)
- Points
- Cube
- Line Strip
| Topic | Type | Description |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------- |
| `/carla/debug_marker` (subscriber) | [visualization_msgs.MarkerArray](http://docs.ros.org/api/visualization_msgs/html/msg/MarkerArray.html) | draw markers in CARLA world |