diff --git a/Docs/ros_installation.md b/Docs/ros_installation.md index b457098c0..94411cead 100644 --- a/Docs/ros_installation.md +++ b/Docs/ros_installation.md @@ -14,8 +14,8 @@ The ROS bridge enables communication between ROS and CARLA so that both software ##Requirements

ROS melodic

- * __ROS melodic:__ follow the official documentation to [install ROS](http://wiki.ros.org/melodic/Installation/Ubuntu). - * __CARLA:__ any version later than __XX__ should work properly. Follow the [quick start installation](../getting_started/quickstart) or make the build for the corresponding platform. + * __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. !!! Important Make sure that both CARLA and ROS work properly before continuing with the installation. @@ -25,12 +25,20 @@ The ROS bridge enables communication between ROS and CARLA so that both software

a) apt-get ROS bridge

-First add the apt repository +First add the apt repository: + +* __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:__ +```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" +``` + Then simply install the ROS bridge: ```sh sudo apt-get update && diff --git a/Docs/ros_launchs.md b/Docs/ros_launchs.md new file mode 100644 index 000000000..87495561f --- /dev/null +++ b/Docs/ros_launchs.md @@ -0,0 +1,281 @@ +

CARLA launch

+ +-------------- +##carla_ackermann_control.launch + + +

/carla_ackermann_control_ego_vehicle (Node)

+ +

Subscribed to:

+ +* /carla/ego_vehicle/ackermann_cmd — ackermann_msgs.AckermannDrive +* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg) +* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg) + + +

Publishes in:

+ +* /carla/ego_vehicle/ackermann_control_parameter_descriptions — ??? +* /carla/ego_vehicle/ackermann_control/control_info — carla_ackermann_control.EgoVehicleControlInfo ??? +* /carla/ego_vehicle/ackermann_control/parameter_updates — ??? +* /carla/ego_vehicle/vehicle_control_cmd — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg) + +--------------- +##carla_ros_bridge.launch + + +

carla_ros_bridge (Node)

+ +

Subscribed to:

+ +* /carla/debug_marker — visualization_msgs.MarkerArray + +

Publishes in:

+ +* /carla/actor_list — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg) +* /carla/objects — derived_object_msgs.ObjectArrayring +* /carla/status — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg) +* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist) +* /carla/world_info — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg) + + +-------------- +##carla_ros_bridge_with_ackermann_control.launch + + +

carla_ros_bridge (Node)

+ +

Subscribed to:

+ +* /carla/debug_marker — visualization_msgs.MarkerArray + +

Publishes in:

+ +* /carla/actor_list — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg) +* /carla/objects — derived_object_msgs.ObjectArrayring +* /carla/status — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg) +* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist) +* /carla/world_info — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg) + + +

/carla_ackermann_control_ego_vehicle (Node)

+ +

Subscribed to:

+ +* /carla/ego_vehicle/ackermann_cmd — ackermann_msgs.AckermannDrive +* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg) +* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg) + + +

Publishes in:

+ +* /carla/ego_vehicle/ackermann_control_parameter_descriptions — ??? +* /carla/ego_vehicle/ackermann_control/control_info — carla_ackermann_control.EgoVehicleControlInfo ??? +* /carla/ego_vehicle/ackermann_control/parameter_updates — ??? +* /carla/ego_vehicle/vehicle_control_cmd — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg) + +-------------- +##carla_ros_bridge_with_example_ego_vehicle.launch + + +

carla_ros_bridge (Node)

+ +

Subscribed to:

+ +* /carla/debug_marker — visualization_msgs.MarkerArray +* /carla/ego_vehicle/enable_autopilot — ??? +* /carla/ego_vehicle/twist — geometry_msgs.Twist +* /carla/ego_vehicle/vehicle_control_cmd — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg) +* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg) +* /carla/ego_vehicle/vehicle_control_manual_override — std_msgs.Bool + +

Publishes in:

+ +* /carla/actor_list — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg) +* /carla/ego_vehicle/camera/rgb/front/camera_info — sensor_msgs.CameraInfo +* /carla/ego_vehicle/camera/rgb/front/image_color — sensor_msgs.Image +* /carla/ego_vehicle/camera/rgb/view/camera_info — sensor_msgs.CameraInfo +* /carla/ego_vehicle/camera/rgb/view/image_color — sensor_msgs.Image +* /carla/ego_vehicle/gnss/gnss1/fix — sensor_msgs.NavSatFix +* /carla/ego_vehicle/imu — sensor_msgs.Imu +* /carla/ego_vehicle/lidar/lidar1/point_cloud — sensor_msgs.PointCloud2 +* /carla/ego_vehicle/objects — derived_object_msgs.ObjectArray +* /carla/ego_vehicle/odometry — nav_msgs.Odometry +* /carla/ego_vehicle/radar/front/radar — ainstein_radar_msgs.RadarTargetArray +* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg) +* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg) +* /carla/objects — derived_object_msgs.ObjectArrayring +* /carla/status — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg) +* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist) +* /carla/world_info — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg) + + + +

/carla_manual_control_ego_vehicle (Node)

+ +

Subscribed to:

+ +* /carla/ego_vehicle/camera/rgb/view/image_color — sensor_msgs.Image +* /carla/ego_vehicle/collision — [carla_msgs.CarlaCollisionEvent](../ros_msgs#carlacollisioneventmsg) +* /carla/ego_vehicle/gnss/gnss1/fix — sensor_msgs.NavSatFix +* /carla/ego_vehicle/lane_invasion — [carla_msgs.CarlaLaneInvasionEvent](../ros_msgs#carlalaneinvasioneventmsg) +* /carla/ego_vehicle/vehicle_control_manual_override — std_msgs.Bool +* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg) +* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg) +* /carla/status — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg) + + +

Publishes in:

+ +* /carla/ego_vehicle/enable_autopilot — ??? +* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg) +* /carla/ego_vehicle/vehicle_control_manual_override — std_msgs.Bool + + +

/carla_ego_vehicle_ego_vehicle (Node)

+ +

Subscribed to:

+ +* /carla/ego_vehicle/initialpose — ??? + + +--------------- +##carla_ros_bridge_with_rviz.launch + + +

carla_ros_bridge (Node)

+ +

Subscribed to:

+ +* /carla/debug_marker — visualization_msgs.MarkerArray + +

Publishes in:

+ +* /carla/actor_list — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg) +* /carla/objects — derived_object_msgs.ObjectArrayring +* /carla/status — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg) +* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist) +* /carla/world_info — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg) + + +

/rviz (Node)

+ +

Subscribed to:

+ +* /carla/vehicle_marker — ??? +* /carla/vehicle_marker_array — ??? +* /carla/ego_vehicle/lidar/front/point_cloud — sensor_msgs.PointCloud2 + + +-------------- +##carla_manual_control.launch + + +

/carla_manual_control_ego_vehicle (Node)

+ +

Subscribed to:

+ +* /carla/ego_vehicle/camera/rgb/view/image_color — sensor_msgs.Image +* /carla/ego_vehicle/collision — [carla_msgs.CarlaCollisionEvent](../ros_msgs#carlacollisioneventmsg) +* /carla/ego_vehicle/gnss/gnss1/fix — sensor_msgs.NavSatFix +* /carla/ego_vehicle/lane_invasion — [carla_msgs.CarlaLaneInvasionEvent](../ros_msgs#carlalaneinvasioneventmsg) +* /carla/ego_vehicle/vehicle_control_manual_override — std_msgs.Bool +* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg) +* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg) +* /carla/status — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg) + + +

Publishes in:

+ +* /carla/ego_vehicle/enable_autopilot — ??? +* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg) +* /carla/ego_vehicle/vehicle_control_manual_override — std_msgs.Bool + +-------------- +##carla_pcl_recorder.launch + + +

carla_ros_bridge (Node)

+ +

Subscribed to:

+ +* /carla/debug_marker — visualization_msgs.MarkerArray +* /carla/ego_vehicle/enable_autopilot — ??? +* /carla/ego_vehicle/twist — geometry_msgs.Twist +* /carla/ego_vehicle/vehicle_control_cmd — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg) +* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg) +* /carla/ego_vehicle/vehicle_control_manual_override — std_msgs.Bool + +

Publishes in:

+ +* /carla/actor_list — [carla_msgs.CarlaActorList](../ros_msgs#carlaactorlistmsg) +* /carla/ego_vehicle/camera/rgb/front/camera_info — sensor_msgs.CameraInfo +* /carla/ego_vehicle/camera/rgb/front/image_color — sensor_msgs.Image +* /carla/ego_vehicle/camera/rgb/view/camera_info — sensor_msgs.CameraInfo +* /carla/ego_vehicle/camera/rgb/view/image_color — sensor_msgs.Image +* /carla/ego_vehicle/gnss/gnss1/fix — sensor_msgs.NavSatFix +* /carla/ego_vehicle/imu — sensor_msgs.Imu +* /carla/ego_vehicle/lidar/lidar1/point_cloud — sensor_msgs.PointCloud2 +* /carla/ego_vehicle/objects — derived_object_msgs.ObjectArray +* /carla/ego_vehicle/odometry — nav_msgs.Odometry +* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg) +* /carla/ego_vehicle/radar/front/radar — ainstein_radar_msgs.RadarTargetArray +* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg) +* /carla/marker — visualization_msgs.Marker +* /carla/objects — derived_object_msgs.ObjectArrayring +* /carla/status — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg) +* /carla/traffic_lights — [carla_msgs.CarlaTrafficLightStatusList](../ros_msgs#carlatrafficlightstatuslist) +* /carla/world_info — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg) + + +

/carla_manual_control_ego_vehicle (Node)

+ +

Subscribed to:

+ +* /carla/ego_vehicle/camera/rgb/view/image_color — sensor_msgs.Image +* /carla/ego_vehicle/collision — [carla_msgs.CarlaCollisionEvent](../ros_msgs#carlacollisioneventmsg) +* /carla/ego_vehicle/gnss/gnss1/fix — sensor_msgs.NavSatFix +* /carla/ego_vehicle/lane_invasion — [carla_msgs.CarlaLaneInvasionEvent](../ros_msgs#carlalaneinvasioneventmsg) +* /carla/ego_vehicle/vehicle_control_manual_override — std_msgs.Bool +* /carla/ego_vehicle/vehicle_info — [carla_msgs.CarlaEgoVehicleInfo](../ros_msgs#carlaegovehicleinfomsg) +* /carla/ego_vehicle/vehicle_status — [carla_msgs.CarlaEgoVehicleStatus](../ros_msgs#carlaegovehiclestatusmsg) +* /carla/status — [carla_msgs.CarlaStatus](../ros_msgs#carlastatusmsg) + + +

Publishes in:

+ +* /carla/ego_vehicle/enable_autopilot — ??? +* /carla/ego_vehicle/vehicle_control_cmd_manual — [carla_msgs.CarlaEgoVehicleControl](../ros_msgs#carlaegovehiclecontrolmsg) +* /carla/ego_vehicle/vehicle_control_manual_override — std_msgs.Bool + + +

/carla_ego_vehicle_ego_vehicle (Node)

+ +

Subscribed to:

+ +* /carla/ego_vehicle/initialpose — ??? + + +

/enable_autopilot_rostopic (Node)

+ +

Publishes in:

+ +* /carla/ego_vehicle/enable_autopilot — ??? + + + +

/pcl_recorder_node (Node)

+ +

Subscribed to:

+ +* /carla/ego_vehicle/lidar/lidar1/point_cloud — sensor_msgs.PointCloud2 + +-------------- +##carla_waypoint_publisher.launch + + +

/carla_waypoint_publisher (Node)

+ +

Subscribed to:

+ +* /carla/world_info — [carla_msgs.CarlaWorldInfo](../ros_msgs#carlaworldinfomsg) diff --git a/Docs/ros_msgs.md b/Docs/ros_msgs.md new file mode 100644 index 000000000..a4d6fcf81 --- /dev/null +++ b/Docs/ros_msgs.md @@ -0,0 +1,258 @@ +

CARLA messages

+ +The following reference lists all the CARLA messages available in the ROS bridge. These will can be used to enable communication in both ways. +Any doubts regarding these messages or the CARLA-ROS bridge can be solved in the forum: + +
+ +

+ +CARLA forum +

+
+ +--------------- +##CarlaActorInfo.msg + +Comprises the information regarding an actor to be shared between ROS and CARLA. +The [CarlaActorList.msg](#carlaactorlist) message is a list of these items. + +| 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 | ??? |