Skip to content

Commit 608abf2

Browse files
author
Ian McMahon
committed
Merge pull request #66 from RethinkRobotics/core_msgs_sync
Core msgs sync
2 parents 49d233f + 17b2560 commit 608abf2

File tree

5 files changed

+47
-22
lines changed

5 files changed

+47
-22
lines changed

src/baxter_interface/gripper.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ def _on_gripper_prop(self, properties):
149149
self.on_type_changed({
150150
EndEffectorProperties.SUCTION_CUP_GRIPPER: 'suction',
151151
EndEffectorProperties.ELECTRIC_GRIPPER: 'electric',
152-
EndEffectorProperties.CUSTOM_GRIPPER: 'custom',
152+
EndEffectorProperties.PASSIVE_GRIPPER: 'custom',
153153
}.get(properties.ui_type, None))
154154

155155
def _inc_cmd_sequence(self):
@@ -380,7 +380,7 @@ def reset_custom_properties(self, timeout=2.0):
380380
@rtype: bool
381381
"""
382382
default_id = 131073
383-
default_ui_type = EndEffectorProperties.CUSTOM_GRIPPER
383+
default_ui_type = EndEffectorProperties.PASSIVE_GRIPPER
384384
default_manufacturer = 'Rethink Research Robot'
385385
default_product = 'SDK End Effector'
386386
# Create default properties message
@@ -953,7 +953,7 @@ def type(self):
953953
return {
954954
EndEffectorProperties.SUCTION_CUP_GRIPPER: 'suction',
955955
EndEffectorProperties.ELECTRIC_GRIPPER: 'electric',
956-
EndEffectorProperties.CUSTOM_GRIPPER: 'custom',
956+
EndEffectorProperties.PASSIVE_GRIPPER: 'custom',
957957
}.get(self._prop.ui_type, None)
958958

959959
def hardware_id(self):

src/baxter_interface/head.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def __init__(self):
8181

8282
def _on_head_state(self, msg):
8383
self._state['pan'] = msg.pan
84-
self._state['panning'] = msg.isPanning
84+
self._state['panning'] = msg.isTurning
8585
self._state['nodding'] = msg.isNodding
8686

8787
def pan(self):
@@ -111,20 +111,32 @@ def panning(self):
111111
"""
112112
return self._state['panning']
113113

114-
def set_pan(self, angle, speed=100, timeout=10.0):
114+
def set_pan(self, angle, speed=1.0, timeout=10.0, scale_speed=False):
115115
"""
116116
Pan at the given speed to the desired angle.
117117
118118
@type angle: float
119119
@param angle: Desired pan angle in radians.
120120
@type speed: int
121-
@param speed: Desired speed to pan at, range is 0-100 [100]
121+
@param speed: Desired speed to pan at, range is 0-1.0 [1.0]
122122
@type timeout: float
123123
@param timeout: Seconds to wait for the head to pan to the
124124
specified angle. If 0, just command once and
125125
return. [10]
126+
@param scale_speed: Scale speed to pan at by a factor of 100,
127+
to use legacy range between 0-100 [100]
126128
"""
127-
msg = HeadPanCommand(angle, speed)
129+
if scale_speed:
130+
cmd_speed = speed / 100.0;
131+
else:
132+
cmd_speed = speed
133+
if (cmd_speed < HeadPanCommand.MIN_SPEED_RATIO or
134+
cmd_speed > HeadPanCommand.MAX_SPEED_RATIO):
135+
rospy.logerr(("Commanded Speed, ({0}), outside of valid range"
136+
" [{1}, {2}]").format(cmd_speed,
137+
HeadPanCommand.MIN_SPEED_RATIO,
138+
HeadPanCommand.MAX_SPEED_RATIO))
139+
msg = HeadPanCommand(angle, cmd_speed, True)
128140
self._pub_pan.publish(msg)
129141

130142
if not timeout == 0:

src/baxter_interface/navigator.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@
3030
import baxter_dataflow
3131

3232
from baxter_core_msgs.msg import (
33-
ITBState,
33+
NavigatorState,
3434
)
35+
3536
from baxter_interface import (
3637
digital_io,
3738
)
3839

39-
4040
class Navigator(object):
4141
"""
4242
Interface class for a Navigator on the Baxter robot.
@@ -82,17 +82,19 @@ def __init__(self, location):
8282
self.button2_changed = baxter_dataflow.Signal()
8383
self.wheel_changed = baxter_dataflow.Signal()
8484

85-
nav_state_topic = 'robot/itb/%s_itb/state' % (self._id,)
85+
nav_state_topic = 'robot/navigators/{0}_navigator/state'.format(self._id)
8686
self._state_sub = rospy.Subscriber(
8787
nav_state_topic,
88-
ITBState,
88+
NavigatorState,
8989
self._on_state)
9090

9191
self._inner_led = digital_io.DigitalIO(
92-
'%s_itb_light_inner' % (self._id,))
92+
'%s_inner_light' % (self._id,))
93+
self._inner_led_idx = 0
9394

9495
self._outer_led = digital_io.DigitalIO(
95-
'%s_itb_light_outer' % (self._id,))
96+
'%s_outer_light' % (self._id,))
97+
self._outer_led_idx = 1
9698

9799
init_err_msg = ("Navigator init failed to get current state from %s" %
98100
(nav_state_topic,))
@@ -132,7 +134,7 @@ def inner_led(self):
132134
"""
133135
Current state of the inner LED
134136
"""
135-
return self._state.innerLight
137+
return self._state.lights[self._inner_led_idx]
136138

137139
@inner_led.setter
138140
def inner_led(self, enable):
@@ -149,7 +151,7 @@ def outer_led(self):
149151
"""
150152
Current state of the outer LED.
151153
"""
152-
return self._state.outerLight
154+
return self._state.lights[self._outer_led_idx]
153155

154156
@outer_led.setter
155157
def outer_led(self, enable):
@@ -164,7 +166,14 @@ def outer_led(self, enable):
164166
def _on_state(self, msg):
165167
if not self._state:
166168
self._state = msg
167-
169+
try:
170+
self._inner_led_idx = self._state.light_names.index("inner")
171+
except:
172+
pass
173+
try:
174+
self._outer_led_idx = self._state.light_names.index("outer")
175+
except:
176+
pass
168177
if self._state == msg:
169178
return
170179

src/baxter_interface/settings.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@
2929
HEAD_PAN_ANGLE_TOLERANCE = 0.1396263401
3030

3131
## Versioning
32-
SDK_VERSION = '1.1.1'
32+
SDK_VERSION = '1.2.0'
3333
CHECK_VERSION = True
3434
# Version Compatibility Maps - {current: compatible}
35-
VERSIONS_SDK2ROBOT = {'1.1.1': ['1.1.1', '1.1.0']}
36-
VERSIONS_SDK2GRIPPER = {'1.1.1':
35+
VERSIONS_SDK2ROBOT = {'1.2.0': ['1.2.0']}
36+
VERSIONS_SDK2GRIPPER = {'1.2.0':
3737
{
3838
'warn': '2014/5/20 00:00:00', # Version 1.0.0
3939
'fail': '2013/10/15 00:00:00', # Version 0.6.2
4040
}
41-
}
41+
}

src/head_action/head_action.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@
4141
)
4242

4343
import baxter_interface
44+
from baxter_core_msgs.msg import (
45+
HeadPanCommand,
46+
)
47+
4448

4549
class HeadActionServer(object):
4650
def __init__(self, reconfig_server):
@@ -85,8 +89,8 @@ def _on_head_action(self, goal):
8589
position = goal.position
8690
velocity = goal.max_velocity
8791
# Apply max velocity if specified < 0
88-
if velocity < 0.0:
89-
velocity = 100.0
92+
if velocity < HeadPanCommand.MIN_SPEED_RATIO:
93+
velocity = HeadPanCommand.MAX_SPEED_RATIO
9094

9195
# Pull parameters that will define the head actuation
9296
self._get_head_parameters()

0 commit comments

Comments
 (0)