MCPcopy Create free account
hub / github.com/DexterInd/GoPiGo3 / robot_commands

Function robot_commands

Projects/RemoteCameraRobot/remote_robot.py:84–134  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

82
83@app.route("/robot", methods = ["POST"])
84def robot_commands():
85
86 # get the query
87 args = request.args
88 state = args['state']
89 angle_degrees = int(float(args['angle_degrees']))
90 angle_dir = args['angle_dir']
91 force = float(args['force'])
92 determined_speed = MIN_SPEED + force * (MAX_SPEED - MIN_SPEED) / MAX_FORCE
93 if determined_speed > MAX_SPEED:
94 determined_speed = MAX_SPEED
95
96 if state == 'move':
97 # for moving backward
98 if angle_degrees >= 260 and angle_degrees <= 280:
99 gopigo3_robot.set_speed(determined_speed)
100 gopigo3_robot.backward()
101
102 # for moving to the left or forward
103 if angle_degrees > 90 and angle_degrees < 260:
104 gopigo3_robot.set_motor_dps(gopigo3_robot.MOTOR_RIGHT, determined_speed)
105
106 left_motor_percentage = abs((angle_degrees - 170) / 90)
107 sign = -1 if angle_degrees >= 180 else 1
108
109 gopigo3_robot.set_motor_dps(gopigo3_robot.MOTOR_LEFT, determined_speed * left_motor_percentage * sign)
110
111 # for moving to the right (or forward)- upper half
112 if angle_degrees < 90 and angle_degrees >= 0:
113 gopigo3_robot.set_motor_dps(gopigo3_robot.MOTOR_LEFT, determined_speed)
114
115 right_motor_percentage = angle_degrees / 90
116 gopigo3_robot.set_motor_dps(gopigo3_robot.MOTOR_RIGHT, determined_speed * right_motor_percentage)
117 # for moving to the right (or forward)- bottom half
118 if angle_degrees <= 360 and angle_degrees > 280:
119 gopigo3_robot.set_motor_dps(gopigo3_robot.MOTOR_LEFT, determined_speed)
120
121 right_motor_percentage = (angle_degrees - 280) / 80 - 1
122 gopigo3_robot.set_motor_dps(gopigo3_robot.MOTOR_RIGHT, determined_speed * right_motor_percentage)
123
124 elif state == 'stop':
125 gopigo3_robot.stop()
126 else:
127 app.logging.warning('unknown state sent')
128
129 resp = Response()
130 resp.mimetype = "application/json"
131 resp.status = "OK"
132 resp.status_code = 200
133
134 return resp
135
136@app.route("/")
137def index():

Callers

nothing calls this directly

Calls 4

set_speedMethod · 0.80
backwardMethod · 0.45
set_motor_dpsMethod · 0.45
stopMethod · 0.45

Tested by

no test coverage detected