Converting a project from a old version of ROS and Ubuntu to a new one can be extremely difficult depending on the complexity. The Problem is that syntax and commands change in new versions, so compiling old code with new software can cause many problems.
-First step should always be to google, whether someone has already done the work.
-Second step should be to consider whether you really need the new setup (18.04, melodic). Sometimes it might be easier to have the old version running (you can always do multi-boot). There is also ways to get old ROS versions running on 18.04, although it’s slightly more tricky
-Final step, if option 1 and 2 dint pan out: painstakingly troubleshoot. Try to compile and hunt every error down. Look up what the missing package is, what is the new one? If it doesn’t exist, how is it done today instead of the old way. Only go this way if you really need some new features offered by 18.04/melodic. I had to do it to use multi core processing on gazebo for my robot, as single core was too slow for reinforcement learning. If you are doing simple control, chances are, 14.04/indigo are totally fine.
Hope that helped