Maximizing network coverage is very important for heterogeneous directional sensor networks (HDSNs). HDSNs consist of directional sensor nodes with different parameters in terms of the sensing radius, the communication radius and the angle of view. After the initial deployment of the HDSNs, coverage problems occur, such as overlapped areas and holes in the coverage, which are not covered by any one of the sensor nodes. To solve these coverage problems, motility and mobility are often utilized. Motility means the ability to adjust the working direction of the nodes, while mobility presents the physical movement of the nodes. The coverage problem that we solved in this paper is characterized by the heterogeneity of the directional sensor nodes in terms of the sensing radius, the field of angle, the motility, the mobility, and the communication radius. A two-phase algorithm was proposed to solve the coverage optimization problem of the HDSNs. In the first phase of the proposed algorithm, a stepwise method was used to adjust the working direction of the nodes; in the second phase of the proposed algorithm, a virtual force-directed self-adaptive differential evolution algorithm was proposed to achieve a tradeoff between the coverage and the energy consumption. Extensive simulation experiments were performed to demonstrate the effectiveness of our proposed algorithm over alternative algorithms in terms of the coverage rate and energy consumption. INDEX TERMS Directional sensor networks, coverage control, heterogeneous network, self-adaptive differential evolution algorithm, virtual force.