carla/Docs/ros_launchs.md

30 KiB

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. It can be installed using:

pip install --user simple-pid

Initial parameters can be set in: share/carla_ackermann_control/config/settings.yaml.
It is possible to modify the parameters during runtime via ROS dynamic reconfigure.

/carla_ackermann_control_ego_vehicle (Node)

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

Subscribed to:

Publishes in:


carla_ego_vehicle.launch

Spawns an ego vehicle (role-name="ego_vehicle"). To describe the sensors attached to the vehicle, the sensor_definition_file argument is used. This contains the location of a .json file describing sensors attached to the vehicle. The format for this file is explained here.
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_example_ego_vehicle.launch

Based on carla_ego_vehicle.launch, spawns an ego vehicle (role-name="ego_vehicle") using a provided file describing the sensors. Said file can be found in: share/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_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_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: world, objects, trafic lights, actors... Receives the debug shapes being drawn, which include: arrows, points, cubes and line strips.

Subscribed to:

Publishes in:


carla_ros_bridge_with_ackermann_control.launch

Launches two basic nodes, one to retrieve simulation data and another one to control a vehicle using AckermannDrive messages.

carla_ros_bridge (Node)

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.10px

Subscribed to:

Publishes in:

/carla_ackermann_control_ego_vehicle (Node)

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

Subscribed to:

Publishes in:


carla_ros_bridge_with_example_ego_vehicle.launch

Spawns an ego vehicle with sensors attached and starts communications between CARLA and ROS sharing current simulation state, sensor and ego vehicle data. The ego vehicle is set ready to be used in manual control.

carla_ros_bridge (Node)

This node is in charge of most of the communications between CARLA and ROS for both the current state of the simulation, traffic lights, vehicle controllers and sensor data.

Subscribed to:

Publishes in:

/carla_manual_control_ego_vehicle (Node)

Retrieves information from CARLA 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.

Subscribed to:

Publishes in:

/carla_ego_vehicle_ego_vehicle (Node)

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

Subscribed to:


carla_ros_bridge_with_rviz.launch

Starts some basic communications between CARLA and ROS and launches an instance of RVIZ ready to retrieve Lidar data.

carla_ros_bridge (Node)

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

Subscribed to:

Publishes in:

/rviz (Node)

Runs an instance of RVIZ waiting for Lidar data.

Subscribed to:


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.

/carla_manual_control_ego_vehicle (Node)

Retrieves information from CARLA 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.

Subscribed to:

Publishes in:


carla_pcl_recorder.launch

Creates a pointcloud map for the current CARLA level by letting an ego vehicle in autopilot mode roam around with a Lidar sensor attached.
The captured point clouds are saved in the /tmp/pcl_capture directory. Once the capture is done, the overall size can be reduced:

#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

In order to run it, the launch file requires some functionality that is not part of the python egg-file, so the PYTHONPATH has to be extended:

export PYTHONPATH=<path-to-carla>/PythonAPI/carla/dist/carla-<version_and_arch>.egg:<path-to-carla>/PythonAPI/carla/

carla_ros_bridge (Node)

This node is in charge of most of the communications between CARLA and ROS for both the current state of the simulation, traffic lights, vehicle controllers and sensor data.

Subscribed to:

Publishes in:

/carla_manual_control_ego_vehicle (Node)

Retrieves information from CARLA 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.

Subscribed to:

Publishes in:

/carla_ego_vehicle_ego_vehicle (Node)

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

Subscribed to:

/enable_autopilot_rostopic (Node)

Changes between autopilot and manual control modes.

Publishes in:

/pcl_recorder_node (Node)

Receives the cloud point data to map the surroundings.

Subscribed to:


carla_waypoint_publisher.launch

Calculates a waypoint route for an ego vehicle.
The calculated route is published in: /carla/<ego vehicle name>/waypoints.
The goal is either read from the ROS topic /carla/<ROLE NAME>/goal, if available, or a fixed spawnpoint is used.
The prefered way of setting a goal is to click 2D Nav Goal in RVIZ.

In order to run it, the launch file requires some functionality that is not part of the python egg-file, so the PYTHONPATH has to be extended:

export PYTHONPATH=$PYTHONPATH:<path-to-carla>/PythonAPI/carla-<carla_version_and_arch>.egg:<path-to-carla>/PythonAPI/carla/

/carla_waypoint_publisher (Node)

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

Subscribed to: