Preserve battery with Sleep ?

Well I can't get that to compile - various multiply defined symbols relating to the I2C library. Anyway I don't understand this:

void reset_application()
{
//  if(debug_mode)
//      Serial.print("reset_application");
  delay(100);
  inactive_counter=0;
  current_position = 0;
  LED_clear();  
}

//sleep related funtion()
void wakeUpNow()        
{
  if(is_sleeping)
  {
    Serial.println("is up");
    is_sleeping = false;
    reset_application(); 
  }
}

void sleepNow()         
{   set_sleep_mode(SLEEP_MODE_PWR_DOWN);  
    sleep_enable();         
    attachInterrupt(1,wakeUpNow, LOW); 
    sleep_mode();            
    sleep_disable();         
}

Now wakeUpNow is an ISR, right? So interrupts are disabled. So when it calls reset_application then interrupts are disabled. So delay (100) won't work.

Why test is_sleeping? You won't be there unless it is sleeping, will you?

You should detach the interrupt in is_sleeping. Then do the rest once interrupts are active again. eg.

Here:

//sleep related funtion()
void wakeUpNow()        
{
    detachInterrupt(1);     
}

void sleepNow()         
{   
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);  
    sleep_enable();         
    attachInterrupt(1,wakeUpNow, LOW); 
    sleep_mode();            
    sleep_disable();         
    Serial.println("is up");
    is_sleeping = false;
    reset_application(); 
}

Here:

void setup()
{
    
...

  pinMode(softButtonPin, INPUT);
  attachInterrupt(1, wakeUpNow, LOW);

Don't attach that interrupt until you are ready. And in any case I would enable the pull-up resistor.

Also I don't see you turning stuff off before going to sleep. The LED pins are still configured as outputs. You haven't turned off the ADC or anything. To turn off the various internal modules (just before sleeping):

 // turn off various modules
  PRR = 0b11101111;

(EDIT: changed 0x11101111 to 0b11101111)

After you wake put them back:

 // stop power reduction
  PRR = 0;