RTDE: actual_tcp_pose doesn't update when robot is in freedrive

I am moving the robot in freedrive and then getting the actual_tcp_pose from it via RTDE. I have also tried using target_tcp_pose and in both cases it returns the original position after being manually moved. actual_tcp_pose seems to sometimes return the new updated pose depending on what menu I am in on the Polyscope. Are there any workarounds for this issue where I don’t have to teach any waypoints? This is the code I am using:

robot_ip_address = “ip address”
conf = rtde_config.ConfigFile(Path(Path.cwd() / “universal_robots_communication_file.xml”))
output_names, output_types = conf.get_recipe(“out”)

robot_ip_address = "ip address"
    conf = rtde_config.ConfigFile(Path(Path.cwd() / "universal_robots_communication_file.xml"))
    output_names, output_types = conf.get_recipe("out")

    con = rtde.RTDE(robot_ip_address, 30004)
    con.connect()

    if not con.negotiate_protocol_version():
        raise RuntimeError("Protocol do not match")

    if not con.send_output_setup(output_names, output_types, frequency=200):
        raise RuntimeError("Unable to configure output")
    
    if not con.send_start():
        raise RuntimeError("Unable to start synchronization")
    con.send_start()

    ab = input("type yes")
    while(ab == "yes"):
        robot_state = con.receive()
        time.sleep(0.1)
        robot_pose = np.array(robot_state.actual_TCP_pose)
        print(robot_pose)
        ab = input("type yes")

    con.send_pause()
    con.disconnect()