Faits:
Faits:
A. A._, ressortissant français et colombien né en 1974, se trouve en détention préventive à Genève depuis le 11 novembre 2003, sous l'inculpation de vols et de brigandage. Il lui est en substance reproché d'avoir participé au vol d'un sac à main, le 28 août 2003, à un vol de matériel dans les locaux d'une entreprise de livraisons, le 11 septembre 2003 (inculpation intervenue ultérieurement le 17 février 2004), ainsi qu'au brigandage d'une station service, le 11 novembre 2003. Il a nié être mêlé au vol du sac à main, et a reconnu sa participation au vol de matériel et au brigandage, prétendant toutefois avoir ignoré que ce dernier serait commis au moyen d'une arme factice.
A. A._, ressortissant français et colombien né en 1974, se trouve en détention préventive à Genève depuis le 11 novembre 2003, sous l'inculpation de vols et de brigandage. Il lui est en substance reproché d'avoir participé au vol d'un sac à main, le 28 août 2003, à un vol de matériel dans les locaux d'une entreprise de livraisons, le 11 septembre 2003 (inculpation intervenue ultérieurement le 17 février 2004), ainsi qu'au brigandage d'une station service, le 11 novembre 2003. Il a nié être mêlé au vol du sac à main, et a reconnu sa participation au vol de matériel et au brigandage, prétendant toutefois avoir ignoré que ce dernier serait commis au moyen d'une arme factice.
B. La détention préventive a été prolongée, et des demandes de mise en liberté ont été rejetées, par décisions de la Chambre d'accusation genevoise des 18 novembre 2003, 17 février 2004 et 2 avril 2004. La Chambre d'accusation a retenu l'existence d'un risque de collusion (les déclarations des prévenus divergeaient), d'un risque de récidive (vu la situation financière précaire du prévenu, sans travail) et de fuite (l'inculpé ayant son domicile en France).
Par ordonnance du 14 mai 2004, la Chambre d'accusation a autorisé une nouvelle prolongation de la détention, et rejeté simultanément une demande de mise en liberté. Le magistrat instructeur semblait avoir quasiment achevé son enquête, sous réserve d'un acte d'instruction qu'il n'était pas certain de pouvoir accomplir. Le risque de récidive était à craindre, en l'absence de mesures d'encadrement adéquates. Le risque de fuite était évident: le prévenu avait une double nationalité étrangère et vivait en France avec son épouse de nationalité française. Le principe de la proportionnalité était respecté.
Par ordonnance du 14 mai 2004, la Chambre d'accusation a autorisé une nouvelle prolongation de la détention, et rejeté simultanément une demande de mise en liberté. Le magistrat instructeur semblait avoir quasiment achevé son enquête, sous réserve d'un acte d'instruction qu'il n'était pas certain de pouvoir accomplir. Le risque de récidive était à craindre, en l'absence de mesures d'encadrement adéquates. Le risque de fuite était évident: le prévenu avait une double nationalité étrangère et vivait en France avec son épouse de nationalité française. Le principe de la proportionnalité était respecté.
C. Par acte du 17 mai 2004, A._ forme un recours de droit public contre cette ordonnance. Il requiert l'effet suspensif, en soutenant que l'incarcération serait actuellement disproportionnée; il demande l'assistance judiciaire.
La Chambre d'accusation et le Procureur général concluent au rejet du recours et de la demande d'effet suspensif. Le recourant a répliqué.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Le recours de droit public est formé contre un arrêt rendu en dernière instance cantonale (art. 86 al. 1 OJ). Le recourant, personnellement touché par l'arrêt attaqué, qui refuse sa mise en liberté provisoire et prolonge de trois mois sa détention préventive, a qualité pour recourir selon l'art. 88 OJ.
Par exception à la nature cassatoire du recours de droit public, le recourant peut conclure non seulement à l'annulation de l'arrêt cantonal mais aussi à sa mise en liberté immédiate (<ref-ruling> consid. 4b/aa p. 333). En revanche, il ne peut requérir sa libération au titre de l'effet suspensif. En effet, les mesures provisionnelles prévues à l'art. 94 OJ ont pour but le maintien de l'état de fait ou la sauvegarde des intérêts compromis; le recourant ne saurait en revanche, par ce biais, obtenir prématurément gain de cause sur le fond.
Par exception à la nature cassatoire du recours de droit public, le recourant peut conclure non seulement à l'annulation de l'arrêt cantonal mais aussi à sa mise en liberté immédiate (<ref-ruling> consid. 4b/aa p. 333). En revanche, il ne peut requérir sa libération au titre de l'effet suspensif. En effet, les mesures provisionnelles prévues à l'art. 94 OJ ont pour but le maintien de l'état de fait ou la sauvegarde des intérêts compromis; le recourant ne saurait en revanche, par ce biais, obtenir prématurément gain de cause sur le fond.
2. Une mesure de détention préventive n'est compatible avec la liberté personnelle, garantie par l'art. 10 al. 2 Cst. et par l'art. 5 CEDH, que si elle repose sur une base légale (art. 31 al. 1 et art. 36 al. 1 Cst.), soit en l'espèce l'art. 34 du code de procédure pénale genevois (CPP/GE). Elle doit en outre correspondre à un intérêt public et respecter le principe de la proportionnalité (art. 36 al. 2 et 3 Cst.; <ref-ruling> consid. 2c p. 270). Pour que tel soit le cas, la privation de liberté doit être justifiée par les besoins de l'instruction, un risque de fuite ou un danger de collusion ou de réitération (cf. art. 34 let. b et c CPP/GE). Préalablement à ces conditions, il doit exister à l'égard de l'intéressé des charges suffisantes (art. 5 par. 1 let. c CEDH, art. 34 in initio CPP/GE; <ref-ruling> consid. 3).
S'agissant d'une restriction grave à la liberté personnelle, le Tribunal fédéral examine librement ces questions, sous réserve toutefois de l'appréciation des preuves, revue sous l'angle restreint de l'arbitraire (<ref-ruling> consid. 2d p. 271). L'autorité cantonale dispose ainsi d'une grande liberté dans l'appréciation des faits (<ref-ruling> consid. 3, 112 Ia 162 consid. 3b).
S'agissant d'une restriction grave à la liberté personnelle, le Tribunal fédéral examine librement ces questions, sous réserve toutefois de l'appréciation des preuves, revue sous l'angle restreint de l'arbitraire (<ref-ruling> consid. 2d p. 271). L'autorité cantonale dispose ainsi d'une grande liberté dans l'appréciation des faits (<ref-ruling> consid. 3, 112 Ia 162 consid. 3b).
3. Le recourant conteste l'existence des besoins de l'instruction. Le juge d'instruction aurait clôturé son enquête le 19 mars 2004, précisant pouvoir terminer son travail en quelques semaines. Le recourant aurait été entendu pour la dernière fois le 28 avril 2004, les auditions ultérieures concernant un autre inculpé. L'acte d'instruction mentionné dans l'ordonnance attaquée ne le concernerait pas non plus.
Cet argument n'a pas à être examiné car, comme le relève la cour cantonale dans sa réponse, les besoins de l'instruction ne sont plus invoqués à l'appui du maintien en détention. L'instruction est, selon la cour cantonale, "quasiment achevée". Le Procureur général précise pour sa part que le dossier vient de lui être communiqué, et aucun acte d'instruction particulier n'est plus mentionné, dont le résultat pourrait être compromis par une mise en liberté.
Cet argument n'a pas à être examiné car, comme le relève la cour cantonale dans sa réponse, les besoins de l'instruction ne sont plus invoqués à l'appui du maintien en détention. L'instruction est, selon la cour cantonale, "quasiment achevée". Le Procureur général précise pour sa part que le dossier vient de lui être communiqué, et aucun acte d'instruction particulier n'est plus mentionné, dont le résultat pourrait être compromis par une mise en liberté.
4. Le recourant conteste aussi le risque de récidive. Il relève l'absence d'antécédent judiciaire, et soutient que la précarité de sa situation financière l'inciterait à retrouver un travail au plus vite, ce qui ne serait pas possible tant que dure la détention. Son épouse, qui travaille à Genève, et ses trois enfants, permettraient de se montrer optimiste quant à sa réinsertion.
4.1 Selon la jurisprudence, le maintien en détention préventive n'est admissible que si le pronostic de récidive est très défavorable. La simple possibilité, hypothétique, de commission de nouvelles infractions de même nature, ou la vraisemblance que soient commises des infractions mineures, sont des motifs insuffisants (<ref-ruling> consid. 3a p. 62). Autant que possible, l'autorité doit tenter de substituer à la détention toute autre mesure moins incisive propre à atteindre le même résultat (<ref-ruling> consid. 2c et e p. 270/271 et les arrêts cités).
4.2 En l'occurrence, les infractions pour lesquelles le recourant est poursuivi n'ont rien de mineures; il s'agit notamment d'une participation à un brigandage, et d'un vol portant sur plus de 90'000 fr. de matériel. Il ne s'agit certes pas d'actes nombreux, mais commis sur une période relativement longue. S'il était remis en liberté, le recourant se retrouverait dans la même situation, en proie à des difficultés financières et sans emploi, ce qui peut faire craindre la commission de nouveaux délits. Manifestement, la présence de trois enfants et d'une épouse travaillant en Suisse n'ont pas empêché le recourant d'agir. Le risque de réitération apparaît ainsi suffisamment probable.
4.2 En l'occurrence, les infractions pour lesquelles le recourant est poursuivi n'ont rien de mineures; il s'agit notamment d'une participation à un brigandage, et d'un vol portant sur plus de 90'000 fr. de matériel. Il ne s'agit certes pas d'actes nombreux, mais commis sur une période relativement longue. S'il était remis en liberté, le recourant se retrouverait dans la même situation, en proie à des difficultés financières et sans emploi, ce qui peut faire craindre la commission de nouveaux délits. Manifestement, la présence de trois enfants et d'une épouse travaillant en Suisse n'ont pas empêché le recourant d'agir. Le risque de réitération apparaît ainsi suffisamment probable.
5. Le recourant conteste aussi l'existence du risque de fuite. Il aurait collaboré tout au long de l'instruction; son épouse travaillant depuis deux ans à Genève, et la présence de son bien immobilier en France voisine, permettraient de considérer comme crédible son engagement à se présenter à tous les stades de la procédure. Le recourant avait proposé le versement d'une caution de 15'000 fr., mais la Chambre d'accusation n'aurait pas statué sur ce point, violant ainsi son droit d'être entendu.
5.1 Selon la jurisprudence, le risque de fuite ne peut s'apprécier sur la seule base de la gravité de l'infraction même si, compte tenu de l'ensemble des circonstances, la perspective d'une longue peine privative de liberté permet souvent d'en présumer l'existence (<ref-ruling> consid. 3a p. 62); il doit s'analyser en fonction d'un ensemble de critères tels que le caractère de l'intéressé, sa moralité, ses ressources, ses liens avec l'Etat qui le poursuit ainsi que ses contacts à l'étranger (<ref-ruling> consid. 4 et les arrêts cités).
5.2 En dépit des arguments présentés par le recourant, le risque de fuite apparaît évident: le recourant est domicilié en France voisine, où il a acquis un immeuble qu'il habite avec son épouse et ses enfants; il est de nationalités française et colombienne et ne possède aucun lien, familial, social ou professionnel à Genève. Le dossier ayant été communiqué au Procureur général, un renvoi en jugement devrait être prochainement prononcé, et cette perspective pourrait constituer pour le recourant un motif supplémentaire de se soustraire à la justice, et trouver refuge en France où il possède toutes ses attaches et d'où il ne pourrait, vraisemblablement, pas être extradé (cf. <ref-ruling> consid. 3d p. 36-37, selon lequel le risque de fuite existe également si le pays de refuge autorise l'extradition).
5.3 Le recourant reproche à la Chambre d'accusation d'avoir méconnu son offre de versement d'une caution. Toutefois, si l'arrêt cantonal est effectivement muet à ce propos, c'est qu'en raison du risque de récidive avéré, une libération sous caution ne pouvait de toute façon pas entrer en ligne de compte.
5.3 Le recourant reproche à la Chambre d'accusation d'avoir méconnu son offre de versement d'une caution. Toutefois, si l'arrêt cantonal est effectivement muet à ce propos, c'est qu'en raison du risque de récidive avéré, une libération sous caution ne pouvait de toute façon pas entrer en ligne de compte.
6. Le recourant invoque enfin le principe de célérité, en relevant que l'instruction est terminée à son égard depuis plus de deux mois. Il se plaint de ce que sa cause soit jointe à celle d'un autre inculpé, soupçonné d'autres infractions graves auxquelles il serait étranger, et craint de pâtir de la poursuite de l'instruction à ce sujet. Il soutient par ailleurs que la durée de la détention préventive déjà subie se rapprocherait de la durée de la peine susceptible d'être prononcée à son encontre, laquelle pourrait être assortie d'un sursis.
6.1 Le premier argument tombe à faux dès lors que, selon les indications du Procureur général, le dossier de la procédure suivie contre le recourant a été communiqué au Parquet. L'instruction est donc en principe achevée, et le recourant devrait être renvoyé en jugement "dans un proche avenir".
6.2 L'argument relatif à la durée de la détention préventive n'est pas mieux fondé: compte tenu des infractions reprochées au recourant, soit un brigandage aggravé, un vol avec dommage à la propriété, une violation de domicile et un vol d'usage d'un véhicule, la durée de sa détention préventive ne paraît pas se rapprocher de celle de la peine encourue. Le principe de la proportionnalité est respecté, d'autant plus que le renvoi en jugement pourrait, selon les indications du Ministère public, être prochainement prononcé.
6.2 L'argument relatif à la durée de la détention préventive n'est pas mieux fondé: compte tenu des infractions reprochées au recourant, soit un brigandage aggravé, un vol avec dommage à la propriété, une violation de domicile et un vol d'usage d'un véhicule, la durée de sa détention préventive ne paraît pas se rapprocher de celle de la peine encourue. Le principe de la proportionnalité est respecté, d'autant plus que le renvoi en jugement pourrait, selon les indications du Ministère public, être prochainement prononcé.
7. Le recours de droit public doit par conséquent être rejeté. Le recourant a demandé l'assistance judiciaire, qu'il a déjà obtenue au niveau cantonal. Elle peut lui être accordée pour la présente procédure. Me Barth est désigné comme avocat d'office, et rétribué par la caisse du Tribunal fédéral. Il n'est pas alloué de dépens.

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
1. Le recours est rejeté.
2. La demande d'assistance judiciaire est admise; Me Thomas Barth est désigné comme avocat d'office et une indemnité de 1000 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral.
2. La demande d'assistance judiciaire est admise; Me Thomas Barth est désigné comme avocat d'office et une indemnité de 1000 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral.
3. Il n'est pas perçu d'émolument judiciaire.
3. Il n'est pas perçu d'émolument judiciaire.
4. Le présent arrêt est communiqué en copie au mandataire du recourant, au Procureur général et à la Chambre d'accusation du canton de Genève.
Lausanne, le 4 juin 2004
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le président: Le greffier: