diff --git a/ros2rag.common/.gitignore b/ros2rag.common/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..567609b1234a9b8806c5a05da6c866e480aa148d --- /dev/null +++ b/ros2rag.common/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/common/config.yaml b/ros2rag.common/config.yaml similarity index 79% rename from common/config.yaml rename to ros2rag.common/config.yaml index a18ba849e3714314ed726f9e2780839dc1cae3ae..8f49855352242a04efc633af2d30a8b0efa029dc 100644 --- a/common/config.yaml +++ b/ros2rag.common/config.yaml @@ -3,6 +3,8 @@ panda_mqtt_connector: topics: robotConfig: "robotconfig" dataConfig: "dataconfig" + trajectory: "trajectory" + nextStep: "ros2rag/nextStep" zone_size: 0.5 zones: - "1 1" @@ -21,3 +23,8 @@ panda_mqtt_connector: end_effectors: panda: EndEffector: "panda::panda_link7" + goal_poses: + - position: "0 0 0" + wait: "3" + - position: "1 1 1" + wait: "2" diff --git a/common/proto/dataconfig.proto b/ros2rag.common/proto/dataconfig.proto similarity index 100% rename from common/proto/dataconfig.proto rename to ros2rag.common/proto/dataconfig.proto diff --git a/common/proto/linkstate.proto b/ros2rag.common/proto/linkstate.proto similarity index 100% rename from common/proto/linkstate.proto rename to ros2rag.common/proto/linkstate.proto diff --git a/common/proto/robotconfig.proto b/ros2rag.common/proto/robotconfig.proto similarity index 100% rename from common/proto/robotconfig.proto rename to ros2rag.common/proto/robotconfig.proto diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data/DataConfiguration.java b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/DataConfiguration.java similarity index 73% rename from ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data/DataConfiguration.java rename to ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/DataConfiguration.java index 092d498d6fcb7535eb016d06efeffeb54a8b9a52..13d92d927c1d59b4a9b0d099ca4b5cfe4f30c3c7 100644 --- a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/data/DataConfiguration.java +++ b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/DataConfiguration.java @@ -1,6 +1,5 @@ -package de.tudresden.inf.st.ros2rag.starter.data; +package de.tudresden.inf.st.ros2rag.common; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedMap; @@ -19,9 +18,16 @@ public class DataConfiguration { public List<String> zones; public Map<String, SortedMap<String, String>> parts; public Map<String, SortedMap<String, String>> end_effectors; + public List<DataWorkPose> goal_poses; } public static class DataTopics { public String robotConfig; public String dataConfig; + public String trajectory; + public String nextStep; + } + public static class DataWorkPose { + public String position; + public String wait; } } diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/Util.java b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/Util.java similarity index 68% rename from ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/Util.java rename to ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/Util.java index 0f9f0c0fa448d45bf9f3f7adb788af18b2d571e3..471c21abdb1a7cf8c5dc0cd193e9db8d542d1209 100644 --- a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/Util.java +++ b/ros2rag.common/src/main/java/de/tudresden/inf/st/ros2rag/common/Util.java @@ -1,9 +1,6 @@ -package de.tudresden.inf.st.ros2rag.starter; +package de.tudresden.inf.st.ros2rag.common; -import de.tudresden.inf.st.ros2rag.starter.ast.Link; -import de.tudresden.inf.st.ros2rag.starter.ast.MqttHandler; -import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration; -import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration.ActualConfiguration; +import de.tudresden.inf.st.ros2rag.common.DataConfiguration.ActualConfiguration; import java.io.IOException; import java.util.Map; @@ -15,12 +12,8 @@ import java.util.SortedMap; * @author rschoene - Initial contribution */ public class Util { - public static void setMqttHost(RootElement model, ActualConfiguration config) throws IOException { - HostAndPort hostAndPort = split(config.server); - model.MqttSetHost(hostAndPort.host, hostAndPort.port); - } - public static void setMqttHost(MqttHandler handler, ActualConfiguration config) throws IOException { + public static void setMqttHost(SetHost handler, ActualConfiguration config) throws IOException { HostAndPort hostAndPort = split(config.server); handler.setHost(hostAndPort.host, hostAndPort.port); } @@ -56,8 +49,8 @@ public class Util { } @FunctionalInterface - public interface RootElement { - void MqttSetHost(String host, int port) throws IOException; + public interface SetHost { + void setHost(String host, int port) throws IOException; } @FunctionalInterface diff --git a/ros2rag.receiverstub/build.gradle b/ros2rag.receiverstub/build.gradle index 96029829e1428aa711270c05cc61193f45775c47..da0cc2314042c7ed9d58af5f604d41fbfef3679a 100644 --- a/ros2rag.receiverstub/build.gradle +++ b/ros2rag.receiverstub/build.gradle @@ -21,14 +21,7 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.receiverstub. dependencies { implementation project(':ros2rag.starter') - -// implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}" -// implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jackson_version}" -// implementation group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11' -// implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.0.0' -// implementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15' - - protobuf files("$projectDir/../ros2rag.example/src/main/proto") + implementation project(':ros2rag.common') } test { diff --git a/ros2rag.senderstub/build.gradle b/ros2rag.senderstub/build.gradle index 4de593d825bc6616f440a4089051b4aa26326efd..8a0b44120af2f5f4a907533dafc077c5985622bf 100644 --- a/ros2rag.senderstub/build.gradle +++ b/ros2rag.senderstub/build.gradle @@ -22,9 +22,6 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.senderstub.Se dependencies { implementation project(':ros2rag.starter') -// implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.0.0' -// implementation group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.15' - protobuf files("$projectDir/../ros2rag.example/src/main/proto") } diff --git a/ros2rag.starter/build.gradle b/ros2rag.starter/build.gradle index 748b742ab7eef4b2abdce04567f8fa3685fb1fd4..a2e813046f9481e19f079cb31e47a56daff2d199 100644 --- a/ros2rag.starter/build.gradle +++ b/ros2rag.starter/build.gradle @@ -27,6 +27,7 @@ jar.manifest.attributes('Main-Class': 'de.tudresden.inf.st.ros2rag.starter.Start dependencies { implementation project (':ros2rag.base') + implementation project (':ros2rag.common') baseRuntimeClasspath project (':ros2rag.base') // implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jackson_version}" api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}" diff --git a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java b/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java index 2f5b4dbd4c0a8e6f1b04250846ffa1b02ed59e16..63e9ea7ab7f933b0e6c41b8669c43aef195144f9 100644 --- a/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java +++ b/ros2rag.starter/src/main/java/de/tudresden/inf/st/ros2rag/starter/StarterMain.java @@ -3,16 +3,15 @@ package de.tudresden.inf.st.ros2rag.starter; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import config.Dataconfig; +import de.tudresden.inf.st.ros2rag.common.Util; import de.tudresden.inf.st.ros2rag.starter.ast.*; -import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration; -import de.tudresden.inf.st.ros2rag.starter.data.DataConfiguration.ActualConfiguration; +import de.tudresden.inf.st.ros2rag.common.DataConfiguration; +import de.tudresden.inf.st.ros2rag.common.DataConfiguration.ActualConfiguration; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; -import java.util.Map.Entry; -import java.util.SortedMap; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -83,7 +82,7 @@ public class StarterMain { logger.info("To exit the system cleanly, send a message to the topic 'exit', or use Ctrl+C."); mainHandler = new MqttHandler("mainHandler"); - Util.setMqttHost(mainHandler, config); + Util.setMqttHost(mainHandler::setHost, config); mainHandler.waitUntilReady(2, TimeUnit.SECONDS); mainHandler.newConnection("exit", bytes -> exitCondition.countDown()); mainHandler.newConnection("model", bytes -> logStatus(new String(bytes), robotArm)); diff --git a/ros2rag.starter/src/main/proto b/ros2rag.starter/src/main/proto index b779e42177c5848d7afb8d64fd9cfd5c94a267fc..bb7d2bae29902b994e92987325a878a0fe318c69 120000 --- a/ros2rag.starter/src/main/proto +++ b/ros2rag.starter/src/main/proto @@ -1 +1 @@ -../../../common/proto/ \ No newline at end of file +../../../ros2rag.common/proto/ \ No newline at end of file diff --git a/ros2rag.tests/src/test/proto b/ros2rag.tests/src/test/proto index b779e42177c5848d7afb8d64fd9cfd5c94a267fc..bb7d2bae29902b994e92987325a878a0fe318c69 120000 --- a/ros2rag.tests/src/test/proto +++ b/ros2rag.tests/src/test/proto @@ -1 +1 @@ -../../../common/proto/ \ No newline at end of file +../../../ros2rag.common/proto/ \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index edf79d12c6147eb8eb02d0d41e1ddb66e05ed98e..9235870b25a07e39bdaed474d79643bc80928795 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,3 +6,5 @@ include 'ros2rag.tests' include 'ros2rag.starter' include 'ros2rag.senderstub' include 'ros2rag.receiverstub' +include 'ros2rag.goal' +include 'ros2rag.common'