A method which works extremely well and which does not require set screws and/or flats on the shaft and which can be added or removed easily and rapidly is a collet based connector.
While any one of these will only work for a limited range of shaft sizes, units are available off the shelf for a wide range of shaft diameters and you can make or modify them yourself.
Here is one example - many styles are available.
Assembled view at top.
In the middle row the "collet" is the slit part in the middle.
The nut at left is assembled onto the thread at right with the collet between them.
A conical shape inside the nut compresses the collet jaws onto the shaft as the nut is tightened.
The collet is fixed relative to shaft and nut and thread by friction.
If desired the collect could be keyed or pinned to the nut but this is seldom necessary.
I do not know how the threaded bolt at bottom is used - it is not essential for the above scheme but may optionally insert into the "nut" and provide a threaded shaft end at right.
The above image is from this page where there are numerous other versions.
While these versions are intended to attach items to the end of a shaft, the same principle allows a collar etc to be attached anywhere along a smooth rod - with a flange or bolted together discs or other means used to attach the "payload".
From the Stack Exchange robotics page:
September 2014 question -
Comes this version of the above:
The above and similar are available from here for a range of shaft sizes and similar are available from many other sellers.