Skip to content

Commit 776559f

Browse files
committed
Added color sensor to python
1 parent 0692726 commit 776559f

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

mirte_robot/robot.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,20 @@ def __init__(self):
112112
for sensor in encoder_sensors:
113113
self.encoder_services[sensor] = rospy.ServiceProxy('/mirte/get_encoder_' + encoder_sensors[sensor]["name"], GetEncoder, persistent=True)
114114

115-
# Services for keypad sensores
115+
# Services for keypad sensors
116116
if rospy.has_param("/mirte/keypad"):
117117
keypad_sensors = rospy.get_param("/mirte/keypad")
118118
self.keypad_services = {}
119119
for sensor in keypad_sensors:
120120
self.keypad_services[sensor] = rospy.ServiceProxy('/mirte/get_keypad_' + keypad_sensors[sensor]["name"], GetKeypad, persistent=True)
121121

122+
# Services for color sensors
123+
if rospy.has_param("/mirte/color"):
124+
color_sensors = rospy.get_param("/mirte/color")
125+
self.color_services = {}
126+
for sensor in color_sensors:
127+
self.color_services[sensor] = rospy.ServiceProxy('/mirte/get_color_' + color_sensors[sensor]["name"], GetColor, persistent=True)
128+
122129
self.get_pin_value_service = rospy.ServiceProxy('/mirte/get_pin_value', GetPinValue, persistent=True)
123130
self.set_pin_value_service = rospy.ServiceProxy('/mirte/set_pin_value', SetPinValue, persistent=True)
124131

@@ -209,6 +216,19 @@ def getKeypad(self, keypad):
209216
value = self.keypad_services[keypad]()
210217
return value.data
211218

219+
def getColor(self, sensor):
220+
"""Gets the value of the color sensor.
221+
222+
Parameters:
223+
sensor (str): The name of the sensor as defined in the configuration.
224+
225+
Returns:
226+
{r, g, b, w}: Raw (0-65536) values per R(ed), G(reen), B(lue), and W(hite).
227+
"""
228+
229+
value = self.color_services[sensor]()
230+
return {'r': value.color.r, 'g': value.color.g, 'b': value.color.b, 'w': value.color.w }
231+
212232
def getAnalogPinValue(self, pin):
213233
"""Gets the input value of an analog pin.
214234

0 commit comments

Comments
 (0)