Skip to content

Refactoring Project Layout to Support Expansion to Grippers #46

@MGross21

Description

@MGross21

Summary

Currently, all robots live under the code package folder directory and are imported to the project as follows:

from armctl import * # for all robots
from armctl import UR5 # One robot

I want to revise (and split) the project directory structure to support grippers separate from robots. See example structure below:

armctl
    ├── grippers
    │   ├── a
    │   ├── b
    │   ├── c
    │   ├── d
    │   └── e
    └── robots
        ├── a
        ├── b
        ├── c
        ├── d
        └── e

I'd imagine they'd be potentially imported as so:

from armctl.grippers import *
from armctl.grippers import OnRobot

from armctl.robots import *
from armctl.robots import UR5

As of right now, I am unsure if I will still allow for wildcard (*) imports from root package dir:

from armctl import *

Logger and other metadata will remain in the top-level package

Rationale

This will allow me to un-embed grippers from robot sub-structure folders. I can likely now create a templated system for gripper control, separate from the robotic arms. Additionally, I can now likely clean up the template and utils system to their own folder substructure now, too. Something like this

├── grippers
│   ├── __init__.py
│   ├── a
│   ├── b
│   ├── c
│   ├── d
│   └── e
├── robots
│   ├── __init__.py
│   ├── a
│   ├── b
│   ├── c
│   ├── d
│   └── e
├── templates
│   ├── __init__.py
│   ├── a
│   ├── b
│   ├── c
│   ├── d
│   └── e
└── utils
    ├── __init__.py
    ├── a
    ├── b
    ├── c
    ├── d
    └── e

With this said, templated systems could also be in robots and grippers folders if they are unique to those systems. This plan may be subject to change before implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is neededpythonPull requests that update python code

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions