示例#1
0
        public static async Task DoRequest(Mat frame, Robot.Components.Robot robot)
        {
            Body body = robot.GetBody();

            Cv2.ImEncode(".png", frame, out var buffer);
            var bufferAsText = Convert.ToBase64String(buffer);

            float[] servos =
            {
                body.GetFrontBodyPart().GetLegs()[0].GetServo().GetAngle().AsDegrees(),
                body.GetFrontBodyPart().GetLegs()[1].GetServo().GetAngle().AsDegrees(),
                body.GetBackBodyPart().GetLegs()[0].GetServo().GetAngle().AsDegrees(),
                body.GetBackBodyPart().GetLegs()[1].GetServo().GetAngle().AsDegrees(),
            };

            float[] targetDegrees =
            {
                body.GetFrontBodyPart().GetLegs()[0].GetServo().GetTargetDegree(),
                body.GetFrontBodyPart().GetLegs()[1].GetServo().GetTargetDegree(),
                body.GetBackBodyPart().GetLegs()[0].GetServo().GetTargetDegree(),
                body.GetBackBodyPart().GetLegs()[1].GetServo().GetTargetDegree(),
            };

            int[] motors =
            {
                body.GetFrontBodyPart().GetLegs()[0].GetWheel().GetMotor().GetPwm(),
                body.GetFrontBodyPart().GetLegs()[1].GetWheel().GetMotor().GetPwm(),
                body.GetBackBodyPart().GetLegs()[0].GetWheel().GetMotor().GetPwm(),
                body.GetBackBodyPart().GetLegs()[1].GetWheel().GetMotor().GetPwm(),
            };

            // float weight = robot.GetGripper().GetLoadCell().GetWeight();
            // Console.WriteLine(weight);

            var package = new Package(bufferAsText, servos, targetDegrees, motors, 0);

            var json = JsonConvert.SerializeObject(package);

            var httpContent = new StringContent(json, System.Text.Encoding.UTF8, "application/json");

            try {
                var responseBody = await httpClient.PostAsync(address, httpContent);
            } catch {
            }
        }
示例#2
0
        private void InitializeRobot()
        {
            var legZeroAngle = new Degrees(135);
            var legMinAngle  = new Degrees(45);
            var legMaxAngle  = new Degrees(175);

            var legLength          = 108;
            var legDistanceToWheel = 29;

            var frontLeftLeg = new Leg(
                new Servo(3, true, legZeroAngle, legMinAngle, legMaxAngle),
                new Wheel(
                    new Motor(0)
                    ),
                legLength,
                legDistanceToWheel
                );

            var frontRightLeg = new Leg(
                new Servo(2, false, legZeroAngle, legMinAngle, legMaxAngle),
                new Wheel(
                    new Motor(2)
                    ),
                legLength,
                legDistanceToWheel
                );

            var backLeftLeg = new Leg(
                new Servo(1, false, legZeroAngle, legMinAngle, legMaxAngle),
                new Wheel(
                    new Motor(1)
                    ),
                legLength,
                legDistanceToWheel
                );

            var backRightLeg = new Leg(
                new Servo(0, true, legZeroAngle, legMinAngle, legMaxAngle),
                new Wheel(
                    new Motor(3)
                    ),
                legLength,
                legDistanceToWheel
                );

            this.robot = new Robot.Components.Robot(
                new Body(
                    new BodyPart(new List <Leg>()
            {
                frontLeftLeg, frontRightLeg
            }),
                    new BodyPart(new List <Leg>()
            {
                backLeftLeg, backRightLeg
            }),
                    new BodyPart(new List <Leg>()
            {
                frontLeftLeg, backLeftLeg
            }),
                    new BodyPart(new List <Leg>()
            {
                frontRightLeg, backRightLeg
            })
                    ),
                new Joystick(0, 3, 63),
                new Joystick(1, 0, 63),
                new Joystick(2, 3, 63),
                new Joystick(3, 0, 63),
                new Gripper(
                    new Servo(4, false, new Degrees(135), new Degrees(90), new Degrees(135)), new LoadCell()
                    )
                );

            this.logger.LogDebug("Initialized robot");
        }