Difference between revisions of "Python"
From RobotinoWiki
(Created page with "==Introduction== {|class="wikitable" cellpadding="20" vertical-align="top" |- |Image:Robotino_python_64.png |This page is about programming Robotino using Python. This app...") |
|||
Line 27: | Line 27: | ||
def set_vel(vel): | def set_vel(vel): | ||
OMNIDRIVE_URL = "http://" + ROBOTINOIP + "/data/omnidrive" | OMNIDRIVE_URL = "http://" + ROBOTINOIP + "/data/omnidrive" | ||
− | r = requests.post(url = OMNIDRIVE_URL, params = PARAMS, json | + | r = requests.post(url = OMNIDRIVE_URL, params = PARAMS, data = json.dumps(vel) ) |
if r.status_code != requests.codes.ok: | if r.status_code != requests.codes.ok: | ||
#print("Error: post to %s with params %s failed", OMNIDRIVE_URL, PARAMS) | #print("Error: post to %s with params %s failed", OMNIDRIVE_URL, PARAMS) |
Latest revision as of 18:18, 11 March 2024
Introduction
cricle example
import requests import sys import json import time import math import signal ROBOTINOIP = "192.168.1.180:13080" #ROBOTINOIP = "192.168.1.223" PARAMS = {'sid':'example_circle'} run = True def signal_handler(sig, frame): global run print('You pressed Ctrl+C!') run = False def set_vel(vel): OMNIDRIVE_URL = "http://" + ROBOTINOIP + "/data/omnidrive" r = requests.post(url = OMNIDRIVE_URL, params = PARAMS, data = json.dumps(vel) ) if r.status_code != requests.codes.ok: #print("Error: post to %s with params %s failed", OMNIDRIVE_URL, PARAMS) raise RuntimeError("Error: post to %s with params %s failed", OMNIDRIVE_URL, PARAMS) def bumper(): BUMPER_URL = "http://" + ROBOTINOIP + "/data/bumper" r = requests.get(url = BUMPER_URL, params = PARAMS) if r.status_code == requests.codes.ok: data = r.json() return data["value"] else: raise RuntimeError("Error: get from %s with params %s failed", BUMPER_URL, PARAMS) def distances(): DISTANCES_URL = "http://" + ROBOTINOIP + "/data/distancesensorarray" r = requests.get(url = DISTANCES_URL, params = PARAMS) if r.status_code == requests.codes.ok: data = r.json() return data else: raise RuntimeError("Error: get from %s with params %s failed", DISTANCES_URL, PARAMS) #rotate tuple vec by deg degrees and return the rotated vector as a list def rotate( vec, deg ): rad = 2 * math.pi / 360 * deg; out = [0,0]; out[0] = ( math.cos( rad ) * vec[0] - math.sin( rad ) * vec[1] ); out[1] = ( math.sin( rad ) * vec[0] + math.cos( rad ) * vec[1] ); return out; def main(): signal.signal(signal.SIGINT, signal_handler) try: startVector = (0.2, 0.0); a = 0; msecsElapsed = 0; vec = [0,0,0]; while False == bumper() and True == run: dir = rotate( startVector, a ); a = 360.0 * msecsElapsed / 10000; vec[0] = dir[0]; vec[1] = dir[1]; set_vel(vec); time.sleep(0.05) msecsElapsed += 50; set_vel([0,0,0]) except Exception as e: print(e) return 1 return 0 if __name__ == "__main__": main()