Repository Summary

Description A simulation stack using Docker to run CARLA with ROS nodes and additional tooling such as Foxglove.
Checkout URI https://github.com/urbanpistek/carla_ros_simulation.git
VCS Type git
VCS Version main
Last Updated 2023-04-26
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
ros2_utils 0.0.0
sample_pkg 0.0.0

README

Documentation

This file will provide a top level summary of everything you will need to setup this project, along with notes on the components used.

1.0 Software & Tools

2.0 Deployment

3.0 Development

A presentation with additional information can be referenced here: ./docs/ME599_Project _Presentation.pdf


Workshop

There is a workshop under the workshop folder which you can use to familiarize yourself with all the tools and software. There is a written guide along with a video you can follow along.

Workshop Video


1.0 Software & Tools

Below is a summary of all the software and tooling used for this project.


1.1 Docker

1.1.1 Summary

Docker is a popular platform for developing, packaging, and deploying software applications in a containerized environment. A Docker container is a lightweight, standalone executable package that includes all the necessary components, such as libraries, dependencies, and configuration files, required to run an application. Further, Docker allows developers to create, share, and deploy containers easily and consistently across different environments, such as local machines, cloud servers, and data centers. It provides benefits such as improved efficiency, portability, and scalability, making it a valuable tool for modern software development and deployment.

The Getting Started from Docker provides a good walk-through of how to use Docker.

You may use the Docker CLI or the Docker Desktop application, however for this project the Docker CLI will be used.

The following Docker Cheatsheet provides a great summary of the primary docker CLI commands.

Use can also always type: docker --help to get a summary of commands in the CLI.

1.1.2 Setup & Install

Ensure you have installed Docker Ubuntu Install Guide

Import additional steps for ubuntu install: Linux Additional Install Steps

A script to install docker & docker compose is available under utils/docker_linux_install.sh


1.2 Docker-compose

1.2.1 Summary

Docker Compose is a tool that enables developers to define and run multi-container Docker applications in a declarative manner. Compose allows users to describe their application as a set of services, each of which is defined in a separate Dockerfile. Services can be linked together and configured via a Compose file, which specifies the containers, networks, and volumes required to run the application.

The following section Use Docker Compose in the getting started guide provides a overview of Docker Compose.

The following Docker Compose Cheatsheet provides a good summary.

Use can also always type: docker-compose --help to get a summary of commands in the CLI.

1.2.2 Setup & Install

Ensure you have installed Docker Compose Docker Compose Install Guide

A script to install docker & docker compose is available under utils/docker_linux_install.sh

Note: A quick note, when running docker-compose, if you run the standard command docker-compose up this will run all the containers in the terminal, you will be able to see all the logs from each one. Typically, running in detached mode by specifying the -d flag is preferable as this runs all the containers in the background, you can see them running with docker ps.


1.3 ROS

1.3.1 Summary

ROS, which stands for Robot Operating System, is an open-source framework for building and programming robots. It provides a set of libraries and tools that facilitate the development of complex robotics applications, including communication between software modules, control of hardware components, and integration of sensors and actuators.

In particular, ROS 2 will be utilized (it will be refered to as ROS, however note that this guide focuses on ROS 2); a list of the available Distributions. In general, the Foxy and Galactic will be the best choice as they are relatively recent but have had some time for support by 3rd parties. Overall, they should be pretty interchangable but that will need to be evaluated on a case by case basis.

File truncated at 100 lines see the full file