Add more code to decentralised voter, still not complete.
This commit is contained in:
@@ -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:
|
||||||
@@ -106,4 +122,7 @@ class Voter:
|
|||||||
def collect_vote(self):
|
def collect_vote(self):
|
||||||
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
|
||||||
Reference in New Issue
Block a user