Add more code to decentralised voter, still not complete.

This commit is contained in:
Michael Pivato
2019-03-01 15:48:35 +10:30
parent 983b503463
commit e2d4e4b41e

View File

@@ -56,12 +56,19 @@ class Voter:
# First calculate vi -> the actual vote that is taken # First calculate vi -> the actual vote that is taken
# (Or the probability that the observation is a label for each) # (Or the probability that the observation is a label for each)
# We're just going to be doing 1 for the detected and 0 for all others. # We're just going to be doing 1 for the detected and 0 for all others.
# vi = np.zeros(6,1) # vi is for each hand (action in paper), but we're just going to do a single
# ANDvi = np.zeros(6,6) # hand for our purposes. Will be able to use the CNN for all hands/gestures if we want to.
vi = np.zeros(6,1)
# Set correct vi.
vote = self.on_vote()
vi[vote] = 1
# Now send this off to the other nodes. Potentially using gossip...
# # Set diagonal of ANDvi to elements of vi. # Set diagonal of ANDvi to elements of vi.
# for i in np.size(vi): # This should actually be ANDvj, as it is for each observation received.
# ANDvi[i,i] = vi[i] ANDvi = np.diag(vi.flatten())
# Nee
# M is the probability of going from one state to the next, which # M is the probability of going from one state to the next, which
# is assumed to be uniform for our situation - someone is just as likely # is assumed to be uniform for our situation - someone is just as likely
@@ -72,12 +79,21 @@ class Voter:
# Y1T = np.full((6,1),1) # Y1T = np.full((6,1),1)
# Compute consensus state estimate by taking difference between our observations
# and all others individually.
# Moving to an approach that does not require the previous # Moving to an approach that does not require the previous
# timestep (or so much math...) # timestep (or so much math...)
# First take other information and fuse, using algorithm # First take other information and fuse, using algorithm
# as appropriate. # as appropriate.
pass pass
def custom_fuse(self):
vi = np.zeros(6,1)
# Set correct vi.
vote = self.on_vote()
vi[vote] = 1
def on_message(self, client, userdata, message): def on_message(self, client, userdata, message):
try: try:
@@ -107,3 +123,6 @@ class Voter:
vote_message = umsgpack.packb({"type": "vote", vote_message = umsgpack.packb({"type": "vote",
"client":self._client._client_id, "vote": self.on_vote()}) "client":self._client._client_id, "vote": self.on_vote()})
return vote_message return vote_message
def start_vote(self):
pass