diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000000000000000000000000000000000000..538cca9ca069ffcad8bbd1732ce0f5ea81483add --- /dev/null +++ b/src/README.md @@ -0,0 +1,19 @@ +# Workcell Repository + +This repository contains packages from various sources as well as self-written packages intended for the automatic construction of multi-robot workcells. + +## reachability + +Bachelor thesis code. + +## mtc + +Successor to the bachelor's thesis, realizing more complex cell designs and task executions. + +## franka_description + +Describes the robots. Must be expanded for each additional robot. + +## ceti* packages + +Robot configurations for Ceti-like robots consisting of a cube and an arm attached to it. The size of the cube and the position of the arm are calculated based on the given parameters. \ No newline at end of file diff --git a/src/mtc/README.md b/src/mtc/README.md new file mode 100644 index 0000000000000000000000000000000000000000..5b726e303cfac763fcb19a00795fac5ffe696969 --- /dev/null +++ b/src/mtc/README.md @@ -0,0 +1,44 @@ +# MTC +MTC is the core package developed with different design patterns to ensure both extensibility and variability. + +## executables +MTC consists of 3 executables, with each computing .yaml files for the next subsequent module, according the following strcture. +> mtc2taskspace >> base_routine >> cell_routine + +### mtc2taskspace +From a Ceti dump file representing an arbitrary scene with specific locations, located in the /resources directory. Mtc2taskspace computes a taskspace.yaml file and associates each object with a drop-of-location to a robot. The shared space between robots is expressed by identical location entries for each robot involved. +> resulting .yaml files in /descriptions +>> file structure soon to be changed, sticking more to a struct like representation + +### base_routine +Calculates the workspace from a /descriptions file (mtc2taskspace) and a precomputed reachability map (/map), combined with information from a dump file (/resources). Creates the directory results/${dump_file_name} with the resulting dump files as contents. +> Replace the resulting .yaml files in the results/${dump_file_name} directory if they already exist +>> Is strictly programmed, which means that the shared space is given by the first robot, which leads to no result if the first robot is not able to carry the shared space. Also resulting dump files can break the yaml schema, because each robot has an extra rpy element which is important for franca_description -> setting robot rotation... for placing, each 8th entry must be a table[0-9]+_table_top. Cosmetic data (table_wheel...) included as placeholder +>>> Solutions: switching robots, soon to be implemented. Cosmetic data by relative definitions. + +### cell_routine +Designed to load a dump_file (+ with additional rpy component) and execute a task with moveit task constructor. A task description can also be the /descriptions file of mtc2taskspace, which is the case now. +> Restricted to coop tasks, since parallel tasks capability must be included first. Also pushing results/example.yaml file into franca_description is 'ugly', since it has to be included manually. Searching for solution. +>> Christoph's parser could not be integrated because there is no way to have multiple robots compute a task. + +## Current state +State: in progress. Every executable is working with some explained downfalls that should be fixed in the next days. Implementing or omitting ideas because some modules do not work as expected took a lot of time. The actual results (62 files for dummy.yaml) can be loaded and run by manually changing the path of the results file in launch/cell_routine.launch and franka_description/robots/ceti_double.urdf.xacro. I tested 10/62 myself, with surprisingly good results. The following list shows open and closed ToDos. + +:ballot_box_with_check: present a faster work-space execution +:ballot_box_with_check: generate more solutions for 1 dump file +:ballot_box_with_check: present solution for general robots +:ballot_box_with_check: elaborate the moveit task constructor +:ballot_box_with_check: present more general task files +:black_square_button: include cosmetic values +:black_square_button: passing yaml in xacro (franca_description) +:black_square_button: parallel tasks (Docker already downloaded, just have to try) (main focus) +:black_square_button: include ferdinants work (main focus) + +Im working non stop, so don't forget to pull. + + + +:ballot_box_with_check: + + +:ballot_box_with_check: diff --git a/src/mtc/launch/cell_routine.launch b/src/mtc/launch/cell_routine.launch index 20c1eae84471b6e8c23405a8c955072a13cf3cb2..82f43ba274076109efa54c6cc90d5076d9a194b7 100644 --- a/src/mtc/launch/cell_routine.launch +++ b/src/mtc/launch/cell_routine.launch @@ -1,6 +1,10 @@ <launch> <!--<include file="$(find panda_moveit_config)/launch/demo.launch"></include> --> + + <!-- this is to change--> <rosparam command="load" file="$(find mtc)/results/dummy/-151902566.yaml"/> + + <rosparam command="load" file="$(find mtc)/mtc_templates/dummy.yaml" /> <rosparam command="load" file="$(find mtc)/maps/dummy.yaml"/> <rosparam command="load" file="$(find mtc)/descriptions/dummy.yaml"/>