As sharky mentioned increasing fps generally reduces those kind of errors, also check if your frame rate is dropping. I was using realsense d435 and it was dropping frames due to 'auto exposure' option was on. I am also further investigating how to reduce the blurring errors due to motion.
Another tip I can provide to you is that, rather than using single markers try using bundles. Only accept the detection when all the markers are detected at the same time(or most of them), and then use the origin of them as reference. I have observed on my data that, blurring due to rotational motion do change based on the position(x and y coordinates of markers pixels) of the marker on the image frame.
I have found out that if you have a configuration of in the shape of:
| marker1| |marker2|
|marker3| |marker4|
with a cross in between yields the best results. Even this configuration had very large angular detection errors. I haven't checked out yet but, rotating the markers in bundles 45 degrees in different directions might also increase detection performance(There might be an increase in edge detection performance).
can you provide specs about camera? what is the frequency of image topic? at what frequency is aruco_ros running?
Does it work as well as here ? Most likely @sharky is right that its something to do with motion blurring. In the end resolution and shutter speed is what influences the sensitivity here. What kind of camera do you use? Forcing low shutter times by fps increase might lead to a grainy image due to high gain, (also an open aperture might get images blurred in part, but this only really matters in fully fledged camera systems--dslr type) which in turn might give the detectior a hard time. In general for low shutter times/closed aperture(=sharp images through out) lots of/additional light is the way to go. Also the markers need a white boarder, usually thats not an issue with original aruco marker set, but if the cutout is "wrong" it might mess things up as well.
Little side question does aruco_ros already include a Kalman filter, or some sort of averaging?