WUT Velma robot API
velma_system
velma_task_cs_ros_interface
scripts
switch_to_jimp.py
Go to the documentation of this file.
1
#!/usr/bin/env python
2
3
5
6
# Copyright (c) 2017, Robot Control and Pattern Recognition Group,
7
# Institute of Control and Computation Engineering
8
# Warsaw University of Technology
9
#
10
# All rights reserved.
11
#
12
# Redistribution and use in source and binary forms, with or without
13
# modification, are permitted provided that the following conditions are met:
14
# * Redistributions of source code must retain the above copyright
15
# notice, this list of conditions and the following disclaimer.
16
# * Redistributions in binary form must reproduce the above copyright
17
# notice, this list of conditions and the following disclaimer in the
18
# documentation and/or other materials provided with the distribution.
19
# * Neither the name of the Warsaw University of Technology nor the
20
# names of its contributors may be used to endorse or promote products
21
# derived from this software without specific prior written permission.
22
#
23
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
24
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26
# DISCLAIMED. IN NO EVENT SHALL <COPYright HOLDER> BE LIABLE FOR ANY
27
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
30
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
#
34
# Author: Dawid Seredynski
35
#
36
37
import
roslib; roslib.load_manifest(
'velma_task_cs_ros_interface'
)
38
39
import
rospy
40
import
math
41
import
PyKDL
42
43
from
velma_common.velma_interface
import
*
44
from
control_msgs.msg
import
FollowJointTrajectoryResult
45
from
rcprg_ros_utils
import
exitError
46
47
if
__name__ ==
"__main__"
:
48
rospy.init_node(
'switch_to_jimp'
)
49
rospy.sleep(0.5)
50
51
print(
'Running python interface for Velma...'
)
52
velma =
VelmaInterface
()
53
print(
'Waiting for VelmaInterface initialization...'
)
54
if
not
velma.waitForInit(timeout_s=10.0):
55
exitError
(1, msg=
'Could not initialize VelmaInterface'
)
56
print(
'Initialization ok!'
)
57
58
print(
'Motors must be enabled every time after the robot enters safe state.'
)
59
print(
'If the motors are already enabled, enabling them has no effect.'
)
60
print(
'Enabling motors...'
)
61
if
velma.enableMotors() != 0:
62
exitError
(2, msg=
'Could not enable motors'
)
63
64
rospy.sleep(0.5)
65
66
diag = velma.getCoreCsDiag()
67
if
not
diag.motorsReady():
68
exitError
(3, msg=
'Motors must be homed and ready to use for this test.'
)
69
70
print(
'Switch to jnt_imp mode (no trajectory)...'
)
71
velma.moveJointImpToCurrentPos(start_time=0.5)
72
error = velma.waitForJoint()
73
if
error != 0:
74
exitError
(4, msg=
'The action should have ended without error,'
\
75
' but the error code is {}'
.format(error))
76
77
rospy.sleep(0.5)
78
diag = velma.getCoreCsDiag()
79
if
not
diag.inStateJntImp():
80
exitError
(5, msg=
'The control system should be in jnt_imp mode'
)
81
82
exitError
(0)
velma_common.velma_interface
Definition:
velma_interface.py:1
scripts.test_jimp_endless.exitError
def exitError(code)
Definition:
test_jimp_endless.py:48
velma_common.velma_interface.VelmaInterface
ROS-based, Python interface class for WUT Velma Robot.
Definition:
velma_interface.py:185
Generated by
1.8.13