コード例 #1
0
    def msgFromKukaCb(self, msg):
        try:
            fdata = String()
            edata = String()

            edata.data = 's'

            tid = ET.fromstring(msg.data).find("ReturnTaskID").text
            prg = ET.fromstring(msg.data).find("ReturnTaskProgress").text

            fdata.data = tid + "," + prg

            if (self.ignore is None):
                self.feedbackPublisher.publish(fdata)

                if (float(prg) == 50):
                    self.effectorPublisher.publish(edata)
            else:
                if (self.ignoreCounter == 0):
                    self.feedbackPublisher.publish(fdata)

                    if (float(prg) == 50):
                        self.effectorPublisher.publish(edata)

                self.ignoreCounter += 1
                self.ignoreCounter %= self.ignore
        except:
            util.logErr("Parsing Error! This message will be ignored.")

    #eof


#eoc
コード例 #2
0
    def msgFromKukaCb(self, msg):
        try:
            data = A6()
            val = ET.fromstring(msg.data).find("ASPos")

            data.A1 = float(val.get('A1'))
            data.A2 = float(val.get('A2'))
            data.A3 = float(val.get('A3'))
            data.A4 = float(val.get('A4'))
            data.A5 = float(val.get('A5'))
            data.A6 = float(val.get('A6'))

            self.valuePublisher.publish(data)

            if (self.ignore is not None):
                if (self.ignoreCounter == 0):
                    self.valueWithDelayPublisher.publish(data)

                self.ignoreCounter += 1
                self.ignoreCounter %= self.ignore
        except:
            util.logErr("Parsing Error! This message will be ignored.")

    #eof


#eoc
コード例 #3
0
	def writeToSerialCb(self, msg):
		if(self.serial is not None and self.serial.isOpen()):
			try:
				self.serial.write(msg.data)
			except:
				util.logErr("Error in writing to serial port")
		else:
			util.logErr("Serial port is not ready")
コード例 #4
0
def main(argv=None):
    rospy.init_node('progress_controller', anonymous=True)
    util.logBeginningInfo("progress_controller")

    ignore, feedbackTopic, effectorTopic = getArgs()

    if (feedbackTopic is not None and effectorTopic is not None):
        Controller(feedbackTopic, effectorTopic, ignore)
        rospy.spin()
    else:
        util.logErr("feedbackTopic has to be specified...")
コード例 #5
0
    def sendToKuka(self):
        if (self.msgTemplateString is not None and self.kukaIp is not None
                and self.kukaPort is not None):

            msgStr = self.regex.sub(self.lastIPOC, self.msgTemplateString)

            self.msgToKukaSock.sendto(msgStr, (self.kukaIp, self.kukaPort))
            self.msgToKukaPublisher.publish(msgStr)
            self.setStatus(rsiStatus.RSI_RUNNING)
        else:
            util.logErr(
                "First message template or first handshake message has not arrived yet! Can not send data/start rsi"
            )
            self.setStatus(rsiStatus.WAITING_FOR_TEMPLATE)
コード例 #6
0
    def msgTemplateCb(self, msg):
        try:
            if (ET.fromstring(msg.data).find("IPOC") is None):
                util.logErr(
                    "Missing IPOC! IPOC tag has to be included in message template. Can not set message template by this message..."
                )
                util.logErr(msg.data)
                return

            firstMsg = False

            if (self.msgTemplateString is None):
                firstMsg = True

            self.msgTemplateString = msg.data

            if (firstMsg):
                util.logWarn("First message template recieved!")
                self.setStatus(rsiStatus.WAITING_FOR_HANDSHAKE)
        except:
            util.logErr(
                "Invalid xml structure! Can not set message template by this message..."
            )
            util.logErr(msg.data)
コード例 #7
0
	def readlineThread(self):
		while(True):
			try:
				if(self.serial is not None):
					if(not self.serial.isOpen()):
						util.logErr("Port is close. Set the serial port to None!")
						self.serial = None
					elif(self.serial.inWaiting()>0):
						data = self.serial.readline()
						self.readlineFormSerialPublisher.publish(data)
				else:
					sleep(2)
			except IOError:
				util.logErr("Port is close. Set the serial port to None!")
				self.serial = None
			except:
				util.logErr("Error is readline function")
				sleep(2)
	#eof