How to efficiently engage undergraduate students in my research program?
What are the students getting in return for this?


Experience/interesting work? Then it's fun, but don't ever expect them to treat it as more than a hobby or fun project.
Money or course credit: Then it's their job to show up and work. The will show up, or you will fire them / fail them.
Publication: are your students credited on the publication? Will doing this work build their CV and make it easier for them to get jobs, or accepted into grad studies?


Anything else seems to fall dangerously into "how can I turn undergrads into unpaid interns". They have their own classes to work on and their own lives to run, and doing experiments probably isn't what gets them out of bed every day.

Does your university have a "Capita Selecta" or "Project Course" or "Individual Study" option? If so, you could give your students course credit for their involvement in your work, in which case they would be obligated to show up. They would get enough out of their contribution that it would be worth their time.


  It's generally accepted that this kind of behaviour/motivation can be expected from a Ph.D. student, but not so much from an undergrad. 


Because the PhD student is being paid to be there, and the undergraduate isn't.

The takeaway

Being an undergraduate is hard. You've got 4-5 classes, all of whom want you to work like that class is the only one you're taking. You are probably having to work to pay your way through school, and you are trying to have enough leisure time that you don't go insane.

Your best way to get them interested is to take away one of these stressors: pay them (so they don't have to work), give them course credit (so they can take less classes), or treat it like leisure (so they can do something they enjoy casually).