def connect_serial():
timeout_s = 2 / serial_rate_hz # serial port timeout is 2x loop rate
baud_rate = rospy.get_param("~baud_rate", 115200)
# Initialize the serial connection
path = "/dev/serial/by-id"
port = None
close_serial()
while port is None:
try:
if not os.path.exists(path):
raise Exception("No serial device found on system in {}".format(path))
ports = [port for port in os.listdir(path) if "arduino" in port.lower()]
if len(ports) == 0:
raise Exception("No arduino device found on system in {}".format(path))
port = ports[0]
serial_connection = serial.Serial(os.path.join(path, port),
baud_rate,
dsrdtr = True, # Causes an Arduino soft reset
timeout = timeout_s,
writeTimeout = timeout_s)
return serial_connection
except Exception as e:
rospy.logwarn(e)
rospy.sleep(0.2) #seconds
评论列表
文章目录