<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_project_nodes(self, root_node, maximum_depth=1):
 """ Sets the project Model children Nodes using given root node. :param root_node: Root node. :type root_node: ProjectNode or DirectoryNode :param maximum_depth: Maximum nodes nesting depth. :type maximum_depth: int """


        root_directory = root_node.path
        for parent_directory, directories, files in foundations.walkers.depth_walker(root_directory, maximum_depth):
            if parent_directory == root_directory:
                parent_node = root_node
            else:
                parent_node = foundations.common.get_first_item(
                    [node for node in foundations.walkers.nodes_walker(root_node)
                     if node.family == "Directory" and node.path == parent_directory])

            if not parent_node:
                continue

            paths = [node.path for node in parent_node.children]
            for directory in sorted(directories):
                if directory.startswith("."):
                    continue

                path = os.path.join(parent_directory, directory)
                if path in paths:
                    continue

                directory_node = self.register_directory(path, parent_node)

            for file in sorted(files):
                if file.startswith("."):
                    continue

                path = os.path.join(parent_directory, file)
                if path in paths:
                    continue

                if foundations.io.is_readable(path):
                    if foundations.io.is_binary_file(path):
                        continue

                file_node = self.register_file(path, parent_node)