Bonjour à tous !

j'ai un robot aisoy http://aisoy.com et je souhaiterai exécuter une commande python depuis une page html .

les fichiers:

Mon head-left1.py

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python
#include <actuatorSdk.h>
import os
os.environ['ROS_DISTRO']='fuerte'
os.environ['ROSLISP_PACKAGE_DIRECTORY']='/opt/ros/fuerte/share/common-lisp/ros'
os.environ['ROS_ETC_DIR']='/opt/ros/fuerte/etc/ros'
os.environ['ROS_IP']='192.168.0.30'
os.environ['ROS_MASTER_URI']='http://localhost:11311'
os.environ['ROS_PACKAGE_PATH']='/home/pi/fuerte_workspace/sandbox'
os.environ['ROS_PACKAGE_PATH']='/opt/ros/fuerte/stacks'
os.environ['ROS_PACKAGE_PATH']='opt/ros/fuerte/share'
os.environ['ROS_PACKAGE_PATH']='/opt/ros/fuerte/share/ros'
os.environ['ROS_ROOT']='/opt/ros/fuerte/share/ros'
os.environ['ROS_WORKSPACE']='/home/pi/fuerte_workspace'
os.environ['ROS_PACKAGE_PATH']='opt/ros/fuerte/lib/python2.7/dist-packages'
 
 
import roslib; roslib.load_manifest('aisoy_sdk_actuator')
roslib.load_manifest('aisoy_common')
 
 
from libaisoy_sdk_actuator import *
from libaisoy_common import * 
 
virtual = Actuator()
actuator = Actuator()
actuator. moveServoRelative(Servo.HeadHorizontal, 0.2)
Mon fichier html:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
 
 
 
</head>
<body>
 
	<form action="http://192.168.0.30/py/head-left1.py" method="post">
  <input name="send" value="executer" type="submit">
</form>
 
</body>
</html>
Mon error apache2:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 tail -f /var/log/apache2/error.log
Traceback (most recent call last):
  File "/usr/lib/cgi-bin/head-left1.py", line 18, in <module>
    import roslib; roslib.load_manifest('aisoy_sdk_actuator')
ImportError: No module named roslib
[Thu Jan 23 18:54:16 2014] [error] [client 192.168.0.10] Premature end of script headers: head-left1.py, referer: http://192.168.0.30/aisoy/aisoyv1v333.html
Traceback (most recent call last):
  File "/usr/lib/cgi-bin/head-left1.py", line 18, in <module>
    import roslib; roslib.load_manifest('aisoy_sdk_actuator')
ImportError: No module named roslib
[Thu Jan 23 18:54:25 2014] [error] [client 192.168.0.10] Premature end of script headers: head-left1.py, referer: http://192.168.0.30/aisoy/aisoyv1v333.html

Mon envvars (apache2)


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# envvars - default environment variables for apache2ctl
 
# this won't be correct after changing uid
unset HOME
 
# for supporting multiple apache2 instances
if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
	SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}"
else
	SUFFIX=
fi
 
# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2$SUFFIX.pid
export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX
export ROSLISP_PACKAGE_DIRECTORY=/opt/ros/fuerte/share/common-lisp/ros
export ROS_DISTRO=fuerte
export ROS_ETC_DIR=/opt/ros/fuerte/etc/ros
export ROS_IP=192.168.0.30
export ROS_MASTER_URI=http://localhost:11311
export ROS_PACKAGE_PATH=/home/pi/fuerte_workspace/sandbox
export ROS_PACKAGE_PATH=/opt/ros/fuerte/stacks
export ROS_PACKAGE_PATH=/opt/ros/fuerte/share
export ROS_PACKAGE_PATH=/opt/ros/fuerte/share/ros
export ROS_PACKAGE_PATH=/home/pi/fuerte_workspace
export ROS_ROOT=/opt/ros/fuerte/share/ros
export ROS_WORKSPACE=/home/pi/fuerte_workspace
export PYTHONPATH=http://192.168.0.30/py/head-left1.py
export PYTHONPATH=/opt/ros/fuerte/lib/python2.7/dist-packages
 
 
# Only /var/log/apache2 is handled by /etc/logrotate.d/apache2.
export APACHE_LOG_DIR=/var/log/apache2$SUFFIX
 
## The locale used by some modules like mod_dav
export LANG=C
## Uncomment the following line to use the system default locale instead:
#. /etc/default/locale
 
export LANG
 
## The command to get the status for 'apache2ctl status'.
## Some packages providing 'www-browser' need '--dump' instead of '-dump'.
#export APACHE_LYNX='www-browser -dump'
 
## If you need a higher file descriptor limit, uncomment and adjust the
## following line (default is 8192):
#APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'
 
 
## If you would like to pass arguments to the web server, add them below
## to the APACHE_ARGUMENTS environment.
#export APACHE_ARGUMENTS=''
#export ROSLISP_PACKAGE_DIRECTORY="/opt/ros/fuerte/share/common-lisp/ros"
#export ROS_DISTRO="fuerte"
#export ROS_ETC_DIR="/opt/ros/fuerte/etc/ros"
#export ROS_IP="192.168.0.22"
#export ROS_MASTER_URI="http://localhost:11311"
#export ROS_PACKAGE_PATH="/home/pi/fuerte_workspace/sandbox:/opt/ros/fuerte/stacks:/opt/ros/fuerte/share:/opt/ros/fuerte/share/ros"
#export ROS_ROOT="/opt/ros/fuerte/share/ros"
#export ROS_WORKSPACE="/home/pi/fuerte_workspace"
export ROSLISP_PACKAGE_DIRECTORY=/opt/ros/fuerte/share/common-lisp/ros
export ROS_DISTRO=fuerte
export ROS_ETC_DIR=/opt/ros/fuerte/etc/ros
export ROS_IP=192.168.0.30
export ROS_MASTER_URI=http://localhost:11311
export ROS_PACKAGE_PATH=/home/pi/fuerte_workspace/sandbox
export ROS_PACKAGE_PATH=/opt/ros/fuerte/stacks
export ROS_PACKAGE_PATH=/opt/ros/fuerte/share
export ROS_PACKAGE_PATH=/opt/ros/fuerte/share/ros
export ROS_PACKAGE_PATH=/home/pi/fuerte_workspace
export ROS_ROOT=/opt/ros/fuerte/share/ros
export ROS_WORKSPACE=/home/pi/fuerte_workspace
export PYTHONPATH=http://192.168.0.30/py/head-left1.py
export PYTHONPATH=/opt/ros/fuerte/lib/python2.7/dist-packages
J'ai essayé avec des fichiers de test python ca marche, mais pas avec celui ci (erreur 500).

j'ai effectué la commande suivante pour les info sur ros:

export | grep ROS