Irony-mode maintainer's here.
Also using ROS at work.
If you use catkin, then you can get along with irony-mode easily.
I do not have ROS at my disposal right now but you should be able to do something along these lines.
# create build/compile_commands.json
I recently experienced the same problem while editing Haskell and Typescript code, so I don't think irony-mode is at fault here. According to the documentation, I understand this is an expected behavior :
By default Flycheck shows the error messages in the minibuffer or in a
separate buffer if the minibuffer is too small to hold the whole error
I'm pretty sure you're missing the company-irony mode here. As far as I know, irony is not enough for autocompleting. At least not with your setup.
I'll first explain a kind-of-short answer to it which should be ok if you're familiar with emacs. If you're not, just keep on reading. I'll explain everything after the short answer anyway.
So, install company-...