Welcome to the MRSD APEX Labs software documentation. The root of our organization’s GitHub repository is here: https://github.com/MRSD-APEXLabs/.
Our software is distributed across several distinct repositories, each handling a specific subsystem of our project—ranging from core robot operations and computer vision to navigation and hardware modules. Below are the details and operating instructions for each repository.
Note: All code within these repositories has been thoroughly commented to aid future teams and sponsors in understanding the underlying logic.
This is the primary repository that orchestrates the core system using Docker. It spins up three distinct containers:
robot: Contains all the main source code and control logic.sim: Hosts the Isaac Sim environment.gcs: Runs the Ground Control Station (GCS) User Interface.Installation & Configuration: To get the system up and running, first clone this repository in recursive mode to pull all submodules:
git clone --recursive https://github.com/MRSD-APEXLabs/Autolab.git
cd Autolab
Next, run the installation and setup scripts:
./autolab.sh install
./autolab.sh setup
Operating Instructions: To start the system and spin up all three Docker containers (robot, sim, and gcs), use:
./autolab up
To execute commands within a specific container, connect to it using:
# Replace <container_name> with robot, sim, or gcs
./autolab connect <container_name>
To shut the system down safely:
./autolab down
This repository contains the vision software deployed on the Jetson Xavier edge device. It is responsible for streaming camera feeds, running YOLO object detection models, and executing visual servoing routines.
Operating Instructions: Navigate to the repository on the Jetson Xavier and run the main Python script:
Bash
python3 main.py
This repository contains the necessary wrapper code to remotely command the Opentrons liquid handler over the network.
This repository contains the embedded code that runs directly on the custom gripper, specifically designed to interface with and command the Opentrons system.
This module contains the control logic that allows a user to teleoperate the xArm6 robotic manipulator using a secondary Leader arm.
This repository manages the mobile base’s movement.
This repository contains the embedded C/C++ code designed to be flashed onto the ESP32 microcontroller that operates the laboratory shaker module.