public bool Is_Valid_Target(CartesianPosition Position)
        {
            var Current_Position           = robot.GetCurrentPosition();
            CartesianPosition New_Position = new CartesianPosition();

            if (Position.X + Current_Position.X >= MAX_X)
            {
                return(false);
            }
            else if (Position.X + Current_Position.X <= MIN_X)
            {
                return(false);
            }
            else if (Position.Y + Current_Position.Y >= MAX_Y)
            {
                return(false);
            }
            else if (Position.Y + Current_Position.Y <= MIN_Y)
            {
                return(false);
            }
            else if (Position.Z + Current_Position.Z >= MAX_Z)
            {
                return(false);
            }
            else if (Position.Z + Current_Position.Z <= MIN_Z)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Example #2
0
        public ActionResult SwitchRobotConnection(bool connect, string ip)
        {
            bool success = false;

            if (connect)
            {
                //Connexion du robot
                Logs.AddLog("info", string.Format("Starting robot connection on {0} ...", ip));
                MvcApplication.RobotInfos.IsConnected = true;
                try
                {
                    MyRobot.Connect(ip);
                    MvcApplication.RobotInfos.IsConnected = true;
                    MyRobot.GetCurrentPosition();
                    success = true;
                    Logs.AddLog("info", "Robot connected");
                }
                catch (Exception e)
                {
                    Logs.AddLog("Error", string.Format("Error in robot connection: {0} ...", e.Data));
                    MvcApplication.RobotInfos.IsConnected = false;
                }
            }
            else
            {
                //Deconnexion du robot
                Logs.AddLog("info", "Robot disconnection not implemented");
                //MvcApplication.RobotInfos.IsConnected = false;
                success = true;
            }

            return(Json(new { Success = success }, JsonRequestBehavior.AllowGet));
        }
Example #3
0
        static void Main(string[] args)
        {
            RobotController Robot = new RobotController();

            Robot.Connect("192.168.1.1");
            Console.WriteLine("Robot connecté ... ");

            double cosTeta = 0.649352561565284; //teta=49.50...
            double sinTeta = 0.760487508634168; // sinTeta = System.Math.Cos(45);

            while (true)
            {
                double rX = Robot.GetCurrentPosition().X *cosTeta - Robot.GetCurrentPosition().Y *sinTeta;
                double rY = Robot.GetCurrentPosition().X *sinTeta + Robot.GetCurrentPosition().Y *cosTeta;

                //while((30 <= rX <= -30)&&(30 <= rY <= -20)&&(Robot.GetCurrentPosition().Z < 5))
                //if ((-300 >= rX) && (rX >= 300) && (-200 >= rY) && (rY >= 300) && (Robot.GetCurrentPosition().Z <= 50))
                if ((-200 <= rX) && (rX <= 800) && (130 <= rY) && (rY <= 790) && (Robot.GetCurrentPosition().Z >= 50))
                {
                    //move robot
                    Console.WriteLine("Robot reste dans la zone de securité YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY");
                    Console.WriteLine("Robot position : x:" + Robot.GetCurrentPosition().X + "; y:" + Robot.GetCurrentPosition().Y + "; z: " + Robot.GetCurrentPosition().Z);
                    Console.WriteLine("   Rotation de X : " + rX + "; Y : " + rY);
                }
                else
                {
                    //robot s'arrete
                    Console.WriteLine("!!! Robot a sorti de la zone de securité !!!!!!!!!!!!!!!!!!!!!!!");
                    Console.WriteLine("Robot position : x:" + Robot.GetCurrentPosition().X + "; y:" + Robot.GetCurrentPosition().Y + "; z: " + Robot.GetCurrentPosition().Z);
                    Console.WriteLine("   Rotation de X : " + rX + "; Y : " + rY);
                }
                System.Threading.Thread.Sleep(2000);
            }
        }
Example #4
0
 /// <summary>
 /// Construit une instance de RobotPosition à partir de la position actuelle du robot
 /// </summary>
 /// <param name="robot"></param>
 public RobotPosition(RobotController robot)
 {
     try
     {
         robot.StopRelativeMovement();
         Position = robot.GetCurrentPosition();
         robot.StartRelativeMovement();
     }
     catch (Exception ex)
     {
         Position = new CartesianPosition();
     }
 }
Example #5
0
        static void Main(string[] args)
        {
            RobotController Robot = new RobotController();
            Robot.Connect("192.168.1.1");
            Console.WriteLine("Robot connecté ... ");
            Console.WriteLine("Robot position : x:" + Robot.GetCurrentPosition().X + "; y:" + Robot.GetCurrentPosition().Y + "; z: " + Robot.GetCurrentPosition().Z);

            List<CartesianPosition> Trajectoire = new List<CartesianPosition>();
            for (int i = 1; i <= 100; i++)
            {

                Trajectoire.Add(new CartesianPosition
                {
                    X = i + Robot.GetCurrentPosition().X,
                    Y = i + Robot.GetCurrentPosition().Y,
                    Z = i + Robot.GetCurrentPosition().Z,
                    A = 0 + Robot.GetCurrentPosition().A,
                    B = 0 + Robot.GetCurrentPosition().B,
                    C = 0 + Robot.GetCurrentPosition().C

                });
            }
            //Robot.PlayTrajectory(Trajectoire);

            Robot.StartRelativeMovement();
            CartesianPosition Test = new CartesianPosition
            {

                X = -1,
                Y = 0,
                Z = 0,
                A = 0,
                B = 0,
                C = 0
            };

            Robot.SetRelativeMovement(Test);
            System.Threading.Thread.Sleep(2000);
            Robot.StopRelativeMovement();

            Device Mouse = new Device();
        }
Example #6
0
        static void Main(string[] args)
        {
            RobotController Robot = new RobotController();

            Robot.Connect("192.168.1.1");
            Console.WriteLine("Robot connecté ... ");
            Console.WriteLine("Robot position : x:" + Robot.GetCurrentPosition().X + "; y:" + Robot.GetCurrentPosition().Y + "; z: " + Robot.GetCurrentPosition().Z);


            List <CartesianPosition> Trajectoire = new List <CartesianPosition>();

            for (int i = 1; i <= 100; i++)
            {
                Trajectoire.Add(new CartesianPosition
                {
                    X = i + Robot.GetCurrentPosition().X,
                    Y = i + Robot.GetCurrentPosition().Y,
                    Z = i + Robot.GetCurrentPosition().Z,
                    A = 0 + Robot.GetCurrentPosition().A,
                    B = 0 + Robot.GetCurrentPosition().B,
                    C = 0 + Robot.GetCurrentPosition().C
                });
            }
            //Robot.PlayTrajectory(Trajectoire);

            Robot.StartRelativeMovement();
            CartesianPosition Test = new CartesianPosition
            {
                X = -1,
                Y = 0,
                Z = 0,
                A = 0,
                B = 0,
                C = 0
            };

            Robot.SetRelativeMovement(Test);
            System.Threading.Thread.Sleep(2000);
            Robot.StopRelativeMovement();

            Device Mouse = new Device();
        }
        static void Main(string[] args)
        {
            RobotController Robot = new RobotController();
            Robot.Connect("192.168.1.1");
            Console.WriteLine("Robot connecté ... ");

            double cosTeta = 0.649352561565284; //teta=49.50...
            double sinTeta = 0.760487508634168; // sinTeta = System.Math.Cos(45);

            while(true)
            {
                double rX =  Robot.GetCurrentPosition().X * cosTeta - Robot.GetCurrentPosition().Y * sinTeta;
                double rY =  Robot.GetCurrentPosition().X * sinTeta + Robot.GetCurrentPosition().Y * cosTeta;

                //while((30 <= rX <= -30)&&(30 <= rY <= -20)&&(Robot.GetCurrentPosition().Z < 5))
                //if ((-300 >= rX) && (rX >= 300) && (-200 >= rY) && (rY >= 300) && (Robot.GetCurrentPosition().Z <= 50))
                if ((-200 <= rX) && (rX <= 800) && (130 <= rY) && (rY <= 790) && (Robot.GetCurrentPosition().Z >= 50))
                {
                   //move robot
                    Console.WriteLine("Robot reste dans la zone de securité YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY");
                    Console.WriteLine("Robot position : x:" + Robot.GetCurrentPosition().X + "; y:" + Robot.GetCurrentPosition().Y + "; z: " + Robot.GetCurrentPosition().Z);
                    Console.WriteLine("   Rotation de X : " + rX +"; Y : " + rY);
                }
                else
                {
                    //robot s'arrete
                    Console.WriteLine("!!! Robot a sorti de la zone de securité !!!!!!!!!!!!!!!!!!!!!!!");
                    Console.WriteLine("Robot position : x:" + Robot.GetCurrentPosition().X + "; y:" + Robot.GetCurrentPosition().Y + "; z: " + Robot.GetCurrentPosition().Z);
                    Console.WriteLine("   Rotation de X : " + rX + "; Y : " + rY);
                }
                System.Threading.Thread.Sleep(2000);
            }
        }
        private static void Main()
        {
            RobotController Robot = new RobotController();
            Robot.Connect("192.168.1.1");
            Console.WriteLine("Robot connecté ... ");

            string valeurX = "0", valeurY = "0", valeurZ = "0", valeurA = "0", valeurB = "0", valeurC = "0", valeurPince = "0", valeurDetection = "0";

            XmlDocument doc = new XmlDocument();
            XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            doc.AppendChild(docNode);

            //XmlNode productsNode = doc.CreateElement("products");
            XmlNode RobotNode = doc.CreateElement("Coordonees_Robot");
            doc.AppendChild(RobotNode);

            for (int i = 1; i < 666; i++)
            {
                Console.WriteLine(i);
                string id = i.ToString(); //iString
                Console.WriteLine(id);
                Console.WriteLine("press 0 pour ajouter point; press 9 pour finaliser");
                int j = i;
                while (j==i)
                {
                    try
                    {
                        int press = int.Parse(Console.ReadLine());
                        switch (press)
                        {
                            case 0:
                            {

               /*                          //Doner valeurs a X Y Z; apres on metra get.currentPosition...
                                System.Console.WriteLine("Ecrivez la valeur de X");
                                valeurX = (Console.ReadLine());
                                System.Console.WriteLine("Ecrivez la valeur de Y");
                                valeurY = (Console.ReadLine());
                                System.Console.WriteLine("Ecrivez la valeur de Z");
                                valeurZ = (Console.ReadLine());
               */
            //
                                valeurX = Robot.GetCurrentPosition().X.ToString();
                                valeurY = Robot.GetCurrentPosition().Y.ToString();
                                valeurZ = Robot.GetCurrentPosition().Z.ToString();
                                valeurA = Robot.GetCurrentPosition().A.ToString();
                                valeurB = Robot.GetCurrentPosition().B.ToString();
                                valeurC = Robot.GetCurrentPosition().C.ToString();
                                valeurDetection = Robot.ReadSensor().ToString();
                                valeurPince = Robot.IsGripperOpen().ToString();
             //*/
                                // Create and add another product node---------------------------Creation nouveau position
                                XmlNode PositonNode = doc.CreateElement("Position");
                                XmlAttribute postitionAttribute = doc.CreateAttribute("id");
                                postitionAttribute.Value = id;
                                PositonNode.Attributes.Append(postitionAttribute);
                                RobotNode.AppendChild(PositonNode);

                                XmlNode xNode = doc.CreateElement("X");
                                xNode.AppendChild(doc.CreateTextNode(valeurX));
                                PositonNode.AppendChild(xNode);
                                XmlNode yNode = doc.CreateElement("Y");
                                yNode.AppendChild(doc.CreateTextNode(valeurY));
                                PositonNode.AppendChild(yNode);
                                XmlNode zNode = doc.CreateElement("Z");
                                zNode.AppendChild(doc.CreateTextNode(valeurZ));
                                PositonNode.AppendChild(zNode);
                                XmlNode aNode = doc.CreateElement("A");
                                aNode.AppendChild(doc.CreateTextNode(valeurA));
                                PositonNode.AppendChild(aNode);
                                XmlNode bNode = doc.CreateElement("B");
                                bNode.AppendChild(doc.CreateTextNode(valeurB));
                                PositonNode.AppendChild(bNode);
                                XmlNode cNode = doc.CreateElement("C");
                                cNode.AppendChild(doc.CreateTextNode(valeurC));
                                PositonNode.AppendChild(cNode);
                                //----------------------------- Pince et Capteur ------------------------------------------
                                XmlNode gripperNode = doc.CreateElement("Pince");
                                gripperNode.AppendChild(doc.CreateTextNode(valeurPince));
                                PositonNode.AppendChild(gripperNode);
                                XmlNode detectionNode = doc.CreateElement("Detection");
                                detectionNode.AppendChild(doc.CreateTextNode(valeurDetection));
                                PositonNode.AppendChild(detectionNode);

                                j = j+1;
                                break;
                            }
                            case 9:
                            {
                                i = 666;
                                break;
                            }
                            default:
                            {
                                System.Console.WriteLine("Pres 0 pour enregitrer un nouveau point");
                                break;
                            }
                        }
                    }
                    catch
                    {

                    }
                }
            }

            doc.Save(Console.Out);
            doc.Save(@"C:\Users\Jordi\Desktop\novaLynx\jordi\XML\xmlTestJordi4\kukaAgilus.xml");
            System.Console.ReadLine();
        }
        private static void Main()
        {
            RobotController Robot = new RobotController();

            Robot.Connect("192.168.1.1");
            Console.WriteLine("Robot connecté ... ");

            string valeurX = "0", valeurY = "0", valeurZ = "0", valeurA = "0", valeurB = "0", valeurC = "0", valeurPince = "0", valeurDetection = "0";

            XmlDocument doc     = new XmlDocument();
            XmlNode     docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);

            doc.AppendChild(docNode);

            //XmlNode productsNode = doc.CreateElement("products");
            XmlNode RobotNode = doc.CreateElement("Coordonees_Robot");

            doc.AppendChild(RobotNode);

            for (int i = 1; i < 666; i++)
            {
                Console.WriteLine(i);
                string id = i.ToString(); //iString
                Console.WriteLine(id);
                Console.WriteLine("press 0 pour ajouter point; press 9 pour finaliser");
                int j = i;
                while (j == i)
                {
                    try
                    {
                        int press = int.Parse(Console.ReadLine());
                        switch (press)
                        {
                        case 0:
                        {
                            /*                          //Doner valeurs a X Y Z; apres on metra get.currentPosition...
                             *                           System.Console.WriteLine("Ecrivez la valeur de X");
                             *                           valeurX = (Console.ReadLine());
                             *                           System.Console.WriteLine("Ecrivez la valeur de Y");
                             *                           valeurY = (Console.ReadLine());
                             *                           System.Console.WriteLine("Ecrivez la valeur de Z");
                             *                           valeurZ = (Console.ReadLine());
                             */
                            //
                            valeurX         = Robot.GetCurrentPosition().X.ToString();
                            valeurY         = Robot.GetCurrentPosition().Y.ToString();
                            valeurZ         = Robot.GetCurrentPosition().Z.ToString();
                            valeurA         = Robot.GetCurrentPosition().A.ToString();
                            valeurB         = Robot.GetCurrentPosition().B.ToString();
                            valeurC         = Robot.GetCurrentPosition().C.ToString();
                            valeurDetection = Robot.ReadSensor().ToString();
                            valeurPince     = Robot.IsGripperOpen().ToString();
                            //*/
                            // Create and add another product node---------------------------Creation nouveau position
                            XmlNode      PositonNode        = doc.CreateElement("Position");
                            XmlAttribute postitionAttribute = doc.CreateAttribute("id");
                            postitionAttribute.Value = id;
                            PositonNode.Attributes.Append(postitionAttribute);
                            RobotNode.AppendChild(PositonNode);

                            XmlNode xNode = doc.CreateElement("X");
                            xNode.AppendChild(doc.CreateTextNode(valeurX));
                            PositonNode.AppendChild(xNode);
                            XmlNode yNode = doc.CreateElement("Y");
                            yNode.AppendChild(doc.CreateTextNode(valeurY));
                            PositonNode.AppendChild(yNode);
                            XmlNode zNode = doc.CreateElement("Z");
                            zNode.AppendChild(doc.CreateTextNode(valeurZ));
                            PositonNode.AppendChild(zNode);
                            XmlNode aNode = doc.CreateElement("A");
                            aNode.AppendChild(doc.CreateTextNode(valeurA));
                            PositonNode.AppendChild(aNode);
                            XmlNode bNode = doc.CreateElement("B");
                            bNode.AppendChild(doc.CreateTextNode(valeurB));
                            PositonNode.AppendChild(bNode);
                            XmlNode cNode = doc.CreateElement("C");
                            cNode.AppendChild(doc.CreateTextNode(valeurC));
                            PositonNode.AppendChild(cNode);
                            //----------------------------- Pince et Capteur ------------------------------------------
                            XmlNode gripperNode = doc.CreateElement("Pince");
                            gripperNode.AppendChild(doc.CreateTextNode(valeurPince));
                            PositonNode.AppendChild(gripperNode);
                            XmlNode detectionNode = doc.CreateElement("Detection");
                            detectionNode.AppendChild(doc.CreateTextNode(valeurDetection));
                            PositonNode.AppendChild(detectionNode);

                            j = j + 1;
                            break;
                        }

                        case 9:
                        {
                            i = 666;
                            break;
                        }

                        default:
                        {
                            System.Console.WriteLine("Pres 0 pour enregitrer un nouveau point");
                            break;
                        }
                        }
                    }
                    catch
                    {
                    }
                }
            }

            doc.Save(Console.Out);
            doc.Save(@"C:\Users\Jordi\Desktop\novaLynx\jordi\XML\xmlTestJordi4\kukaAgilus.xml");
            System.Console.ReadLine();
        }