As of 10 June, this file has been rewritten for how to build the different CPs for RR3. Details about test design and current limitations can be found at:
documents
contains markdown files with draft descriptions of each
challenge problem following the provided format. The APIs describing the
interfaces for TA and TH in each CP case are given in
documents/swagger-yaml
as valid Swagger files---with
automatically produced markdown also checked in for convenience.
All of these are currently still under revision and will change through the process as we refine our research goals.
Inside each CP directory, you'll find at least:
-
a directory
ta/
that's the result of runningswagger-codegen
on the Swagger definitions and then filling in the resulting stubs to mesh with the underlying subsystems. -
a
docker-compose.yml
that specifies how to composes our system with the LL TH image -
a
docker-compose-no-th.yml
that specifies a how to compose a docker container like the one above, but without the TH from Lincoln Labs
Each CP's TA follows the sequence diagram as described in this repo,
so it begins by sending a message to /ready
on the TH and waiting
for a reply. Some of the TAs may have a fallback for reading a ready
message JSON object from the filesystem for debugging, but that is not
uniform.
For each challenge problem, we have tagged a container for integration week. The containers will allow you to run without being able to build. They are:
- cmumars/cp1:latest
- For CP2 see cp2/ta/README.md
- cmumars/p2-cp3:RR3
To get these, you can simply do docker pull cmumars/p2-cp3:latest
for example. You will need to change the docker-compose files to refer to these builds though.
- Clone the CP1 base repo,
git clone [email protected]:cmu-mars/cp1_base.git
somewhere on the file system, which we'll callCP1_BASE
.
-
Build
cmu-mars/base
(note that this container is shared with CP3):cd CMU_ROBOTICS/mars-main-p2 docker build -t cmu-mars/base .
-
Build
cmu-mars/gazebo
(note that this container is shared with CP3):cd CMU_ROBOTICS/cp-gazebo-p2 docker build -t cmu-mars/gazebo .
-
Build
cmu-mars/cp1_base
:cd CP1_BASE docker build -t cmu-mars/cp1_base .
-
Build
cmu-mars/cp1_rb
:cd CMU_ROBOTICS/rainbow-p2 docker build -t cmu-mars/cp1_rb -f Dockerfile-cp1 .
-
Build
cmu-mars/cp1
:cd CMU_ROBOTICS/cp1/ta docker build -t cmu-mars/cp1 .
-
Compose
cmu-mars/cp1
with the TH:cd CMU_ROBOTICS/cp1/ta TH_PORT=8081 TA_PORT=8080 docker-compose up
Instructions for building and interacting with CP2 can be found at: cp2/ta/README.md.
- Pull the docker image
cmumars/p2-cp3
from DockerHub - In the directory that you are wanting to compose in, ensure that the directorys
roslogs
,logs
exist (these are where logs will be put), and ensure that they are Readable, Writable, and Executable for everyone. - Compose with:
TA_PORT=5000 TA_PORT=5001 docker-compose -f docker-compose-mitll-harness.yml up
Some of the configurations do not have a plan associated with them on some paths, meaning that an A case will not run. If the TH tries to start one of these tests, it will get an error from the TA. There may also be some of these that exist during the actual evaluation. It is about 5% of the configuration/path space currently. We aim to reduce this.
Note: Due to a last minute disappearance of one of the Unix packages (ros-kinetic-mrpt-localization
) it is not possible to build CP3 from scratch. Use the DockerHub version instead. We are hoping this is temporary, but will develop a workaround before evaluation.
-
Clone the CP3 base repo,
git clone [email protected]:cmu-mars/cp3_base.git
somewhere on the file system, which we'll callCP3_BASE
. -
Build
cmu-mars/base
(note that this container is shared with CP1):cd CMU_ROBOTICS/mars-main-p2 docker build -t cmu-mars/base .
-
Build
cmu-mars/gazebo
(note that this container is shared with CP1):cd CMU_ROBOTICS/cp-gazebo-p2 docker build -t cmu-mars/gazebo .
-
Build
cmu-mars/cp3_base
:cd CP3_BASE docker build -t cmu-mars/cp3_base .
-
Build
cmu-mars/cp3_rb
:cd CMU_ROBOTICS/rainbow-p2 docker build -t cmu-mars/cp3_rb -f Dockerfile-cp3 .
-
Build
cmu-mars/cp3
:cd CMU_ROBOTICS/cp3/ta docker build -t cmu-mars/cp3 .
-
Compose
cmu-mars/cp3
with the TH:cd CMU_ROBOTICS/cp3/ta TH_PORT=8081 TA_PORT=8080 docker-compose up
To run on Windows 10, you need to make sure that the correct port forwarding is set up. So, as administrator, you may need to run:
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8080 connectaddress=192.168.99.100 connectport=8080
Where listenport
and connectport
are the TA_PORT
specified in
docker compose, and connectaddress
is the IP of the host machine.