Faits :
A.
A.a. Par ordonnance pénale du 16 janvier 2018, le Ministère public de l'arrondissement de Lausanne a condamné A._ à une peine privative de liberté de 90 jours pour conduite d'un véhicule automobile malgré le refus, le retrait ou l'interdiction de l'usage du permis.
Par acte du 16 février 2018, A._ a formé opposition à cette ordonnance.
Le 4 mai 2018, estimant que l'opposition était tardive, le Ministère public a transmis la cause au Tribunal de police de l'arrondissement de Lausanne pour qu'il statue sur sa recevabilité.
A.b. Par prononcé du 28 mai 2018, le Tribunal de police a déclaré irrecevable l'opposition formée par A._ à l'ordonnance pénale du 16 janvier 2018 et a constaté que celle-ci était exécutoire.
A.c. Par arrêt du 8 octobre 2018, la Chambre des recours pénale du Tribunal cantonal a annulé le prononcé rendu le 28 mai 2018. Elle a en substance considéré qu'en retenant que l'opposition de A._ était tardive sans avoir donné à celui-ci l'occasion de s'exprimer à ce sujet ni de faire valoir ses moyens et sans examiner la pertinence et le bien-fondé de l'argument invoqué par celui-ci, le Tribunal de police avait violé le droit d'être entendu du prénommé. L'autorité de recours a renvoyé la cause au Tribunal de police en lui donnant des directives portant sur la manière d'instruire la question de la validité de l'opposition.
Le Tribunal de police a tenu une audience le 25 juin 2019. Le Président a d'entrée de cause informé A._ et son conseil qu'il admettait l'opposition formée contre l'ordonnance pénale du 16 janvier 2018 et qu'il allait par conséquent juger le fond de l'affaire, l'ordonnance pénale devenant de facto acte d'accusation. Il a rejeté la requête de renvoi des débats formulée ensuite par la défense. Par jugement du même jour, le Tribunal de police a constaté que A._ s'était rendu coupable de conduite d'un véhicule automobile malgré le refus, le retrait ou l'interdiction de l'usage du permis et l'a condamné à une peine privative de liberté de 90 jours.
B.
Par jugement du 2 décembre 2019, la Cour d'appel pénale du Tribunal cantonal a rejeté l'appel formé par A._ à l'encontre de la décision du Tribunal de police et a confirmé celle-ci.
C.
A._ forme un reco urs en matière pénale au Tribunal fédéral contre le jugement du 2 décembre 2019. Il conclut, avec suite de frais et dépens, à l'annulation du jugement attaqué et au renvoi de la cause à l'instance cantonale pour nouvelle décision dans le sens des considérants.

Considérant en droit :
1.
Le recourant se plaint de la violation des art. 355, 356 et 328 CPP. Selon lui, après avoir admis la validité de l'opposition formée à l'encontre de l'ordonnance pénale du 16 janvier 2018, le tribunal de première instance n'aurait pas dû entrer en matière sur le fond de la cause, mais aurait dû renvoyer le dossier au ministère public.
1.1. En cas d'opposition à l'ordonnance pénale, le ministère public administre les autres preuves nécessaires au jugement de l'opposition (<ref-law>). Après l'administration des preuves, il peut notamment décider de maintenir l'ordonnance pénale. Tel est également le cas lorsque le ministère public considère que l'opposition n'est pas valable (arrêts 6B_1067/2018 du 23 novembre 2018 consid. 1.2; 6B_271/2018 du 20 juin 2018 consid. 2.1; Jeanneret/Kuhn, Précis de procédure pénale, 2e éd. 2018, n° 17025). Aux termes de l'<ref-law>, lorsqu'il décide de maintenir l'ordonnance pénale, le ministère public transmet sans retard le dossier au tribunal de première instance en vue des débats. L'ordonnance pénale tient lieu d'acte d'accusation (al. 1). Le tribunal de première instance statue sur la validité de l'ordonnance pénale et de l'opposition (al. 2).
Si l'ordonnance pénale n'est pas valable, le tribunal l'annule et renvoie le cas au ministère public en vue d'une nouvelle procédure préliminaire (<ref-law>).
Seul le tribunal de première instance est compétent pour statuer sur la validité de l'opposition à l'ordonnance pénale (<ref-ruling> consid. 1.3 p. 195). L'examen de la validité de l'opposition a lieu d'office (arrêts 6B_1067/2018 précité consid. 1.2; 6B_271/2018 précité consid. 2.1; 6B_910/2017 du 29 décembre 2017 consid. 2.4). Lorsque l'opposition n'est pas valable, notamment car elle est tardive (cf. <ref-ruling> consid. 2.2 p. 204), le tribunal de première instance n'entre pas en matière sur l'opposition (cf. Message du 21 décembre 2005 relatif à l'unification de la procédure pénale, FF 2006 1275 ad art. 360). Le contrôle imposé au tribunal de première instance par l'<ref-law> a lieu à titre préjudiciel, dans le cadre des art. 329 al. 1 let. b, respectivement 339 al. 2 let. b CPP, la validité de l'opposition constituant une condition du procès (arrêts 6B_1067/2018 précité consid. 1.2; 6B_271/2018 précité consid. 2.1; 6B_194/2015 du 11 janvier 2016 consid. 1; 6B_368/2012 du 17 août 2012 consid. 2.1 et les références citées; cf. aussi <ref-ruling> consid. 1.5 p. 45 s.). Si l'opposition est jugée recevable, le tribunal se saisit de l'affaire au fond (Jeanneret/Kuhn, op. cit., nos 17025 et 17028; Franz Riklin, Basler Kommentar, Schweizerische Strafprozessordnung, 2e éd. 2014, n° 2 ad <ref-law>).
1.2. Le recourant soutient que dans le cas d'espèce, le ministère public a transmis le dossier au tribunal de première instance uniquement pour que celui-ci statue sur la recevabilité de l'opposition, mais sans jamais avoir instruit l'opposition puisque, précisément, il considérait que celle-ci n'était pas valable. Aussi n'avait-il jamais décidé de " maintenir l'ordonnance pénale " au sens de l'<ref-law> et il n'y avait donc pas eu de renvoi en vue des débats au sens de l'<ref-law>. Il en découlait également que l'ordonnance pénale n'avait pas pu tenir lieu d'acte d'accusation (art. 356 al. 1, 2ème phrase, CPP). En l'absence d'acte d'accusation, aucune litispendance n'avait été créée par-devant le tribunal de première instance, au sens de l'<ref-law>, de sorte que celui-ci n'était pas compétent pour juger du fond de la cause. Ainsi, selon le recourant, après avoir statué sur la recevabilité de l'opposition comme le lui demandait le ministère public, le tribunal de première instance aurait dû lui renvoyer la cause pour que celui-ci administre les preuves nécessaires, conformément à l'<ref-law>, puis procède selon l'une des options prévues par l'<ref-law>.
1.3. Il découle de la jurisprudence et de la doctrine précitées (cf. consid. 1.1) que dans le cas où le ministère public considère, à tort ou à raison, que l'opposition n'est pas valable, il maintient l'ordonnance pénale et transmet la cause au juge de première instance, seul compétent pour trancher la question préjudicielle de la recevabilité de l'opposition. En effet, comme l'a relevé la cour cantonale, dans un tel cas, le procureur ne fait rien d'autre que de maintenir son ordonnance pénale, au sens de l'<ref-law>, au motif qu'il estime l'opposition irrecevable. En l'espèce, le ministère public a donc procédé conformément à cette disposition en transmettant la cause au tribunal de première instance. Le tribunal ayant finalement admis la recevabilité de l'opposition - condition nécessaire à l'ouverture du procès -, il lui incombait alors de tenir des débats, l'ordonnance pénale tenant lieu d'acte d'accusation (cf. <ref-law>). Quoi qu'en dise le recourant, que le renvoi de la cause par l'autorité de recours au tribunal de première instance ait été accompagné d'instructions se rapportant à l'examen de la validité de l'opposition ne limitait pas la saisine de celui-ci à cette seule question préjudicielle, sa compétence pour juger du fond du litige résultant de l'application des art. 355 al. 3 let. a et 356 al. 1 CPP.
1.4. On ne saurait suivre le recourant lorsqu'il se prévaut de l'<ref-law> pour conclure que le tribunal de première instance aurait dû renvoyer la cause au ministère public après avoir tranché la question de la recevabilité de l'opposition. En effet, cette disposition régit la situation dans laquelle l'ordonnance pénale n'est pas valable (essentiellement parce qu'elle ne respecte pas les conditions de l'<ref-law>; cf. arrêt 6B_910/2017 précité consid. 2.4; Christian Denys, Ordonnance pénale: Questions choisies et jurisprudence récente, in SJ 2016 II p. 125, 135-136), ce qui n'a jamais été constaté, ni même invoqué en l'espèce. C'est encore le lieu de préciser que, contrairement à l'approche qui semble être défendue par le recourant, l'ordonnance pénale ne perd pas sa validité, au sens de l'<ref-law>, du fait que l'opposition est considérée comme valable. Cette solution aboutirait à un résultat absurde: le tribunal qui constate la validité d'une opposition serait alors contraint de renvoyer la cause au ministère public au lieu de pouvoir ouvrir les débats.
Le recourant soutient encore que le tribunal de première instance aurait dû renvoyer le dossier au ministère public car celui-ci n'avait pas instruit l'opposition à l'ordonnance pénale. Or, selon l'<ref-law>, le ministère public ne doit administrer d'autres preuves, pour juger de l'opposition, que dans le cas où cela est nécessaire (cf. Riklin, op. cit, n° 3 ad <ref-law>), sans que le recourant n'expose en quoi tel aurait été le cas en l'espèce. De surcroît, le prénommé méconnaît qu'un renvoi de l'accusation au ministère public pour complément d'instruction n'est admissible que de manière tout à fait exceptionnelle. Il appartient au tribunal le cas échéant de procéder à l'administration de nouvelles preuves, de compléter les preuves administrées de manière insuffisante et de réitérer l'administration des preuves, qui, lors de la procédure préliminaire, n'ont pas été administrées en bonne et due forme (<ref-ruling> consid. 1.6 p. 46 s.; voir aussi: arrêt 6B_434/2016 du 27 mars 2017 consid. 1.2). En l'espèce, il apparaît que le tribunal de première instance a instruit la cause lors des débats, le recourant ayant alors été invité à se prononcer sur les faits ainsi que sur leur qualification juridique (cf. jugement attaqué, consid. 4.4 p. 14). En définitive, aucune disposition n'imposait au tribunal de première instance de renvoyer préalablement l'affaire au ministère public.
1.5. Sur le vu de ce qui précède, la procédure prévue par les art. 355 et 356 CPP a bien été respectée en l'espèce. Les griefs soulevés sous cet angle par le recourant sont ainsi infondés.
2.
Le recourant se plaint de la violation de son droit d'être entendu (art. 6 CEDH, 29 al. 2 Cst., 3 et 107 CPP) ainsi que de la violation des art. 6 ch. 3 let. b CEDH et 32 al. 2 Cst. qui garantissent à tout accusé le droit à disposer du temps et des facilités nécessaires à la préparation de sa défense. Dans la mesure où il ne pouvait pas s'attendre à ce que les débats conduits par le tribunal de première instance portent également sur le fond, il n'avait pas eu la possibilité de préparer sa défense et de proposer des réquisitions de preuve. Il fallait en conclure que sa cause avait été jugée alors qu'aucune instruction n'avait jamais eu lieu, ni devant le ministère public, ni devant le tribunal de première instance.
2.1. Le droit d'être entendu, garanti à l'art. 29 al. 2 Cst., comprend notamment celui de produire ou de faire administrer des preuves, à condition qu'elles soient pertinentes et de nature à influer sur la décision à rendre (<ref-ruling> consid. 4.1 p. 72; <ref-ruling> consid. 2.3 p. 222; <ref-ruling> consid. 6.3.1 p. 229 et les références citées).
Selon la jurisprudence, une violation du droit d'être entendu peut être réparée lorsque la partie lésée a la possibilité de s'exprimer devant une autorité de recours jouissant d'un plein pouvoir d'examen. Toutefois, une telle réparation doit rester l'exception et n'est admissible, en principe, que dans l'hypothèse d'une atteinte qui n'est pas particulièrement grave aux droits procéduraux de la partie lésée. Cela étant, une réparation de la violation du droit d'être entendu peut également se justifier, même en présence d'un vice grave, lorsque le renvoi constituerait une vaine formalité et aboutirait à un allongement inutile de la procédure, ce qui serait incompatible avec l'intérêt de la partie concernée à ce que sa cause soit tranchée dans un délai raisonnable (<ref-ruling> consid. 4.4 p. 174; <ref-ruling> consid. 2.8.1 p. 226 s. et les références citées). Par ailleurs, le droit d'être entendu n'est pas une fin en soi. Il constitue un moyen d'éviter qu'une procédure judiciaire ne débouche sur un jugement vicié en raison de la violation du droit des parties de participer à la procédure, notamment à l'administration des preuves. Lorsqu'on ne voit pas quelle influence la violation du droit d'être entendu a pu avoir sur la procédure, il n'y a pas lieu d'annuler la décision attaquée (<ref-ruling> consid. 1.4.1 p. 386 et les références citées).
2.2. Selon ce qui précède (consid. 1 supra), le recourant devait s'attendre, une fois la question préjudicielle de la recevabilité de l'opposition tranchée, à ce que le tribunal de première instance ouvre les débats sur le fond de la cause (cf. <ref-law>). La cour cantonale a du reste constaté que la citation à comparaître à l'audience du 25 juin 2019 ne limitait nullement les débats à la seule question de la recevabilité de l'opposition. En conséquence, le recourant n'a pas été privé du droit de préparer sa défense et l'autorité précédente pouvait conclure, sans violer les dispositions légales invoquées par le recourant, que le premier juge n'avait pas à renvoyer les débats pour permettre à celui-ci de réfléchir à ses réquisitions de preuve. Lors des débats en question, le recourant, assisté de son conseil, a été entendu sur les faits ainsi que sur leur qualification juridique (cf. jugement attaqué, consid. 4.4 p. 14). Partant, il s'avère qu'une instruction en bonne et due forme a été conduite dans le cadre de la procédure de première instance.
3.
Mal fondé, le recours doit être rejeté. Le recourant, qui succombe, supporte les frais judiciaires (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 3'000 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 17 avril 2020
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Musy