socket_teleop.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 #######################################################
3 ## bendahmane.amine@gmail.com ##
4 ## last update : Jan 31st, 2016 ##
5 #######################################################
6 ## Description: This program transforms the inputs ##
7 ## recieved from socket and the calls the ##
8 ## commandline_teleop.py program. ##
9 #######################################################
10 
11 MAX_SPEED = 0.4
12 DEFAULT_MOVE_TIME = 1.5
13 DEFAULT_PORT = 50001
14 
15 FORWARD_ALIAS = 'forward'
16 BACKWARD_ALIAS = 'backward'
17 LEFT_ALIAS = 'left'
18 RIGHT_ALIAS = 'right'
19 
20 #######################################################
21 ## DO NOT CHANGE ANYTHING AFTER THIS LINE! ##
22 #######################################################
23 
24 import roslib
25 import rospy
26 import socket
27 import sys
28 import os
29 rospy.init_node('teleop')
30 roslib.load_manifest('pioneer_teleop')
31 
32 if (len(sys.argv) > 1):
33  port = int(sys.argv[1])
34  if (port <= 0):
35  port = DEFAULT_PORT
36 else:
37  port = DEFAULT_PORT
38 
39 if (len(sys.argv) > 2):
40  speed = float(sys.argv[2])
41 else:
42  speed = 0
43 if (speed <= 0):
44  speed = 0.2
45 elif (speed > MAX_SPEED):
46  speed = MAX_SPEED
47 
48 if (len(sys.argv) > 3):
49  moveTime = float(sys.argv[3])
50 else:
51  moveTime = 0.0
52 if (moveTime <= 0):
53  moveTime = DEFAULT_MOVE_TIME
54 
55 host = ''
56 queue = 5
57 bufferSize = 256
58 serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
59 serverSocket.bind(('',port))
60 serverSocket.listen(queue)
61 
62 print " - Listening for network communications in port " + str(port) + "...\n"
63 
64 while 1:
65  print " - Waiting for client...\n"
66  clientSocket, address = serverSocket.accept()
67  command = clientSocket.recv(bufferSize)
68  if (command == 'forward') or (command == FORWARD_ALIAS):
69  print " >> Command recieved: move forward\n"
70  os.system("rosrun pioneer_teleop commandline_teleop.py forward " + str(speed) + " " + str(moveTime))
71  elif (command == 'backward') or (command == BACKWARD_ALIAS):
72  print " >> Command recieved: move backward\n"
73  os.system("rosrun pioneer_teleop commandline_teleop.py backward " + str(speed) + " " + str(moveTime))
74  elif (command == 'right') or (command == RIGHT_ALIAS):
75  print " >> Command recieved: move right\n"
76  os.system("rosrun pioneer_teleop commandline_teleop.py right " + str(speed) + " " + str(moveTime))
77  elif (command == 'left') or (command == LEFT_ALIAS):
78  print " >> Command recieved: move left\n"
79  os.system("rosrun pioneer_teleop commandline_teleop.py left " + str(speed) + " " + str(moveTime))
80  else:
81  print " >> Error: Command '" + command + "' not recognized !\n"
82  print " Please use " + str(FORWARD_ALIAS) + "," + str(BACKWARD_ALIAS) + "," + str(LEFT_ALIAS) + " or " + str(RIGHT_ALIAS) + "."
83  clientSocket.close()


pioneer_teleop
Author(s): Amine BENDAHMANE
autogenerated on Mon Jun 10 2019 14:16:37