Sensing allows us to understand the world we live in. A sensor network is comprised by a large number of small, low-cost, low-power nodes including sensing, data processing and communication components, which are deployed near the phenomenon to be monitored. Applications include health care, structural and environmental monitoring, homeland security, etc. Random or unplanned deployments call for self-organizing networks with the ability to perform distributed data processing. The inherent limitations in computational power and communication range of individual nodes pose significant challenges to the design and development of distributed signal processing algorithms for sensor networks. Some of the problems we have investigated in this area include self-localization, topology control and robust distributed estimation, often in collaboration with other groups such as the Computational Intelligence Group (University of Pisa), the Cognitive Radio Group (University of New Mexico), and the Signal Processing and Communications Group (Universitat Politècnica de Catalunya).