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 { } }
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"); }