Given $n$ "data points" in $d$ (Euclidean) space
$$\mathbf{x}_j \in \mathbb{R}^d, \text{ for } j \in \{1,\dots,n\}$$
how does one find the smallest integer $m$ such that there exists $m$ "centre points"
$$\mathbf{c}_i \in \mathbb{R}^d, \text{ for } i \in \{1,\dots,m\}$$
where for each data point the closest centre is within a given radius $r$
$$r^2 \ge \min^{m}_{i=1} \|\mathbf{x}_j - \mathbf{c}_i\|^2, \forall j \in \{1,\dots,n\} $$
?
I think this is similar to or the same as the geometric set cover problem. In my case, the centre locations are not drawn from a discrete set but rather they are free points in $\mathbb{R}^d$.
I have a "bottom-up" merge-based heuristic that seems to work well in 2D, but would like to know if any known algorithms exist.