 
 void loop() {
   // Check bumper thresholds to stop robot
-  // TODO(mwomack): Figure out how to support ROS instructing going backwards
   bumper_left = analogRead(BUMPER_LEFT_PIN);
   bumper_right = analogRead(BUMPER_RIGHT_PIN);
   bumper_stop = bumper_left < 450 || bumper_right < 450;


void doPublishOdom() {
  ros::Time current_time = ros_nh.now();
  double dt = current_time.toSec() - last_odom_publish_time.toSec();
  
  // Broadcast odometry transform
  ros_odom_transform.header.stamp = current_time;

  // TODO: set all the transform data

  ros_odom_broadcaster.sendTransform(ros_odom_transform);
  
  // Publish Odometry
  ros_odom_msg.header.stamp = current_time;
  
  // TODO: Set all the odometry data
  
  ros_odom_pub.publish(&ros_odom_msg);
}

/*

  motor_right_speed = max(-1, min(1, wr / MAX_SPEED));
}

/*
 * Reads the current values of the motor encoders and uses
 * the difference with the previous value from the encoders
 * to calculate the angular velocity of each wheel.
 */
void doReadEncoders() {
  ros::Time current_time = ros_nh.now();
  unsigned long new_encoder_left_pos = encoder_left.read();
