|
@@ -3,6 +3,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
|
|
|
from __future__ import print_function
|
|
|
|
|
@@ -29,10 +31,13 @@ anything else : stop
|
|
|
q/z : increase/decrease max speeds by 10%
|
|
|
w/x : increase/decrease only linear speed by 10%
|
|
|
e/c : increase/decrease only angular speed by 10%
|
|
|
-1/2 : increase/decrease gripper angle by 5°
|
|
|
+1/2 : increase/decrease up/down servo angle by 5°
|
|
|
+3/4 : increase/decrease left/right servo angle by 5°
|
|
|
|
|
|
1 : Camera UP
|
|
|
2 : Camera Down
|
|
|
+3 : Camera Left
|
|
|
+4 : Camera Right
|
|
|
|
|
|
CTRL-C to quit
|
|
|
"""
|
|
@@ -59,6 +64,12 @@ cameraUpBindings={
|
|
|
cameraDownBindings={
|
|
|
'2':(-5),
|
|
|
}
|
|
|
+cameraLeftBindings={
|
|
|
+ '3':(5),
|
|
|
+ }
|
|
|
+cameraRightBindings={
|
|
|
+ '4':(-5),
|
|
|
+ }
|
|
|
|
|
|
def getKey():
|
|
|
tty.setraw(sys.stdin.fileno())
|
|
@@ -76,11 +87,11 @@ def angles(angle):
|
|
|
|
|
|
|
|
|
|
|
|
-def client_srv():
|
|
|
+def client_srv(ser_id, ser_angle):
|
|
|
rospy.wait_for_service("mobilebase_arduino/camera_control")
|
|
|
try:
|
|
|
- gripper_client = rospy.ServiceProxy("mobilebase_arduino/camera_control",CameraControl)
|
|
|
- resp = gripper_client.call(angle)
|
|
|
+ camera_client = rospy.ServiceProxy("mobilebase_arduino/camera_control", CameraControl)
|
|
|
+ resp = camera_client.call(ser_id, ser_angle)
|
|
|
except rospy.ServiceException, e:
|
|
|
rospy.logwarn("Service call failed: %s"%e)
|
|
|
|
|
@@ -99,7 +110,8 @@ if __name__=="__main__":
|
|
|
z = 0
|
|
|
th = 0
|
|
|
status = 0
|
|
|
- angle = 10
|
|
|
+ upDownAngle = 10
|
|
|
+ leftRightAngle = 90
|
|
|
command = 2
|
|
|
|
|
|
try:
|
|
@@ -125,19 +137,37 @@ if __name__=="__main__":
|
|
|
y = 0
|
|
|
z = 0
|
|
|
th = 0
|
|
|
- print(angles(angle))
|
|
|
- if (angle < 90 and angle >=0):
|
|
|
- angle = angle + cameraUpBindings[key]
|
|
|
- client_srv()
|
|
|
+ print(angles(upDownAngle))
|
|
|
+ if (upDownAngle < 90 and upDownAngle >=0):
|
|
|
+ upDownAngle = upDownAngle + cameraUpBindings[key]
|
|
|
+ client_srv(0, upDownAngle)
|
|
|
elif key in cameraDownBindings.keys():
|
|
|
x = 0
|
|
|
y = 0
|
|
|
z = 0
|
|
|
th = 0
|
|
|
- print(angles(angle))
|
|
|
- if (angle <= 90 and angle >0):
|
|
|
- angle = angle + cameraDownBindings[key]
|
|
|
- client_srv()
|
|
|
+ print(angles(upDownAngle))
|
|
|
+ if (upDownAngle <= 90 and upDownAngle >0):
|
|
|
+ upDownAngle = upDownAngle + cameraDownBindings[key]
|
|
|
+ client_srv(0, upDownAngle)
|
|
|
+ elif key in cameraLeftBindings.keys():
|
|
|
+ x = 0
|
|
|
+ y = 0
|
|
|
+ z = 0
|
|
|
+ th = 0
|
|
|
+ print(angles(leftRightAngle))
|
|
|
+ if (leftRightAngle < 180 and leftRightAngle >=0):
|
|
|
+ leftRightAngle = leftRightAngle + cameraLeftBindings[key]
|
|
|
+ client_srv(1, leftRightAngle)
|
|
|
+ elif key in cameraRightBindings.keys():
|
|
|
+ x = 0
|
|
|
+ y = 0
|
|
|
+ z = 0
|
|
|
+ th = 0
|
|
|
+ print(angles(leftRightAngle))
|
|
|
+ if (leftRightAngle <= 180 and leftRightAngle >0):
|
|
|
+ leftRightAngle = leftRightAngle + cameraRightBindings[key]
|
|
|
+ client_srv(1, leftRightAngle)
|
|
|
else:
|
|
|
x = 0
|
|
|
y = 0
|