Course Project for DIT639 Cyber Physical System of System of Systems.
# Stable releases v1.0.0+
docker pull registry.git.chalmers.se/courses/dit638/students/2025-group-09:v2.0.0In these instructions we refer to the image as libcv-steering:latest, you can rename it as such:
docker tag registry.git.chalmers.se/courses/dit638/students/2025-group-09:v2.0.0 libcv-steering:latestThe program is combined with two other microservices to function:
docker build https://github.com/chalmers-revere/opendlv-video-h264-decoder.git#v0.0.5 -f Dockerfile -t h264decoder:v0.0.5
Then to run all services you can use Docker Compose option docker-compose up:
docker-compose upOr through individual terminals (tested vith Ubuntu 22.04 and 24.04):
# Terminal 1: Start OpenDLV-Vehicle-View, possibly with --net=bridge flag on mac
docker run --rm -i --init --net=host --name=opendlv-vehicle-view \
-v $PWD/recordings:/opt/vehicle-view/recordings \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 8081:8081 \
chrberger/opendlv-vehicle-view:v0.0.64
# Terminal 2: Start OpenDLV-Video-H264-Decoder, possibly with --net=bridge flag on mac
docker run --rm -ti --init --net=host --ipc=host \
-v /tmp:/tmp \
-e DISPLAY=$DISPLAY \
h264decoder:v0.0.5 --cid=253 --name=img
# Terminal 3: libcv-steering image
xhost +
docker run --rm -ti --init --net=host --ipc=host \
-v /tmp:/tmp \
-v ./libcv-steering/output:/opt/output \
-e DISPLAY=$DISPLAY \
libcv-steering:latest --cid=253 --name=img --width=640 --height=480 --verboseThen navigate to your browser and open localhost with the port 8081 (localhost:8081) and select a .rec file to instantiate the vehicle view.
If you prefer to build the image locally:
docker build -t libcv-steering -f Dockerfile .Ubuntu versions 22.04 and 24.04 are confirmed working for local development.
Ensure you have the following tools installed on your system:
- Git
- SSH client
- C++ compiler
- CMake
- Docker
# Add your SSH key to GitLab first (https://git.chalmers.se/-/profile/keys)
# Then, clone the repository
git clone git@git.chalmers.se:courses/dit638/students/2025-group-09.git
cd 2025-group-09# Create a build directory
mkdir build
cd build
# Run CMake and build the project
cmake ..
make- Create a new branch for the feature from
main:
git checkout -b <Issue>-<Feature-Name>- Implement your feature and commit changes with meaningful messages (see commit guidelines below).
- Push your branch to
GitLab:
git push origin <Issue>-<Feature-Name>- Create a merge request (MR) on
GitLaband request a code review. - Once approved, merge the feature branch into
main.
- Create a branch from the latest
main:
git checkout -b <Issue>-<Bug-Description>- Implement the fix, ensuring minimal changes and proper commit messages.
- Push the branch and create a MR.
- A team member reviews and merges the fix.
- Every merge request must be reviewed by at least one other team member.
- Use
GitLab's code review tools to comment on changes and suggest improvements.
All commit messages shall include issue number and how the commit is related to the issue, and follow this format:
git commit -m "#[ISSUE-NUMBER] <Commit Message>" -m "<Commit Description>"The commit message should start with <verb> <noun>.
This project is licensed under the MIT License. See the LICENSE file for details.
This document should be updated if any workflow changes occur.