The trio are Town boss Paolo Di Canio's first signings of the summer as he bids to revamp his squad for the club's return to League One.
Roberts was released by League One play-off winners Huddersfield at the end of last season. The 28-year-old winger scored 31 goals in 147 starts during his time with the west Yorkshire side.
Collins, 21, failed to agree a new contract at Shrewsbury. The striker scored 16 times last season to help fire the Shrews to promotion from League Two.
Fellow forward Williams was offered a new deal at Yeovil but he turned it down in order to join the Robins. The 25-year-old found the net 17 times for the Glovers in League One during the last campaign.