Initial commit
This commit is contained in:
commit
07eca1dd4e
0
.gitignore
vendored
Normal file
0
.gitignore
vendored
Normal file
0
__init__.py
Normal file
0
__init__.py
Normal file
64
pioneer-x360.py
Normal file
64
pioneer-x360.py
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
from os import sys
|
||||||
|
from inputs import get_gamepad
|
||||||
|
from drive import RosAriaDriver
|
||||||
|
from queue import Queue
|
||||||
|
from threading import Thread
|
||||||
|
|
||||||
|
class PioneerX360():
|
||||||
|
|
||||||
|
def __init__(self, n):
|
||||||
|
self.pad = get_gamepad()
|
||||||
|
self.pioneer = RosAriaDriver('PIONIER' + n + '/')
|
||||||
|
self.axes = {
|
||||||
|
"Y": 0,
|
||||||
|
"X": 0
|
||||||
|
}
|
||||||
|
self.mapper = {
|
||||||
|
# "BTN_TL": if_button_pressed(pioneer.GripperUp),
|
||||||
|
# "BTN_TR": if_button_pressed(pioneer.GripperDown),
|
||||||
|
# "BTN_SOUTH": if_button_pressed(pioneer.GripperOpen),
|
||||||
|
# "BTN_WEST": if_button_pressed(pioneer.GripperClose),
|
||||||
|
# "ABS_Y": go_T,
|
||||||
|
"BTN_MODE": exit,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def if_button_pressed(fun):
|
||||||
|
def foo(state):
|
||||||
|
if state == 1:
|
||||||
|
fun()
|
||||||
|
return foo
|
||||||
|
|
||||||
|
def update_axes(self, event):
|
||||||
|
axis = event.code[4:]
|
||||||
|
deviation = event.state
|
||||||
|
self.axes[axis] = deviation
|
||||||
|
|
||||||
|
|
||||||
|
def publish_cmd(self):
|
||||||
|
print(self.axes)
|
||||||
|
if self.axes["Y"] < -10000:
|
||||||
|
self.pioneer.SetSpeed(0.1, 0, 0)
|
||||||
|
elif self.axes["Y"] > 10000:
|
||||||
|
self.pioneer.SetSpeed(-0.1, 0, 0)
|
||||||
|
else:
|
||||||
|
self.pioneer.SetSpeed(0, 0, 0)
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
while 1:
|
||||||
|
events = get_gamepad()
|
||||||
|
self.publish_cmd()
|
||||||
|
for event in events:
|
||||||
|
self.publish_cmd()
|
||||||
|
if event.code[0:3] == "ABS":
|
||||||
|
self.update_axes(event)
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
self.mapper[event.code](event.state)
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
# print(event.code, event.state)
|
||||||
|
|
||||||
|
p = PioneerX360(sys.argv[1])
|
||||||
|
p.run()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user