From 7bf7e6faac2813365f5847ddf4635093b20f5aaf Mon Sep 17 00:00:00 2001
From: Nikhil Ambardar <202-nikaviator@users.noreply.git-st.inf.tu-dresden.de>
Date: Wed, 23 Sep 2020 02:12:56 +0200
Subject: [PATCH] Avoiding use of Terminal to push

---
 src/datalink/abstractobject.h |   8 +-
 src/datalink/graspobject.h    |   4 +-
 src/datalink/hand.h           |   3 +
 src/datalink/humanspace.h     |   8 ++
 src/datalink/joint.h          |  11 +--
 src/datalink/obstacle.h       |   3 +
 src/datalink/quaternion.h     |  14 ++++
 src/datalink/robot.h          |   7 +-
 src/datalink/robotfpe.h       |   8 +-
 src/datalink/world.h          |   6 +-
 src/datalink/worldobject.h    |  11 ++-
 src/robot_models_node.cpp     | 135 +++++++++++++++++++++++++---------
 12 files changed, 164 insertions(+), 54 deletions(-)
 create mode 100644 src/datalink/quaternion.h

diff --git a/src/datalink/abstractobject.h b/src/datalink/abstractobject.h
index 327492b..0612732 100644
--- a/src/datalink/abstractobject.h
+++ b/src/datalink/abstractobject.h
@@ -1,9 +1,12 @@
 #include <vector>
 #include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/worldobject.h>
+#ifndef ROBOT_MODELS_AO_H
+#define ROBOT_MODELS_AO_H
+
 class abstractobject:public worldobject
 {
     public:
-    std::string name;
+
     vector<int> size;
 
 //no need of constructor here
@@ -11,4 +14,5 @@ class abstractobject:public worldobject
 //{
 //}
 
-};
\ No newline at end of file
+};
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/datalink/graspobject.h b/src/datalink/graspobject.h
index 4f0e095..e15791a 100644
--- a/src/datalink/graspobject.h
+++ b/src/datalink/graspobject.h
@@ -1,5 +1,6 @@
 #include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/abstractobject.h>
-
+#ifndef ROBOT_MODELS_GO_H
+#define ROBOT_MODELS_GO_H
 class graspobject : public abstractobject
 {
 
@@ -7,3 +8,4 @@ class graspobject : public abstractobject
 
 
 };
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/datalink/hand.h b/src/datalink/hand.h
index 1465f80..d6b32ca 100644
--- a/src/datalink/hand.h
+++ b/src/datalink/hand.h
@@ -1,7 +1,10 @@
 #include <vector>
+#ifndef ROBOT_MODELS_H_H
+#define ROBOT_MODELS_H_H
 using namespace std;
 class hand
 {
 public:
 vector<int> grippos;
 };
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/datalink/humanspace.h b/src/datalink/humanspace.h
index 038a2e2..82c2e52 100644
--- a/src/datalink/humanspace.h
+++ b/src/datalink/humanspace.h
@@ -1,3 +1,10 @@
+
+#include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/world.h>
+#ifndef ROBOT_MODELS_HS_H
+#define ROBOT_MODELS_HS_H
+
+
+
 class humanspace : public world
 {
 public:
@@ -6,3 +13,4 @@ int humannum;
 //constructor
 
 };
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/datalink/joint.h b/src/datalink/joint.h
index a95bc3d..479af8c 100644
--- a/src/datalink/joint.h
+++ b/src/datalink/joint.h
@@ -1,11 +1,8 @@
 #include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/worldobject.h>
-
+#ifndef ROBOT_MODELS_J_H
+#define ROBOT_MODELS_J_H
 class joint : public worldobject
-{ public:
- int j1=0;
-
-
-
-
+{
 
 };
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/datalink/obstacle.h b/src/datalink/obstacle.h
index a82c0db..36c30b3 100644
--- a/src/datalink/obstacle.h
+++ b/src/datalink/obstacle.h
@@ -1,7 +1,10 @@
 #include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/abstractobject.h>
+#ifndef ROBOT_MODELS_O_H
+#define ROBOT_MODELS_O_H
 class obstacle : public abstractobject
 {
 
 //constructor
 
 };
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/datalink/quaternion.h b/src/datalink/quaternion.h
new file mode 100644
index 0000000..1bf6f40
--- /dev/null
+++ b/src/datalink/quaternion.h
@@ -0,0 +1,14 @@
+#include <vector>
+#ifndef ROBOT_MODELS_Q_H
+#define ROBOT_MODELS_Q_H
+
+class quaternion
+{
+public:
+     float x,y,z,w;
+
+
+     //no need of constructor here
+
+};
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/datalink/robot.h b/src/datalink/robot.h
index fdb1627..d6a045d 100644
--- a/src/datalink/robot.h
+++ b/src/datalink/robot.h
@@ -1,9 +1,12 @@
 #include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/worldobject.h>
-
 #include <vector>
+#ifndef ROBOT_MODELS_R_H
+#define ROBOT_MODELS_R_H
 using namespace std;
 class robot : public worldobject
 {
 public:
-    vector<char> robname;
+    std::string robname;
+
 };
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/datalink/robotfpe.h b/src/datalink/robotfpe.h
index f253c23..8958cc7 100644
--- a/src/datalink/robotfpe.h
+++ b/src/datalink/robotfpe.h
@@ -1,10 +1,14 @@
 #include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/robot.h>
 #include <vector>
-#include <stdbool.h>
+#include<string>
+#ifndef ROBOT_MODELS_RF_H
+#define ROBOT_MODELS_RF_H
 using namespace std;
 class robotfpe : public robot
 {
 public:
 bool of,moving,grasppos;
-    vector<char> planninggrp;
+
+    std::string planninggrp;
 };
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/datalink/world.h b/src/datalink/world.h
index f306874..113f8ae 100644
--- a/src/datalink/world.h
+++ b/src/datalink/world.h
@@ -1,7 +1,7 @@
+#ifndef ROBOT_MODELS_W_H
+#define ROBOT_MODELS_W_H
 class world
 {
 
-
-
 };
-
+#endif //ROBOT_MODELS_TEST_H
diff --git a/src/datalink/worldobject.h b/src/datalink/worldobject.h
index eb8a186..11484d8 100644
--- a/src/datalink/worldobject.h
+++ b/src/datalink/worldobject.h
@@ -1,11 +1,16 @@
 #include <vector>
+#ifndef ROBOT_MODELS_WO_H
+#define ROBOT_MODELS_WO_H
+#include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/quaternion.h>
 using namespace std;
-class worldobject
+class worldobject : public quaternion
 {
 public:
-     vector<int> p1,or2,h3;
-
+     vector<int> p1,h3;// saw no purpose of using h3 here in WO ,its used seperately in hand class
+     std::string name;
+     quaternion or2;
 
      //no need of constructor here
 
 };
+#endif //ROBOT_MODELS_TEST_H
\ No newline at end of file
diff --git a/src/robot_models_node.cpp b/src/robot_models_node.cpp
index 1a52f6c..7c759c5 100644
--- a/src/robot_models_node.cpp
+++ b/src/robot_models_node.cpp
@@ -9,54 +9,121 @@
 #include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/robotfpe.h>
 #include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/world.h>
 #include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/worldobject.h>
+#include </home/nikhil/panda_gazebo_workspace/src/zero/src/datalink/quaternion.h>
 #include <vector>
 #include <iostream>
-int main(int argc, char** argv)
-{    int x=0,y=0,z=0;
-    ros::init(argc, argv, "ROS NODE 1");
-    ros::NodeHandle node_handle("namespace_name");
-    ros::AsyncSpinner spinner(1);
-    spinner.start();
+#include <tf2_ros/transform_listener.h>
+#include <geometry_msgs/TransformStamped.h>
+#include <geometry_msgs/PoseStamped.h>
+#include <tf2_ros/static_transform_broadcaster.h>
+#include <cstdio>
+#include <tf2/LinearMath/Quaternion.h>
+#include "tf2_ros/message_filter.h"
+#include "message_filters/subscriber.h"
+#include "tf2_geometry_msgs/tf2_geometry_msgs.h"
+#include "geometry_msgs/PointStamped.h"
+#include <tf2_ros/transform_broadcaster.h>
+#include <tf2/LinearMath/Quaternion.h>
 
+    int main(int argc, char** argv) {
+        ros::init(argc, argv, "ROSNODE1");
+        ros::NodeHandle node_handle("namespace_name");
+        ros::AsyncSpinner spinner(1);
+        spinner.start();
 
-    ROS_INFO("HELLO, WORLD");
-    abstractobject o1;
-    graspobject o2;
-    hand o3;
-    humanspace o4;
-    joint o5;
-    obstacle o6;
-    robot o7;
-    robotfpe o8;
-    world o9;
-    worldobject o10;
 
+        ROS_INFO("HELLO, WORLD");
 
 
-    o5.j1.p1.push_back(12,11,9,18);
+        abstractobject o1;
+        graspobject o2;
+        hand o3;
+        humanspace o4;
 
+        joint o5a;
+        joint o5b;
+        joint o5c;
+        joint o5d;
+        joint o5e;
+        joint o5f;
+        joint o5g;
 
-    o8.robname.push_back("Robot FPE");
-    o8.of.push_back(1);
-    o8.moving.push_back(0);
-    o8.grasppos.push_back(1);
-    o8.planninggrp.push_back("Panda Teaching");
+        obstacle o6;
+        robot o7;
+        robotfpe o8;
+        world o9;
+        worldobject o10;
 
-    o3.grippos.push_back(12,14,18);
 
-    o4.humannum=1;
+        o5a.name = "panda_joint1";
+        o5b.name = "panda_joint2";
+        o5c.name = "panda_joint3";
+        o5d.name = "panda_joint4";
+        o5e.name = "panda_joint5";
+        o5f.name = "panda_joint6";
+        o5g.name = "panda_joint7";
+        o5a.x = 1.7;
+        o5b.y = 1.8;
+        o5c.z = 1.9;
+        o5d.w = 2.0;
+        o5a.p1 = {12, 11, 9, 18};
 
-    o2.name="Cube";
-    o2.size.push_back(5,7,9);
-    o2.p1;
-    o2.or2;
 
+        o8.robname = "Robot FPE";
+        o8.of = true;
+        o8.moving = false;
+        o8.grasppos = true;
+        o8.planninggrp = "Panda Teaching";
 
-    o6.name="Ball";
-    o6.size.push_back(4,9,6);
-    o6.p1;
-    o6.or2;
+        o3.grippos = {12, 14, 18};
+
+        o4.humannum = 1;
+
+        o2.name = "Cube";
+        o2.size = {5, 7, 9};
+        o2.p1 = {13, 14, 17};
+        o2.x = 2.3;
+        o2.y = 1.2;
+        o2.z = 0.2;
+        o2.w = 0.1;
+
+
+        o6.name = "Ball";
+        o6.size = {1, 2, 3};
+        o6.p1 = {12, 16, 17};
+        o6.x = 1.1;
+        o6.y = 1.4;
+        o6.z = 1.6;
+        o6.w = 1.9;
 
-}
 
+        tf2_ros::Buffer tfBuffer;
+        tf2_ros::TransformListener tfListener(tfBuffer);
 
+        ros::Rate rate(10);
+
+        while (node_handle.ok()) {
+            //for (const auto &topic : ROSNODE1::topics)
+            {
+                geometry_msgs::TransformStamped transformStamped;
+                try {
+                    transformStamped = tfBuffer.lookupTransform("panda_joint1", tfBuffer.o5a, ros::Time(0));
+                    transformStamped = tfBuffer.lookupTransform("panda_joint2", tfBuffer.o5b, ros::Time(0));
+                    transformStamped = tfBuffer.lookupTransform("panda_joint3", o5c, ros::Time(0));
+                    transformStamped = tfBuffer.lookupTransform("panda_joint4", o5d, ros::Time(0));
+                    transformStamped = tfBuffer.lookupTransform("panda_joint5", o5e, ros::Time(0));
+                    transformStamped = tfBuffer.lookupTransform("panda_joint6", o5f, ros::Time(0));
+                    transformStamped = tfBuffer.lookupTransform("panda_joint7", To5g, ros::Time(0));
+                } catch (tf2::TransformException &ex) {
+                    ROS_WARN("%s", ex.what());
+                    ros::Duration(0.1).sleep();
+                    continue;
+
+                }
+            }
+            rate.sleep();
+        }
+
+
+return 0;
+}
-- 
GitLab