diff --git a/RosAria.cpp b/RosAria.cpp
index d11adbaff432ac5f518cadf92997d760ca075fe4..01992c304f0726cb6b67bb408f22ece3c44c3a0d 100644
--- a/RosAria.cpp
+++ b/RosAria.cpp
@@ -3,19 +3,19 @@
 #ifdef ADEPT_PKG
   #include <Aria.h>
 #else
-  #include <Aria/Aria.h>
+#include <Aria/Aria.h>
 #endif
 #include "ros/ros.h"
 #include "geometry_msgs/Twist.h"
 #include "geometry_msgs/Pose.h"
 #include "geometry_msgs/PoseStamped.h"
-#include <sensor_msgs/PointCloud.h>  //for sonar data
+#include <sensor_msgs/PointCloud.h>
 #include <sensor_msgs/PointCloud2.h>
-#include <sensor_msgs/point_cloud_conversion.h> // can optionally publish sonar as new type pointcloud2
+#include <sensor_msgs/point_cloud_conversion.h>
 #include "nav_msgs/Odometry.h"
 #include "rosaria/BumperState.h"
 #include "tf/tf.h"
-#include "tf/transform_listener.h"  //for tf::getPrefixParam
+#include "tf/transform_listener.h"
 #include <tf/transform_broadcaster.h>
 #include "tf/transform_datatypes.h"
 #include <dynamic_reconfigure/server.h>
@@ -26,697 +26,440 @@
 #include "std_msgs/Int8.h"
 #include "std_msgs/Bool.h"
 #include "std_srvs/Empty.h"
-
 #include "LaserPublisher.h"
-
 #include <sstream>
-
-
-/** @brief Node that interfaces between ROS and mobile robot base features via ARIA library. 
-
-    RosAriaNode will use ARIA to connect to a robot controller (configure via
-    ~port parameter), either direct serial connection or over the network.  It 
-    runs ARIA's robot communications cycle in a background thread, and
-    as part of that cycle (a sensor interpretation task which calls RosAriaNode::publish()),
-    it  publishes various topics with newly received robot
-    data.  It also sends velocity commands to the robot when received in the
-    cmd_vel topic, and handles dynamic_reconfigure and Service requests.
-
-    For more information about ARIA see
-    http://robots.mobilerobots.com/wiki/Aria.
-
-    RosAria uses the roscpp client library, see http://www.ros.org/wiki/roscpp for
-    information, tutorials and documentation.
-*/
-class RosAriaNode
-{
-  public:
+class RosAriaNode{
+public:
     RosAriaNode(ros::NodeHandle n);
     virtual ~RosAriaNode();
-    
-  public:
+
+public:
     int Setup();
-    void cmdvel_cb( const geometry_msgs::TwistConstPtr &);
+    void cmdvel_cb(const geometry_msgs::TwistConstPtr&);
     void cmdvel_watchdog(const ros::TimerEvent& event);
-    //void cmd_enable_motors_cb();
-    //void cmd_disable_motors_cb();
     void spin();
     void publish();
     void sonarConnectCb();
-    void dynamic_reconfigureCB(rosaria::RosAriaConfig &config, uint32_t level);
+    void dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level);
     void readParameters();
 
-  protected:
+protected:
     ros::NodeHandle n;
     ros::Publisher pose_pub;
     ros::Publisher bumpers_pub;
     ros::Publisher sonar_pub;
     ros::Publisher sonar_pointcloud2_pub;
     ros::Publisher voltage_pub;
-
     ros::Publisher recharge_state_pub;
     std_msgs::Int8 recharge_state;
-
     ros::Publisher state_of_charge_pub;
-
     ros::Publisher motors_state_pub;
     std_msgs::Bool motors_state;
     bool published_motors_state;
-
     ros::Subscriber cmdvel_sub;
-
     ros::ServiceServer enable_srv;
     ros::ServiceServer disable_srv;
     bool enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response);
     bool disable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response);
-
     ros::Time veltime;
     ros::Timer cmdvel_watchdog_timer;
     ros::Duration cmdvel_timeout;
-
     std::string serial_port;
     int serial_baud;
-
-    ArRobotConnector *conn;
-    ArLaserConnector *laserConnector;
-    ArRobot *robot;
+    ArRobotConnector* conn;
+    ArLaserConnector* laserConnector;
+    ArRobot* robot;
     nav_msgs::Odometry position;
     rosaria::BumperState bumpers;
     ArPose pos;
     ArFunctorC<RosAriaNode> myPublishCB;
-    //ArRobot::ChargeState batteryCharge;
-
-    //for odom->base_link transform
     tf::TransformBroadcaster odom_broadcaster;
     geometry_msgs::TransformStamped odom_trans;
-    
     std::string frame_id_odom;
     std::string frame_id_base_link;
     std::string frame_id_bumper;
     std::string frame_id_sonar;
-
-    // flag indicating whether sonar was enabled or disabled on the robot
-    bool sonar_enabled; 
-
-    // enable and publish sonar topics. set to true when first subscriber connects, set to false when last subscriber disconnects. 
-    bool publish_sonar; 
+    bool sonar_enabled;
+    bool publish_sonar;
     bool publish_sonar_pointcloud2;
-
-    // Debug Aria
     bool debug_aria;
     std::string aria_log_filename;
-    
-    // Robot Calibration Parameters (see readParameters() function)
-    int TicksMM, DriftFactor, RevCount;  //If TicksMM or RevCount are <0, don't use. If DriftFactor is -99999, don't use (DriftFactor could be 0 or negative).
-    
-    // dynamic_reconfigure
-    dynamic_reconfigure::Server<rosaria::RosAriaConfig> *dynamic_reconfigure_server;
-
-    // whether to publish aria lasers
+    int TicksMM, DriftFactor, RevCount;
+    dynamic_reconfigure::Server<rosaria::RosAriaConfig>* dynamic_reconfigure_server;
     bool publish_aria_lasers;
-
     ros::Publisher encoder_pub;
     rosaria::Encoders encoders;
 };
 
 void RosAriaNode::readParameters()
 {
-  // Robot Parameters. If a parameter was given and is nonzero, set it now.
-  // Otherwise, get default value for this robot (from getOrigRobotConfig()).
-  // Parameter values are stored in member variables for possible later use by the user with dynamic reconfigure.
-  robot->lock();
-  ros::NodeHandle n_("~");
-  if (n_.getParam("TicksMM", TicksMM) && TicksMM > 0)
-  {
-    ROS_INFO("Setting robot TicksMM from ROS Parameter: %d", TicksMM);
-    robot->comInt(93, TicksMM);
-  }
-  else
-  {
-    TicksMM = robot->getOrigRobotConfig()->getTicksMM();
-    ROS_INFO("This robot's TicksMM parameter: %d", TicksMM);
-    //n_.setParam( "TicksMM", TicksMM);
-  }
-  
-  if (n_.getParam("DriftFactor", DriftFactor) && DriftFactor != -99999)
-  {
-    ROS_INFO("Setting robot DriftFactor from ROS Parameter: %d", DriftFactor);
-    robot->comInt(89, DriftFactor);
-  }
-  else
-  {
-    DriftFactor = robot->getOrigRobotConfig()->getDriftFactor();
-    ROS_INFO("This robot's DriftFactor parameter: %d", DriftFactor);
-    //n_.setParam( "DriftFactor", DriftFactor);
-  }
-  
-  if (n_.getParam("RevCount", RevCount) && RevCount > 0)
-  {
-    ROS_INFO("Setting robot RevCount from ROS Parameter: %d", RevCount);
-    robot->comInt(88, RevCount);
-  }
-  else
-  {
-    RevCount = robot->getOrigRobotConfig()->getRevCount();
-    ROS_INFO("This robot's RevCount parameter: %d", RevCount);
-    //n_.setParam( "RevCount", RevCount);
-  }
-  robot->unlock();
+    robot->lock();
+    ros::NodeHandle n_("~");
+    if (n_.getParam("TicksMM", TicksMM) && TicksMM > 0) {
+        ROS_INFO("Setting robot TicksMM from ROS Parameter: %d", TicksMM);
+        robot->comInt(93, TicksMM);
+    }else{
+        TicksMM = robot->getOrigRobotConfig()->getTicksMM();
+        ROS_INFO("This robot's TicksMM parameter: %d", TicksMM);
+    }
+    if (n_.getParam("DriftFactor", DriftFactor) && DriftFactor != -99999) {
+        ROS_INFO("Setting robot DriftFactor from ROS Parameter: %d", DriftFactor);
+        robot->comInt(89, DriftFactor);
+    }else{
+        DriftFactor = robot->getOrigRobotConfig()->getDriftFactor();
+        ROS_INFO("This robot's DriftFactor parameter: %d", DriftFactor);
+    }
+    if (n_.getParam("RevCount", RevCount) && RevCount > 0) {
+        ROS_INFO("Setting robot RevCount from ROS Parameter: %d", RevCount);
+        robot->comInt(88, RevCount);
+    }else{
+        RevCount = robot->getOrigRobotConfig()->getRevCount();
+        ROS_INFO("This robot's RevCount parameter: %d", RevCount);
+    }
+    robot->unlock();
 }
 
-void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig &config, uint32_t level)
+void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level)
 {
-  //
-  // Odometry Settings
-  //
-  robot->lock();
-  if(TicksMM != config.TicksMM && config.TicksMM > 0)
-  {
-    ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
-    TicksMM = config.TicksMM;
-    robot->comInt(93, TicksMM);
-  }
-  
-  if(DriftFactor != config.DriftFactor && config.DriftFactor != -99999) 
-  {
-    ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
-    DriftFactor = config.DriftFactor;
-    robot->comInt(89, DriftFactor);
-  }
-  
-  if(RevCount != config.RevCount && config.RevCount > 0)
-  {
-    ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
-    RevCount = config.RevCount;
-    robot->comInt(88, RevCount);
-  }
-  
-  //
-  // Acceleration Parameters
-  //
-  int value;
-  value = config.trans_accel * 1000;
-  if(value != robot->getTransAccel() && value > 0)
-  {
-    ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
-    robot->setTransAccel(value);
-  }
-  
-  value = config.trans_decel * 1000;
-  if(value != robot->getTransDecel() && value > 0)
-  {
-    ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
-    robot->setTransDecel(value);
-  } 
-  
-  value = config.lat_accel * 1000;
-  if(value != robot->getLatAccel() && value > 0)
-  {
-    ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
-    if (robot->getAbsoluteMaxLatAccel() > 0 )
-      robot->setLatAccel(value);
-  }
-  
-  value = config.lat_decel * 1000;
-  if(value != robot->getLatDecel() && value > 0)
-  {
-    ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
-    if (robot->getAbsoluteMaxLatDecel() > 0 )
-      robot->setLatDecel(value);
-  }
-  
-  value = config.rot_accel * 180/M_PI;
-  if(value != robot->getRotAccel() && value > 0)
-  {
-    ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
-    robot->setRotAccel(value);
-  }
-  
-  value = config.rot_decel * 180/M_PI;
-  if(value != robot->getRotDecel() && value > 0)
-  {
-    ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
-    robot->setRotDecel(value);
-  } 
-  robot->unlock();
+    robot->lock();
+    if (TicksMM != config.TicksMM && config.TicksMM > 0) {
+        ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+        TicksMM = config.TicksMM;
+        robot->comInt(93, TicksMM);
+    }
+    if (DriftFactor != config.DriftFactor && config.DriftFactor != -99999) {
+        ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
+        DriftFactor = config.DriftFactor;
+        robot->comInt(89, DriftFactor);
+    }
+    if (RevCount != config.RevCount && config.RevCount > 0) {
+        ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
+        RevCount = config.RevCount;
+        robot->comInt(88, RevCount);
+    }
+    int value;
+    value = config.trans_accel * 1000;
+    if (value != robot->getTransAccel() && value > 0) {
+        ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+        robot->setTransAccel(value);
+    }
+    value = config.trans_decel * 1000;
+    if (value != robot->getTransDecel() && value > 0) {
+        ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+        robot->setTransDecel(value);
+    }
+    value = config.lat_accel * 1000;
+    if (value != robot->getLatAccel() && value > 0) {
+        ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+        if (robot->getAbsoluteMaxLatAccel() > 0) 
+            robot->setLatAccel(value);
+    }
+    value = config.lat_decel * 1000;
+    if (value != robot->getLatDecel() && value > 0) {
+        ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+        if (robot->getAbsoluteMaxLatDecel() > 0) 
+            robot->setLatDecel(value);
+    }
+    value = config.rot_accel * 180 / M_PI;
+    if (value != robot->getRotAccel() && value > 0) {
+        ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+        robot->setRotAccel(value);
+    }
+    value = config.rot_decel * 180 / M_PI;
+    if (value != robot->getRotDecel() && value > 0) {
+        ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+        robot->setRotDecel(value);
+    }
+    robot->unlock();
 }
 
-/// Called when another node subscribes or unsubscribes from sonar topic.
 void RosAriaNode::sonarConnectCb()
 {
-  publish_sonar = (sonar_pub.getNumSubscribers() > 0);
-  publish_sonar_pointcloud2 = (sonar_pointcloud2_pub.getNumSubscribers() > 0);
-  robot->lock();
-  if (publish_sonar || publish_sonar_pointcloud2)
-  {
-    robot->enableSonar();
-    sonar_enabled = false;
-  }
-  else if(!publish_sonar && !publish_sonar_pointcloud2)
-  {
-    robot->disableSonar();
-    sonar_enabled = true;
-  }
-  robot->unlock();
+    publish_sonar = (sonar_pub.getNumSubscribers() > 0);
+    publish_sonar_pointcloud2 = (sonar_pointcloud2_pub.getNumSubscribers() > 0);
+    robot->lock();
+    if (publish_sonar || publish_sonar_pointcloud2) {
+        robot->enableSonar();
+        sonar_enabled = false;
+    }else
+        if (!publish_sonar && !publish_sonar_pointcloud2) {
+            robot->disableSonar();
+            sonar_enabled = true;
+        }
+
+    robot->unlock();
 }
 
-RosAriaNode::RosAriaNode(ros::NodeHandle nh) : 
-  n(nh),
-  serial_port(""), serial_baud(0), 
-  conn(NULL), laserConnector(NULL), robot(NULL),
-  myPublishCB(this, &RosAriaNode::publish),
-  sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false),
-  debug_aria(false), 
-  TicksMM(-1), DriftFactor(-99999), RevCount(-1),
-  publish_aria_lasers(false)
+RosAriaNode::RosAriaNode(ros::NodeHandle nh)
+:n(nh), serial_port(""), serial_baud(0), conn(NULL), laserConnector(NULL), robot(NULL), myPublishCB(this, &RosAriaNode::publish), sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false), debug_aria(false), TicksMM(-1), DriftFactor(-99999), RevCount(-1), publish_aria_lasers(false)
 {
-  // read in runtime parameters
-
-  // port and baud
-  n.param( "port", serial_port, std::string("/dev/ttyUSB0") );
-  ROS_INFO( "RosAria: set port: [%s]", serial_port.c_str() );
-
-  n.param("baud", serial_baud, 0);
-  if(serial_baud != 0)
-    ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
-
-  // handle debugging more elegantly
-  n.param( "debug_aria", debug_aria, false ); // default not to debug
-  n.param( "aria_log_filename", aria_log_filename, std::string("Aria.log") );
-
-  // whether to connect to lasers using aria
-  n.param("publish_aria_lasers", publish_aria_lasers, false);
-
-  // Get frame_ids to use.
-  n.param("odom_frame", frame_id_odom, std::string("odom"));
-  n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
-  n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
-  n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
-
-  // advertise services for data topics
-  // second argument to advertise() is queue size.
-  // other argmuments (optional) are callbacks, or a boolean "latch" flag (whether to send current data to new
-  // subscribers when they subscribe).
-  // See ros::NodeHandle API docs.
-  pose_pub = n.advertise<nav_msgs::Odometry>("pose",1000);
-  bumpers_pub = n.advertise<rosaria::BumperState>("bumper_state",1000);
-  sonar_pub = n.advertise<sensor_msgs::PointCloud>("sonar", 50, 
-      boost::bind(&RosAriaNode::sonarConnectCb, this),
-      boost::bind(&RosAriaNode::sonarConnectCb, this));
-  sonar_pointcloud2_pub = n.advertise<sensor_msgs::PointCloud2>("sonar_pointcloud2", 50,
-      boost::bind(&RosAriaNode::sonarConnectCb, this),
-      boost::bind(&RosAriaNode::sonarConnectCb, this));
-
-  voltage_pub = n.advertise<std_msgs::Float64>("battery_voltage", 1000);
-  recharge_state_pub = n.advertise<std_msgs::Int8>("battery_recharge_state", 5, true /*latch*/ );
-  recharge_state.data = -2;
-  state_of_charge_pub = n.advertise<std_msgs::Float32>("battery_state_of_charge", 100);
-
-  motors_state_pub = n.advertise<std_msgs::Bool>("motors_state", 5, true /*latch*/ );
-  motors_state.data = false;
-  published_motors_state = false;
-
-  // advertise enable/disable services
-  enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
-  disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
-  
-  veltime = ros::Time::now();
-
-  encoder_pub = n.advertise<rosaria::Encoders>("encoders",1);
+    n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+    ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+    n.param("baud", serial_baud, 0);
+    if (serial_baud != 0) 
+        ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+
+    n.param("debug_aria", debug_aria, false);
+    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+    n.param("publish_aria_lasers", publish_aria_lasers, false);
+    n.param("odom_frame", frame_id_odom, std::string("odom"));
+    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+    recharge_state.data = -2;
+    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+    motors_state.data = false;
+    published_motors_state = false;
+    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+    veltime = ros::Time::now();
+    encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
 }
 
 RosAriaNode::~RosAriaNode()
 {
-  // disable motors and sonar.
-  robot->stopEncoderPackets();
-
-  robot->disableMotors();
-  robot->disableSonar();
-
-  robot->stopRunning();
-  robot->waitForRunExit();
-  Aria::shutdown();
+    robot->stopEncoderPackets();
+    robot->disableMotors();
+    robot->disableSonar();
+    robot->stopRunning();
+    robot->waitForRunExit();
+    Aria::shutdown();
 }
-
 int RosAriaNode::Setup()
 {
-  // Note, various objects are allocated here which are never deleted (freed), since Setup() is only supposed to be
-  // called once per instance, and these objects need to persist until the process terminates.
-
-  robot = new ArRobot();
-  ArArgumentBuilder *args = new ArArgumentBuilder(); //  never freed
-  ArArgumentParser *argparser = new ArArgumentParser(args); // Warning never freed
-  argparser->loadDefaultArguments(); // adds any arguments given in /etc/Aria.args.  Useful on robots with unusual serial port or baud rate (e.g. pioneer lx)
-
-  // Now add any parameters given via ros params (see RosAriaNode constructor):
-
-  // if serial port parameter contains a ':' character, then interpret it as hostname:tcpport
-  // for wireless serial connection. Otherwise, interpret it as a serial port name.
-  size_t colon_pos = serial_port.find(":");
-  if (colon_pos != std::string::npos)
-  {
-    args->add("-remoteHost"); // pass robot's hostname/IP address to Aria
-    args->add(serial_port.substr(0, colon_pos).c_str());
-    args->add("-remoteRobotTcpPort"); // pass robot's TCP port to Aria
-    args->add(serial_port.substr(colon_pos+1).c_str());
-  }
-  else
-  {
-    args->add("-robotPort %s", serial_port.c_str()); // pass robot's serial port to Aria
-  }
-
-  // if a baud rate was specified in baud parameter
-  if(serial_baud != 0)
-  {
-    args->add("-robotBaud %d", serial_baud);
-  }
-  
-  if( debug_aria )
-  {
-    // turn on all ARIA debugging
-    args->add("-robotLogPacketsReceived"); // log received packets
-    args->add("-robotLogPacketsSent"); // log sent packets
-    args->add("-robotLogVelocitiesReceived"); // log received velocities
-    args->add("-robotLogMovementSent");
-    args->add("-robotLogMovementReceived");
-    ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
-  }
-
-
-  // Connect to the robot
-  conn = new ArRobotConnector(argparser, robot); // warning never freed
-  if (!conn->connectRobot()) {
-    ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
-    return 1;
-  }
-
-  if(publish_aria_lasers)
-    laserConnector = new ArLaserConnector(argparser, robot, conn);
-
-  // causes ARIA to load various robot-specific hardware parameters from the robot parameter file in /usr/local/Aria/params
-  if(!Aria::parseArgs())
-  {
-    ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
-    return 1;
-  }
-
-  readParameters();
-
-  // Start dynamic_reconfigure server
-  dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
-  
-  // Setup Parameter Minimums and maximums
-  rosaria::RosAriaConfig dynConf_min;
-  rosaria::RosAriaConfig dynConf_max;
-  
-  dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
-  dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
-  // TODO: Fix rqt dynamic_reconfigure gui to handle empty intervals
-  // Until then, set unit length interval.
-  dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
-  dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
-  dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI/180;
-  dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI/180;
-
-  dynConf_min.trans_accel = 0;
-  dynConf_min.trans_decel = 0;
-  dynConf_min.lat_accel = 0;
-  dynConf_min.lat_decel = 0;
-  dynConf_min.rot_accel = 0;
-  dynConf_min.rot_decel = 0;
-  
-  dynConf_min.TicksMM     = 0;
-  dynConf_max.TicksMM     = 200;
-  dynConf_min.DriftFactor = -99999;
-  dynConf_max.DriftFactor = 32767;
-  dynConf_min.RevCount    = 0;
-  dynConf_max.RevCount    = 65535;
-
-  dynamic_reconfigure_server->setConfigMax(dynConf_max);
-  dynamic_reconfigure_server->setConfigMin(dynConf_min);
-  
-  
-  rosaria::RosAriaConfig dynConf_default;
-  dynConf_default.trans_accel = robot->getTransAccel() / 1000;
-  dynConf_default.trans_decel = robot->getTransDecel() / 1000;
-  dynConf_default.lat_accel   = robot->getLatAccel() / 1000;
-  dynConf_default.lat_decel   = robot->getLatDecel() / 1000;
-  dynConf_default.rot_accel   = robot->getRotAccel() * M_PI/180;
-  dynConf_default.rot_decel   = robot->getRotDecel() * M_PI/180;
-
-  dynConf_default.TicksMM     = 0;
-  dynConf_default.DriftFactor = -99999;
-  dynConf_default.RevCount    = 0;
-  
-  dynamic_reconfigure_server->setConfigDefault(dynConf_default);
-  
-  dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
-
-
-  // Enable the motors
-  robot->enableMotors();
-
-  // disable sonars on startup
-  robot->disableSonar();
-
-  // callback will  be called by ArRobot background processing thread for every SIP data packet received from robot
-  robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
-
-  // Initialize bumpers with robot number of bumpers
-  bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
-  bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
-
-  // Run ArRobot background processing thread
-  robot->runAsync(true);
-
-  // connect to lasers and create publishers
-  if(publish_aria_lasers)
-  {
-    ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
-    if (!laserConnector->connectLasers())
-    {
-      ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
-      return 1;
+    robot = new ArRobot();
+    ArArgumentBuilder* args = new ArArgumentBuilder();
+    ArArgumentParser* argparser = new ArArgumentParser(args);
+    argparser->loadDefaultArguments();
+    size_t colon_pos = serial_port.find(":");
+    if (colon_pos != std::string::npos) {
+        args->add("-remoteHost");
+        args->add(serial_port.substr(0, colon_pos).c_str());
+        args->add("-remoteRobotTcpPort");
+        args->add(serial_port.substr(colon_pos + 1).c_str());
+    }else{
+        args->add("-robotPort %s", serial_port.c_str());
     }
-
-    robot->lock();
-    const std::map<int, ArLaser*> *lasers = robot->getLaserMap();
-    ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
-    for(std::map<int, ArLaser*>::const_iterator i = lasers->begin(); i != lasers->end(); ++i)
-    {
-      ArLaser *l = i->second;
-      int ln = i->first;
-      std::string tfname("laser");
-      if(lasers->size() > 1 || ln > 1) // no number if only one laser which is also laser 1
-        tfname += ln; 
-      tfname += "_frame";
-      ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
-      new LaserPublisher(l, n, true, tfname);
+    if (serial_baud != 0) {
+        args->add("-robotBaud %d", serial_baud);
     }
-    robot->unlock();
-    ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
-  }
-    
-  // subscribe to command topics
-  cmdvel_sub = n.subscribe( "cmd_vel", 1, (boost::function <void(const geometry_msgs::TwistConstPtr&)>)
-      boost::bind(&RosAriaNode::cmdvel_cb, this, _1 ));
-
-  // register a watchdog for cmd_vel timeout
-  double cmdvel_timeout_param = 0.6;
-  n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
-  cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
-  if (cmdvel_timeout_param > 0.0)
-    cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
-
-  robot->requestEncoderPackets();
+    if (debug_aria) {
+        args->add("-robotLogPacketsReceived");
+        args->add("-robotLogPacketsSent");
+        args->add("-robotLogVelocitiesReceived");
+        args->add("-robotLogMovementSent");
+        args->add("-robotLogMovementReceived");
+        ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+    }
+    conn = new ArRobotConnector(argparser, robot);
+    if (!conn->connectRobot()) {
+        ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+        return 1;
+    }
+    if (publish_aria_lasers) 
+        laserConnector = new ArLaserConnector(argparser, robot, conn);
 
-  ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
-  return 0;
+    if (!Aria::parseArgs()) {
+        ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+        return 1;
+    }
+    readParameters();
+    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+    rosaria::RosAriaConfig dynConf_min;
+    rosaria::RosAriaConfig dynConf_max;
+    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+    dynConf_min.trans_accel = 0;
+    dynConf_min.trans_decel = 0;
+    dynConf_min.lat_accel = 0;
+    dynConf_min.lat_decel = 0;
+    dynConf_min.rot_accel = 0;
+    dynConf_min.rot_decel = 0;
+    dynConf_min.TicksMM = 0;
+    dynConf_max.TicksMM = 200;
+    dynConf_min.DriftFactor = -99999;
+    dynConf_max.DriftFactor = 32767;
+    dynConf_min.RevCount = 0;
+    dynConf_max.RevCount = 65535;
+    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+    rosaria::RosAriaConfig dynConf_default;
+    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+    dynConf_default.TicksMM = 0;
+    dynConf_default.DriftFactor = -99999;
+    dynConf_default.RevCount = 0;
+    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+    robot->enableMotors();
+    robot->disableSonar();
+    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+    robot->runAsync(true);
+    if (publish_aria_lasers) {
+        ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+        if (!laserConnector->connectLasers()) {
+            ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+            return 1;
+        }
+        robot->lock();
+        const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+        ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+        for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
+            ArLaser* l = i->second;
+            int ln = i->first;
+            std::string tfname("laser");
+            if (lasers->size() > 1 || ln > 1) 
+                tfname += ln;
+
+            tfname += "_frame";
+            ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+            new LaserPublisher(l, n, true, tfname);
+        }
+        robot->unlock();
+        ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+    }
+    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+    double cmdvel_timeout_param = 0.6;
+    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+    if (cmdvel_timeout_param > 0.0) 
+        cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+
+    robot->requestEncoderPackets();
+    ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+    return 0;
 }
 
 void RosAriaNode::spin()
 {
-  ros::spin();
+    ros::spin();
 }
-
 void RosAriaNode::publish()
 {
-  // Note, this is called via SensorInterpTask callback (myPublishCB, named "ROSPublishingTask"). ArRobot object 'robot' sholud not be locked or unlocked.
-  pos = robot->getPose();
-  tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh()*M_PI/180), tf::Vector3(pos.getX()/1000,
-    pos.getY()/1000, 0)), position.pose.pose); //Aria returns pose in mm.
-  position.twist.twist.linear.x = robot->getVel()/1000.0; //Aria returns velocity in mm/s.
-  position.twist.twist.linear.y = robot->getLatVel()/1000.0;
-  position.twist.twist.angular.z = robot->getRotVel()*M_PI/180;
-  
-  position.header.frame_id = frame_id_odom;
-  position.child_frame_id = frame_id_base_link;
-  position.header.stamp = ros::Time::now();
-  pose_pub.publish(position);
-
-  ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", 
-    position.header.stamp.toSec(), 
-    (double)position.pose.pose.position.x,
-    (double)position.pose.pose.position.y,
-    (double)position.pose.pose.orientation.w,
-    (double)position.twist.twist.linear.x,
-    (double)position.twist.twist.linear.y,
-    (double)position.twist.twist.angular.z
-  );
-
-  // publishing transform odom->base_link
-  odom_trans.header.stamp = ros::Time::now();
-  odom_trans.header.frame_id = frame_id_odom;
-  odom_trans.child_frame_id = frame_id_base_link;
-  
-  odom_trans.transform.translation.x = pos.getX()/1000;
-  odom_trans.transform.translation.y = pos.getY()/1000;
-  odom_trans.transform.translation.z = 0.0;
-  odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh()*M_PI/180);
-  
-  odom_broadcaster.sendTransform(odom_trans);
-  
-  // getStallValue returns 2 bytes with stall bit and bumper bits, packed as (00 00 FrontBumpers RearBumpers)
-  int stall = robot->getStallValue();
-  unsigned char front_bumpers = (unsigned char)(stall >> 8);
-  unsigned char rear_bumpers = (unsigned char)(stall);
-
-  bumpers.header.frame_id = frame_id_bumper;
-  bumpers.header.stamp = ros::Time::now();
-
-  std::stringstream bumper_info(std::stringstream::out);
-  // Bit 0 is for stall, next bits are for bumpers (leftmost is LSB)
-  for (unsigned int i=0; i<robot->getNumFrontBumpers(); i++)
-  {
-    bumpers.front_bumpers[i] = (front_bumpers & (1 << (i+1))) == 0 ? 0 : 1;
-    bumper_info << " " << (front_bumpers & (1 << (i+1)));
-  }
-  ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
-
-  bumper_info.str("");
-  // Rear bumpers have reverse order (rightmost is LSB)
-  unsigned int numRearBumpers = robot->getNumRearBumpers();
-  for (unsigned int i=0; i<numRearBumpers; i++)
-  {
-    bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers-i))) == 0 ? 0 : 1;
-    bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers-i)));
-  }
-  ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
-  
-  bumpers_pub.publish(bumpers);
-
-  //Publish battery information
-  // TODO: Decide if BatteryVoltageNow (normalized to (0,12)V)  is a better option
-  std_msgs::Float64 batteryVoltage;
-  batteryVoltage.data = robot->getRealBatteryVoltageNow();
-  voltage_pub.publish(batteryVoltage);
-
-  if(robot->haveStateOfCharge())
-  {
-    std_msgs::Float32 soc;
-    soc.data = robot->getStateOfCharge()/100.0;
-    state_of_charge_pub.publish(soc);
-  }
-
-  // publish recharge state if changed
-  char s = robot->getChargeState();
-  if(s != recharge_state.data)
-  {
-    ROS_INFO("RosAria: publishing new recharge state %d.", s);
-    recharge_state.data = s;
-    recharge_state_pub.publish(recharge_state);
-  }
-
-  // publish motors state if changed
-  bool e = robot->areMotorsEnabled();
-  if(e != motors_state.data || !published_motors_state)
-  {
-	ROS_INFO("RosAria: publishing new motors state %d.", e);
-	motors_state.data = e;
-	motors_state_pub.publish(motors_state);
-	published_motors_state = true;
-  }
-
-  // Publish sonar information, if enabled.
-  if (publish_sonar || publish_sonar_pointcloud2)
-  {
-    sensor_msgs::PointCloud cloud;	//sonar readings.
-    cloud.header.stamp = position.header.stamp;	//copy time.
-    // sonar sensors relative to base_link
-    cloud.header.frame_id = frame_id_sonar;
-  
-
-    std::stringstream sonar_debug_info; // Log debugging info
-    sonar_debug_info << "Sonar readings: ";
-
-    for (int i = 0; i < robot->getNumSonar(); i++) {
-      ArSensorReading* reading = NULL;
-      reading = robot->getSonarReading(i);
-      if(!reading) {
-        ROS_WARN("RosAria: Did not receive a sonar reading.");
-        continue;
-      }
-    
-      // getRange() will return an integer between 0 and 5000 (5m)
-      sonar_debug_info << reading->getRange() << " ";
-
-      // local (x,y). Appears to be from the centre of the robot, since values may
-      // exceed 5000. This is good, since it means we only need 1 transform.
-      // x & y seem to be swapped though, i.e. if the robot is driving north
-      // x is north/south and y is east/west.
-      //
-      //ArPose sensor = reading->getSensorPosition();  //position of sensor.
-      // sonar_debug_info << "(" << reading->getLocalX() 
-      //                  << ", " << reading->getLocalY()
-      //                  << ") from (" << sensor.getX() << ", " 
-      //                  << sensor.getY() << ") ;; " ;
-    
-      //add sonar readings (robot-local coordinate frame) to cloud
-      geometry_msgs::Point32 p;
-      p.x = reading->getLocalX() / 1000.0;
-      p.y = reading->getLocalY() / 1000.0;
-      p.z = 0.0;
-      cloud.points.push_back(p);
+    pos = robot->getPose();
+    tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+    position.header.frame_id = frame_id_odom;
+    position.child_frame_id = frame_id_base_link;
+    position.header.stamp = ros::Time::now();
+    pose_pub.publish(position);
+    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+    odom_trans.header.stamp = ros::Time::now();
+    odom_trans.header.frame_id = frame_id_odom;
+    odom_trans.child_frame_id = frame_id_base_link;
+    odom_trans.transform.translation.x = pos.getX() / 1000;
+    odom_trans.transform.translation.y = pos.getY() / 1000;
+    odom_trans.transform.translation.z = 0.0;
+    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+    odom_broadcaster.sendTransform(odom_trans);
+    int stall = robot->getStallValue();
+    unsigned char front_bumpers = (unsigned char)(stall >> 8);
+    unsigned char rear_bumpers = (unsigned char)(stall);
+    bumpers.header.frame_id = frame_id_bumper;
+    bumpers.header.stamp = ros::Time::now();
+    std::stringstream bumper_info(std::stringstream::out);
+    for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+        bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+        bumper_info << " " << (front_bumpers & (1 << (i + 1)));
     }
-    ROS_DEBUG_STREAM(sonar_debug_info.str());
-    
-    // publish topic(s)
-
-    if(publish_sonar_pointcloud2)
-    {
-      sensor_msgs::PointCloud2 cloud2;
-      if(!sensor_msgs::convertPointCloudToPointCloud2(cloud, cloud2))
-      {
-        ROS_WARN("Error converting sonar point cloud message to point_cloud2 type before publishing! Not publishing this time.");
-      }
-      else
-      {
-        sonar_pointcloud2_pub.publish(cloud2);
-      }
+    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+    bumper_info.str("");
+    unsigned int numRearBumpers = robot->getNumRearBumpers();
+    for (unsigned int i = 0;i < numRearBumpers;i++){
+        bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+        bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
     }
-
-    if(publish_sonar)
-    {
-      sonar_pub.publish(cloud);
+    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+    bumpers_pub.publish(bumpers);
+    std_msgs::Float64 batteryVoltage;
+    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+    voltage_pub.publish(batteryVoltage);
+    if (robot->haveStateOfCharge()) {
+        std_msgs::Float32 soc;
+        soc.data = robot->getStateOfCharge() / 100.0;
+        state_of_charge_pub.publish(soc);
+    }
+    char s = robot->getChargeState();
+    if (s != recharge_state.data) {
+        ROS_INFO("RosAria: publishing new recharge state %d.", s);
+        recharge_state.data = s;
+        recharge_state_pub.publish(recharge_state);
+    }
+    bool e = robot->areMotorsEnabled();
+    if (e != motors_state.data || !published_motors_state) {
+        ROS_INFO("RosAria: publishing new motors state %d.", e);
+        motors_state.data = e;
+        motors_state_pub.publish(motors_state);
+        published_motors_state = true;
+    }
+    if (publish_sonar || publish_sonar_pointcloud2) {
+        sensor_msgs::PointCloud cloud;
+        cloud.header.stamp = position.header.stamp;
+        cloud.header.frame_id = frame_id_sonar;
+        std::stringstream sonar_debug_info;
+        sonar_debug_info << "Sonar readings: ";
+        for (int i = 0;i < robot->getNumSonar();i++){
+            ArSensorReading* reading = NULL;
+            reading = robot->getSonarReading(i);
+            if (!reading) {
+                ROS_WARN("RosAria: Did not receive a sonar reading.");
+                continue;
+            }
+            sonar_debug_info << reading->getRange() << " ";
+            geometry_msgs::Point32 p;
+            p.x = reading->getLocalX() / 1000.0;
+            p.y = reading->getLocalY() / 1000.0;
+            p.z = 0.0;
+            cloud.points.push_back(p);
+        }
+        ROS_DEBUG_STREAM(sonar_debug_info.str());
+        if (publish_sonar_pointcloud2) {
+            sensor_msgs::PointCloud2 cloud2;
+            if (!sensor_msgs::convertPointCloudToPointCloud2(cloud, cloud2)) {
+                ROS_WARN("Error converting sonar point cloud message to point_cloud2 type before publishing! Not publishing this time.");
+            }else{
+                sonar_pointcloud2_pub.publish(cloud2);
+            }
+        }
+        if (publish_sonar) {
+            sonar_pub.publish(cloud);
+        }
     }
-  } // end if sonar_enabled
-  // send the encoder information
-  encoders.left_encoder=robot->getLeftEncoder();
-  encoders.right_encoder=robot->getRightEncoder();
-  encoders.header.stamp=ros::Time::now();
-  encoders.header.frame_id=frame_id_odom;
-  encoder_pub.publish(encoders);
+    encoders.left_encoder = robot->getLeftEncoder();
+    encoders.right_encoder = robot->getRightEncoder();
+    encoders.header.stamp = ros::Time::now();
+    encoders.header.frame_id = frame_id_odom;
+    encoder_pub.publish(encoders);
 }
 
 bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
 {
     ROS_INFO("RosAria: Enable motors request.");
     robot->lock();
-    if(robot->isEStopPressed())
+    if (robot->isEStopPressed()) 
         ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+
     robot->enableMotors();
     robot->unlock();
-	// todo could wait and see if motors do become enabled, and send a response with an error flag if not
     return true;
 }
 
@@ -726,60 +469,46 @@ bool RosAriaNode::disable_motors_cb(std_srvs::Empty::Request& request, std_srvs:
     robot->lock();
     robot->disableMotors();
     robot->unlock();
-	// todo could wait and see if motors do become disabled, and send a response with an error flag if not
     return true;
 }
-
-void
-RosAriaNode::cmdvel_cb( const geometry_msgs::TwistConstPtr &msg)
+void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
 {
-  veltime = ros::Time::now();
-  ROS_INFO( "new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x*1e3, msg->angular.z, veltime.toSec() );
+    veltime = ros::Time::now();
+    ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+    robot->lock();
+    robot->setVel(msg->linear.x * 1e3);
+    if (robot->hasLatVel()) 
+        robot->setLatVel(msg->linear.y * 1e3);
 
-  robot->lock();
-  robot->setVel(msg->linear.x*1e3);
-  if(robot->hasLatVel())
-    robot->setLatVel(msg->linear.y*1e3);
-  robot->setRotVel(msg->angular.z*180/M_PI);
-  robot->unlock();
-  ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(),
-    (double) msg->linear.x * 1e3, (double) msg->linear.y * 1e3, (double) msg->angular.z * 180/M_PI);
+    robot->setRotVel(msg->angular.z * 180 / M_PI);
+    robot->unlock();
+    ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
 }
 
 void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
 {
-  // stop robot if no cmd_vel message was received for 0.6 seconds
-  if (ros::Time::now() - veltime > ros::Duration(0.6))
-  {
-    robot->lock();
-    robot->setVel(0.0);
-    if(robot->hasLatVel())
-      robot->setLatVel(0.0);
-    robot->setRotVel(0.0);
-    robot->unlock();
-  }
+    if (ros::Time::now() - veltime > ros::Duration(0.6)) {
+        robot->lock();
+        robot->setVel(0.0);
+        if (robot->hasLatVel()) 
+            robot->setLatVel(0.0);
+
+        robot->setRotVel(0.0);
+        robot->unlock();
+    }
 }
-
-
-int main( int argc, char** argv )
+int main(int argc, char** argv)
 {
-  ros::init(argc,argv, "RosAria");
-  ros::NodeHandle n(std::string("~"));
-  Aria::init();
-
-  RosAriaNode *node = new RosAriaNode(n);
-
-  if( node->Setup() != 0 )
-  {
-    ROS_FATAL( "RosAria: ROS node setup failed... \n" );
-    return -1;
-  }
-
-  node->spin();
-
-  delete node;
-
-  ROS_INFO( "RosAria: Quitting... \n" );
-  return 0;
-  
+    ros::init(argc, argv, "RosAria");
+    ros::NodeHandle n(std::string("~"));
+    Aria::init();
+    RosAriaNode* node = new RosAriaNode(n);
+    if (node->Setup() != 0) {
+        ROS_FATAL("RosAria: ROS node setup failed... \n");
+        return -1;
+    }
+    node->spin();
+    delete node;
+    ROS_INFO("RosAria: Quitting... \n");
+    return 0;
 }
diff --git a/RosAria.origin.cpp b/RosAria.origin.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d11adbaff432ac5f518cadf92997d760ca075fe4
--- /dev/null
+++ b/RosAria.origin.cpp
@@ -0,0 +1,785 @@
+#include <stdio.h>
+#include <math.h>
+#ifdef ADEPT_PKG
+  #include <Aria.h>
+#else
+  #include <Aria/Aria.h>
+#endif
+#include "ros/ros.h"
+#include "geometry_msgs/Twist.h"
+#include "geometry_msgs/Pose.h"
+#include "geometry_msgs/PoseStamped.h"
+#include <sensor_msgs/PointCloud.h>  //for sonar data
+#include <sensor_msgs/PointCloud2.h>
+#include <sensor_msgs/point_cloud_conversion.h> // can optionally publish sonar as new type pointcloud2
+#include "nav_msgs/Odometry.h"
+#include "rosaria/BumperState.h"
+#include "tf/tf.h"
+#include "tf/transform_listener.h"  //for tf::getPrefixParam
+#include <tf/transform_broadcaster.h>
+#include "tf/transform_datatypes.h"
+#include <dynamic_reconfigure/server.h>
+#include <rosaria/RosAriaConfig.h>
+#include "rosaria/Encoders.h"
+#include "std_msgs/Float64.h"
+#include "std_msgs/Float32.h"
+#include "std_msgs/Int8.h"
+#include "std_msgs/Bool.h"
+#include "std_srvs/Empty.h"
+
+#include "LaserPublisher.h"
+
+#include <sstream>
+
+
+/** @brief Node that interfaces between ROS and mobile robot base features via ARIA library. 
+
+    RosAriaNode will use ARIA to connect to a robot controller (configure via
+    ~port parameter), either direct serial connection or over the network.  It 
+    runs ARIA's robot communications cycle in a background thread, and
+    as part of that cycle (a sensor interpretation task which calls RosAriaNode::publish()),
+    it  publishes various topics with newly received robot
+    data.  It also sends velocity commands to the robot when received in the
+    cmd_vel topic, and handles dynamic_reconfigure and Service requests.
+
+    For more information about ARIA see
+    http://robots.mobilerobots.com/wiki/Aria.
+
+    RosAria uses the roscpp client library, see http://www.ros.org/wiki/roscpp for
+    information, tutorials and documentation.
+*/
+class RosAriaNode
+{
+  public:
+    RosAriaNode(ros::NodeHandle n);
+    virtual ~RosAriaNode();
+    
+  public:
+    int Setup();
+    void cmdvel_cb( const geometry_msgs::TwistConstPtr &);
+    void cmdvel_watchdog(const ros::TimerEvent& event);
+    //void cmd_enable_motors_cb();
+    //void cmd_disable_motors_cb();
+    void spin();
+    void publish();
+    void sonarConnectCb();
+    void dynamic_reconfigureCB(rosaria::RosAriaConfig &config, uint32_t level);
+    void readParameters();
+
+  protected:
+    ros::NodeHandle n;
+    ros::Publisher pose_pub;
+    ros::Publisher bumpers_pub;
+    ros::Publisher sonar_pub;
+    ros::Publisher sonar_pointcloud2_pub;
+    ros::Publisher voltage_pub;
+
+    ros::Publisher recharge_state_pub;
+    std_msgs::Int8 recharge_state;
+
+    ros::Publisher state_of_charge_pub;
+
+    ros::Publisher motors_state_pub;
+    std_msgs::Bool motors_state;
+    bool published_motors_state;
+
+    ros::Subscriber cmdvel_sub;
+
+    ros::ServiceServer enable_srv;
+    ros::ServiceServer disable_srv;
+    bool enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response);
+    bool disable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response);
+
+    ros::Time veltime;
+    ros::Timer cmdvel_watchdog_timer;
+    ros::Duration cmdvel_timeout;
+
+    std::string serial_port;
+    int serial_baud;
+
+    ArRobotConnector *conn;
+    ArLaserConnector *laserConnector;
+    ArRobot *robot;
+    nav_msgs::Odometry position;
+    rosaria::BumperState bumpers;
+    ArPose pos;
+    ArFunctorC<RosAriaNode> myPublishCB;
+    //ArRobot::ChargeState batteryCharge;
+
+    //for odom->base_link transform
+    tf::TransformBroadcaster odom_broadcaster;
+    geometry_msgs::TransformStamped odom_trans;
+    
+    std::string frame_id_odom;
+    std::string frame_id_base_link;
+    std::string frame_id_bumper;
+    std::string frame_id_sonar;
+
+    // flag indicating whether sonar was enabled or disabled on the robot
+    bool sonar_enabled; 
+
+    // enable and publish sonar topics. set to true when first subscriber connects, set to false when last subscriber disconnects. 
+    bool publish_sonar; 
+    bool publish_sonar_pointcloud2;
+
+    // Debug Aria
+    bool debug_aria;
+    std::string aria_log_filename;
+    
+    // Robot Calibration Parameters (see readParameters() function)
+    int TicksMM, DriftFactor, RevCount;  //If TicksMM or RevCount are <0, don't use. If DriftFactor is -99999, don't use (DriftFactor could be 0 or negative).
+    
+    // dynamic_reconfigure
+    dynamic_reconfigure::Server<rosaria::RosAriaConfig> *dynamic_reconfigure_server;
+
+    // whether to publish aria lasers
+    bool publish_aria_lasers;
+
+    ros::Publisher encoder_pub;
+    rosaria::Encoders encoders;
+};
+
+void RosAriaNode::readParameters()
+{
+  // Robot Parameters. If a parameter was given and is nonzero, set it now.
+  // Otherwise, get default value for this robot (from getOrigRobotConfig()).
+  // Parameter values are stored in member variables for possible later use by the user with dynamic reconfigure.
+  robot->lock();
+  ros::NodeHandle n_("~");
+  if (n_.getParam("TicksMM", TicksMM) && TicksMM > 0)
+  {
+    ROS_INFO("Setting robot TicksMM from ROS Parameter: %d", TicksMM);
+    robot->comInt(93, TicksMM);
+  }
+  else
+  {
+    TicksMM = robot->getOrigRobotConfig()->getTicksMM();
+    ROS_INFO("This robot's TicksMM parameter: %d", TicksMM);
+    //n_.setParam( "TicksMM", TicksMM);
+  }
+  
+  if (n_.getParam("DriftFactor", DriftFactor) && DriftFactor != -99999)
+  {
+    ROS_INFO("Setting robot DriftFactor from ROS Parameter: %d", DriftFactor);
+    robot->comInt(89, DriftFactor);
+  }
+  else
+  {
+    DriftFactor = robot->getOrigRobotConfig()->getDriftFactor();
+    ROS_INFO("This robot's DriftFactor parameter: %d", DriftFactor);
+    //n_.setParam( "DriftFactor", DriftFactor);
+  }
+  
+  if (n_.getParam("RevCount", RevCount) && RevCount > 0)
+  {
+    ROS_INFO("Setting robot RevCount from ROS Parameter: %d", RevCount);
+    robot->comInt(88, RevCount);
+  }
+  else
+  {
+    RevCount = robot->getOrigRobotConfig()->getRevCount();
+    ROS_INFO("This robot's RevCount parameter: %d", RevCount);
+    //n_.setParam( "RevCount", RevCount);
+  }
+  robot->unlock();
+}
+
+void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig &config, uint32_t level)
+{
+  //
+  // Odometry Settings
+  //
+  robot->lock();
+  if(TicksMM != config.TicksMM && config.TicksMM > 0)
+  {
+    ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+    TicksMM = config.TicksMM;
+    robot->comInt(93, TicksMM);
+  }
+  
+  if(DriftFactor != config.DriftFactor && config.DriftFactor != -99999) 
+  {
+    ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
+    DriftFactor = config.DriftFactor;
+    robot->comInt(89, DriftFactor);
+  }
+  
+  if(RevCount != config.RevCount && config.RevCount > 0)
+  {
+    ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
+    RevCount = config.RevCount;
+    robot->comInt(88, RevCount);
+  }
+  
+  //
+  // Acceleration Parameters
+  //
+  int value;
+  value = config.trans_accel * 1000;
+  if(value != robot->getTransAccel() && value > 0)
+  {
+    ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+    robot->setTransAccel(value);
+  }
+  
+  value = config.trans_decel * 1000;
+  if(value != robot->getTransDecel() && value > 0)
+  {
+    ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+    robot->setTransDecel(value);
+  } 
+  
+  value = config.lat_accel * 1000;
+  if(value != robot->getLatAccel() && value > 0)
+  {
+    ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+    if (robot->getAbsoluteMaxLatAccel() > 0 )
+      robot->setLatAccel(value);
+  }
+  
+  value = config.lat_decel * 1000;
+  if(value != robot->getLatDecel() && value > 0)
+  {
+    ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+    if (robot->getAbsoluteMaxLatDecel() > 0 )
+      robot->setLatDecel(value);
+  }
+  
+  value = config.rot_accel * 180/M_PI;
+  if(value != robot->getRotAccel() && value > 0)
+  {
+    ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+    robot->setRotAccel(value);
+  }
+  
+  value = config.rot_decel * 180/M_PI;
+  if(value != robot->getRotDecel() && value > 0)
+  {
+    ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+    robot->setRotDecel(value);
+  } 
+  robot->unlock();
+}
+
+/// Called when another node subscribes or unsubscribes from sonar topic.
+void RosAriaNode::sonarConnectCb()
+{
+  publish_sonar = (sonar_pub.getNumSubscribers() > 0);
+  publish_sonar_pointcloud2 = (sonar_pointcloud2_pub.getNumSubscribers() > 0);
+  robot->lock();
+  if (publish_sonar || publish_sonar_pointcloud2)
+  {
+    robot->enableSonar();
+    sonar_enabled = false;
+  }
+  else if(!publish_sonar && !publish_sonar_pointcloud2)
+  {
+    robot->disableSonar();
+    sonar_enabled = true;
+  }
+  robot->unlock();
+}
+
+RosAriaNode::RosAriaNode(ros::NodeHandle nh) : 
+  n(nh),
+  serial_port(""), serial_baud(0), 
+  conn(NULL), laserConnector(NULL), robot(NULL),
+  myPublishCB(this, &RosAriaNode::publish),
+  sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false),
+  debug_aria(false), 
+  TicksMM(-1), DriftFactor(-99999), RevCount(-1),
+  publish_aria_lasers(false)
+{
+  // read in runtime parameters
+
+  // port and baud
+  n.param( "port", serial_port, std::string("/dev/ttyUSB0") );
+  ROS_INFO( "RosAria: set port: [%s]", serial_port.c_str() );
+
+  n.param("baud", serial_baud, 0);
+  if(serial_baud != 0)
+    ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+
+  // handle debugging more elegantly
+  n.param( "debug_aria", debug_aria, false ); // default not to debug
+  n.param( "aria_log_filename", aria_log_filename, std::string("Aria.log") );
+
+  // whether to connect to lasers using aria
+  n.param("publish_aria_lasers", publish_aria_lasers, false);
+
+  // Get frame_ids to use.
+  n.param("odom_frame", frame_id_odom, std::string("odom"));
+  n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+  n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+  n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+
+  // advertise services for data topics
+  // second argument to advertise() is queue size.
+  // other argmuments (optional) are callbacks, or a boolean "latch" flag (whether to send current data to new
+  // subscribers when they subscribe).
+  // See ros::NodeHandle API docs.
+  pose_pub = n.advertise<nav_msgs::Odometry>("pose",1000);
+  bumpers_pub = n.advertise<rosaria::BumperState>("bumper_state",1000);
+  sonar_pub = n.advertise<sensor_msgs::PointCloud>("sonar", 50, 
+      boost::bind(&RosAriaNode::sonarConnectCb, this),
+      boost::bind(&RosAriaNode::sonarConnectCb, this));
+  sonar_pointcloud2_pub = n.advertise<sensor_msgs::PointCloud2>("sonar_pointcloud2", 50,
+      boost::bind(&RosAriaNode::sonarConnectCb, this),
+      boost::bind(&RosAriaNode::sonarConnectCb, this));
+
+  voltage_pub = n.advertise<std_msgs::Float64>("battery_voltage", 1000);
+  recharge_state_pub = n.advertise<std_msgs::Int8>("battery_recharge_state", 5, true /*latch*/ );
+  recharge_state.data = -2;
+  state_of_charge_pub = n.advertise<std_msgs::Float32>("battery_state_of_charge", 100);
+
+  motors_state_pub = n.advertise<std_msgs::Bool>("motors_state", 5, true /*latch*/ );
+  motors_state.data = false;
+  published_motors_state = false;
+
+  // advertise enable/disable services
+  enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+  disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+  
+  veltime = ros::Time::now();
+
+  encoder_pub = n.advertise<rosaria::Encoders>("encoders",1);
+}
+
+RosAriaNode::~RosAriaNode()
+{
+  // disable motors and sonar.
+  robot->stopEncoderPackets();
+
+  robot->disableMotors();
+  robot->disableSonar();
+
+  robot->stopRunning();
+  robot->waitForRunExit();
+  Aria::shutdown();
+}
+
+int RosAriaNode::Setup()
+{
+  // Note, various objects are allocated here which are never deleted (freed), since Setup() is only supposed to be
+  // called once per instance, and these objects need to persist until the process terminates.
+
+  robot = new ArRobot();
+  ArArgumentBuilder *args = new ArArgumentBuilder(); //  never freed
+  ArArgumentParser *argparser = new ArArgumentParser(args); // Warning never freed
+  argparser->loadDefaultArguments(); // adds any arguments given in /etc/Aria.args.  Useful on robots with unusual serial port or baud rate (e.g. pioneer lx)
+
+  // Now add any parameters given via ros params (see RosAriaNode constructor):
+
+  // if serial port parameter contains a ':' character, then interpret it as hostname:tcpport
+  // for wireless serial connection. Otherwise, interpret it as a serial port name.
+  size_t colon_pos = serial_port.find(":");
+  if (colon_pos != std::string::npos)
+  {
+    args->add("-remoteHost"); // pass robot's hostname/IP address to Aria
+    args->add(serial_port.substr(0, colon_pos).c_str());
+    args->add("-remoteRobotTcpPort"); // pass robot's TCP port to Aria
+    args->add(serial_port.substr(colon_pos+1).c_str());
+  }
+  else
+  {
+    args->add("-robotPort %s", serial_port.c_str()); // pass robot's serial port to Aria
+  }
+
+  // if a baud rate was specified in baud parameter
+  if(serial_baud != 0)
+  {
+    args->add("-robotBaud %d", serial_baud);
+  }
+  
+  if( debug_aria )
+  {
+    // turn on all ARIA debugging
+    args->add("-robotLogPacketsReceived"); // log received packets
+    args->add("-robotLogPacketsSent"); // log sent packets
+    args->add("-robotLogVelocitiesReceived"); // log received velocities
+    args->add("-robotLogMovementSent");
+    args->add("-robotLogMovementReceived");
+    ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+  }
+
+
+  // Connect to the robot
+  conn = new ArRobotConnector(argparser, robot); // warning never freed
+  if (!conn->connectRobot()) {
+    ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+    return 1;
+  }
+
+  if(publish_aria_lasers)
+    laserConnector = new ArLaserConnector(argparser, robot, conn);
+
+  // causes ARIA to load various robot-specific hardware parameters from the robot parameter file in /usr/local/Aria/params
+  if(!Aria::parseArgs())
+  {
+    ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+    return 1;
+  }
+
+  readParameters();
+
+  // Start dynamic_reconfigure server
+  dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+  
+  // Setup Parameter Minimums and maximums
+  rosaria::RosAriaConfig dynConf_min;
+  rosaria::RosAriaConfig dynConf_max;
+  
+  dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+  dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+  // TODO: Fix rqt dynamic_reconfigure gui to handle empty intervals
+  // Until then, set unit length interval.
+  dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+  dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+  dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI/180;
+  dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI/180;
+
+  dynConf_min.trans_accel = 0;
+  dynConf_min.trans_decel = 0;
+  dynConf_min.lat_accel = 0;
+  dynConf_min.lat_decel = 0;
+  dynConf_min.rot_accel = 0;
+  dynConf_min.rot_decel = 0;
+  
+  dynConf_min.TicksMM     = 0;
+  dynConf_max.TicksMM     = 200;
+  dynConf_min.DriftFactor = -99999;
+  dynConf_max.DriftFactor = 32767;
+  dynConf_min.RevCount    = 0;
+  dynConf_max.RevCount    = 65535;
+
+  dynamic_reconfigure_server->setConfigMax(dynConf_max);
+  dynamic_reconfigure_server->setConfigMin(dynConf_min);
+  
+  
+  rosaria::RosAriaConfig dynConf_default;
+  dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+  dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+  dynConf_default.lat_accel   = robot->getLatAccel() / 1000;
+  dynConf_default.lat_decel   = robot->getLatDecel() / 1000;
+  dynConf_default.rot_accel   = robot->getRotAccel() * M_PI/180;
+  dynConf_default.rot_decel   = robot->getRotDecel() * M_PI/180;
+
+  dynConf_default.TicksMM     = 0;
+  dynConf_default.DriftFactor = -99999;
+  dynConf_default.RevCount    = 0;
+  
+  dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+  
+  dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+
+
+  // Enable the motors
+  robot->enableMotors();
+
+  // disable sonars on startup
+  robot->disableSonar();
+
+  // callback will  be called by ArRobot background processing thread for every SIP data packet received from robot
+  robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+
+  // Initialize bumpers with robot number of bumpers
+  bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+  bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+
+  // Run ArRobot background processing thread
+  robot->runAsync(true);
+
+  // connect to lasers and create publishers
+  if(publish_aria_lasers)
+  {
+    ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+    if (!laserConnector->connectLasers())
+    {
+      ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+      return 1;
+    }
+
+    robot->lock();
+    const std::map<int, ArLaser*> *lasers = robot->getLaserMap();
+    ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+    for(std::map<int, ArLaser*>::const_iterator i = lasers->begin(); i != lasers->end(); ++i)
+    {
+      ArLaser *l = i->second;
+      int ln = i->first;
+      std::string tfname("laser");
+      if(lasers->size() > 1 || ln > 1) // no number if only one laser which is also laser 1
+        tfname += ln; 
+      tfname += "_frame";
+      ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+      new LaserPublisher(l, n, true, tfname);
+    }
+    robot->unlock();
+    ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+  }
+    
+  // subscribe to command topics
+  cmdvel_sub = n.subscribe( "cmd_vel", 1, (boost::function <void(const geometry_msgs::TwistConstPtr&)>)
+      boost::bind(&RosAriaNode::cmdvel_cb, this, _1 ));
+
+  // register a watchdog for cmd_vel timeout
+  double cmdvel_timeout_param = 0.6;
+  n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+  cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+  if (cmdvel_timeout_param > 0.0)
+    cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+
+  robot->requestEncoderPackets();
+
+  ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+  return 0;
+}
+
+void RosAriaNode::spin()
+{
+  ros::spin();
+}
+
+void RosAriaNode::publish()
+{
+  // Note, this is called via SensorInterpTask callback (myPublishCB, named "ROSPublishingTask"). ArRobot object 'robot' sholud not be locked or unlocked.
+  pos = robot->getPose();
+  tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh()*M_PI/180), tf::Vector3(pos.getX()/1000,
+    pos.getY()/1000, 0)), position.pose.pose); //Aria returns pose in mm.
+  position.twist.twist.linear.x = robot->getVel()/1000.0; //Aria returns velocity in mm/s.
+  position.twist.twist.linear.y = robot->getLatVel()/1000.0;
+  position.twist.twist.angular.z = robot->getRotVel()*M_PI/180;
+  
+  position.header.frame_id = frame_id_odom;
+  position.child_frame_id = frame_id_base_link;
+  position.header.stamp = ros::Time::now();
+  pose_pub.publish(position);
+
+  ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", 
+    position.header.stamp.toSec(), 
+    (double)position.pose.pose.position.x,
+    (double)position.pose.pose.position.y,
+    (double)position.pose.pose.orientation.w,
+    (double)position.twist.twist.linear.x,
+    (double)position.twist.twist.linear.y,
+    (double)position.twist.twist.angular.z
+  );
+
+  // publishing transform odom->base_link
+  odom_trans.header.stamp = ros::Time::now();
+  odom_trans.header.frame_id = frame_id_odom;
+  odom_trans.child_frame_id = frame_id_base_link;
+  
+  odom_trans.transform.translation.x = pos.getX()/1000;
+  odom_trans.transform.translation.y = pos.getY()/1000;
+  odom_trans.transform.translation.z = 0.0;
+  odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh()*M_PI/180);
+  
+  odom_broadcaster.sendTransform(odom_trans);
+  
+  // getStallValue returns 2 bytes with stall bit and bumper bits, packed as (00 00 FrontBumpers RearBumpers)
+  int stall = robot->getStallValue();
+  unsigned char front_bumpers = (unsigned char)(stall >> 8);
+  unsigned char rear_bumpers = (unsigned char)(stall);
+
+  bumpers.header.frame_id = frame_id_bumper;
+  bumpers.header.stamp = ros::Time::now();
+
+  std::stringstream bumper_info(std::stringstream::out);
+  // Bit 0 is for stall, next bits are for bumpers (leftmost is LSB)
+  for (unsigned int i=0; i<robot->getNumFrontBumpers(); i++)
+  {
+    bumpers.front_bumpers[i] = (front_bumpers & (1 << (i+1))) == 0 ? 0 : 1;
+    bumper_info << " " << (front_bumpers & (1 << (i+1)));
+  }
+  ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+
+  bumper_info.str("");
+  // Rear bumpers have reverse order (rightmost is LSB)
+  unsigned int numRearBumpers = robot->getNumRearBumpers();
+  for (unsigned int i=0; i<numRearBumpers; i++)
+  {
+    bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers-i))) == 0 ? 0 : 1;
+    bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers-i)));
+  }
+  ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+  
+  bumpers_pub.publish(bumpers);
+
+  //Publish battery information
+  // TODO: Decide if BatteryVoltageNow (normalized to (0,12)V)  is a better option
+  std_msgs::Float64 batteryVoltage;
+  batteryVoltage.data = robot->getRealBatteryVoltageNow();
+  voltage_pub.publish(batteryVoltage);
+
+  if(robot->haveStateOfCharge())
+  {
+    std_msgs::Float32 soc;
+    soc.data = robot->getStateOfCharge()/100.0;
+    state_of_charge_pub.publish(soc);
+  }
+
+  // publish recharge state if changed
+  char s = robot->getChargeState();
+  if(s != recharge_state.data)
+  {
+    ROS_INFO("RosAria: publishing new recharge state %d.", s);
+    recharge_state.data = s;
+    recharge_state_pub.publish(recharge_state);
+  }
+
+  // publish motors state if changed
+  bool e = robot->areMotorsEnabled();
+  if(e != motors_state.data || !published_motors_state)
+  {
+	ROS_INFO("RosAria: publishing new motors state %d.", e);
+	motors_state.data = e;
+	motors_state_pub.publish(motors_state);
+	published_motors_state = true;
+  }
+
+  // Publish sonar information, if enabled.
+  if (publish_sonar || publish_sonar_pointcloud2)
+  {
+    sensor_msgs::PointCloud cloud;	//sonar readings.
+    cloud.header.stamp = position.header.stamp;	//copy time.
+    // sonar sensors relative to base_link
+    cloud.header.frame_id = frame_id_sonar;
+  
+
+    std::stringstream sonar_debug_info; // Log debugging info
+    sonar_debug_info << "Sonar readings: ";
+
+    for (int i = 0; i < robot->getNumSonar(); i++) {
+      ArSensorReading* reading = NULL;
+      reading = robot->getSonarReading(i);
+      if(!reading) {
+        ROS_WARN("RosAria: Did not receive a sonar reading.");
+        continue;
+      }
+    
+      // getRange() will return an integer between 0 and 5000 (5m)
+      sonar_debug_info << reading->getRange() << " ";
+
+      // local (x,y). Appears to be from the centre of the robot, since values may
+      // exceed 5000. This is good, since it means we only need 1 transform.
+      // x & y seem to be swapped though, i.e. if the robot is driving north
+      // x is north/south and y is east/west.
+      //
+      //ArPose sensor = reading->getSensorPosition();  //position of sensor.
+      // sonar_debug_info << "(" << reading->getLocalX() 
+      //                  << ", " << reading->getLocalY()
+      //                  << ") from (" << sensor.getX() << ", " 
+      //                  << sensor.getY() << ") ;; " ;
+    
+      //add sonar readings (robot-local coordinate frame) to cloud
+      geometry_msgs::Point32 p;
+      p.x = reading->getLocalX() / 1000.0;
+      p.y = reading->getLocalY() / 1000.0;
+      p.z = 0.0;
+      cloud.points.push_back(p);
+    }
+    ROS_DEBUG_STREAM(sonar_debug_info.str());
+    
+    // publish topic(s)
+
+    if(publish_sonar_pointcloud2)
+    {
+      sensor_msgs::PointCloud2 cloud2;
+      if(!sensor_msgs::convertPointCloudToPointCloud2(cloud, cloud2))
+      {
+        ROS_WARN("Error converting sonar point cloud message to point_cloud2 type before publishing! Not publishing this time.");
+      }
+      else
+      {
+        sonar_pointcloud2_pub.publish(cloud2);
+      }
+    }
+
+    if(publish_sonar)
+    {
+      sonar_pub.publish(cloud);
+    }
+  } // end if sonar_enabled
+  // send the encoder information
+  encoders.left_encoder=robot->getLeftEncoder();
+  encoders.right_encoder=robot->getRightEncoder();
+  encoders.header.stamp=ros::Time::now();
+  encoders.header.frame_id=frame_id_odom;
+  encoder_pub.publish(encoders);
+}
+
+bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+{
+    ROS_INFO("RosAria: Enable motors request.");
+    robot->lock();
+    if(robot->isEStopPressed())
+        ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+    robot->enableMotors();
+    robot->unlock();
+	// todo could wait and see if motors do become enabled, and send a response with an error flag if not
+    return true;
+}
+
+bool RosAriaNode::disable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+{
+    ROS_INFO("RosAria: Disable motors request.");
+    robot->lock();
+    robot->disableMotors();
+    robot->unlock();
+	// todo could wait and see if motors do become disabled, and send a response with an error flag if not
+    return true;
+}
+
+void
+RosAriaNode::cmdvel_cb( const geometry_msgs::TwistConstPtr &msg)
+{
+  veltime = ros::Time::now();
+  ROS_INFO( "new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x*1e3, msg->angular.z, veltime.toSec() );
+
+  robot->lock();
+  robot->setVel(msg->linear.x*1e3);
+  if(robot->hasLatVel())
+    robot->setLatVel(msg->linear.y*1e3);
+  robot->setRotVel(msg->angular.z*180/M_PI);
+  robot->unlock();
+  ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(),
+    (double) msg->linear.x * 1e3, (double) msg->linear.y * 1e3, (double) msg->angular.z * 180/M_PI);
+}
+
+void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
+{
+  // stop robot if no cmd_vel message was received for 0.6 seconds
+  if (ros::Time::now() - veltime > ros::Duration(0.6))
+  {
+    robot->lock();
+    robot->setVel(0.0);
+    if(robot->hasLatVel())
+      robot->setLatVel(0.0);
+    robot->setRotVel(0.0);
+    robot->unlock();
+  }
+}
+
+
+int main( int argc, char** argv )
+{
+  ros::init(argc,argv, "RosAria");
+  ros::NodeHandle n(std::string("~"));
+  Aria::init();
+
+  RosAriaNode *node = new RosAriaNode(n);
+
+  if( node->Setup() != 0 )
+  {
+    ROS_FATAL( "RosAria: ROS node setup failed... \n" );
+    return -1;
+  }
+
+  node->spin();
+
+  delete node;
+
+  ROS_INFO( "RosAria: Quitting... \n" );
+  return 0;
+  
+}
diff --git a/software_faults/RosAria.cpp._MIA_0.patch b/software_faults/RosAria.cpp._MIA_0.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3e16c37308a4ce314487a498d77575085e13802e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_0.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_0	2020-01-20 09:43:56.771945340 +0000
+@@ -122,7 +122,7 @@
+ void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level)
+ {
+     robot->lock();
+-    if (TicksMM != config.TicksMM && config.TicksMM > 0) {
++    {
+         ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+         TicksMM = config.TicksMM;
+         robot->comInt(93, TicksMM);
diff --git a/software_faults/RosAria.cpp._MIA_1.patch b/software_faults/RosAria.cpp._MIA_1.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a059e765b637ab51d25ab7d4d56a100db78374af
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_1.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_1	2020-01-20 09:43:56.950945340 +0000
+@@ -127,7 +127,7 @@
+         TicksMM = config.TicksMM;
+         robot->comInt(93, TicksMM);
+     }
+-    if (DriftFactor != config.DriftFactor && config.DriftFactor != -99999) {
++    {
+         ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
+         DriftFactor = config.DriftFactor;
+         robot->comInt(89, DriftFactor);
diff --git a/software_faults/RosAria.cpp._MIA_10.patch b/software_faults/RosAria.cpp._MIA_10.patch
new file mode 100644
index 0000000000000000000000000000000000000000..40b9407978a978b8a79b1b34d0d99b0c496b8b2a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_10.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_10	2020-01-20 09:43:57.554945340 +0000
+@@ -166,7 +166,7 @@
+         robot->setRotAccel(value);
+     }
+     value = config.rot_decel * 180 / M_PI;
+-    if (value != robot->getRotDecel() && value > 0) {
++    {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
+     }
diff --git a/software_faults/RosAria.cpp._MIA_11.patch b/software_faults/RosAria.cpp._MIA_11.patch
new file mode 100644
index 0000000000000000000000000000000000000000..25b81644a3e6343a41a85a1595d39c77b5618e65
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_11.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_11	2020-01-20 09:44:00.573945340 +0000
+@@ -196,9 +196,7 @@
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+     ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+     n.param("baud", serial_baud, 0);
+-    if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+-
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
diff --git a/software_faults/RosAria.cpp._MIA_12.patch b/software_faults/RosAria.cpp._MIA_12.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f73ab8731b3f28812c5f43588faba2931be3700f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_12.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_12	2020-01-20 09:44:07.267945340 +0000
+@@ -247,7 +247,7 @@
+     }else{
+         args->add("-robotPort %s", serial_port.c_str());
+     }
+-    if (serial_baud != 0) {
++    {
+         args->add("-robotBaud %d", serial_baud);
+     }
+     if (debug_aria) {
diff --git a/software_faults/RosAria.cpp._MIA_13.patch b/software_faults/RosAria.cpp._MIA_13.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f599898ec7ccf053e33dc10bf3259abc8ea0d6ae
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_13.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_13	2020-01-20 09:44:07.281945340 +0000
+@@ -250,7 +250,7 @@
+     if (serial_baud != 0) {
+         args->add("-robotBaud %d", serial_baud);
+     }
+-    if (debug_aria) {
++    {
+         args->add("-robotLogPacketsReceived");
+         args->add("-robotLogPacketsSent");
+         args->add("-robotLogVelocitiesReceived");
diff --git a/software_faults/RosAria.cpp._MIA_14.patch b/software_faults/RosAria.cpp._MIA_14.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c67bc8efccfc83a205fb885641bdb36ee9e7af6a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_14.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_14	2020-01-20 09:44:07.631945340 +0000
+@@ -259,7 +259,7 @@
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
+-    if (!conn->connectRobot()) {
++    {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+     }
diff --git a/software_faults/RosAria.cpp._MIA_15.patch b/software_faults/RosAria.cpp._MIA_15.patch
new file mode 100644
index 0000000000000000000000000000000000000000..58d21f1975a24a864676e4d1437fd9391efe5c69
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_15.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_15	2020-01-20 09:44:07.670945340 +0000
+@@ -263,9 +263,7 @@
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+     }
+-    if (publish_aria_lasers) 
+         laserConnector = new ArLaserConnector(argparser, robot, conn);
+-
+     if (!Aria::parseArgs()) {
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
diff --git a/software_faults/RosAria.cpp._MIA_16.patch b/software_faults/RosAria.cpp._MIA_16.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0dcde8f3ffa50d0a922a158ab5be223f83121358
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_16.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_16	2020-01-20 09:44:07.705945340 +0000
+@@ -266,11 +266,10 @@
+     if (publish_aria_lasers) 
+         laserConnector = new ArLaserConnector(argparser, robot, conn);
+ 
+-    if (!Aria::parseArgs()) {
++    {
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+-    }
+-    readParameters();
++    }readParameters();
+     dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
diff --git a/software_faults/RosAria.cpp._MIA_17.patch b/software_faults/RosAria.cpp._MIA_17.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ff789c971d633114ea2720cc2d790a3b8ce94221
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_17.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_17	2020-01-20 09:44:07.725945340 +0000
+@@ -312,7 +312,7 @@
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+-    if (publish_aria_lasers) {
++    {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+             ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
diff --git a/software_faults/RosAria.cpp._MIA_18.patch b/software_faults/RosAria.cpp._MIA_18.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c71fe83c0bb96256bd1a9e2f909382b46d354e7d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_18.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_18	2020-01-20 09:44:07.982945340 +0000
+@@ -314,7 +314,7 @@
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+-        if (!laserConnector->connectLasers()) {
++        {
+             ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+             return 1;
+         }
diff --git a/software_faults/RosAria.cpp._MIA_19.patch b/software_faults/RosAria.cpp._MIA_19.patch
new file mode 100644
index 0000000000000000000000000000000000000000..21f3d0db37b732bfca342427626db922c6440d29
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_19.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_19	2020-01-20 09:44:08.086945340 +0000
+@@ -325,9 +325,7 @@
+             ArLaser* l = i->second;
+             int ln = i->first;
+             std::string tfname("laser");
+-            if (lasers->size() > 1 || ln > 1) 
+                 tfname += ln;
+-
+             tfname += "_frame";
+             ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+             new LaserPublisher(l, n, true, tfname);
diff --git a/software_faults/RosAria.cpp._MIA_2.patch b/software_faults/RosAria.cpp._MIA_2.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0836bf11c91866823132f4b2d16aaf76c0f816c2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_2.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_2	2020-01-20 09:43:57.060945340 +0000
+@@ -132,7 +132,7 @@
+         DriftFactor = config.DriftFactor;
+         robot->comInt(89, DriftFactor);
+     }
+-    if (RevCount != config.RevCount && config.RevCount > 0) {
++    {
+         ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
+         RevCount = config.RevCount;
+         robot->comInt(88, RevCount);
diff --git a/software_faults/RosAria.cpp._MIA_20.patch b/software_faults/RosAria.cpp._MIA_20.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1c96433d43d452e4e68e3d70c3cc1e37daf91713
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_20.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_20	2020-01-20 09:44:08.141945340 +0000
+@@ -339,9 +339,7 @@
+     double cmdvel_timeout_param = 0.6;
+     n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+-    if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+-
+     robot->requestEncoderPackets();
+     ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
diff --git a/software_faults/RosAria.cpp._MIA_21.patch b/software_faults/RosAria.cpp._MIA_21.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f5f0631c2512d12e7247d9d0163119c346bb044d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_21.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_21	2020-01-20 09:44:11.499945340 +0000
+@@ -393,7 +393,7 @@
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
+-    if (robot->haveStateOfCharge()) {
++    {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+         state_of_charge_pub.publish(soc);
diff --git a/software_faults/RosAria.cpp._MIA_22.patch b/software_faults/RosAria.cpp._MIA_22.patch
new file mode 100644
index 0000000000000000000000000000000000000000..73b6365e9db0babce9ea72d05b57b71967ae1e66
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_22.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_22	2020-01-20 09:44:11.563945340 +0000
+@@ -399,7 +399,7 @@
+         state_of_charge_pub.publish(soc);
+     }
+     char s = robot->getChargeState();
+-    if (s != recharge_state.data) {
++    {
+         ROS_INFO("RosAria: publishing new recharge state %d.", s);
+         recharge_state.data = s;
+         recharge_state_pub.publish(recharge_state);
diff --git a/software_faults/RosAria.cpp._MIA_23.patch b/software_faults/RosAria.cpp._MIA_23.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7382fc595119b396f779d26df7d09feb45dd3d92
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_23.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_23	2020-01-20 09:44:11.645945340 +0000
+@@ -405,7 +405,7 @@
+         recharge_state_pub.publish(recharge_state);
+     }
+     bool e = robot->areMotorsEnabled();
+-    if (e != motors_state.data || !published_motors_state) {
++    {
+         ROS_INFO("RosAria: publishing new motors state %d.", e);
+         motors_state.data = e;
+         motors_state_pub.publish(motors_state);
diff --git a/software_faults/RosAria.cpp._MIA_24.patch b/software_faults/RosAria.cpp._MIA_24.patch
new file mode 100644
index 0000000000000000000000000000000000000000..21ace20a5e743c68470b10e7708f012b0e4f78b7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_24.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_24	2020-01-20 09:44:11.765945340 +0000
+@@ -411,7 +411,7 @@
+         motors_state_pub.publish(motors_state);
+         published_motors_state = true;
+     }
+-    if (publish_sonar || publish_sonar_pointcloud2) {
++    {
+         sensor_msgs::PointCloud cloud;
+         cloud.header.stamp = position.header.stamp;
+         cloud.header.frame_id = frame_id_sonar;
diff --git a/software_faults/RosAria.cpp._MIA_25.patch b/software_faults/RosAria.cpp._MIA_25.patch
new file mode 100644
index 0000000000000000000000000000000000000000..aa0892d81449dd1a370ae08ed3e837276eee75c1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_25.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_25	2020-01-20 09:44:12.231945340 +0000
+@@ -420,7 +420,7 @@
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+             reading = robot->getSonarReading(i);
+-            if (!reading) {
++            {
+                 ROS_WARN("RosAria: Did not receive a sonar reading.");
+                 continue;
+             }
diff --git a/software_faults/RosAria.cpp._MIA_26.patch b/software_faults/RosAria.cpp._MIA_26.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b42a4610cdc23192a910df41f8a23263c4ad71b3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_26.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_26	2020-01-20 09:44:12.263945340 +0000
+@@ -432,7 +432,7 @@
+             cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
+-        if (publish_sonar_pointcloud2) {
++        {
+             sensor_msgs::PointCloud2 cloud2;
+             if (!sensor_msgs::convertPointCloudToPointCloud2(cloud, cloud2)) {
+                 ROS_WARN("Error converting sonar point cloud message to point_cloud2 type before publishing! Not publishing this time.");
diff --git a/software_faults/RosAria.cpp._MIA_27.patch b/software_faults/RosAria.cpp._MIA_27.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a354f42105f2983e751b4d5877f4610264459525
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_27.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_27	2020-01-20 09:44:12.310945340 +0000
+@@ -440,7 +440,7 @@
+                 sonar_pointcloud2_pub.publish(cloud2);
+             }
+         }
+-        if (publish_sonar) {
++        {
+             sonar_pub.publish(cloud);
+         }
+     }
diff --git a/software_faults/RosAria.cpp._MIA_28.patch b/software_faults/RosAria.cpp._MIA_28.patch
new file mode 100644
index 0000000000000000000000000000000000000000..df373eef85c16b028122b1a0ddcf6979bbb88d84
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_28.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_28	2020-01-20 09:44:12.463945340 +0000
+@@ -455,9 +455,7 @@
+ {
+     ROS_INFO("RosAria: Enable motors request.");
+     robot->lock();
+-    if (robot->isEStopPressed()) 
+         ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+-
+     robot->enableMotors();
+     robot->unlock();
+     return true;
diff --git a/software_faults/RosAria.cpp._MIA_29.patch b/software_faults/RosAria.cpp._MIA_29.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ae9256ae772863ea636250d071f81e5f0c4ea24d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_29.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_29	2020-01-20 09:44:13.013945340 +0000
+@@ -477,9 +477,7 @@
+     ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+     robot->lock();
+     robot->setVel(msg->linear.x * 1e3);
+-    if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+-
+     robot->setRotVel(msg->angular.z * 180 / M_PI);
+     robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
diff --git a/software_faults/RosAria.cpp._MIA_3.patch b/software_faults/RosAria.cpp._MIA_3.patch
new file mode 100644
index 0000000000000000000000000000000000000000..581e780c2de5fe4dddeeaf75d2ad47a6136dd426
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_3.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_3	2020-01-20 09:43:57.156945340 +0000
+@@ -139,7 +139,7 @@
+     }
+     int value;
+     value = config.trans_accel * 1000;
+-    if (value != robot->getTransAccel() && value > 0) {
++    {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
diff --git a/software_faults/RosAria.cpp._MIA_30.patch b/software_faults/RosAria.cpp._MIA_30.patch
new file mode 100644
index 0000000000000000000000000000000000000000..462fc31e0f39dfe17cde052580be37327bfe11cf
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_30.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_30	2020-01-20 09:44:13.026945340 +0000
+@@ -487,7 +487,7 @@
+ 
+ void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
+ {
+-    if (ros::Time::now() - veltime > ros::Duration(0.6)) {
++    {
+         robot->lock();
+         robot->setVel(0.0);
+         if (robot->hasLatVel()) 
diff --git a/software_faults/RosAria.cpp._MIA_31.patch b/software_faults/RosAria.cpp._MIA_31.patch
new file mode 100644
index 0000000000000000000000000000000000000000..39c90d13bacc5487b2e879a742ec25ee30477f58
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_31.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_31	2020-01-20 09:44:13.198945340 +0000
+@@ -490,9 +490,7 @@
+     if (ros::Time::now() - veltime > ros::Duration(0.6)) {
+         robot->lock();
+         robot->setVel(0.0);
+-        if (robot->hasLatVel()) 
+             robot->setLatVel(0.0);
+-
+         robot->setRotVel(0.0);
+         robot->unlock();
+     }
diff --git a/software_faults/RosAria.cpp._MIA_32.patch b/software_faults/RosAria.cpp._MIA_32.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1f51a78036d45d00106e7242d4e068294ba08d3f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_32.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_32	2020-01-20 09:44:13.439945340 +0000
+@@ -503,7 +503,7 @@
+     ros::NodeHandle n(std::string("~"));
+     Aria::init();
+     RosAriaNode* node = new RosAriaNode(n);
+-    if (node->Setup() != 0) {
++    {
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
+         return -1;
+     }
diff --git a/software_faults/RosAria.cpp._MIA_4.patch b/software_faults/RosAria.cpp._MIA_4.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9a1b2bcf08d61a77f67fed75b71b824ecbfc59f6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_4.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_4	2020-01-20 09:43:57.216945340 +0000
+@@ -144,7 +144,7 @@
+         robot->setTransAccel(value);
+     }
+     value = config.trans_decel * 1000;
+-    if (value != robot->getTransDecel() && value > 0) {
++    {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
diff --git a/software_faults/RosAria.cpp._MIA_5.patch b/software_faults/RosAria.cpp._MIA_5.patch
new file mode 100644
index 0000000000000000000000000000000000000000..40bb89144adce6ff914dcd7bd8c44785183cfe19
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_5.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_5	2020-01-20 09:43:57.287945340 +0000
+@@ -149,7 +149,7 @@
+         robot->setTransDecel(value);
+     }
+     value = config.lat_accel * 1000;
+-    if (value != robot->getLatAccel() && value > 0) {
++    {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
diff --git a/software_faults/RosAria.cpp._MIA_6.patch b/software_faults/RosAria.cpp._MIA_6.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3205cc92ee7eab883a58c63568ce60997a54c0a5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_6.patch
@@ -0,0 +1,10 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_6	2020-01-20 09:43:57.339945340 +0000
+@@ -151,7 +151,6 @@
+     value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+-        if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+     value = config.lat_decel * 1000;
diff --git a/software_faults/RosAria.cpp._MIA_7.patch b/software_faults/RosAria.cpp._MIA_7.patch
new file mode 100644
index 0000000000000000000000000000000000000000..75725ffece7181a5ed6daaf96dd9978cfe3a9f6f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_7.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_7	2020-01-20 09:43:57.376945340 +0000
+@@ -155,7 +155,7 @@
+             robot->setLatAccel(value);
+     }
+     value = config.lat_decel * 1000;
+-    if (value != robot->getLatDecel() && value > 0) {
++    {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
diff --git a/software_faults/RosAria.cpp._MIA_8.patch b/software_faults/RosAria.cpp._MIA_8.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3d24968ea7391748fddb7c4e01813f0099103dbd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_8.patch
@@ -0,0 +1,10 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_8	2020-01-20 09:43:57.428945340 +0000
+@@ -157,7 +157,6 @@
+     value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+-        if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+     value = config.rot_accel * 180 / M_PI;
diff --git a/software_faults/RosAria.cpp._MIA_9.patch b/software_faults/RosAria.cpp._MIA_9.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a4a166e7232a8af08d2f310bd5fc3cca1ae82f8d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIA_9.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIA_9	2020-01-20 09:43:57.460945340 +0000
+@@ -161,7 +161,7 @@
+             robot->setLatDecel(value);
+     }
+     value = config.rot_accel * 180 / M_PI;
+-    if (value != robot->getRotAccel() && value > 0) {
++    {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
diff --git a/software_faults/RosAria.cpp._MIEB_0.patch b/software_faults/RosAria.cpp._MIEB_0.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f25f85ffdf9ceb3a85471cf49ab73dc8362a83af
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIEB_0.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIEB_0	2020-01-20 09:43:55.815945340 +0000
+@@ -95,10 +95,7 @@
+ {
+     robot->lock();
+     ros::NodeHandle n_("~");
+-    if (n_.getParam("TicksMM", TicksMM) && TicksMM > 0) {
+-        ROS_INFO("Setting robot TicksMM from ROS Parameter: %d", TicksMM);
+-        robot->comInt(93, TicksMM);
+-    }else{
++    {
+         TicksMM = robot->getOrigRobotConfig()->getTicksMM();
+         ROS_INFO("This robot's TicksMM parameter: %d", TicksMM);
+     }
diff --git a/software_faults/RosAria.cpp._MIEB_1.patch b/software_faults/RosAria.cpp._MIEB_1.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a58aa9c93aa85dbcedd99d1d4c5b68f8c20f5523
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIEB_1.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIEB_1	2020-01-20 09:43:55.860945340 +0000
+@@ -102,10 +102,7 @@
+         TicksMM = robot->getOrigRobotConfig()->getTicksMM();
+         ROS_INFO("This robot's TicksMM parameter: %d", TicksMM);
+     }
+-    if (n_.getParam("DriftFactor", DriftFactor) && DriftFactor != -99999) {
+-        ROS_INFO("Setting robot DriftFactor from ROS Parameter: %d", DriftFactor);
+-        robot->comInt(89, DriftFactor);
+-    }else{
++    {
+         DriftFactor = robot->getOrigRobotConfig()->getDriftFactor();
+         ROS_INFO("This robot's DriftFactor parameter: %d", DriftFactor);
+     }
diff --git a/software_faults/RosAria.cpp._MIEB_2.patch b/software_faults/RosAria.cpp._MIEB_2.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d7c66855183076e95b37d9049876949bd5fff202
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIEB_2.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIEB_2	2020-01-20 09:43:55.908945340 +0000
+@@ -109,10 +109,7 @@
+         DriftFactor = robot->getOrigRobotConfig()->getDriftFactor();
+         ROS_INFO("This robot's DriftFactor parameter: %d", DriftFactor);
+     }
+-    if (n_.getParam("RevCount", RevCount) && RevCount > 0) {
+-        ROS_INFO("Setting robot RevCount from ROS Parameter: %d", RevCount);
+-        robot->comInt(88, RevCount);
+-    }else{
++    {
+         RevCount = robot->getOrigRobotConfig()->getRevCount();
+         ROS_INFO("This robot's RevCount parameter: %d", RevCount);
+     }
diff --git a/software_faults/RosAria.cpp._MIEB_3.patch b/software_faults/RosAria.cpp._MIEB_3.patch
new file mode 100644
index 0000000000000000000000000000000000000000..398a94b0c15f669769e114cb93cd83e9bc097ebd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIEB_3.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIEB_3	2020-01-20 09:44:07.129945340 +0000
+@@ -239,12 +239,7 @@
+     ArArgumentParser* argparser = new ArArgumentParser(args);
+     argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+-    if (colon_pos != std::string::npos) {
+-        args->add("-remoteHost");
+-        args->add(serial_port.substr(0, colon_pos).c_str());
+-        args->add("-remoteRobotTcpPort");
+-        args->add(serial_port.substr(colon_pos + 1).c_str());
+-    }else{
++    {
+         args->add("-robotPort %s", serial_port.c_str());
+     }
+     if (serial_baud != 0) {
diff --git a/software_faults/RosAria.cpp._MIEB_4.patch b/software_faults/RosAria.cpp._MIEB_4.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b3c5da6f146068641fe10e36c785b50cb4634083
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIEB_4.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIEB_4	2020-01-20 09:44:12.278945340 +0000
+@@ -434,9 +434,7 @@
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
+         if (publish_sonar_pointcloud2) {
+             sensor_msgs::PointCloud2 cloud2;
+-            if (!sensor_msgs::convertPointCloudToPointCloud2(cloud, cloud2)) {
+-                ROS_WARN("Error converting sonar point cloud message to point_cloud2 type before publishing! Not publishing this time.");
+-            }else{
++            {
+                 sonar_pointcloud2_pub.publish(cloud2);
+             }
+         }
diff --git a/software_faults/RosAria.cpp._MIFS_0.patch b/software_faults/RosAria.cpp._MIFS_0.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a0f6a834c24df1e92618b807a51992b761608bbb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_0.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_0	2020-01-20 09:43:56.742945340 +0000
+@@ -122,11 +122,6 @@
+ void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level)
+ {
+     robot->lock();
+-    if (TicksMM != config.TicksMM && config.TicksMM > 0) {
+-        ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+-        TicksMM = config.TicksMM;
+-        robot->comInt(93, TicksMM);
+-    }
+     if (DriftFactor != config.DriftFactor && config.DriftFactor != -99999) {
+         ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
+         DriftFactor = config.DriftFactor;
diff --git a/software_faults/RosAria.cpp._MIFS_1.patch b/software_faults/RosAria.cpp._MIFS_1.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fe67e77c9ff10ec61af4a7e149d34c9c4201c6c7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_1.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_1	2020-01-20 09:43:56.927945340 +0000
+@@ -127,11 +127,6 @@
+         TicksMM = config.TicksMM;
+         robot->comInt(93, TicksMM);
+     }
+-    if (DriftFactor != config.DriftFactor && config.DriftFactor != -99999) {
+-        ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
+-        DriftFactor = config.DriftFactor;
+-        robot->comInt(89, DriftFactor);
+-    }
+     if (RevCount != config.RevCount && config.RevCount > 0) {
+         ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
+         RevCount = config.RevCount;
diff --git a/software_faults/RosAria.cpp._MIFS_10.patch b/software_faults/RosAria.cpp._MIFS_10.patch
new file mode 100644
index 0000000000000000000000000000000000000000..16e25bcb674464aef022b24a75f27407026ce0b7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_10.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_10	2020-01-20 09:43:57.526945340 +0000
+@@ -166,10 +166,6 @@
+         robot->setRotAccel(value);
+     }
+     value = config.rot_decel * 180 / M_PI;
+-    if (value != robot->getRotDecel() && value > 0) {
+-        ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+-        robot->setRotDecel(value);
+-    }
+     robot->unlock();
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MIFS_11.patch b/software_faults/RosAria.cpp._MIFS_11.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2ea14eec25e5f87f6b55487b4aa91845a1feb2ec
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_11.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_11	2020-01-20 09:44:00.559945340 +0000
+@@ -196,9 +196,6 @@
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+     ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+     n.param("baud", serial_baud, 0);
+-    if (serial_baud != 0) 
+-        ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+-
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
diff --git a/software_faults/RosAria.cpp._MIFS_12.patch b/software_faults/RosAria.cpp._MIFS_12.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2d5b365b3e7de62be0a2ab65fe8daa0478a196ba
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_12.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_12	2020-01-20 09:44:07.253945340 +0000
+@@ -247,9 +247,6 @@
+     }else{
+         args->add("-robotPort %s", serial_port.c_str());
+     }
+-    if (serial_baud != 0) {
+-        args->add("-robotBaud %d", serial_baud);
+-    }
+     if (debug_aria) {
+         args->add("-robotLogPacketsReceived");
+         args->add("-robotLogPacketsSent");
diff --git a/software_faults/RosAria.cpp._MIFS_13.patch b/software_faults/RosAria.cpp._MIFS_13.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fc4837458fbd4c7d18531580956aeb01e99e10f4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_13.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_13	2020-01-20 09:44:07.618945340 +0000
+@@ -259,10 +259,6 @@
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
+-    if (!conn->connectRobot()) {
+-        ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+-        return 1;
+-    }
+     if (publish_aria_lasers) 
+         laserConnector = new ArLaserConnector(argparser, robot, conn);
+ 
diff --git a/software_faults/RosAria.cpp._MIFS_14.patch b/software_faults/RosAria.cpp._MIFS_14.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1d7deae79b000a3617a359371cdda03714592af9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_14.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_14	2020-01-20 09:44:07.652945340 +0000
+@@ -263,9 +263,6 @@
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+     }
+-    if (publish_aria_lasers) 
+-        laserConnector = new ArLaserConnector(argparser, robot, conn);
+-
+     if (!Aria::parseArgs()) {
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
diff --git a/software_faults/RosAria.cpp._MIFS_15.patch b/software_faults/RosAria.cpp._MIFS_15.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0f32c328c99c160f767651a85db12a7625df40a7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_15.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_15	2020-01-20 09:44:07.687945340 +0000
+@@ -266,10 +266,6 @@
+     if (publish_aria_lasers) 
+         laserConnector = new ArLaserConnector(argparser, robot, conn);
+ 
+-    if (!Aria::parseArgs()) {
+-        ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+-        return 1;
+-    }
+     readParameters();
+     dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
diff --git a/software_faults/RosAria.cpp._MIFS_16.patch b/software_faults/RosAria.cpp._MIFS_16.patch
new file mode 100644
index 0000000000000000000000000000000000000000..83a1a2478f5ae3fd73190ec27b522961ef7b7439
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_16.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_16	2020-01-20 09:44:07.967945340 +0000
+@@ -314,10 +314,6 @@
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+-        if (!laserConnector->connectLasers()) {
+-            ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+-            return 1;
+-        }
+         robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+         ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
diff --git a/software_faults/RosAria.cpp._MIFS_17.patch b/software_faults/RosAria.cpp._MIFS_17.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2eebc4543cc01f00d0c804f4597ed6bd19f28811
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_17.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_17	2020-01-20 09:44:08.071945340 +0000
+@@ -325,9 +325,6 @@
+             ArLaser* l = i->second;
+             int ln = i->first;
+             std::string tfname("laser");
+-            if (lasers->size() > 1 || ln > 1) 
+-                tfname += ln;
+-
+             tfname += "_frame";
+             ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+             new LaserPublisher(l, n, true, tfname);
diff --git a/software_faults/RosAria.cpp._MIFS_18.patch b/software_faults/RosAria.cpp._MIFS_18.patch
new file mode 100644
index 0000000000000000000000000000000000000000..81573d3a141947ab2f98dd5140cb9fd0f885ab3d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_18.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_18	2020-01-20 09:44:08.128945340 +0000
+@@ -339,9 +339,6 @@
+     double cmdvel_timeout_param = 0.6;
+     n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+-    if (cmdvel_timeout_param > 0.0) 
+-        cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+-
+     robot->requestEncoderPackets();
+     ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
diff --git a/software_faults/RosAria.cpp._MIFS_19.patch b/software_faults/RosAria.cpp._MIFS_19.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f32b7d413530f04e41f7c6afa369c0594213a6d8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_19.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_19	2020-01-20 09:44:11.480945340 +0000
+@@ -393,11 +393,6 @@
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
+-    if (robot->haveStateOfCharge()) {
+-        std_msgs::Float32 soc;
+-        soc.data = robot->getStateOfCharge() / 100.0;
+-        state_of_charge_pub.publish(soc);
+-    }
+     char s = robot->getChargeState();
+     if (s != recharge_state.data) {
+         ROS_INFO("RosAria: publishing new recharge state %d.", s);
diff --git a/software_faults/RosAria.cpp._MIFS_2.patch b/software_faults/RosAria.cpp._MIFS_2.patch
new file mode 100644
index 0000000000000000000000000000000000000000..67bb11eb8bedeea94ba142519395b0249f5017f6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_2.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_2	2020-01-20 09:43:57.043945340 +0000
+@@ -132,11 +132,6 @@
+         DriftFactor = config.DriftFactor;
+         robot->comInt(89, DriftFactor);
+     }
+-    if (RevCount != config.RevCount && config.RevCount > 0) {
+-        ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
+-        RevCount = config.RevCount;
+-        robot->comInt(88, RevCount);
+-    }
+     int value;
+     value = config.trans_accel * 1000;
+     if (value != robot->getTransAccel() && value > 0) {
diff --git a/software_faults/RosAria.cpp._MIFS_20.patch b/software_faults/RosAria.cpp._MIFS_20.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3ce1cd1f25909f8fa827bc91c46de1589fbdeeb0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_20.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_20	2020-01-20 09:44:11.545945340 +0000
+@@ -399,11 +399,6 @@
+         state_of_charge_pub.publish(soc);
+     }
+     char s = robot->getChargeState();
+-    if (s != recharge_state.data) {
+-        ROS_INFO("RosAria: publishing new recharge state %d.", s);
+-        recharge_state.data = s;
+-        recharge_state_pub.publish(recharge_state);
+-    }
+     bool e = robot->areMotorsEnabled();
+     if (e != motors_state.data || !published_motors_state) {
+         ROS_INFO("RosAria: publishing new motors state %d.", e);
diff --git a/software_faults/RosAria.cpp._MIFS_21.patch b/software_faults/RosAria.cpp._MIFS_21.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d0f86c1f53783175b5f6287187e7aec8be57eebd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_21.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_21	2020-01-20 09:44:11.630945340 +0000
+@@ -405,12 +405,6 @@
+         recharge_state_pub.publish(recharge_state);
+     }
+     bool e = robot->areMotorsEnabled();
+-    if (e != motors_state.data || !published_motors_state) {
+-        ROS_INFO("RosAria: publishing new motors state %d.", e);
+-        motors_state.data = e;
+-        motors_state_pub.publish(motors_state);
+-        published_motors_state = true;
+-    }
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         sensor_msgs::PointCloud cloud;
+         cloud.header.stamp = position.header.stamp;
diff --git a/software_faults/RosAria.cpp._MIFS_22.patch b/software_faults/RosAria.cpp._MIFS_22.patch
new file mode 100644
index 0000000000000000000000000000000000000000..161fa61146cef264261f49946eb0165fe713c6da
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_22.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_22	2020-01-20 09:44:12.215945340 +0000
+@@ -420,10 +420,6 @@
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+             reading = robot->getSonarReading(i);
+-            if (!reading) {
+-                ROS_WARN("RosAria: Did not receive a sonar reading.");
+-                continue;
+-            }
+             sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+             p.x = reading->getLocalX() / 1000.0;
diff --git a/software_faults/RosAria.cpp._MIFS_23.patch b/software_faults/RosAria.cpp._MIFS_23.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2f86925452f1b9313cb479d243179f20c30dab46
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_23.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_23	2020-01-20 09:44:12.247945340 +0000
+@@ -432,14 +432,6 @@
+             cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
+-        if (publish_sonar_pointcloud2) {
+-            sensor_msgs::PointCloud2 cloud2;
+-            if (!sensor_msgs::convertPointCloudToPointCloud2(cloud, cloud2)) {
+-                ROS_WARN("Error converting sonar point cloud message to point_cloud2 type before publishing! Not publishing this time.");
+-            }else{
+-                sonar_pointcloud2_pub.publish(cloud2);
+-            }
+-        }
+         if (publish_sonar) {
+             sonar_pub.publish(cloud);
+         }
diff --git a/software_faults/RosAria.cpp._MIFS_24.patch b/software_faults/RosAria.cpp._MIFS_24.patch
new file mode 100644
index 0000000000000000000000000000000000000000..28c72db9c348b2d6e457a720662df9a7befc7532
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_24.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_24	2020-01-20 09:44:12.295945340 +0000
+@@ -440,9 +440,6 @@
+                 sonar_pointcloud2_pub.publish(cloud2);
+             }
+         }
+-        if (publish_sonar) {
+-            sonar_pub.publish(cloud);
+-        }
+     }
+     encoders.left_encoder = robot->getLeftEncoder();
+     encoders.right_encoder = robot->getRightEncoder();
diff --git a/software_faults/RosAria.cpp._MIFS_25.patch b/software_faults/RosAria.cpp._MIFS_25.patch
new file mode 100644
index 0000000000000000000000000000000000000000..470726ab5d28b72b703e27b489f7fc9747bc6636
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_25.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_25	2020-01-20 09:44:12.450945340 +0000
+@@ -455,9 +455,6 @@
+ {
+     ROS_INFO("RosAria: Enable motors request.");
+     robot->lock();
+-    if (robot->isEStopPressed()) 
+-        ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+-
+     robot->enableMotors();
+     robot->unlock();
+     return true;
diff --git a/software_faults/RosAria.cpp._MIFS_26.patch b/software_faults/RosAria.cpp._MIFS_26.patch
new file mode 100644
index 0000000000000000000000000000000000000000..273be445e3342270498c86fa06a07a50ac94b218
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_26.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_26	2020-01-20 09:44:12.999945340 +0000
+@@ -477,9 +477,6 @@
+     ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+     robot->lock();
+     robot->setVel(msg->linear.x * 1e3);
+-    if (robot->hasLatVel()) 
+-        robot->setLatVel(msg->linear.y * 1e3);
+-
+     robot->setRotVel(msg->angular.z * 180 / M_PI);
+     robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
diff --git a/software_faults/RosAria.cpp._MIFS_27.patch b/software_faults/RosAria.cpp._MIFS_27.patch
new file mode 100644
index 0000000000000000000000000000000000000000..30d6d96814b8be0b2777e7c2a6fc35d25334197c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_27.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_27	2020-01-20 09:44:13.179945340 +0000
+@@ -490,9 +490,6 @@
+     if (ros::Time::now() - veltime > ros::Duration(0.6)) {
+         robot->lock();
+         robot->setVel(0.0);
+-        if (robot->hasLatVel()) 
+-            robot->setLatVel(0.0);
+-
+         robot->setRotVel(0.0);
+         robot->unlock();
+     }
diff --git a/software_faults/RosAria.cpp._MIFS_28.patch b/software_faults/RosAria.cpp._MIFS_28.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7ffa99ff8b1480e0bd00202be668ff7122615913
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_28.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_28	2020-01-20 09:44:13.425945340 +0000
+@@ -503,10 +503,6 @@
+     ros::NodeHandle n(std::string("~"));
+     Aria::init();
+     RosAriaNode* node = new RosAriaNode(n);
+-    if (node->Setup() != 0) {
+-        ROS_FATAL("RosAria: ROS node setup failed... \n");
+-        return -1;
+-    }
+     node->spin();
+     delete node;
+     ROS_INFO("RosAria: Quitting... \n");
diff --git a/software_faults/RosAria.cpp._MIFS_3.patch b/software_faults/RosAria.cpp._MIFS_3.patch
new file mode 100644
index 0000000000000000000000000000000000000000..952070e433994514e15063ba60f0c27688718091
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_3.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_3	2020-01-20 09:43:57.135945340 +0000
+@@ -139,10 +139,6 @@
+     }
+     int value;
+     value = config.trans_accel * 1000;
+-    if (value != robot->getTransAccel() && value > 0) {
+-        ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+-        robot->setTransAccel(value);
+-    }
+     value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
diff --git a/software_faults/RosAria.cpp._MIFS_4.patch b/software_faults/RosAria.cpp._MIFS_4.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4d54e69f931ce5f44b4477eb496ba87aad8cf600
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_4.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_4	2020-01-20 09:43:57.199945340 +0000
+@@ -144,10 +144,6 @@
+         robot->setTransAccel(value);
+     }
+     value = config.trans_decel * 1000;
+-    if (value != robot->getTransDecel() && value > 0) {
+-        ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+-        robot->setTransDecel(value);
+-    }
+     value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
diff --git a/software_faults/RosAria.cpp._MIFS_5.patch b/software_faults/RosAria.cpp._MIFS_5.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1c7c41bf8dfb4ce6c94b5295ef0170d70eb15b39
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_5.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_5	2020-01-20 09:43:57.268945340 +0000
+@@ -149,11 +149,6 @@
+         robot->setTransDecel(value);
+     }
+     value = config.lat_accel * 1000;
+-    if (value != robot->getLatAccel() && value > 0) {
+-        ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+-        if (robot->getAbsoluteMaxLatAccel() > 0) 
+-            robot->setLatAccel(value);
+-    }
+     value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
diff --git a/software_faults/RosAria.cpp._MIFS_6.patch b/software_faults/RosAria.cpp._MIFS_6.patch
new file mode 100644
index 0000000000000000000000000000000000000000..128100df3435b39c6dfdc42aaf972d4bcdc4391f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_6.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_6	2020-01-20 09:43:57.322945340 +0000
+@@ -151,8 +151,6 @@
+     value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+-        if (robot->getAbsoluteMaxLatAccel() > 0) 
+-            robot->setLatAccel(value);
+     }
+     value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
diff --git a/software_faults/RosAria.cpp._MIFS_7.patch b/software_faults/RosAria.cpp._MIFS_7.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3dc9c72fda6efe7d96b0e924d7946bb23a2e0a1a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_7.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_7	2020-01-20 09:43:57.358945340 +0000
+@@ -155,11 +155,6 @@
+             robot->setLatAccel(value);
+     }
+     value = config.lat_decel * 1000;
+-    if (value != robot->getLatDecel() && value > 0) {
+-        ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+-        if (robot->getAbsoluteMaxLatDecel() > 0) 
+-            robot->setLatDecel(value);
+-    }
+     value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
diff --git a/software_faults/RosAria.cpp._MIFS_8.patch b/software_faults/RosAria.cpp._MIFS_8.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f31e96fc85ebbad2af89eb49a586a97dcaf19b55
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_8.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_8	2020-01-20 09:43:57.413945340 +0000
+@@ -157,8 +157,6 @@
+     value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+-        if (robot->getAbsoluteMaxLatDecel() > 0) 
+-            robot->setLatDecel(value);
+     }
+     value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
diff --git a/software_faults/RosAria.cpp._MIFS_9.patch b/software_faults/RosAria.cpp._MIFS_9.patch
new file mode 100644
index 0000000000000000000000000000000000000000..46011195f71c1076fd37a92ba627913f64a643fb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MIFS_9.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MIFS_9	2020-01-20 09:43:57.442945340 +0000
+@@ -161,10 +161,6 @@
+             robot->setLatDecel(value);
+     }
+     value = config.rot_accel * 180 / M_PI;
+-    if (value != robot->getRotAccel() && value > 0) {
+-        ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+-        robot->setRotAccel(value);
+-    }
+     value = config.rot_decel * 180 / M_PI;
+     if (value != robot->getRotDecel() && value > 0) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
diff --git a/software_faults/RosAria.cpp._MLAC_0.patch b/software_faults/RosAria.cpp._MLAC_0.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ce928be7ede50b20e174a380cc9d415b715fd68a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLAC_0.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLAC_0	2020-01-20 09:43:56.799945340 +0000
+@@ -122,7 +122,7 @@
+ void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level)
+ {
+     robot->lock();
+-    if (TicksMM != config.TicksMM && config.TicksMM > 0) {
++    if (TicksMM != config.TicksMM) {
+         ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+         TicksMM = config.TicksMM;
+         robot->comInt(93, TicksMM);
diff --git a/software_faults/RosAria.cpp._MLAC_1.patch b/software_faults/RosAria.cpp._MLAC_1.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9e46becd1792f8647e290e8a1109546e78faccc5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLAC_1.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLAC_1	2020-01-20 09:43:56.966945340 +0000
+@@ -127,7 +127,7 @@
+         TicksMM = config.TicksMM;
+         robot->comInt(93, TicksMM);
+     }
+-    if (DriftFactor != config.DriftFactor && config.DriftFactor != -99999) {
++    if (DriftFactor != config.DriftFactor) {
+         ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
+         DriftFactor = config.DriftFactor;
+         robot->comInt(89, DriftFactor);
diff --git a/software_faults/RosAria.cpp._MLAC_2.patch b/software_faults/RosAria.cpp._MLAC_2.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c73b62fafd1616406bd015744ca8076bbd5a8da2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLAC_2.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLAC_2	2020-01-20 09:43:57.076945340 +0000
+@@ -132,7 +132,7 @@
+         DriftFactor = config.DriftFactor;
+         robot->comInt(89, DriftFactor);
+     }
+-    if (RevCount != config.RevCount && config.RevCount > 0) {
++    if (RevCount != config.RevCount) {
+         ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
+         RevCount = config.RevCount;
+         robot->comInt(88, RevCount);
diff --git a/software_faults/RosAria.cpp._MLAC_3.patch b/software_faults/RosAria.cpp._MLAC_3.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6592db0fa9c8fcdf9d9f642ab284abff1ff00b7c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLAC_3.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLAC_3	2020-01-20 09:43:57.177945340 +0000
+@@ -139,7 +139,7 @@
+     }
+     int value;
+     value = config.trans_accel * 1000;
+-    if (value != robot->getTransAccel() && value > 0) {
++    if (value != robot->getTransAccel()) {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
diff --git a/software_faults/RosAria.cpp._MLAC_4.patch b/software_faults/RosAria.cpp._MLAC_4.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8a245383d16ef3f25dc5e210d9c86306a5c724ab
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLAC_4.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLAC_4	2020-01-20 09:43:57.244945340 +0000
+@@ -144,7 +144,7 @@
+         robot->setTransAccel(value);
+     }
+     value = config.trans_decel * 1000;
+-    if (value != robot->getTransDecel() && value > 0) {
++    if (value != robot->getTransDecel()) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
diff --git a/software_faults/RosAria.cpp._MLAC_5.patch b/software_faults/RosAria.cpp._MLAC_5.patch
new file mode 100644
index 0000000000000000000000000000000000000000..38cbd2682105f0bc848546891090b353699366a4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLAC_5.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLAC_5	2020-01-20 09:43:57.304945340 +0000
+@@ -149,7 +149,7 @@
+         robot->setTransDecel(value);
+     }
+     value = config.lat_accel * 1000;
+-    if (value != robot->getLatAccel() && value > 0) {
++    if (value != robot->getLatAccel()) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
diff --git a/software_faults/RosAria.cpp._MLAC_6.patch b/software_faults/RosAria.cpp._MLAC_6.patch
new file mode 100644
index 0000000000000000000000000000000000000000..60306e56d1738bbed9dbc94061fb1e1616c0771c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLAC_6.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLAC_6	2020-01-20 09:43:57.395945340 +0000
+@@ -155,7 +155,7 @@
+             robot->setLatAccel(value);
+     }
+     value = config.lat_decel * 1000;
+-    if (value != robot->getLatDecel() && value > 0) {
++    if (value != robot->getLatDecel()) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
diff --git a/software_faults/RosAria.cpp._MLAC_7.patch b/software_faults/RosAria.cpp._MLAC_7.patch
new file mode 100644
index 0000000000000000000000000000000000000000..542f858d6a174a14b3c29b1d89495722168b0133
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLAC_7.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLAC_7	2020-01-20 09:43:57.481945340 +0000
+@@ -161,7 +161,7 @@
+             robot->setLatDecel(value);
+     }
+     value = config.rot_accel * 180 / M_PI;
+-    if (value != robot->getRotAccel() && value > 0) {
++    if (value != robot->getRotAccel()) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
diff --git a/software_faults/RosAria.cpp._MLAC_8.patch b/software_faults/RosAria.cpp._MLAC_8.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8ecc16cfbd12aeccefaef2646b31ab34672b6bad
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLAC_8.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLAC_8	2020-01-20 09:43:57.583945340 +0000
+@@ -166,7 +166,7 @@
+         robot->setRotAccel(value);
+     }
+     value = config.rot_decel * 180 / M_PI;
+-    if (value != robot->getRotDecel() && value > 0) {
++    if (value != robot->getRotDecel()) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
+     }
diff --git a/software_faults/RosAria.cpp._MLOC_0.patch b/software_faults/RosAria.cpp._MLOC_0.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2d33cc56e5cf18b748311167721237a46c240200
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLOC_0.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLOC_0	2020-01-20 09:44:08.100945340 +0000
+@@ -325,7 +325,7 @@
+             ArLaser* l = i->second;
+             int ln = i->first;
+             std::string tfname("laser");
+-            if (lasers->size() > 1 || ln > 1) 
++            if (ln > 1) 
+                 tfname += ln;
+ 
+             tfname += "_frame";
diff --git a/software_faults/RosAria.cpp._MLOC_1.patch b/software_faults/RosAria.cpp._MLOC_1.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9fbf0d540d525315bb8cc73d2e9b54649a488829
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLOC_1.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLOC_1	2020-01-20 09:44:08.114945340 +0000
+@@ -325,7 +325,7 @@
+             ArLaser* l = i->second;
+             int ln = i->first;
+             std::string tfname("laser");
+-            if (lasers->size() > 1 || ln > 1) 
++            if (lasers->size() > 1) 
+                 tfname += ln;
+ 
+             tfname += "_frame";
diff --git a/software_faults/RosAria.cpp._MLPA_0.patch b/software_faults/RosAria.cpp._MLPA_0.patch
new file mode 100644
index 0000000000000000000000000000000000000000..01608dd75d3db04ef2d108552699df4fc7caa5ac
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_0.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_0	2020-01-20 09:43:55.756945340 +0000
+@@ -93,7 +93,6 @@
+ 
+ void RosAriaNode::readParameters()
+ {
+-    robot->lock();
+     ros::NodeHandle n_("~");
+     if (n_.getParam("TicksMM", TicksMM) && TicksMM > 0) {
+         ROS_INFO("Setting robot TicksMM from ROS Parameter: %d", TicksMM);
+@@ -116,7 +115,6 @@
+         RevCount = robot->getOrigRobotConfig()->getRevCount();
+         ROS_INFO("This robot's RevCount parameter: %d", RevCount);
+     }
+-    robot->unlock();
+ }
+ 
+ void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level)
diff --git a/software_faults/RosAria.cpp._MLPA_1.patch b/software_faults/RosAria.cpp._MLPA_1.patch
new file mode 100644
index 0000000000000000000000000000000000000000..23c49371f71ce1ffb47b6ead186b5a5898de2212
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_1.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_1	2020-01-20 09:43:55.987945340 +0000
+@@ -121,7 +121,6 @@
+ 
+ void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level)
+ {
+-    robot->lock();
+     if (TicksMM != config.TicksMM && config.TicksMM > 0) {
+         ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+         TicksMM = config.TicksMM;
+@@ -138,7 +137,6 @@
+         robot->comInt(88, RevCount);
+     }
+     int value;
+-    value = config.trans_accel * 1000;
+     if (value != robot->getTransAccel() && value > 0) {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_10.patch b/software_faults/RosAria.cpp._MLPA_10.patch
new file mode 100644
index 0000000000000000000000000000000000000000..11da5d8121ce5c666150558c5177a88d1fdc2763
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_10.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_10	2020-01-20 09:43:56.280945340 +0000
+@@ -143,18 +143,15 @@
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
diff --git a/software_faults/RosAria.cpp._MLPA_100.patch b/software_faults/RosAria.cpp._MLPA_100.patch
new file mode 100644
index 0000000000000000000000000000000000000000..66e48107f5b057565f0b4d69e4c19f2ba1547334
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_100.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_100	2020-01-20 09:43:59.321945340 +0000
+@@ -214,10 +214,6 @@
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
diff --git a/software_faults/RosAria.cpp._MLPA_101.patch b/software_faults/RosAria.cpp._MLPA_101.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1bc508598ce012462d528029ab082de811955509
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_101.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_101	2020-01-20 09:43:59.349945340 +0000
+@@ -215,10 +215,6 @@
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_102.patch b/software_faults/RosAria.cpp._MLPA_102.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3bb821b6b6bc82ef0e22915fcdf2bc937e660680
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_102.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_102	2020-01-20 09:43:59.372945340 +0000
+@@ -216,10 +216,6 @@
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+-    veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_103.patch b/software_faults/RosAria.cpp._MLPA_103.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0d450501fb76e898074a6e8bc73ff890160fad12
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_103.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_103	2020-01-20 09:43:59.390945340 +0000
+@@ -217,10 +217,6 @@
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+-    veltime = ros::Time::now();
+-    encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
+ 
+ RosAriaNode::~RosAriaNode()
diff --git a/software_faults/RosAria.cpp._MLPA_104.patch b/software_faults/RosAria.cpp._MLPA_104.patch
new file mode 100644
index 0000000000000000000000000000000000000000..94e45f3a3ad33ea46cb8ddd1263dc6e3d9798454
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_104.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_104	2020-01-20 09:43:59.422945340 +0000
+@@ -193,14 +193,9 @@
+ RosAriaNode::RosAriaNode(ros::NodeHandle nh)
+ :n(nh), serial_port(""), serial_baud(0), conn(NULL), laserConnector(NULL), robot(NULL), myPublishCB(this, &RosAriaNode::publish), sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false), debug_aria(false), TicksMM(-1), DriftFactor(-99999), RevCount(-1), publish_aria_lasers(false)
+ {
+-    n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+-    ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
diff --git a/software_faults/RosAria.cpp._MLPA_105.patch b/software_faults/RosAria.cpp._MLPA_105.patch
new file mode 100644
index 0000000000000000000000000000000000000000..83cdcfafcc5bb8f76b28e004e7f1aecd4659173c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_105.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_105	2020-01-20 09:43:59.442945340 +0000
+@@ -194,14 +194,9 @@
+ :n(nh), serial_port(""), serial_baud(0), conn(NULL), laserConnector(NULL), robot(NULL), myPublishCB(this, &RosAriaNode::publish), sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false), debug_aria(false), TicksMM(-1), DriftFactor(-99999), RevCount(-1), publish_aria_lasers(false)
+ {
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+-    ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
diff --git a/software_faults/RosAria.cpp._MLPA_106.patch b/software_faults/RosAria.cpp._MLPA_106.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7340c89448f2db0d4e0a6bd55b400a82494db19b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_106.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_106	2020-01-20 09:43:59.460945340 +0000
+@@ -195,14 +195,9 @@
+ {
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+     ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
diff --git a/software_faults/RosAria.cpp._MLPA_107.patch b/software_faults/RosAria.cpp._MLPA_107.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b22eb8b33d148d9016e9e7feaaed9bc290c199d1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_107.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_107	2020-01-20 09:43:59.477945340 +0000
+@@ -199,11 +199,6 @@
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_108.patch b/software_faults/RosAria.cpp._MLPA_108.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a75fd120ed133222a04e6a8c5318ca439f48beaf
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_108.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_108	2020-01-20 09:43:59.497945340 +0000
+@@ -200,11 +200,6 @@
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+     n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_109.patch b/software_faults/RosAria.cpp._MLPA_109.patch
new file mode 100644
index 0000000000000000000000000000000000000000..35735b6ec48f421d478712674fe5694b1b6bd47f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_109.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_109	2020-01-20 09:43:59.518945340 +0000
+@@ -201,11 +201,6 @@
+ 
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
diff --git a/software_faults/RosAria.cpp._MLPA_11.patch b/software_faults/RosAria.cpp._MLPA_11.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8823ba13cd0a958edfa469666d8d73f43750591b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_11.patch
@@ -0,0 +1,22 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_11	2020-01-20 09:43:56.324945340 +0000
+@@ -148,19 +148,16 @@
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_110.patch b/software_faults/RosAria.cpp._MLPA_110.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5e30e0bc6393f73c7d0c91cbac1fae298166949b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_110.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_110	2020-01-20 09:43:59.540945340 +0000
+@@ -202,11 +202,6 @@
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
diff --git a/software_faults/RosAria.cpp._MLPA_111.patch b/software_faults/RosAria.cpp._MLPA_111.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3c1038b5d051e7198ea0ad26bc10e8ba67c49310
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_111.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_111	2020-01-20 09:43:59.561945340 +0000
+@@ -203,11 +203,6 @@
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_112.patch b/software_faults/RosAria.cpp._MLPA_112.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1bab2d2e4c5aa4e19f34cd99a79c898f2acf33a5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_112.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_112	2020-01-20 09:43:59.579945340 +0000
+@@ -204,11 +204,6 @@
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
diff --git a/software_faults/RosAria.cpp._MLPA_113.patch b/software_faults/RosAria.cpp._MLPA_113.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a8b02ad7897fb6765553912c5fa53771efcb3d49
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_113.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_113	2020-01-20 09:43:59.598945340 +0000
+@@ -205,11 +205,6 @@
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
diff --git a/software_faults/RosAria.cpp._MLPA_114.patch b/software_faults/RosAria.cpp._MLPA_114.patch
new file mode 100644
index 0000000000000000000000000000000000000000..17b6c6e5d9cdb863c2c03f291fc686047317c47f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_114.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_114	2020-01-20 09:43:59.627945340 +0000
+@@ -206,11 +206,6 @@
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
diff --git a/software_faults/RosAria.cpp._MLPA_115.patch b/software_faults/RosAria.cpp._MLPA_115.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a28adbfd74660dd56c4407d7bfa54b6237a7affc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_115.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_115	2020-01-20 09:43:59.652945340 +0000
+@@ -207,11 +207,6 @@
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
diff --git a/software_faults/RosAria.cpp._MLPA_116.patch b/software_faults/RosAria.cpp._MLPA_116.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f06100e73fe4073a3f210e9981eda5bc6c45eb81
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_116.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_116	2020-01-20 09:43:59.683945340 +0000
+@@ -208,11 +208,6 @@
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
diff --git a/software_faults/RosAria.cpp._MLPA_117.patch b/software_faults/RosAria.cpp._MLPA_117.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d9fbe69d2a68c3f7267df279ff3dd5093ab6abee
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_117.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_117	2020-01-20 09:43:59.711945340 +0000
+@@ -209,11 +209,6 @@
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
diff --git a/software_faults/RosAria.cpp._MLPA_118.patch b/software_faults/RosAria.cpp._MLPA_118.patch
new file mode 100644
index 0000000000000000000000000000000000000000..712853179187b886b8dc0750aaae05556f6e967b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_118.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_118	2020-01-20 09:43:59.739945340 +0000
+@@ -210,11 +210,6 @@
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
diff --git a/software_faults/RosAria.cpp._MLPA_119.patch b/software_faults/RosAria.cpp._MLPA_119.patch
new file mode 100644
index 0000000000000000000000000000000000000000..63a01b3cf8b1ae50ca291ba043fd5e743e75a88c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_119.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_119	2020-01-20 09:43:59.770945340 +0000
+@@ -211,11 +211,6 @@
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
diff --git a/software_faults/RosAria.cpp._MLPA_12.patch b/software_faults/RosAria.cpp._MLPA_12.patch
new file mode 100644
index 0000000000000000000000000000000000000000..79b901b7fef750002af857ce3a114be43efc3a93
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_12.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_12	2020-01-20 09:43:56.363945340 +0000
+@@ -154,18 +154,15 @@
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
+-    value = config.rot_decel * 180 / M_PI;
+     if (value != robot->getRotDecel() && value > 0) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_120.patch b/software_faults/RosAria.cpp._MLPA_120.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6c5a9b6a77f7b3d52f015c82ce500edcc8a0f829
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_120.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_120	2020-01-20 09:43:59.798945340 +0000
+@@ -212,11 +212,6 @@
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_121.patch b/software_faults/RosAria.cpp._MLPA_121.patch
new file mode 100644
index 0000000000000000000000000000000000000000..53a7651ae2fc7acb3ba7fbbc0f724197c713c2a3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_121.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_121	2020-01-20 09:43:59.824945340 +0000
+@@ -213,11 +213,6 @@
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
diff --git a/software_faults/RosAria.cpp._MLPA_122.patch b/software_faults/RosAria.cpp._MLPA_122.patch
new file mode 100644
index 0000000000000000000000000000000000000000..26817d060ea933ad22c3b3a79690156208318532
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_122.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_122	2020-01-20 09:43:59.856945340 +0000
+@@ -214,11 +214,6 @@
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_123.patch b/software_faults/RosAria.cpp._MLPA_123.patch
new file mode 100644
index 0000000000000000000000000000000000000000..62bdb15a72f709d566bd71783eb9f1f226b6c3f6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_123.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_123	2020-01-20 09:43:59.884945340 +0000
+@@ -215,11 +215,6 @@
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+-    veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_124.patch b/software_faults/RosAria.cpp._MLPA_124.patch
new file mode 100644
index 0000000000000000000000000000000000000000..af0f2e6201f8977fed5edb086e6053dc32436140
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_124.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_124	2020-01-20 09:43:59.907945340 +0000
+@@ -216,11 +216,6 @@
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+-    veltime = ros::Time::now();
+-    encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
+ 
+ RosAriaNode::~RosAriaNode()
diff --git a/software_faults/RosAria.cpp._MLPA_125.patch b/software_faults/RosAria.cpp._MLPA_125.patch
new file mode 100644
index 0000000000000000000000000000000000000000..de5e42acaa865294dc56a83203b2c0632e42447f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_125.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_125	2020-01-20 09:44:00.589945340 +0000
+@@ -225,8 +225,6 @@
+ 
+ RosAriaNode::~RosAriaNode()
+ {
+-    robot->stopEncoderPackets();
+-    robot->disableMotors();
+     robot->disableSonar();
+     robot->stopRunning();
+     robot->waitForRunExit();
diff --git a/software_faults/RosAria.cpp._MLPA_126.patch b/software_faults/RosAria.cpp._MLPA_126.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ea181082e6293235e260b0754f56deab24017426
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_126.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_126	2020-01-20 09:44:00.602945340 +0000
+@@ -226,8 +226,6 @@
+ RosAriaNode::~RosAriaNode()
+ {
+     robot->stopEncoderPackets();
+-    robot->disableMotors();
+-    robot->disableSonar();
+     robot->stopRunning();
+     robot->waitForRunExit();
+     Aria::shutdown();
diff --git a/software_faults/RosAria.cpp._MLPA_127.patch b/software_faults/RosAria.cpp._MLPA_127.patch
new file mode 100644
index 0000000000000000000000000000000000000000..048396c99f111df975ce48519aac1eebf20b1ae1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_127.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_127	2020-01-20 09:44:00.623945340 +0000
+@@ -227,8 +227,6 @@
+ {
+     robot->stopEncoderPackets();
+     robot->disableMotors();
+-    robot->disableSonar();
+-    robot->stopRunning();
+     robot->waitForRunExit();
+     Aria::shutdown();
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_128.patch b/software_faults/RosAria.cpp._MLPA_128.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4fbaf650a0dd07730aa1e8158d93369abde581a3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_128.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_128	2020-01-20 09:44:00.647945340 +0000
+@@ -228,8 +228,6 @@
+     robot->stopEncoderPackets();
+     robot->disableMotors();
+     robot->disableSonar();
+-    robot->stopRunning();
+-    robot->waitForRunExit();
+     Aria::shutdown();
+ }
+ int RosAriaNode::Setup()
diff --git a/software_faults/RosAria.cpp._MLPA_129.patch b/software_faults/RosAria.cpp._MLPA_129.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0eba58b0062e611088fee3decf581b6b73bee597
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_129.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_129	2020-01-20 09:44:00.667945340 +0000
+@@ -229,8 +229,6 @@
+     robot->disableMotors();
+     robot->disableSonar();
+     robot->stopRunning();
+-    robot->waitForRunExit();
+-    Aria::shutdown();
+ }
+ int RosAriaNode::Setup()
+ {
diff --git a/software_faults/RosAria.cpp._MLPA_13.patch b/software_faults/RosAria.cpp._MLPA_13.patch
new file mode 100644
index 0000000000000000000000000000000000000000..be1c1abd8559b82b7c17b942fbf55acd58f3a55c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_13.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_13	2020-01-20 09:43:56.395945340 +0000
+@@ -160,17 +160,14 @@
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
+-    value = config.rot_decel * 180 / M_PI;
+     if (value != robot->getRotDecel() && value > 0) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
+     }
+-    robot->unlock();
+ }
+ 
+ void RosAriaNode::sonarConnectCb()
diff --git a/software_faults/RosAria.cpp._MLPA_130.patch b/software_faults/RosAria.cpp._MLPA_130.patch
new file mode 100644
index 0000000000000000000000000000000000000000..657314e333d142a22cbbd6995c8f1e7a74f6e58c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_130.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_130	2020-01-20 09:44:00.690945340 +0000
+@@ -225,9 +225,6 @@
+ 
+ RosAriaNode::~RosAriaNode()
+ {
+-    robot->stopEncoderPackets();
+-    robot->disableMotors();
+-    robot->disableSonar();
+     robot->stopRunning();
+     robot->waitForRunExit();
+     Aria::shutdown();
diff --git a/software_faults/RosAria.cpp._MLPA_131.patch b/software_faults/RosAria.cpp._MLPA_131.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4c3d13714b68dd2145a5d7a786782877a13acc86
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_131.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_131	2020-01-20 09:44:00.715945340 +0000
+@@ -226,9 +226,6 @@
+ RosAriaNode::~RosAriaNode()
+ {
+     robot->stopEncoderPackets();
+-    robot->disableMotors();
+-    robot->disableSonar();
+-    robot->stopRunning();
+     robot->waitForRunExit();
+     Aria::shutdown();
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_132.patch b/software_faults/RosAria.cpp._MLPA_132.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0ca9a120852a52ce9178127687f40cada35473d4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_132.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_132	2020-01-20 09:44:00.736945340 +0000
+@@ -227,9 +227,6 @@
+ {
+     robot->stopEncoderPackets();
+     robot->disableMotors();
+-    robot->disableSonar();
+-    robot->stopRunning();
+-    robot->waitForRunExit();
+     Aria::shutdown();
+ }
+ int RosAriaNode::Setup()
diff --git a/software_faults/RosAria.cpp._MLPA_133.patch b/software_faults/RosAria.cpp._MLPA_133.patch
new file mode 100644
index 0000000000000000000000000000000000000000..33d75b3bba0807ed689f2878074901801bf3ec27
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_133.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_133	2020-01-20 09:44:00.755945340 +0000
+@@ -228,9 +228,6 @@
+     robot->stopEncoderPackets();
+     robot->disableMotors();
+     robot->disableSonar();
+-    robot->stopRunning();
+-    robot->waitForRunExit();
+-    Aria::shutdown();
+ }
+ int RosAriaNode::Setup()
+ {
diff --git a/software_faults/RosAria.cpp._MLPA_134.patch b/software_faults/RosAria.cpp._MLPA_134.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b67f4c4caeaadea13ec7248f07b73234068da7e6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_134.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_134	2020-01-20 09:44:00.783945340 +0000
+@@ -225,10 +225,6 @@
+ 
+ RosAriaNode::~RosAriaNode()
+ {
+-    robot->stopEncoderPackets();
+-    robot->disableMotors();
+-    robot->disableSonar();
+-    robot->stopRunning();
+     robot->waitForRunExit();
+     Aria::shutdown();
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_135.patch b/software_faults/RosAria.cpp._MLPA_135.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8a39fbcbf138517bc34dfd4f0b3e792d751dda04
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_135.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_135	2020-01-20 09:44:00.809945340 +0000
+@@ -226,10 +226,6 @@
+ RosAriaNode::~RosAriaNode()
+ {
+     robot->stopEncoderPackets();
+-    robot->disableMotors();
+-    robot->disableSonar();
+-    robot->stopRunning();
+-    robot->waitForRunExit();
+     Aria::shutdown();
+ }
+ int RosAriaNode::Setup()
diff --git a/software_faults/RosAria.cpp._MLPA_136.patch b/software_faults/RosAria.cpp._MLPA_136.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a8cc74687b42309b3e2b950112ee020a262134e3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_136.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_136	2020-01-20 09:44:00.841945340 +0000
+@@ -227,10 +227,6 @@
+ {
+     robot->stopEncoderPackets();
+     robot->disableMotors();
+-    robot->disableSonar();
+-    robot->stopRunning();
+-    robot->waitForRunExit();
+-    Aria::shutdown();
+ }
+ int RosAriaNode::Setup()
+ {
diff --git a/software_faults/RosAria.cpp._MLPA_137.patch b/software_faults/RosAria.cpp._MLPA_137.patch
new file mode 100644
index 0000000000000000000000000000000000000000..72202abd479a2d7bc27c1882601e68305cab39c2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_137.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_137	2020-01-20 09:44:00.875945340 +0000
+@@ -225,11 +225,6 @@
+ 
+ RosAriaNode::~RosAriaNode()
+ {
+-    robot->stopEncoderPackets();
+-    robot->disableMotors();
+-    robot->disableSonar();
+-    robot->stopRunning();
+-    robot->waitForRunExit();
+     Aria::shutdown();
+ }
+ int RosAriaNode::Setup()
diff --git a/software_faults/RosAria.cpp._MLPA_138.patch b/software_faults/RosAria.cpp._MLPA_138.patch
new file mode 100644
index 0000000000000000000000000000000000000000..22bad270eb5ea49029d63a2afa9d9101d61bc96a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_138.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_138	2020-01-20 09:44:00.902945340 +0000
+@@ -226,11 +226,6 @@
+ RosAriaNode::~RosAriaNode()
+ {
+     robot->stopEncoderPackets();
+-    robot->disableMotors();
+-    robot->disableSonar();
+-    robot->stopRunning();
+-    robot->waitForRunExit();
+-    Aria::shutdown();
+ }
+ int RosAriaNode::Setup()
+ {
diff --git a/software_faults/RosAria.cpp._MLPA_139.patch b/software_faults/RosAria.cpp._MLPA_139.patch
new file mode 100644
index 0000000000000000000000000000000000000000..352b8f7c7353bf0a9f53a1d43f3cd270a2cf1945
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_139.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_139	2020-01-20 09:44:00.943945340 +0000
+@@ -234,10 +234,8 @@
+ }
+ int RosAriaNode::Setup()
+ {
+-    robot = new ArRobot();
+     ArArgumentBuilder* args = new ArArgumentBuilder();
+     ArArgumentParser* argparser = new ArArgumentParser(args);
+-    argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
diff --git a/software_faults/RosAria.cpp._MLPA_14.patch b/software_faults/RosAria.cpp._MLPA_14.patch
new file mode 100644
index 0000000000000000000000000000000000000000..574c88a5e231b5e5044d38ba402500e5f7e31c84
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_14.patch
@@ -0,0 +1,28 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_14	2020-01-20 09:43:56.431945340 +0000
+@@ -121,7 +121,6 @@
+ 
+ void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level)
+ {
+-    robot->lock();
+     if (TicksMM != config.TicksMM && config.TicksMM > 0) {
+         ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+         TicksMM = config.TicksMM;
+@@ -138,17 +137,14 @@
+         robot->comInt(88, RevCount);
+     }
+     int value;
+-    value = config.trans_accel * 1000;
+     if (value != robot->getTransAccel() && value > 0) {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
diff --git a/software_faults/RosAria.cpp._MLPA_140.patch b/software_faults/RosAria.cpp._MLPA_140.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d72da407904e92ed1c1d43d00f569b544fecfd68
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_140.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_140	2020-01-20 09:44:00.959945340 +0000
+@@ -237,7 +237,6 @@
+     robot = new ArRobot();
+     ArArgumentBuilder* args = new ArArgumentBuilder();
+     ArArgumentParser* argparser = new ArArgumentParser(args);
+-    argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+@@ -258,7 +257,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
diff --git a/software_faults/RosAria.cpp._MLPA_141.patch b/software_faults/RosAria.cpp._MLPA_141.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e0fb5d3fd49b4dbdf4c04e624e5d3b25f4bc0136
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_141.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_141	2020-01-20 09:44:00.975945340 +0000
+@@ -258,7 +258,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+@@ -270,7 +269,6 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+     dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
diff --git a/software_faults/RosAria.cpp._MLPA_142.patch b/software_faults/RosAria.cpp._MLPA_142.patch
new file mode 100644
index 0000000000000000000000000000000000000000..74b84e8475a84ddae7ea146d52105a50310437a2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_142.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_142	2020-01-20 09:44:00.996945340 +0000
+@@ -270,8 +270,6 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_143.patch b/software_faults/RosAria.cpp._MLPA_143.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c2d2817b6167027f289c6fe65ead3d238af3e96c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_143.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_143	2020-01-20 09:44:01.016945340 +0000
+@@ -271,10 +271,8 @@
+         return 1;
+     }
+     readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_144.patch b/software_faults/RosAria.cpp._MLPA_144.patch
new file mode 100644
index 0000000000000000000000000000000000000000..55542a1735a7e3809b1fd439430c348965b8de6a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_144.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_144	2020-01-20 09:44:01.041945340 +0000
+@@ -274,8 +274,6 @@
+     dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_145.patch b/software_faults/RosAria.cpp._MLPA_145.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d09b6edf23c2b1cbfa6c666e16d72e9b433467b2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_145.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_145	2020-01-20 09:44:01.058945340 +0000
+@@ -275,8 +275,6 @@
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_146.patch b/software_faults/RosAria.cpp._MLPA_146.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b4285c2b926e5306506410f78eec167fba543c71
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_146.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_146	2020-01-20 09:44:01.077945340 +0000
+@@ -276,8 +276,6 @@
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_147.patch b/software_faults/RosAria.cpp._MLPA_147.patch
new file mode 100644
index 0000000000000000000000000000000000000000..829908d6c4922bd0941dfbfd4987b33a4d1c00d8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_147.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_147	2020-01-20 09:44:01.096945340 +0000
+@@ -277,8 +277,6 @@
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_148.patch b/software_faults/RosAria.cpp._MLPA_148.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3018b5c750a2b3245241eb4bc34200694581ed31
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_148.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_148	2020-01-20 09:44:01.116945340 +0000
+@@ -278,8 +278,6 @@
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_149.patch b/software_faults/RosAria.cpp._MLPA_149.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d874d31842527d1e40f7ce86bf0df8decf8e2a5e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_149.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_149	2020-01-20 09:44:01.139945340 +0000
+@@ -279,8 +279,6 @@
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_15.patch b/software_faults/RosAria.cpp._MLPA_15.patch
new file mode 100644
index 0000000000000000000000000000000000000000..943e779276ccc8e1b7697ffeb3840f87429761db
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_15.patch
@@ -0,0 +1,26 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_15	2020-01-20 09:43:56.464945340 +0000
+@@ -138,23 +138,19 @@
+         robot->comInt(88, RevCount);
+     }
+     int value;
+-    value = config.trans_accel * 1000;
+     if (value != robot->getTransAccel() && value > 0) {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
diff --git a/software_faults/RosAria.cpp._MLPA_150.patch b/software_faults/RosAria.cpp._MLPA_150.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e1c4056f45cf5490e0a21652a383192f44233145
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_150.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_150	2020-01-20 09:44:01.160945340 +0000
+@@ -280,8 +280,6 @@
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_151.patch b/software_faults/RosAria.cpp._MLPA_151.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0cd283c072f45403287cb63fa49ee130d4d74960
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_151.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_151	2020-01-20 09:44:01.177945340 +0000
+@@ -281,8 +281,6 @@
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_152.patch b/software_faults/RosAria.cpp._MLPA_152.patch
new file mode 100644
index 0000000000000000000000000000000000000000..959710e03a82a130ae4e1b1689226a40a045649a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_152.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_152	2020-01-20 09:44:01.195945340 +0000
+@@ -282,8 +282,6 @@
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_153.patch b/software_faults/RosAria.cpp._MLPA_153.patch
new file mode 100644
index 0000000000000000000000000000000000000000..864deeebf87c29ce108b1f2c9ef295c780c37ffb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_153.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_153	2020-01-20 09:44:01.211945340 +0000
+@@ -283,8 +283,6 @@
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
diff --git a/software_faults/RosAria.cpp._MLPA_154.patch b/software_faults/RosAria.cpp._MLPA_154.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c67bac4377d11992b0181deea7f0d5be39ebf77d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_154.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_154	2020-01-20 09:44:01.231945340 +0000
+@@ -284,8 +284,6 @@
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
diff --git a/software_faults/RosAria.cpp._MLPA_155.patch b/software_faults/RosAria.cpp._MLPA_155.patch
new file mode 100644
index 0000000000000000000000000000000000000000..70488c987c5318d17966d914ff1cf65021d7cf0e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_155.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_155	2020-01-20 09:44:01.249945340 +0000
+@@ -285,8 +285,6 @@
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
diff --git a/software_faults/RosAria.cpp._MLPA_156.patch b/software_faults/RosAria.cpp._MLPA_156.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b0fe9151531d66c99bc2945a215d3a9369981e54
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_156.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_156	2020-01-20 09:44:01.268945340 +0000
+@@ -286,8 +286,6 @@
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_157.patch b/software_faults/RosAria.cpp._MLPA_157.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b451e2637808d96f8bf1affb04b213aa6a600c9e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_157.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_157	2020-01-20 09:44:01.286945340 +0000
+@@ -287,8 +287,6 @@
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
diff --git a/software_faults/RosAria.cpp._MLPA_158.patch b/software_faults/RosAria.cpp._MLPA_158.patch
new file mode 100644
index 0000000000000000000000000000000000000000..86cd6b21dd9e1c15287e7a24cc60e54027764a7c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_158.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_158	2020-01-20 09:44:01.306945340 +0000
+@@ -288,8 +288,6 @@
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
diff --git a/software_faults/RosAria.cpp._MLPA_159.patch b/software_faults/RosAria.cpp._MLPA_159.patch
new file mode 100644
index 0000000000000000000000000000000000000000..cc00af34ebf8038ed612f7fb1d62c541c0a1adda
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_159.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_159	2020-01-20 09:44:01.325945340 +0000
+@@ -289,8 +289,6 @@
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
diff --git a/software_faults/RosAria.cpp._MLPA_16.patch b/software_faults/RosAria.cpp._MLPA_16.patch
new file mode 100644
index 0000000000000000000000000000000000000000..723d9f7bd7ac41a9895cb66c1602746c79300827
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_16.patch
@@ -0,0 +1,27 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_16	2020-01-20 09:43:56.490945340 +0000
+@@ -143,24 +143,20 @@
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_160.patch b/software_faults/RosAria.cpp._MLPA_160.patch
new file mode 100644
index 0000000000000000000000000000000000000000..919bf88d5d35edfc3d427803a0cd7e3a791111aa
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_160.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_160	2020-01-20 09:44:01.342945340 +0000
+@@ -290,8 +290,6 @@
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
diff --git a/software_faults/RosAria.cpp._MLPA_161.patch b/software_faults/RosAria.cpp._MLPA_161.patch
new file mode 100644
index 0000000000000000000000000000000000000000..526086290bb21c5b7c99ba73d9d165ea30df1534
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_161.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_161	2020-01-20 09:44:01.359945340 +0000
+@@ -291,8 +291,6 @@
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_162.patch b/software_faults/RosAria.cpp._MLPA_162.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8573831adbadd331de8c89fcafe61f7a1cc186d2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_162.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_162	2020-01-20 09:44:01.375945340 +0000
+@@ -292,8 +292,6 @@
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_163.patch b/software_faults/RosAria.cpp._MLPA_163.patch
new file mode 100644
index 0000000000000000000000000000000000000000..be24fda05a5f54136c680638995d8c9e42bad791
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_163.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_163	2020-01-20 09:44:01.392945340 +0000
+@@ -293,9 +293,7 @@
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_164.patch b/software_faults/RosAria.cpp._MLPA_164.patch
new file mode 100644
index 0000000000000000000000000000000000000000..60c2e23b193b4d5357378c39281eedae800879e1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_164.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_164	2020-01-20 09:44:01.405945340 +0000
+@@ -295,8 +295,6 @@
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_165.patch b/software_faults/RosAria.cpp._MLPA_165.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ed16e60e8730be664aa97b36d0dbb08e9c9cbae3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_165.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_165	2020-01-20 09:44:01.424945340 +0000
+@@ -296,8 +296,6 @@
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_166.patch b/software_faults/RosAria.cpp._MLPA_166.patch
new file mode 100644
index 0000000000000000000000000000000000000000..24eeb82828801a203d3c19a4a7c7cb38f0bf7fa5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_166.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_166	2020-01-20 09:44:01.440945340 +0000
+@@ -297,8 +297,6 @@
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_167.patch b/software_faults/RosAria.cpp._MLPA_167.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5cc74d7c04676dd659fd4ce7d91abf40f9da56d6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_167.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_167	2020-01-20 09:44:01.462945340 +0000
+@@ -298,8 +298,6 @@
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
diff --git a/software_faults/RosAria.cpp._MLPA_168.patch b/software_faults/RosAria.cpp._MLPA_168.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fbc3f297393eba8d080311d0ffe7d5551ba94ac7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_168.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_168	2020-01-20 09:44:01.482945340 +0000
+@@ -299,8 +299,6 @@
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_169.patch b/software_faults/RosAria.cpp._MLPA_169.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2a2be0bf902de802c7b35465fe86ab9482f31371
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_169.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_169	2020-01-20 09:44:01.502945340 +0000
+@@ -300,8 +300,6 @@
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
diff --git a/software_faults/RosAria.cpp._MLPA_17.patch b/software_faults/RosAria.cpp._MLPA_17.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3111961cce38acb223f2e3c0604070e6eb68ef5c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_17.patch
@@ -0,0 +1,27 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_17	2020-01-20 09:43:56.514945340 +0000
+@@ -148,24 +148,20 @@
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
+-    value = config.rot_decel * 180 / M_PI;
+     if (value != robot->getRotDecel() && value > 0) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_170.patch b/software_faults/RosAria.cpp._MLPA_170.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7984e97ee8a712faf3d7242394a99867be94ca4a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_170.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_170	2020-01-20 09:44:01.523945340 +0000
+@@ -301,8 +301,6 @@
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
diff --git a/software_faults/RosAria.cpp._MLPA_171.patch b/software_faults/RosAria.cpp._MLPA_171.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7cd8f2fdcd2d6784cce3cdf55bf8b0190ad46a9c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_171.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_171	2020-01-20 09:44:01.543945340 +0000
+@@ -302,8 +302,6 @@
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
diff --git a/software_faults/RosAria.cpp._MLPA_172.patch b/software_faults/RosAria.cpp._MLPA_172.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d07d9a8e6dfac9b9997ad7c9a54bdfbb0b2ab36f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_172.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_172	2020-01-20 09:44:01.558945340 +0000
+@@ -303,8 +303,6 @@
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
diff --git a/software_faults/RosAria.cpp._MLPA_173.patch b/software_faults/RosAria.cpp._MLPA_173.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ff1a6f29de5e4876bd4dfdfe93a387dfc5599a92
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_173.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_173	2020-01-20 09:44:01.571945340 +0000
+@@ -304,8 +304,6 @@
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
diff --git a/software_faults/RosAria.cpp._MLPA_174.patch b/software_faults/RosAria.cpp._MLPA_174.patch
new file mode 100644
index 0000000000000000000000000000000000000000..def75a39cad98a25f48ffc3accba32f27eeac1f1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_174.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_174	2020-01-20 09:44:01.585945340 +0000
+@@ -305,8 +305,6 @@
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
diff --git a/software_faults/RosAria.cpp._MLPA_175.patch b/software_faults/RosAria.cpp._MLPA_175.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a534897dfd854961fad801a85ba387ed56e3af54
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_175.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_175	2020-01-20 09:44:01.598945340 +0000
+@@ -306,8 +306,6 @@
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
diff --git a/software_faults/RosAria.cpp._MLPA_176.patch b/software_faults/RosAria.cpp._MLPA_176.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2104d4a1efc094b984fe8da8b856a001dc36b642
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_176.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_176	2020-01-20 09:44:01.611945340 +0000
+@@ -307,8 +307,6 @@
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
diff --git a/software_faults/RosAria.cpp._MLPA_177.patch b/software_faults/RosAria.cpp._MLPA_177.patch
new file mode 100644
index 0000000000000000000000000000000000000000..251d73ee0b47437e2caaa9022c33afaadabb9896
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_177.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_177	2020-01-20 09:44:01.624945340 +0000
+@@ -308,8 +308,6 @@
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
diff --git a/software_faults/RosAria.cpp._MLPA_178.patch b/software_faults/RosAria.cpp._MLPA_178.patch
new file mode 100644
index 0000000000000000000000000000000000000000..201a1e4decf0cc8bf3f38d087b9f331e2dfc89bf
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_178.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_178	2020-01-20 09:44:01.637945340 +0000
+@@ -309,8 +309,6 @@
+     robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
diff --git a/software_faults/RosAria.cpp._MLPA_179.patch b/software_faults/RosAria.cpp._MLPA_179.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a6386c3893dfabf379a056b3057a6b7722f4c250
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_179.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_179	2020-01-20 09:44:01.650945340 +0000
+@@ -310,8 +310,6 @@
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
diff --git a/software_faults/RosAria.cpp._MLPA_18.patch b/software_faults/RosAria.cpp._MLPA_18.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e0784dfad44fca435008879bc4d7fa1a91af6ea4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_18.patch
@@ -0,0 +1,26 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_18	2020-01-20 09:43:56.544945340 +0000
+@@ -154,23 +154,19 @@
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
+-    value = config.rot_decel * 180 / M_PI;
+     if (value != robot->getRotDecel() && value > 0) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
+     }
+-    robot->unlock();
+ }
+ 
+ void RosAriaNode::sonarConnectCb()
diff --git a/software_faults/RosAria.cpp._MLPA_180.patch b/software_faults/RosAria.cpp._MLPA_180.patch
new file mode 100644
index 0000000000000000000000000000000000000000..36162282be74f43f0e42df298e533d9404b141b8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_180.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_180	2020-01-20 09:44:01.672945340 +0000
+@@ -311,7 +311,6 @@
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,7 +334,6 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+     n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
diff --git a/software_faults/RosAria.cpp._MLPA_181.patch b/software_faults/RosAria.cpp._MLPA_181.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6ce2e19ebab3646fda3518cc4f7ff95e61190a56
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_181.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_181	2020-01-20 09:44:01.690945340 +0000
+@@ -335,9 +335,7 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
diff --git a/software_faults/RosAria.cpp._MLPA_182.patch b/software_faults/RosAria.cpp._MLPA_182.patch
new file mode 100644
index 0000000000000000000000000000000000000000..24c9c025feb1b3a34cf4773883d3290359f569da
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_182.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_182	2020-01-20 09:44:01.710945340 +0000
+@@ -337,8 +337,6 @@
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_183.patch b/software_faults/RosAria.cpp._MLPA_183.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bf33286823a8402dd4be665a65fd98ccbc0d1d46
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_183.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_183	2020-01-20 09:44:01.730945340 +0000
+@@ -338,11 +338,9 @@
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+     n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
+-    robot->requestEncoderPackets();
+     ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_184.patch b/software_faults/RosAria.cpp._MLPA_184.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fbfa0e19ed9593ace7765b59591c8862bfe5cfe0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_184.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_184	2020-01-20 09:44:01.748945340 +0000
+@@ -342,8 +342,6 @@
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
+-    robot->requestEncoderPackets();
+-    ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_185.patch b/software_faults/RosAria.cpp._MLPA_185.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0e73236c813f2480fb4105420d96a3f3b5d816c4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_185.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_185	2020-01-20 09:44:01.771945340 +0000
+@@ -234,10 +234,8 @@
+ }
+ int RosAriaNode::Setup()
+ {
+-    robot = new ArRobot();
+     ArArgumentBuilder* args = new ArArgumentBuilder();
+     ArArgumentParser* argparser = new ArArgumentParser(args);
+-    argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+@@ -258,7 +256,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
diff --git a/software_faults/RosAria.cpp._MLPA_186.patch b/software_faults/RosAria.cpp._MLPA_186.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f74a76c1ce19a10ae991307c8583ea9b66ac6cb4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_186.patch
@@ -0,0 +1,26 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_186	2020-01-20 09:44:01.797945340 +0000
+@@ -237,7 +237,6 @@
+     robot = new ArRobot();
+     ArArgumentBuilder* args = new ArArgumentBuilder();
+     ArArgumentParser* argparser = new ArArgumentParser(args);
+-    argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+@@ -258,7 +257,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+@@ -270,7 +268,6 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+     dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
diff --git a/software_faults/RosAria.cpp._MLPA_187.patch b/software_faults/RosAria.cpp._MLPA_187.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a9bbad38623f0e93699ceaa35749b39cb4bb598e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_187.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_187	2020-01-20 09:44:01.817945340 +0000
+@@ -258,7 +258,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+@@ -270,8 +269,6 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_188.patch b/software_faults/RosAria.cpp._MLPA_188.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7842f055a1a4880819e95f98d089ac2dbef68d56
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_188.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_188	2020-01-20 09:44:01.842945340 +0000
+@@ -270,11 +270,8 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_189.patch b/software_faults/RosAria.cpp._MLPA_189.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4d7819512ca04cd2145b34db2337223c07df8b2f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_189.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_189	2020-01-20 09:44:01.871945340 +0000
+@@ -271,11 +271,8 @@
+         return 1;
+     }
+     readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_19.patch b/software_faults/RosAria.cpp._MLPA_19.patch
new file mode 100644
index 0000000000000000000000000000000000000000..68a6ca1dd91c113bdd61194c64d8b4bdcba1f5f3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_19.patch
@@ -0,0 +1,34 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_19	2020-01-20 09:43:56.577945340 +0000
+@@ -121,7 +121,6 @@
+ 
+ void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level)
+ {
+-    robot->lock();
+     if (TicksMM != config.TicksMM && config.TicksMM > 0) {
+         ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+         TicksMM = config.TicksMM;
+@@ -138,23 +137,19 @@
+         robot->comInt(88, RevCount);
+     }
+     int value;
+-    value = config.trans_accel * 1000;
+     if (value != robot->getTransAccel() && value > 0) {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
diff --git a/software_faults/RosAria.cpp._MLPA_190.patch b/software_faults/RosAria.cpp._MLPA_190.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9dc12471af99884498407a6422ee9ff698cca9b8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_190.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_190	2020-01-20 09:44:01.891945340 +0000
+@@ -274,9 +274,6 @@
+     dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_191.patch b/software_faults/RosAria.cpp._MLPA_191.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e2dbb770c87b0cca1032aa9e48b4dd6d6a9bba83
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_191.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_191	2020-01-20 09:44:01.910945340 +0000
+@@ -275,9 +275,6 @@
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_192.patch b/software_faults/RosAria.cpp._MLPA_192.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b71d33cfc3b98dca37033e575692f6c41727dcf0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_192.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_192	2020-01-20 09:44:01.932945340 +0000
+@@ -276,9 +276,6 @@
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_193.patch b/software_faults/RosAria.cpp._MLPA_193.patch
new file mode 100644
index 0000000000000000000000000000000000000000..18d7cf1a564f56dbf48b174686db19ed7f1f4b8e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_193.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_193	2020-01-20 09:44:01.952945340 +0000
+@@ -277,9 +277,6 @@
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_194.patch b/software_faults/RosAria.cpp._MLPA_194.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c5cea9e1128ffa79a33ef2662e27cfcadeb31db4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_194.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_194	2020-01-20 09:44:01.969945340 +0000
+@@ -278,9 +278,6 @@
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_195.patch b/software_faults/RosAria.cpp._MLPA_195.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4fd94748e66471a0ff06b0e9b0aef4234c3ecd1c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_195.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_195	2020-01-20 09:44:01.986945340 +0000
+@@ -279,9 +279,6 @@
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_196.patch b/software_faults/RosAria.cpp._MLPA_196.patch
new file mode 100644
index 0000000000000000000000000000000000000000..70564fd019f2f91d0aee3c9fe34ef2cc01cf1088
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_196.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_196	2020-01-20 09:44:02.002945340 +0000
+@@ -280,9 +280,6 @@
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_197.patch b/software_faults/RosAria.cpp._MLPA_197.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b25470eb2c02282e8571bdc6854eea41d877a8c9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_197.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_197	2020-01-20 09:44:02.024945340 +0000
+@@ -281,9 +281,6 @@
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_198.patch b/software_faults/RosAria.cpp._MLPA_198.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2944b3c3e0a7e65514dc80ab813a3bc8f3b1871f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_198.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_198	2020-01-20 09:44:02.049945340 +0000
+@@ -282,9 +282,6 @@
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
diff --git a/software_faults/RosAria.cpp._MLPA_199.patch b/software_faults/RosAria.cpp._MLPA_199.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f9c5eb985a26f8ffa6c8bc44c25fcda064870955
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_199.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_199	2020-01-20 09:44:02.070945340 +0000
+@@ -283,9 +283,6 @@
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
diff --git a/software_faults/RosAria.cpp._MLPA_2.patch b/software_faults/RosAria.cpp._MLPA_2.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1bce1ac6a613f8e09b8e7aeae45df97d3043ec30
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_2.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_2	2020-01-20 09:43:56.021945340 +0000
+@@ -138,12 +138,10 @@
+         robot->comInt(88, RevCount);
+     }
+     int value;
+-    value = config.trans_accel * 1000;
+     if (value != robot->getTransAccel() && value > 0) {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_20.patch b/software_faults/RosAria.cpp._MLPA_20.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0198fbac6999852ef631e46faf9574c248bbbed0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_20.patch
@@ -0,0 +1,32 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_20	2020-01-20 09:43:56.601945340 +0000
+@@ -138,29 +138,24 @@
+         robot->comInt(88, RevCount);
+     }
+     int value;
+-    value = config.trans_accel * 1000;
+     if (value != robot->getTransAccel() && value > 0) {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_200.patch b/software_faults/RosAria.cpp._MLPA_200.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b74df85edef36fb5c5b5f4ade19e459feeae4564
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_200.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_200	2020-01-20 09:44:02.089945340 +0000
+@@ -284,9 +284,6 @@
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
diff --git a/software_faults/RosAria.cpp._MLPA_201.patch b/software_faults/RosAria.cpp._MLPA_201.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1ff6ce4d8a376af8879442f15e8ce1f640ee475b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_201.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_201	2020-01-20 09:44:02.107945340 +0000
+@@ -285,9 +285,6 @@
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_202.patch b/software_faults/RosAria.cpp._MLPA_202.patch
new file mode 100644
index 0000000000000000000000000000000000000000..70a529e39d8127fa2303dd0bd7d8458137edd530
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_202.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_202	2020-01-20 09:44:02.124945340 +0000
+@@ -286,9 +286,6 @@
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
diff --git a/software_faults/RosAria.cpp._MLPA_203.patch b/software_faults/RosAria.cpp._MLPA_203.patch
new file mode 100644
index 0000000000000000000000000000000000000000..310afa7aad0af638a13200867654580347c14963
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_203.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_203	2020-01-20 09:44:02.141945340 +0000
+@@ -287,9 +287,6 @@
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
diff --git a/software_faults/RosAria.cpp._MLPA_204.patch b/software_faults/RosAria.cpp._MLPA_204.patch
new file mode 100644
index 0000000000000000000000000000000000000000..741f6b2c990d332724cfd7af6493e3f8f0e45cc8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_204.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_204	2020-01-20 09:44:02.158945340 +0000
+@@ -288,9 +288,6 @@
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
diff --git a/software_faults/RosAria.cpp._MLPA_205.patch b/software_faults/RosAria.cpp._MLPA_205.patch
new file mode 100644
index 0000000000000000000000000000000000000000..abd1e64a3ba50a2894dba5637afcf6efd1dd2592
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_205.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_205	2020-01-20 09:44:02.174945340 +0000
+@@ -289,9 +289,6 @@
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
diff --git a/software_faults/RosAria.cpp._MLPA_206.patch b/software_faults/RosAria.cpp._MLPA_206.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6e9d91c31a0653cd51e684ede49328ac86398b44
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_206.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_206	2020-01-20 09:44:02.192945340 +0000
+@@ -290,9 +290,6 @@
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_207.patch b/software_faults/RosAria.cpp._MLPA_207.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a63fe4e676ca3be03d7f945bf3f201ee81207787
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_207.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_207	2020-01-20 09:44:02.212945340 +0000
+@@ -291,9 +291,6 @@
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_208.patch b/software_faults/RosAria.cpp._MLPA_208.patch
new file mode 100644
index 0000000000000000000000000000000000000000..73970f5d742a3d0f7690c4027f5682ca218f8614
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_208.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_208	2020-01-20 09:44:02.236945340 +0000
+@@ -292,10 +292,7 @@
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_209.patch b/software_faults/RosAria.cpp._MLPA_209.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7337d4b816cc46dd511240552a379a929688e026
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_209.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_209	2020-01-20 09:44:02.257945340 +0000
+@@ -293,10 +293,7 @@
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_21.patch b/software_faults/RosAria.cpp._MLPA_21.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5e9e23b2e3affc5b7f0c480ae53965e3437337b8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_21.patch
@@ -0,0 +1,32 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_21	2020-01-20 09:43:56.624945340 +0000
+@@ -143,29 +143,24 @@
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
+-    value = config.rot_decel * 180 / M_PI;
+     if (value != robot->getRotDecel() && value > 0) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_210.patch b/software_faults/RosAria.cpp._MLPA_210.patch
new file mode 100644
index 0000000000000000000000000000000000000000..42f5f4d02916892b72a6974abaf64a2aaa9b51f0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_210.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_210	2020-01-20 09:44:02.277945340 +0000
+@@ -295,9 +295,6 @@
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_211.patch b/software_faults/RosAria.cpp._MLPA_211.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e858ba5789e7f75e3f383e155acee555bd9354ba
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_211.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_211	2020-01-20 09:44:02.296945340 +0000
+@@ -296,9 +296,6 @@
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_212.patch b/software_faults/RosAria.cpp._MLPA_212.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7558cd28e602b456dc7aaa0b9165af6b5aa05cd8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_212.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_212	2020-01-20 09:44:02.317945340 +0000
+@@ -297,9 +297,6 @@
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
diff --git a/software_faults/RosAria.cpp._MLPA_213.patch b/software_faults/RosAria.cpp._MLPA_213.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a4e00234110bab728185f077b240476390b888d2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_213.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_213	2020-01-20 09:44:02.336945340 +0000
+@@ -298,9 +298,6 @@
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_214.patch b/software_faults/RosAria.cpp._MLPA_214.patch
new file mode 100644
index 0000000000000000000000000000000000000000..567f4dc9a681301645428e3bb1827a05ca14e083
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_214.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_214	2020-01-20 09:44:02.352945340 +0000
+@@ -299,9 +299,6 @@
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
diff --git a/software_faults/RosAria.cpp._MLPA_215.patch b/software_faults/RosAria.cpp._MLPA_215.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f0fa51bb884c978269bde6c0f455f0c0af5e219c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_215.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_215	2020-01-20 09:44:02.374945340 +0000
+@@ -300,9 +300,6 @@
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
diff --git a/software_faults/RosAria.cpp._MLPA_216.patch b/software_faults/RosAria.cpp._MLPA_216.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f6498a4eaf6184305fc148936d3025996a3fd835
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_216.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_216	2020-01-20 09:44:02.395945340 +0000
+@@ -301,9 +301,6 @@
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
diff --git a/software_faults/RosAria.cpp._MLPA_217.patch b/software_faults/RosAria.cpp._MLPA_217.patch
new file mode 100644
index 0000000000000000000000000000000000000000..588b217c6262cea8e429f37dd11ec5535651a365
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_217.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_217	2020-01-20 09:44:02.416945340 +0000
+@@ -302,9 +302,6 @@
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
diff --git a/software_faults/RosAria.cpp._MLPA_218.patch b/software_faults/RosAria.cpp._MLPA_218.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bcb2d63e88524d495bc3f0665e21c628a6da13ce
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_218.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_218	2020-01-20 09:44:02.439945340 +0000
+@@ -303,9 +303,6 @@
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
diff --git a/software_faults/RosAria.cpp._MLPA_219.patch b/software_faults/RosAria.cpp._MLPA_219.patch
new file mode 100644
index 0000000000000000000000000000000000000000..06657329301868e86d7f17b0ac849c82bbdab1db
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_219.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_219	2020-01-20 09:44:02.464945340 +0000
+@@ -304,9 +304,6 @@
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
diff --git a/software_faults/RosAria.cpp._MLPA_22.patch b/software_faults/RosAria.cpp._MLPA_22.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2ba37e6a222202ca44192d4b2ce05ec79c016c89
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_22.patch
@@ -0,0 +1,32 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_22	2020-01-20 09:43:56.653945340 +0000
+@@ -148,29 +148,24 @@
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
+-    value = config.rot_decel * 180 / M_PI;
+     if (value != robot->getRotDecel() && value > 0) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
+     }
+-    robot->unlock();
+ }
+ 
+ void RosAriaNode::sonarConnectCb()
diff --git a/software_faults/RosAria.cpp._MLPA_220.patch b/software_faults/RosAria.cpp._MLPA_220.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6bb50684ea7f4c52dd1e508333a0730f1c11d4bf
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_220.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_220	2020-01-20 09:44:02.487945340 +0000
+@@ -305,9 +305,6 @@
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
diff --git a/software_faults/RosAria.cpp._MLPA_221.patch b/software_faults/RosAria.cpp._MLPA_221.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f2f023603235d060b1bbce102141e9bbe272bc1b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_221.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_221	2020-01-20 09:44:02.509945340 +0000
+@@ -306,9 +306,6 @@
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
diff --git a/software_faults/RosAria.cpp._MLPA_222.patch b/software_faults/RosAria.cpp._MLPA_222.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0817c4875ff12b50b8842c88ce6f5267225d2952
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_222.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_222	2020-01-20 09:44:02.534945340 +0000
+@@ -307,9 +307,6 @@
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
diff --git a/software_faults/RosAria.cpp._MLPA_223.patch b/software_faults/RosAria.cpp._MLPA_223.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c57cd1a3a0f80a4b44ae56233091a0829db92468
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_223.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_223	2020-01-20 09:44:02.557945340 +0000
+@@ -308,9 +308,6 @@
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
diff --git a/software_faults/RosAria.cpp._MLPA_224.patch b/software_faults/RosAria.cpp._MLPA_224.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bc73e5737cc8e31dc37e93d8f1b7735840b84d12
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_224.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_224	2020-01-20 09:44:02.586945340 +0000
+@@ -309,9 +309,6 @@
+     robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
diff --git a/software_faults/RosAria.cpp._MLPA_225.patch b/software_faults/RosAria.cpp._MLPA_225.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d82f353bb03f2dbbe3f68eaa4c6e1a5e338806ae
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_225.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_225	2020-01-20 09:44:02.611945340 +0000
+@@ -310,8 +310,6 @@
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,7 +333,6 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+     n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
diff --git a/software_faults/RosAria.cpp._MLPA_226.patch b/software_faults/RosAria.cpp._MLPA_226.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ad12b5672f657ea63e60bde553a38d1125bca722
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_226.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_226	2020-01-20 09:44:02.634945340 +0000
+@@ -311,7 +311,6 @@
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,9 +334,7 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
diff --git a/software_faults/RosAria.cpp._MLPA_227.patch b/software_faults/RosAria.cpp._MLPA_227.patch
new file mode 100644
index 0000000000000000000000000000000000000000..268b309c4791ba6ce946099c872a93874bf18ed9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_227.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_227	2020-01-20 09:44:02.656945340 +0000
+@@ -335,10 +335,7 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_228.patch b/software_faults/RosAria.cpp._MLPA_228.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b229fc7c0f8db4d74e47daf67e8ea5cccc4f6217
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_228.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_228	2020-01-20 09:44:02.682945340 +0000
+@@ -337,12 +337,9 @@
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
+-    robot->requestEncoderPackets();
+     ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_229.patch b/software_faults/RosAria.cpp._MLPA_229.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ea16acd3d6414605c16e24da1016d63440a5d5bb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_229.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_229	2020-01-20 09:44:02.704945340 +0000
+@@ -338,12 +338,9 @@
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+     n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
+-    robot->requestEncoderPackets();
+-    ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_23.patch b/software_faults/RosAria.cpp._MLPA_23.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5302999cacc654ceb60e29d30e74b257f995a959
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_23.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_23	2020-01-20 09:43:56.852945340 +0000
+@@ -123,8 +123,6 @@
+ {
+     robot->lock();
+     if (TicksMM != config.TicksMM && config.TicksMM > 0) {
+-        ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+-        TicksMM = config.TicksMM;
+         robot->comInt(93, TicksMM);
+     }
+     if (DriftFactor != config.DriftFactor && config.DriftFactor != -99999) {
diff --git a/software_faults/RosAria.cpp._MLPA_230.patch b/software_faults/RosAria.cpp._MLPA_230.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9131412d7cd5060d5aa88ae6c6599e80e93c95b3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_230.patch
@@ -0,0 +1,29 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_230	2020-01-20 09:44:02.726945340 +0000
+@@ -234,10 +234,8 @@
+ }
+ int RosAriaNode::Setup()
+ {
+-    robot = new ArRobot();
+     ArArgumentBuilder* args = new ArArgumentBuilder();
+     ArArgumentParser* argparser = new ArArgumentParser(args);
+-    argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+@@ -258,7 +256,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+@@ -270,7 +267,6 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+     dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
diff --git a/software_faults/RosAria.cpp._MLPA_231.patch b/software_faults/RosAria.cpp._MLPA_231.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fce1232c8fe56a35f68a8b51b15378e6718e61f8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_231.patch
@@ -0,0 +1,27 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_231	2020-01-20 09:44:02.752945340 +0000
+@@ -237,7 +237,6 @@
+     robot = new ArRobot();
+     ArArgumentBuilder* args = new ArArgumentBuilder();
+     ArArgumentParser* argparser = new ArArgumentParser(args);
+-    argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+@@ -258,7 +257,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+@@ -270,8 +268,6 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_232.patch b/software_faults/RosAria.cpp._MLPA_232.patch
new file mode 100644
index 0000000000000000000000000000000000000000..20074c2ee16b0e035c3135f62ab35da36a1fae3c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_232.patch
@@ -0,0 +1,22 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_232	2020-01-20 09:44:02.775945340 +0000
+@@ -258,7 +258,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+@@ -270,11 +269,8 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_233.patch b/software_faults/RosAria.cpp._MLPA_233.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c942f1be76d992dbab6f2e52ee123790f4a6e281
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_233.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_233	2020-01-20 09:44:02.796945340 +0000
+@@ -270,12 +270,8 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_234.patch b/software_faults/RosAria.cpp._MLPA_234.patch
new file mode 100644
index 0000000000000000000000000000000000000000..15ab0c63118b754d775cfc1d56116ee00a3c89b0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_234.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_234	2020-01-20 09:44:02.815945340 +0000
+@@ -271,12 +271,8 @@
+         return 1;
+     }
+     readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_235.patch b/software_faults/RosAria.cpp._MLPA_235.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2201d2bb14b617977c5545b5d09f3e844a45ef76
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_235.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_235	2020-01-20 09:44:02.834945340 +0000
+@@ -274,10 +274,6 @@
+     dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_236.patch b/software_faults/RosAria.cpp._MLPA_236.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b3bdde21b5fa6daa9fb23ebb0efdef5fb3b429ac
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_236.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_236	2020-01-20 09:44:02.860945340 +0000
+@@ -275,10 +275,6 @@
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_237.patch b/software_faults/RosAria.cpp._MLPA_237.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b30f5e355d8cc290b24269d596ae0a417e55c274
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_237.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_237	2020-01-20 09:44:02.885945340 +0000
+@@ -276,10 +276,6 @@
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_238.patch b/software_faults/RosAria.cpp._MLPA_238.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a65437ea9827f086b083e59aeefc80fec61db84d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_238.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_238	2020-01-20 09:44:02.907945340 +0000
+@@ -277,10 +277,6 @@
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_239.patch b/software_faults/RosAria.cpp._MLPA_239.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fa9d430fad3cf7da5538a637b552d566481c3feb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_239.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_239	2020-01-20 09:44:02.931945340 +0000
+@@ -278,10 +278,6 @@
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_24.patch b/software_faults/RosAria.cpp._MLPA_24.patch
new file mode 100644
index 0000000000000000000000000000000000000000..14acd00221b9dac1431feb0135f4dea334472da5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_24.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_24	2020-01-20 09:43:56.893945340 +0000
+@@ -124,8 +124,6 @@
+     robot->lock();
+     if (TicksMM != config.TicksMM && config.TicksMM > 0) {
+         ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+-        TicksMM = config.TicksMM;
+-        robot->comInt(93, TicksMM);
+     }
+     if (DriftFactor != config.DriftFactor && config.DriftFactor != -99999) {
+         ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
diff --git a/software_faults/RosAria.cpp._MLPA_240.patch b/software_faults/RosAria.cpp._MLPA_240.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5e0cdeb4635f7965fd6f817b8ec752537384362f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_240.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_240	2020-01-20 09:44:02.950945340 +0000
+@@ -279,10 +279,6 @@
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_241.patch b/software_faults/RosAria.cpp._MLPA_241.patch
new file mode 100644
index 0000000000000000000000000000000000000000..58029f7d8c51cdf2ebd28d7a573d288a830a1177
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_241.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_241	2020-01-20 09:44:02.970945340 +0000
+@@ -280,10 +280,6 @@
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_242.patch b/software_faults/RosAria.cpp._MLPA_242.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6e3708865c16d7ec8e079b5866fdc08874485023
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_242.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_242	2020-01-20 09:44:02.995945340 +0000
+@@ -281,10 +281,6 @@
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
diff --git a/software_faults/RosAria.cpp._MLPA_243.patch b/software_faults/RosAria.cpp._MLPA_243.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9ace5945d1ceba35ea5f40ba556ff77114cccaaa
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_243.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_243	2020-01-20 09:44:03.017945340 +0000
+@@ -282,10 +282,6 @@
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
diff --git a/software_faults/RosAria.cpp._MLPA_244.patch b/software_faults/RosAria.cpp._MLPA_244.patch
new file mode 100644
index 0000000000000000000000000000000000000000..294b03c3a0e4c23b2336dfb1f456a336de16db0a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_244.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_244	2020-01-20 09:44:03.042945340 +0000
+@@ -283,10 +283,6 @@
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
diff --git a/software_faults/RosAria.cpp._MLPA_245.patch b/software_faults/RosAria.cpp._MLPA_245.patch
new file mode 100644
index 0000000000000000000000000000000000000000..83c38a1dc29dfa5fd7a72a8c28f4ff93d8c9b313
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_245.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_245	2020-01-20 09:44:03.069945340 +0000
+@@ -284,10 +284,6 @@
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_246.patch b/software_faults/RosAria.cpp._MLPA_246.patch
new file mode 100644
index 0000000000000000000000000000000000000000..74322b48395e0edcff78fcff5acf76b120f736a0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_246.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_246	2020-01-20 09:44:03.095945340 +0000
+@@ -285,10 +285,6 @@
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
diff --git a/software_faults/RosAria.cpp._MLPA_247.patch b/software_faults/RosAria.cpp._MLPA_247.patch
new file mode 100644
index 0000000000000000000000000000000000000000..194e6386e2f28499d283db942e4df50273152e7a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_247.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_247	2020-01-20 09:44:03.120945340 +0000
+@@ -286,10 +286,6 @@
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
diff --git a/software_faults/RosAria.cpp._MLPA_248.patch b/software_faults/RosAria.cpp._MLPA_248.patch
new file mode 100644
index 0000000000000000000000000000000000000000..719d9301c6bcb9737d02e4368fb6877b082bda55
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_248.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_248	2020-01-20 09:44:03.146945340 +0000
+@@ -287,10 +287,6 @@
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
diff --git a/software_faults/RosAria.cpp._MLPA_249.patch b/software_faults/RosAria.cpp._MLPA_249.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6b8b2cfb391d32ab7559a7d969116e076e329513
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_249.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_249	2020-01-20 09:44:03.171945340 +0000
+@@ -288,10 +288,6 @@
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
diff --git a/software_faults/RosAria.cpp._MLPA_25.patch b/software_faults/RosAria.cpp._MLPA_25.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e2a28e9e39a5c7c8cb763cfabdc0fe6b8bc34a80
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_25.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_25	2020-01-20 09:43:56.991945340 +0000
+@@ -128,8 +128,6 @@
+         robot->comInt(93, TicksMM);
+     }
+     if (DriftFactor != config.DriftFactor && config.DriftFactor != -99999) {
+-        ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
+-        DriftFactor = config.DriftFactor;
+         robot->comInt(89, DriftFactor);
+     }
+     if (RevCount != config.RevCount && config.RevCount > 0) {
diff --git a/software_faults/RosAria.cpp._MLPA_250.patch b/software_faults/RosAria.cpp._MLPA_250.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b9734a11bd6eef3a70de64d5a3e3da441d2a2dfa
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_250.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_250	2020-01-20 09:44:03.197945340 +0000
+@@ -289,10 +289,6 @@
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_251.patch b/software_faults/RosAria.cpp._MLPA_251.patch
new file mode 100644
index 0000000000000000000000000000000000000000..53adcabddeb89e1667865f9061e6b506039ff18c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_251.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_251	2020-01-20 09:44:03.223945340 +0000
+@@ -290,10 +290,6 @@
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_252.patch b/software_faults/RosAria.cpp._MLPA_252.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0ccdaf310b3e40756a01f03caaf946a6d75f2077
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_252.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_252	2020-01-20 09:44:03.248945340 +0000
+@@ -291,11 +291,7 @@
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_253.patch b/software_faults/RosAria.cpp._MLPA_253.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1111584f74e76d67da127271a455ea97d9638ba7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_253.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_253	2020-01-20 09:44:03.272945340 +0000
+@@ -292,11 +292,7 @@
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_254.patch b/software_faults/RosAria.cpp._MLPA_254.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2d2381bd97230d9fce7ed9383ddcc577fe5f5c66
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_254.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_254	2020-01-20 09:44:03.292945340 +0000
+@@ -293,11 +293,7 @@
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_255.patch b/software_faults/RosAria.cpp._MLPA_255.patch
new file mode 100644
index 0000000000000000000000000000000000000000..407e89c46e1b34ecdf5c0bd62a760aa3b3a84c60
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_255.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_255	2020-01-20 09:44:03.317945340 +0000
+@@ -295,10 +295,6 @@
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_256.patch b/software_faults/RosAria.cpp._MLPA_256.patch
new file mode 100644
index 0000000000000000000000000000000000000000..da72169f2ed2692876eb1eb39b7ac37ee547e7b9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_256.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_256	2020-01-20 09:44:03.340945340 +0000
+@@ -296,10 +296,6 @@
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
diff --git a/software_faults/RosAria.cpp._MLPA_257.patch b/software_faults/RosAria.cpp._MLPA_257.patch
new file mode 100644
index 0000000000000000000000000000000000000000..63b1db272bf78bf91100af6bdbbe2de5bc6974d0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_257.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_257	2020-01-20 09:44:03.361945340 +0000
+@@ -297,10 +297,6 @@
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_258.patch b/software_faults/RosAria.cpp._MLPA_258.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8e2802e264bd4af871e8601213df9085d4005d13
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_258.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_258	2020-01-20 09:44:03.381945340 +0000
+@@ -298,10 +298,6 @@
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
diff --git a/software_faults/RosAria.cpp._MLPA_259.patch b/software_faults/RosAria.cpp._MLPA_259.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c702d6c2d75e7a6b51c47ca82c2cbbe6b3ca0dfd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_259.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_259	2020-01-20 09:44:03.400945340 +0000
+@@ -299,10 +299,6 @@
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
diff --git a/software_faults/RosAria.cpp._MLPA_26.patch b/software_faults/RosAria.cpp._MLPA_26.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5e0f75140d0b519eb2a2f89e783d52537c085365
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_26.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_26	2020-01-20 09:43:57.016945340 +0000
+@@ -129,8 +129,6 @@
+     }
+     if (DriftFactor != config.DriftFactor && config.DriftFactor != -99999) {
+         ROS_INFO("Setting DriftFactor from Dynamic Reconfigure: %d -> %d ", DriftFactor, config.DriftFactor);
+-        DriftFactor = config.DriftFactor;
+-        robot->comInt(89, DriftFactor);
+     }
+     if (RevCount != config.RevCount && config.RevCount > 0) {
+         ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
diff --git a/software_faults/RosAria.cpp._MLPA_260.patch b/software_faults/RosAria.cpp._MLPA_260.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a084ff9696bbaabef75250c587dd63e8d45dfb9c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_260.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_260	2020-01-20 09:44:03.420945340 +0000
+@@ -300,10 +300,6 @@
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
diff --git a/software_faults/RosAria.cpp._MLPA_261.patch b/software_faults/RosAria.cpp._MLPA_261.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e7026c0962876d9a582266ba0db6d106ab03ef0e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_261.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_261	2020-01-20 09:44:03.445945340 +0000
+@@ -301,10 +301,6 @@
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
diff --git a/software_faults/RosAria.cpp._MLPA_262.patch b/software_faults/RosAria.cpp._MLPA_262.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a8bda0d0fb751e5967638876b70831204fba462c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_262.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_262	2020-01-20 09:44:03.469945340 +0000
+@@ -302,10 +302,6 @@
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
diff --git a/software_faults/RosAria.cpp._MLPA_263.patch b/software_faults/RosAria.cpp._MLPA_263.patch
new file mode 100644
index 0000000000000000000000000000000000000000..86ede44d38fa47559916ef5868720a375c68eba3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_263.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_263	2020-01-20 09:44:03.490945340 +0000
+@@ -303,10 +303,6 @@
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
diff --git a/software_faults/RosAria.cpp._MLPA_264.patch b/software_faults/RosAria.cpp._MLPA_264.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3366c8341aa660ceedef7e0d2703ed6bbc1e855c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_264.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_264	2020-01-20 09:44:03.510945340 +0000
+@@ -304,10 +304,6 @@
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
diff --git a/software_faults/RosAria.cpp._MLPA_265.patch b/software_faults/RosAria.cpp._MLPA_265.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bedfa710bd0f214b12a7c9174bd9da290cf41b22
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_265.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_265	2020-01-20 09:44:03.535945340 +0000
+@@ -305,10 +305,6 @@
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
diff --git a/software_faults/RosAria.cpp._MLPA_266.patch b/software_faults/RosAria.cpp._MLPA_266.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0e39d28bbb3e06911066ba23e12afa71513c6eb9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_266.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_266	2020-01-20 09:44:03.557945340 +0000
+@@ -306,10 +306,6 @@
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
diff --git a/software_faults/RosAria.cpp._MLPA_267.patch b/software_faults/RosAria.cpp._MLPA_267.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a7d941514ae4a125795a41504fe90e5c408e9308
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_267.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_267	2020-01-20 09:44:03.579945340 +0000
+@@ -307,10 +307,6 @@
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
diff --git a/software_faults/RosAria.cpp._MLPA_268.patch b/software_faults/RosAria.cpp._MLPA_268.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c42ddfcdd2a70ce20a369bbcfde65a4d27874a03
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_268.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_268	2020-01-20 09:44:03.599945340 +0000
+@@ -308,10 +308,6 @@
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
diff --git a/software_faults/RosAria.cpp._MLPA_269.patch b/software_faults/RosAria.cpp._MLPA_269.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5503b833f6fad5397196500e98aaf7544233b814
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_269.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_269	2020-01-20 09:44:03.618945340 +0000
+@@ -309,9 +309,6 @@
+     robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,7 +332,6 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+     n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
diff --git a/software_faults/RosAria.cpp._MLPA_27.patch b/software_faults/RosAria.cpp._MLPA_27.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8e2ab030b29053c5b24ba585a06b3ddf3447b2de
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_27.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_27	2020-01-20 09:43:57.095945340 +0000
+@@ -133,8 +133,6 @@
+         robot->comInt(89, DriftFactor);
+     }
+     if (RevCount != config.RevCount && config.RevCount > 0) {
+-        ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
+-        RevCount = config.RevCount;
+         robot->comInt(88, RevCount);
+     }
+     int value;
diff --git a/software_faults/RosAria.cpp._MLPA_270.patch b/software_faults/RosAria.cpp._MLPA_270.patch
new file mode 100644
index 0000000000000000000000000000000000000000..cc6b833e03796cbe6348d604d7675bc1237d9cbc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_270.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_270	2020-01-20 09:44:03.635945340 +0000
+@@ -310,8 +310,6 @@
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,9 +333,7 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
diff --git a/software_faults/RosAria.cpp._MLPA_271.patch b/software_faults/RosAria.cpp._MLPA_271.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4198e4be0803983fad79e1e922149d8c2e7944a9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_271.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_271	2020-01-20 09:44:03.652945340 +0000
+@@ -311,7 +311,6 @@
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,10 +334,7 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_272.patch b/software_faults/RosAria.cpp._MLPA_272.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e1ac44149a0f7fa00a58d762764b2b87c225f3c2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_272.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_272	2020-01-20 09:44:03.669945340 +0000
+@@ -335,14 +335,10 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
+-    robot->requestEncoderPackets();
+     ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_273.patch b/software_faults/RosAria.cpp._MLPA_273.patch
new file mode 100644
index 0000000000000000000000000000000000000000..297047ad93de12841307b7ccb429c1d4aed6cb8f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_273.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_273	2020-01-20 09:44:03.685945340 +0000
+@@ -337,13 +337,9 @@
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
+-    robot->requestEncoderPackets();
+-    ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_274.patch b/software_faults/RosAria.cpp._MLPA_274.patch
new file mode 100644
index 0000000000000000000000000000000000000000..41626af77eb1a1b3ef1350c0d6e3044fb8f901df
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_274.patch
@@ -0,0 +1,30 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_274	2020-01-20 09:44:03.718945340 +0000
+@@ -234,10 +234,8 @@
+ }
+ int RosAriaNode::Setup()
+ {
+-    robot = new ArRobot();
+     ArArgumentBuilder* args = new ArArgumentBuilder();
+     ArArgumentParser* argparser = new ArArgumentParser(args);
+-    argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+@@ -258,7 +256,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+@@ -270,8 +267,6 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_275.patch b/software_faults/RosAria.cpp._MLPA_275.patch
new file mode 100644
index 0000000000000000000000000000000000000000..93d38d6545d5db11c2bb1e32095111c8c9164325
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_275.patch
@@ -0,0 +1,30 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_275	2020-01-20 09:44:03.746945340 +0000
+@@ -237,7 +237,6 @@
+     robot = new ArRobot();
+     ArArgumentBuilder* args = new ArArgumentBuilder();
+     ArArgumentParser* argparser = new ArArgumentParser(args);
+-    argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+@@ -258,7 +257,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+@@ -270,11 +268,8 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_276.patch b/software_faults/RosAria.cpp._MLPA_276.patch
new file mode 100644
index 0000000000000000000000000000000000000000..59cb25bfb47978a5215d3fdf5652933a28586fb1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_276.patch
@@ -0,0 +1,23 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_276	2020-01-20 09:44:03.774945340 +0000
+@@ -258,7 +258,6 @@
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+-    conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
+         ROS_ERROR("RosAria: ARIA could not connect to robot! (Check ~port parameter is correct, and permissions on port device, or any errors reported above)");
+         return 1;
+@@ -270,12 +269,8 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_277.patch b/software_faults/RosAria.cpp._MLPA_277.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ee54de9fccb4aa145ef0a0451974382b48bb03fc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_277.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_277	2020-01-20 09:44:03.802945340 +0000
+@@ -270,13 +270,8 @@
+         ROS_ERROR("RosAria: ARIA error parsing ARIA startup parameters!");
+         return 1;
+     }
+-    readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_278.patch b/software_faults/RosAria.cpp._MLPA_278.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ef4a965f4178a3f7c15d3d6a1c3632726489a3d6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_278.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_278	2020-01-20 09:44:03.829945340 +0000
+@@ -271,13 +271,8 @@
+         return 1;
+     }
+     readParameters();
+-    dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_279.patch b/software_faults/RosAria.cpp._MLPA_279.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e5ba9e8a0b7cd57767585dcd7611baa5d7f5955b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_279.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_279	2020-01-20 09:44:03.855945340 +0000
+@@ -274,11 +274,6 @@
+     dynamic_reconfigure_server = new dynamic_reconfigure::Server<rosaria::RosAriaConfig>;
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+-    dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_28.patch b/software_faults/RosAria.cpp._MLPA_28.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d17e9f925802663c7bd8f6af325b28813630e4ec
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_28.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_28	2020-01-20 09:43:57.113945340 +0000
+@@ -134,8 +134,6 @@
+     }
+     if (RevCount != config.RevCount && config.RevCount > 0) {
+         ROS_INFO("Setting RevCount from Dynamic Reconfigure: %d -> %d ", RevCount, config.RevCount);
+-        RevCount = config.RevCount;
+-        robot->comInt(88, RevCount);
+     }
+     int value;
+     value = config.trans_accel * 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_280.patch b/software_faults/RosAria.cpp._MLPA_280.patch
new file mode 100644
index 0000000000000000000000000000000000000000..655812c2ab3d8c4019174f94b08fc5ba5d57a72c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_280.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_280	2020-01-20 09:44:03.882945340 +0000
+@@ -275,11 +275,6 @@
+     rosaria::RosAriaConfig dynConf_min;
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+-    dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_281.patch b/software_faults/RosAria.cpp._MLPA_281.patch
new file mode 100644
index 0000000000000000000000000000000000000000..96e19d04ffbbeb2034df364ed7fe30a32bb58872
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_281.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_281	2020-01-20 09:44:03.909945340 +0000
+@@ -276,11 +276,6 @@
+     rosaria::RosAriaConfig dynConf_max;
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+-    dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_282.patch b/software_faults/RosAria.cpp._MLPA_282.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c0a4169976ff9e86fab63551226fe50624f5772a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_282.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_282	2020-01-20 09:44:03.939945340 +0000
+@@ -277,11 +277,6 @@
+     dynConf_max.trans_accel = robot->getAbsoluteMaxTransAccel() / 1000;
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+-    dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_283.patch b/software_faults/RosAria.cpp._MLPA_283.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6fda40d40cb22e272f0aec45e26db912807c4adb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_283.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_283	2020-01-20 09:44:03.965945340 +0000
+@@ -278,11 +278,6 @@
+     dynConf_max.trans_decel = robot->getAbsoluteMaxTransDecel() / 1000;
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+-    dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_284.patch b/software_faults/RosAria.cpp._MLPA_284.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bdcb5262f73bdaecc3eb3b511f03af21d910820c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_284.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_284	2020-01-20 09:44:03.994945340 +0000
+@@ -279,11 +279,6 @@
+     dynConf_max.lat_accel = ((robot->getAbsoluteMaxLatAccel() > 0.0) ? robot->getAbsoluteMaxLatAccel() : 0.1) / 1000;
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+-    dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_285.patch b/software_faults/RosAria.cpp._MLPA_285.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ea265b8b26c60d56d616f6aa103eb593bd923eeb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_285.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_285	2020-01-20 09:44:04.020945340 +0000
+@@ -280,11 +280,6 @@
+     dynConf_max.lat_decel = ((robot->getAbsoluteMaxLatDecel() > 0.0) ? robot->getAbsoluteMaxLatDecel() : 0.1) / 1000;
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+-    dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
diff --git a/software_faults/RosAria.cpp._MLPA_286.patch b/software_faults/RosAria.cpp._MLPA_286.patch
new file mode 100644
index 0000000000000000000000000000000000000000..65a47f8d5d1cf8ad2567b02aee25a1c6a5e9b24b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_286.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_286	2020-01-20 09:44:04.044945340 +0000
+@@ -281,11 +281,6 @@
+     dynConf_max.rot_accel = robot->getAbsoluteMaxRotAccel() * M_PI / 180;
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+-    dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
diff --git a/software_faults/RosAria.cpp._MLPA_287.patch b/software_faults/RosAria.cpp._MLPA_287.patch
new file mode 100644
index 0000000000000000000000000000000000000000..251fe25f511d1a6c497880a52dfcd93fcb3abb7e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_287.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_287	2020-01-20 09:44:04.072945340 +0000
+@@ -282,11 +282,6 @@
+     dynConf_max.rot_decel = robot->getAbsoluteMaxRotDecel() * M_PI / 180;
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+-    dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
diff --git a/software_faults/RosAria.cpp._MLPA_288.patch b/software_faults/RosAria.cpp._MLPA_288.patch
new file mode 100644
index 0000000000000000000000000000000000000000..08d9ea6d22c79c3aec68e2fa5a8c0948c05b29d9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_288.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_288	2020-01-20 09:44:04.099945340 +0000
+@@ -283,11 +283,6 @@
+     dynConf_min.trans_accel = 0;
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+-    dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_289.patch b/software_faults/RosAria.cpp._MLPA_289.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d2b883a26c8e0d9d4564ebbcf14f8f97ddfae5f0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_289.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_289	2020-01-20 09:44:04.124945340 +0000
+@@ -284,11 +284,6 @@
+     dynConf_min.trans_decel = 0;
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+-    dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
diff --git a/software_faults/RosAria.cpp._MLPA_29.patch b/software_faults/RosAria.cpp._MLPA_29.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5073a6d9dc99e9b49136194afd0ad259a4cae3c1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_29.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_29	2020-01-20 09:43:57.628945340 +0000
+@@ -175,8 +175,6 @@
+ 
+ void RosAriaNode::sonarConnectCb()
+ {
+-    publish_sonar = (sonar_pub.getNumSubscribers() > 0);
+-    publish_sonar_pointcloud2 = (sonar_pointcloud2_pub.getNumSubscribers() > 0);
+     robot->lock();
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         robot->enableSonar();
diff --git a/software_faults/RosAria.cpp._MLPA_290.patch b/software_faults/RosAria.cpp._MLPA_290.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b336cfdd3fb4f1c62bb07b861bfb53a4e57fc757
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_290.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_290	2020-01-20 09:44:04.148945340 +0000
+@@ -285,11 +285,6 @@
+     dynConf_min.lat_accel = 0;
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+-    dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
diff --git a/software_faults/RosAria.cpp._MLPA_291.patch b/software_faults/RosAria.cpp._MLPA_291.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5e4ee013ca25552dec691acba269d19d07a5fb9a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_291.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_291	2020-01-20 09:44:04.173945340 +0000
+@@ -286,11 +286,6 @@
+     dynConf_min.lat_decel = 0;
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+-    dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
diff --git a/software_faults/RosAria.cpp._MLPA_292.patch b/software_faults/RosAria.cpp._MLPA_292.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d99e56d59a1abcb180df32799f2b57bbf7e1db08
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_292.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_292	2020-01-20 09:44:04.199945340 +0000
+@@ -287,11 +287,6 @@
+     dynConf_min.rot_accel = 0;
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+-    dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
diff --git a/software_faults/RosAria.cpp._MLPA_293.patch b/software_faults/RosAria.cpp._MLPA_293.patch
new file mode 100644
index 0000000000000000000000000000000000000000..19fedb3457c578bb384e654079f9bedb83a8a85f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_293.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_293	2020-01-20 09:44:04.222945340 +0000
+@@ -288,11 +288,6 @@
+     dynConf_min.rot_decel = 0;
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+-    dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_294.patch b/software_faults/RosAria.cpp._MLPA_294.patch
new file mode 100644
index 0000000000000000000000000000000000000000..08c2212badf2cb8f94c3c44077201a50cfd785ed
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_294.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_294	2020-01-20 09:44:04.245945340 +0000
+@@ -289,11 +289,6 @@
+     dynConf_min.TicksMM = 0;
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+-    dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_295.patch b/software_faults/RosAria.cpp._MLPA_295.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a3ea89938244ef08391c5fae443c739e8040feef
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_295.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_295	2020-01-20 09:44:04.266945340 +0000
+@@ -290,12 +290,7 @@
+     dynConf_max.TicksMM = 200;
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+-    dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_296.patch b/software_faults/RosAria.cpp._MLPA_296.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1bffbe2357905f95b7889e7cdcbca01f4e9749b8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_296.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_296	2020-01-20 09:44:04.294945340 +0000
+@@ -291,12 +291,7 @@
+     dynConf_min.DriftFactor = -99999;
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+-    dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_297.patch b/software_faults/RosAria.cpp._MLPA_297.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8495da9cc18ae97079ab9f0e6de90302bcb40dbc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_297.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_297	2020-01-20 09:44:04.320945340 +0000
+@@ -292,12 +292,7 @@
+     dynConf_max.DriftFactor = 32767;
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+-    dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_298.patch b/software_faults/RosAria.cpp._MLPA_298.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f2b2376257cd9da7aa05d8971ae22d274cc5196a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_298.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_298	2020-01-20 09:44:04.342945340 +0000
+@@ -293,12 +293,7 @@
+     dynConf_min.RevCount = 0;
+     dynConf_max.RevCount = 65535;
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+-    dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_299.patch b/software_faults/RosAria.cpp._MLPA_299.patch
new file mode 100644
index 0000000000000000000000000000000000000000..725348e7c7486687a1ee7bbad73d9eb6b1e0c4dd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_299.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_299	2020-01-20 09:44:04.363945340 +0000
+@@ -295,11 +295,6 @@
+     dynamic_reconfigure_server->setConfigMax(dynConf_max);
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+-    dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
diff --git a/software_faults/RosAria.cpp._MLPA_3.patch b/software_faults/RosAria.cpp._MLPA_3.patch
new file mode 100644
index 0000000000000000000000000000000000000000..65da9831979aac666b2c7b3cc425c9a628639955
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_3.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_3	2020-01-20 09:43:56.049945340 +0000
+@@ -143,12 +143,10 @@
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
diff --git a/software_faults/RosAria.cpp._MLPA_30.patch b/software_faults/RosAria.cpp._MLPA_30.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b743d58cc52e65654f2cacf42f91555a420878b1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_30.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_30	2020-01-20 09:43:57.661945340 +0000
+@@ -176,8 +176,6 @@
+ void RosAriaNode::sonarConnectCb()
+ {
+     publish_sonar = (sonar_pub.getNumSubscribers() > 0);
+-    publish_sonar_pointcloud2 = (sonar_pointcloud2_pub.getNumSubscribers() > 0);
+-    robot->lock();
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         robot->enableSonar();
+         sonar_enabled = false;
diff --git a/software_faults/RosAria.cpp._MLPA_300.patch b/software_faults/RosAria.cpp._MLPA_300.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bb4349e31f6947111d012a07e257d1387720f657
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_300.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_300	2020-01-20 09:44:04.382945340 +0000
+@@ -296,11 +296,6 @@
+     dynamic_reconfigure_server->setConfigMin(dynConf_min);
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+-    dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
diff --git a/software_faults/RosAria.cpp._MLPA_301.patch b/software_faults/RosAria.cpp._MLPA_301.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b922a2c09bdcbb46c25bea0873a1ec6aa0a2f3d6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_301.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_301	2020-01-20 09:44:04.401945340 +0000
+@@ -297,11 +297,6 @@
+     rosaria::RosAriaConfig dynConf_default;
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+-    dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
diff --git a/software_faults/RosAria.cpp._MLPA_302.patch b/software_faults/RosAria.cpp._MLPA_302.patch
new file mode 100644
index 0000000000000000000000000000000000000000..91e2be795a2f8a45765f2f08bc5a08204d4028c8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_302.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_302	2020-01-20 09:44:04.422945340 +0000
+@@ -298,11 +298,6 @@
+     dynConf_default.trans_accel = robot->getTransAccel() / 1000;
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+-    dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
diff --git a/software_faults/RosAria.cpp._MLPA_303.patch b/software_faults/RosAria.cpp._MLPA_303.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2f9913af2f5dbd3f6c637d7538679a09ebc9be13
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_303.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_303	2020-01-20 09:44:04.440945340 +0000
+@@ -299,11 +299,6 @@
+     dynConf_default.trans_decel = robot->getTransDecel() / 1000;
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+-    dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
diff --git a/software_faults/RosAria.cpp._MLPA_304.patch b/software_faults/RosAria.cpp._MLPA_304.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6b3f4220fe65dd63f5b8cb20a312538c1c4ae62f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_304.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_304	2020-01-20 09:44:04.456945340 +0000
+@@ -300,11 +300,6 @@
+     dynConf_default.lat_accel = robot->getLatAccel() / 1000;
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+-    dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
diff --git a/software_faults/RosAria.cpp._MLPA_305.patch b/software_faults/RosAria.cpp._MLPA_305.patch
new file mode 100644
index 0000000000000000000000000000000000000000..32cdf2a2af28e8e1af0024ae146bedeb602f63fc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_305.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_305	2020-01-20 09:44:04.473945340 +0000
+@@ -301,11 +301,6 @@
+     dynConf_default.lat_decel = robot->getLatDecel() / 1000;
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+-    dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
diff --git a/software_faults/RosAria.cpp._MLPA_306.patch b/software_faults/RosAria.cpp._MLPA_306.patch
new file mode 100644
index 0000000000000000000000000000000000000000..13df75fe8a22a75624039f43697a04c64abef5db
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_306.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_306	2020-01-20 09:44:04.495945340 +0000
+@@ -302,11 +302,6 @@
+     dynConf_default.rot_accel = robot->getRotAccel() * M_PI / 180;
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+-    dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
diff --git a/software_faults/RosAria.cpp._MLPA_307.patch b/software_faults/RosAria.cpp._MLPA_307.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5875cd86c344987e7be9035a0aa1fe71a7b43c6f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_307.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_307	2020-01-20 09:44:04.521945340 +0000
+@@ -303,11 +303,6 @@
+     dynConf_default.rot_decel = robot->getRotDecel() * M_PI / 180;
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+-    dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
diff --git a/software_faults/RosAria.cpp._MLPA_308.patch b/software_faults/RosAria.cpp._MLPA_308.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3ce339adda68c7a56ddc1ccc574b911522e55d64
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_308.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_308	2020-01-20 09:44:04.547945340 +0000
+@@ -304,11 +304,6 @@
+     dynConf_default.TicksMM = 0;
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+-    dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
diff --git a/software_faults/RosAria.cpp._MLPA_309.patch b/software_faults/RosAria.cpp._MLPA_309.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b884fc2c65cb1371fcb0c0c74ea9887803e32f03
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_309.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_309	2020-01-20 09:44:04.575945340 +0000
+@@ -305,11 +305,6 @@
+     dynConf_default.DriftFactor = -99999;
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+-    dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
diff --git a/software_faults/RosAria.cpp._MLPA_31.patch b/software_faults/RosAria.cpp._MLPA_31.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f93690917dbe42555f55a5c3435b646692544a68
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_31.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_31	2020-01-20 09:43:57.693945340 +0000
+@@ -177,7 +177,6 @@
+ {
+     publish_sonar = (sonar_pub.getNumSubscribers() > 0);
+     publish_sonar_pointcloud2 = (sonar_pointcloud2_pub.getNumSubscribers() > 0);
+-    robot->lock();
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         robot->enableSonar();
+         sonar_enabled = false;
+@@ -186,8 +185,6 @@
+             robot->disableSonar();
+             sonar_enabled = true;
+         }
+-
+-    robot->unlock();
+ }
+ 
+ RosAriaNode::RosAriaNode(ros::NodeHandle nh)
diff --git a/software_faults/RosAria.cpp._MLPA_310.patch b/software_faults/RosAria.cpp._MLPA_310.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b8717a699ec651da2df7530423b5a3eaf13777b5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_310.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_310	2020-01-20 09:44:04.603945340 +0000
+@@ -306,11 +306,6 @@
+     dynConf_default.RevCount = 0;
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+-    robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
diff --git a/software_faults/RosAria.cpp._MLPA_311.patch b/software_faults/RosAria.cpp._MLPA_311.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1a1f396a60ec801e493b5a90ae2b296026f4bfa0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_311.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_311	2020-01-20 09:44:04.635945340 +0000
+@@ -307,11 +307,6 @@
+     dynamic_reconfigure_server->setConfigDefault(dynConf_default);
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+-    robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
diff --git a/software_faults/RosAria.cpp._MLPA_312.patch b/software_faults/RosAria.cpp._MLPA_312.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0dea2ac151773a714ff4212dc239521a0f51c5be
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_312.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_312	2020-01-20 09:44:04.661945340 +0000
+@@ -308,10 +308,6 @@
+     dynamic_reconfigure_server->setCallback(boost::bind(&RosAriaNode::dynamic_reconfigureCB, this, _1, _2));
+     robot->enableMotors();
+     robot->disableSonar();
+-    robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,7 +331,6 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+     n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
diff --git a/software_faults/RosAria.cpp._MLPA_313.patch b/software_faults/RosAria.cpp._MLPA_313.patch
new file mode 100644
index 0000000000000000000000000000000000000000..141738fcfe08ecfefa863464bc068ce45f11f340
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_313.patch
@@ -0,0 +1,22 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_313	2020-01-20 09:44:04.686945340 +0000
+@@ -309,9 +309,6 @@
+     robot->enableMotors();
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+-    bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,9 +332,7 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+     cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
diff --git a/software_faults/RosAria.cpp._MLPA_314.patch b/software_faults/RosAria.cpp._MLPA_314.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3e42788ddd0f25550d6d28e96452405f059d6845
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_314.patch
@@ -0,0 +1,22 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_314	2020-01-20 09:44:04.711945340 +0000
+@@ -310,8 +310,6 @@
+     robot->disableSonar();
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+-    bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,10 +333,7 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_315.patch b/software_faults/RosAria.cpp._MLPA_315.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0d46e0dab6412a7e398b542d1025392ccad98043
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_315.patch
@@ -0,0 +1,25 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_315	2020-01-20 09:44:04.739945340 +0000
+@@ -311,7 +311,6 @@
+     robot->addSensorInterpTask("ROSPublishingTask", 100, &myPublishCB);
+     bumpers.front_bumpers.resize(robot->getNumFrontBumpers());
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+-    robot->runAsync(true);
+     if (publish_aria_lasers) {
+         ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+@@ -335,14 +334,10 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
+-    robot->requestEncoderPackets();
+     ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_316.patch b/software_faults/RosAria.cpp._MLPA_316.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6bcc09bff8cea550ed99808081fdabe8738fdfe4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_316.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_316	2020-01-20 09:44:04.765945340 +0000
+@@ -335,15 +335,10 @@
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+-    cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
+-    n.param("cmd_vel_timeout", cmdvel_timeout_param, 0.6);
+-    cmdvel_timeout = ros::Duration(cmdvel_timeout_param);
+     if (cmdvel_timeout_param > 0.0) 
+         cmdvel_watchdog_timer = n.createTimer(ros::Duration(0.1), &RosAriaNode::cmdvel_watchdog, this);
+ 
+-    robot->requestEncoderPackets();
+-    ROS_INFO_NAMED("rosaria", "rosaria: Setup complete");
+     return 0;
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_317.patch b/software_faults/RosAria.cpp._MLPA_317.patch
new file mode 100644
index 0000000000000000000000000000000000000000..60d11012c01efed59cc6f058eb30e6f15bd48d07
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_317.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_317	2020-01-20 09:44:07.143945340 +0000
+@@ -240,8 +240,6 @@
+     argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+-        args->add("-remoteHost");
+-        args->add(serial_port.substr(0, colon_pos).c_str());
+         args->add("-remoteRobotTcpPort");
+         args->add(serial_port.substr(colon_pos + 1).c_str());
+     }else{
diff --git a/software_faults/RosAria.cpp._MLPA_318.patch b/software_faults/RosAria.cpp._MLPA_318.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2b6f9a75ec070424d59e16fcc6df09fbad134e06
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_318.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_318	2020-01-20 09:44:07.161945340 +0000
+@@ -241,8 +241,6 @@
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+-        args->add(serial_port.substr(0, colon_pos).c_str());
+-        args->add("-remoteRobotTcpPort");
+         args->add(serial_port.substr(colon_pos + 1).c_str());
+     }else{
+         args->add("-robotPort %s", serial_port.c_str());
diff --git a/software_faults/RosAria.cpp._MLPA_319.patch b/software_faults/RosAria.cpp._MLPA_319.patch
new file mode 100644
index 0000000000000000000000000000000000000000..59dc366896b994143eb3e6d3bb97bc0ca49fac8a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_319.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_319	2020-01-20 09:44:07.181945340 +0000
+@@ -242,8 +242,6 @@
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+         args->add(serial_port.substr(0, colon_pos).c_str());
+-        args->add("-remoteRobotTcpPort");
+-        args->add(serial_port.substr(colon_pos + 1).c_str());
+     }else{
+         args->add("-robotPort %s", serial_port.c_str());
+     }
diff --git a/software_faults/RosAria.cpp._MLPA_32.patch b/software_faults/RosAria.cpp._MLPA_32.patch
new file mode 100644
index 0000000000000000000000000000000000000000..80733ac5d193e939e9c6dec5243a022c73d68976
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_32.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_32	2020-01-20 09:43:57.730945340 +0000
+@@ -175,9 +175,6 @@
+ 
+ void RosAriaNode::sonarConnectCb()
+ {
+-    publish_sonar = (sonar_pub.getNumSubscribers() > 0);
+-    publish_sonar_pointcloud2 = (sonar_pointcloud2_pub.getNumSubscribers() > 0);
+-    robot->lock();
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         robot->enableSonar();
+         sonar_enabled = false;
diff --git a/software_faults/RosAria.cpp._MLPA_320.patch b/software_faults/RosAria.cpp._MLPA_320.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0d848c8018f6b2e7894ab56534f98f40d1d6b445
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_320.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_320	2020-01-20 09:44:07.203945340 +0000
+@@ -240,9 +240,6 @@
+     argparser->loadDefaultArguments();
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+-        args->add("-remoteHost");
+-        args->add(serial_port.substr(0, colon_pos).c_str());
+-        args->add("-remoteRobotTcpPort");
+         args->add(serial_port.substr(colon_pos + 1).c_str());
+     }else{
+         args->add("-robotPort %s", serial_port.c_str());
diff --git a/software_faults/RosAria.cpp._MLPA_321.patch b/software_faults/RosAria.cpp._MLPA_321.patch
new file mode 100644
index 0000000000000000000000000000000000000000..cdec248402539b857d1b374f4ed886bc544808b4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_321.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_321	2020-01-20 09:44:07.225945340 +0000
+@@ -241,9 +241,6 @@
+     size_t colon_pos = serial_port.find(":");
+     if (colon_pos != std::string::npos) {
+         args->add("-remoteHost");
+-        args->add(serial_port.substr(0, colon_pos).c_str());
+-        args->add("-remoteRobotTcpPort");
+-        args->add(serial_port.substr(colon_pos + 1).c_str());
+     }else{
+         args->add("-robotPort %s", serial_port.c_str());
+     }
diff --git a/software_faults/RosAria.cpp._MLPA_322.patch b/software_faults/RosAria.cpp._MLPA_322.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f30d20f7e46e5437d34d602304aed9aa143d3272
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_322.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_322	2020-01-20 09:44:07.301945340 +0000
+@@ -251,8 +251,6 @@
+         args->add("-robotBaud %d", serial_baud);
+     }
+     if (debug_aria) {
+-        args->add("-robotLogPacketsReceived");
+-        args->add("-robotLogPacketsSent");
+         args->add("-robotLogVelocitiesReceived");
+         args->add("-robotLogMovementSent");
+         args->add("-robotLogMovementReceived");
diff --git a/software_faults/RosAria.cpp._MLPA_323.patch b/software_faults/RosAria.cpp._MLPA_323.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7207bbd9e779d2b7e1fecfe18f340d60bea4410e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_323.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_323	2020-01-20 09:44:07.319945340 +0000
+@@ -252,8 +252,6 @@
+     }
+     if (debug_aria) {
+         args->add("-robotLogPacketsReceived");
+-        args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+         args->add("-robotLogMovementSent");
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
diff --git a/software_faults/RosAria.cpp._MLPA_324.patch b/software_faults/RosAria.cpp._MLPA_324.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bb6b323f55961a6ea2bd3be68dac7f5e925f923c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_324.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_324	2020-01-20 09:44:07.337945340 +0000
+@@ -253,8 +253,6 @@
+     if (debug_aria) {
+         args->add("-robotLogPacketsReceived");
+         args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
diff --git a/software_faults/RosAria.cpp._MLPA_325.patch b/software_faults/RosAria.cpp._MLPA_325.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f7d5f75bd9e31c04fe165cdf8af5fcbe1995975b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_325.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_325	2020-01-20 09:44:07.357945340 +0000
+@@ -254,8 +254,6 @@
+         args->add("-robotLogPacketsReceived");
+         args->add("-robotLogPacketsSent");
+         args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+-        args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
diff --git a/software_faults/RosAria.cpp._MLPA_326.patch b/software_faults/RosAria.cpp._MLPA_326.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3ec68264d0091e62ad0d3ea94bd4c4fed8dfd4b4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_326.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_326	2020-01-20 09:44:07.375945340 +0000
+@@ -255,8 +255,6 @@
+         args->add("-robotLogPacketsSent");
+         args->add("-robotLogVelocitiesReceived");
+         args->add("-robotLogMovementSent");
+-        args->add("-robotLogMovementReceived");
+-        ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
diff --git a/software_faults/RosAria.cpp._MLPA_327.patch b/software_faults/RosAria.cpp._MLPA_327.patch
new file mode 100644
index 0000000000000000000000000000000000000000..101ff211f45617baec7c590221a64307a88f1926
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_327.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_327	2020-01-20 09:44:07.399945340 +0000
+@@ -251,9 +251,6 @@
+         args->add("-robotBaud %d", serial_baud);
+     }
+     if (debug_aria) {
+-        args->add("-robotLogPacketsReceived");
+-        args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+         args->add("-robotLogMovementSent");
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
diff --git a/software_faults/RosAria.cpp._MLPA_328.patch b/software_faults/RosAria.cpp._MLPA_328.patch
new file mode 100644
index 0000000000000000000000000000000000000000..87776a556f4ec0ad9afcbbfac8d5fbffde600171
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_328.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_328	2020-01-20 09:44:07.426945340 +0000
+@@ -252,9 +252,6 @@
+     }
+     if (debug_aria) {
+         args->add("-robotLogPacketsReceived");
+-        args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
diff --git a/software_faults/RosAria.cpp._MLPA_329.patch b/software_faults/RosAria.cpp._MLPA_329.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f209c9ab7b03f7d1bb42903eb3daabb43ca5a302
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_329.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_329	2020-01-20 09:44:07.448945340 +0000
+@@ -253,9 +253,6 @@
+     if (debug_aria) {
+         args->add("-robotLogPacketsReceived");
+         args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+-        args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
diff --git a/software_faults/RosAria.cpp._MLPA_33.patch b/software_faults/RosAria.cpp._MLPA_33.patch
new file mode 100644
index 0000000000000000000000000000000000000000..eb3e7248d95b1b91367d44b0096a762f10feceea
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_33.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_33	2020-01-20 09:43:57.771945340 +0000
+@@ -176,8 +176,6 @@
+ void RosAriaNode::sonarConnectCb()
+ {
+     publish_sonar = (sonar_pub.getNumSubscribers() > 0);
+-    publish_sonar_pointcloud2 = (sonar_pointcloud2_pub.getNumSubscribers() > 0);
+-    robot->lock();
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         robot->enableSonar();
+         sonar_enabled = false;
+@@ -186,8 +184,6 @@
+             robot->disableSonar();
+             sonar_enabled = true;
+         }
+-
+-    robot->unlock();
+ }
+ 
+ RosAriaNode::RosAriaNode(ros::NodeHandle nh)
diff --git a/software_faults/RosAria.cpp._MLPA_330.patch b/software_faults/RosAria.cpp._MLPA_330.patch
new file mode 100644
index 0000000000000000000000000000000000000000..57d62601f556852a905ef785c8bf230c6f5fa2c3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_330.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_330	2020-01-20 09:44:07.467945340 +0000
+@@ -254,9 +254,6 @@
+         args->add("-robotLogPacketsReceived");
+         args->add("-robotLogPacketsSent");
+         args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+-        args->add("-robotLogMovementReceived");
+-        ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
diff --git a/software_faults/RosAria.cpp._MLPA_331.patch b/software_faults/RosAria.cpp._MLPA_331.patch
new file mode 100644
index 0000000000000000000000000000000000000000..facc071ac8248d7da44876d044405bf8d611e58a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_331.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_331	2020-01-20 09:44:07.491945340 +0000
+@@ -251,10 +251,6 @@
+         args->add("-robotBaud %d", serial_baud);
+     }
+     if (debug_aria) {
+-        args->add("-robotLogPacketsReceived");
+-        args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+         args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
diff --git a/software_faults/RosAria.cpp._MLPA_332.patch b/software_faults/RosAria.cpp._MLPA_332.patch
new file mode 100644
index 0000000000000000000000000000000000000000..00ea50921f651d92126c5ee13c96d6796965a821
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_332.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_332	2020-01-20 09:44:07.516945340 +0000
+@@ -252,10 +252,6 @@
+     }
+     if (debug_aria) {
+         args->add("-robotLogPacketsReceived");
+-        args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+-        args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
diff --git a/software_faults/RosAria.cpp._MLPA_333.patch b/software_faults/RosAria.cpp._MLPA_333.patch
new file mode 100644
index 0000000000000000000000000000000000000000..deb7e53664b70f9eb2fe9136e8dc4a7bbca302c7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_333.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_333	2020-01-20 09:44:07.538945340 +0000
+@@ -253,10 +253,6 @@
+     if (debug_aria) {
+         args->add("-robotLogPacketsReceived");
+         args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+-        args->add("-robotLogMovementReceived");
+-        ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
diff --git a/software_faults/RosAria.cpp._MLPA_334.patch b/software_faults/RosAria.cpp._MLPA_334.patch
new file mode 100644
index 0000000000000000000000000000000000000000..368f2b85fa4e9848be3488c0b169b25afeb894b5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_334.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_334	2020-01-20 09:44:07.566945340 +0000
+@@ -251,11 +251,6 @@
+         args->add("-robotBaud %d", serial_baud);
+     }
+     if (debug_aria) {
+-        args->add("-robotLogPacketsReceived");
+-        args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+-        args->add("-robotLogMovementReceived");
+         ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
diff --git a/software_faults/RosAria.cpp._MLPA_335.patch b/software_faults/RosAria.cpp._MLPA_335.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6e5f13b71274da4a3d52eacd6af01f4d6c7b3145
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_335.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_335	2020-01-20 09:44:07.588945340 +0000
+@@ -252,11 +252,6 @@
+     }
+     if (debug_aria) {
+         args->add("-robotLogPacketsReceived");
+-        args->add("-robotLogPacketsSent");
+-        args->add("-robotLogVelocitiesReceived");
+-        args->add("-robotLogMovementSent");
+-        args->add("-robotLogMovementReceived");
+-        ArLog::init(ArLog::File, ArLog::Verbose, aria_log_filename.c_str(), true);
+     }
+     conn = new ArRobotConnector(argparser, robot);
+     if (!conn->connectRobot()) {
diff --git a/software_faults/RosAria.cpp._MLPA_336.patch b/software_faults/RosAria.cpp._MLPA_336.patch
new file mode 100644
index 0000000000000000000000000000000000000000..aea42f3c15437f03732c856c93100393f0b298bb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_336.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_336	2020-01-20 09:44:07.747945340 +0000
+@@ -313,12 +313,10 @@
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+-        ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+             ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+             return 1;
+         }
+-        robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+         ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+         for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
diff --git a/software_faults/RosAria.cpp._MLPA_337.patch b/software_faults/RosAria.cpp._MLPA_337.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f09e4bc6f3dda19eca2cf8d2ae338432c3ae7cb2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_337.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_337	2020-01-20 09:44:07.766945340 +0000
+@@ -318,9 +318,7 @@
+             ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+             return 1;
+         }
+-        robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+-        ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+         for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
+             ArLaser* l = i->second;
+             int ln = i->first;
diff --git a/software_faults/RosAria.cpp._MLPA_338.patch b/software_faults/RosAria.cpp._MLPA_338.patch
new file mode 100644
index 0000000000000000000000000000000000000000..27bb6f9bd6514a9d1fe336d91cbdd8df6780ee25
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_338.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_338	2020-01-20 09:44:07.781945340 +0000
+@@ -320,7 +320,6 @@
+         }
+         robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+-        ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+         for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
+             ArLaser* l = i->second;
+             int ln = i->first;
+@@ -332,7 +331,6 @@
+             ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+             new LaserPublisher(l, n, true, tfname);
+         }
+-        robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
diff --git a/software_faults/RosAria.cpp._MLPA_339.patch b/software_faults/RosAria.cpp._MLPA_339.patch
new file mode 100644
index 0000000000000000000000000000000000000000..450cdd60024210903e5f75c380c0e911eedbf80e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_339.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_339	2020-01-20 09:44:07.796945340 +0000
+@@ -332,8 +332,6 @@
+             ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+             new LaserPublisher(l, n, true, tfname);
+         }
+-        robot->unlock();
+-        ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
diff --git a/software_faults/RosAria.cpp._MLPA_34.patch b/software_faults/RosAria.cpp._MLPA_34.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ccd74151561494c9c3a35ae6032d69c1b26435a2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_34.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_34	2020-01-20 09:43:57.801945340 +0000
+@@ -175,9 +175,6 @@
+ 
+ void RosAriaNode::sonarConnectCb()
+ {
+-    publish_sonar = (sonar_pub.getNumSubscribers() > 0);
+-    publish_sonar_pointcloud2 = (sonar_pointcloud2_pub.getNumSubscribers() > 0);
+-    robot->lock();
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         robot->enableSonar();
+         sonar_enabled = false;
+@@ -186,8 +183,6 @@
+             robot->disableSonar();
+             sonar_enabled = true;
+         }
+-
+-    robot->unlock();
+ }
+ 
+ RosAriaNode::RosAriaNode(ros::NodeHandle nh)
diff --git a/software_faults/RosAria.cpp._MLPA_340.patch b/software_faults/RosAria.cpp._MLPA_340.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a4592d10851289f09bf403d068d5e820a073aeff
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_340.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_340	2020-01-20 09:44:07.815945340 +0000
+@@ -313,14 +313,11 @@
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+-        ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+             ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+             return 1;
+         }
+-        robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+-        ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+         for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
+             ArLaser* l = i->second;
+             int ln = i->first;
diff --git a/software_faults/RosAria.cpp._MLPA_341.patch b/software_faults/RosAria.cpp._MLPA_341.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5b2717515cd1717f6846b4813b92209f696881f4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_341.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_341	2020-01-20 09:44:07.841945340 +0000
+@@ -318,9 +318,7 @@
+             ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+             return 1;
+         }
+-        robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+-        ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+         for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
+             ArLaser* l = i->second;
+             int ln = i->first;
+@@ -332,7 +330,6 @@
+             ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+             new LaserPublisher(l, n, true, tfname);
+         }
+-        robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
diff --git a/software_faults/RosAria.cpp._MLPA_342.patch b/software_faults/RosAria.cpp._MLPA_342.patch
new file mode 100644
index 0000000000000000000000000000000000000000..eee9254d74e67a2d1a6f7e4956133d47bb3aad87
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_342.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_342	2020-01-20 09:44:07.863945340 +0000
+@@ -320,7 +320,6 @@
+         }
+         robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+-        ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+         for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
+             ArLaser* l = i->second;
+             int ln = i->first;
+@@ -332,8 +331,6 @@
+             ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+             new LaserPublisher(l, n, true, tfname);
+         }
+-        robot->unlock();
+-        ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
diff --git a/software_faults/RosAria.cpp._MLPA_343.patch b/software_faults/RosAria.cpp._MLPA_343.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fbf22b0e89c446f206a3208a695823cae0a98c5b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_343.patch
@@ -0,0 +1,25 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_343	2020-01-20 09:44:07.893945340 +0000
+@@ -313,14 +313,11 @@
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+-        ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+             ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+             return 1;
+         }
+-        robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+-        ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+         for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
+             ArLaser* l = i->second;
+             int ln = i->first;
+@@ -332,7 +329,6 @@
+             ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+             new LaserPublisher(l, n, true, tfname);
+         }
+-        robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
diff --git a/software_faults/RosAria.cpp._MLPA_344.patch b/software_faults/RosAria.cpp._MLPA_344.patch
new file mode 100644
index 0000000000000000000000000000000000000000..63988b03595f5f9ef8d2edcd4070e7e31ead0c32
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_344.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_344	2020-01-20 09:44:07.917945340 +0000
+@@ -318,9 +318,7 @@
+             ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+             return 1;
+         }
+-        robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+-        ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+         for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
+             ArLaser* l = i->second;
+             int ln = i->first;
+@@ -332,8 +330,6 @@
+             ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+             new LaserPublisher(l, n, true, tfname);
+         }
+-        robot->unlock();
+-        ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
diff --git a/software_faults/RosAria.cpp._MLPA_345.patch b/software_faults/RosAria.cpp._MLPA_345.patch
new file mode 100644
index 0000000000000000000000000000000000000000..07d248ce967b833d2b8930a2302f4f0b3d744bde
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_345.patch
@@ -0,0 +1,26 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_345	2020-01-20 09:44:07.945945340 +0000
+@@ -313,14 +313,11 @@
+     bumpers.rear_bumpers.resize(robot->getNumRearBumpers());
+     robot->runAsync(true);
+     if (publish_aria_lasers) {
+-        ROS_INFO_NAMED("rosaria", "rosaria: Connecting to laser(s) configured in ARIA parameter file(s)...");
+         if (!laserConnector->connectLasers()) {
+             ROS_FATAL_NAMED("rosaria", "rosaria: Error connecting to laser(s)...");
+             return 1;
+         }
+-        robot->lock();
+         const std::map<int,ArLaser*>* lasers = robot->getLaserMap();
+-        ROS_INFO_NAMED("rosaria", "rosaria: there are %lu connected lasers", lasers->size());
+         for (std::map<int,ArLaser*>::const_iterator i = lasers->begin();i != lasers->end();++i){
+             ArLaser* l = i->second;
+             int ln = i->first;
+@@ -332,8 +329,6 @@
+             ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+             new LaserPublisher(l, n, true, tfname);
+         }
+-        robot->unlock();
+-        ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
+     cmdvel_sub = n.subscribe("cmd_vel", 1, (boost::function<void(const geometry_msgs::TwistConstPtr&)>)boost::bind(&RosAriaNode::cmdvel_cb, this, _1));
+     double cmdvel_timeout_param = 0.6;
diff --git a/software_faults/RosAria.cpp._MLPA_346.patch b/software_faults/RosAria.cpp._MLPA_346.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6852330c9f56d91683ae26591f5fe0a22f394225
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_346.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_346	2020-01-20 09:44:08.006945340 +0000
+@@ -328,9 +328,8 @@
+             if (lasers->size() > 1 || ln > 1) 
+                 tfname += ln;
+ 
+-            tfname += "_frame";
+-            ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+-            new LaserPublisher(l, n, true, tfname);
++            ne#%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
++w LaserPublisher(l, n, true, tfname);
+         }
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
diff --git a/software_faults/RosAria.cpp._MLPA_347.patch b/software_faults/RosAria.cpp._MLPA_347.patch
new file mode 100644
index 0000000000000000000000000000000000000000..528db30d702dfd0274385056720515d4366c377b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_347.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_347	2020-01-20 09:44:08.028945340 +0000
+@@ -329,9 +329,8 @@
+                 tfname += ln;
+ 
+             tfname += "_frame";
+-            ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+-            new LaserPublisher(l, n, true, tfname);
+-        }
++        #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
++}
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
diff --git a/software_faults/RosAria.cpp._MLPA_348.patch b/software_faults/RosAria.cpp._MLPA_348.patch
new file mode 100644
index 0000000000000000000000000000000000000000..63bd3ff90ba120468f2be899515fd57617c7be0a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_348.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_348	2020-01-20 09:44:08.051945340 +0000
+@@ -327,11 +327,8 @@
+             std::string tfname("laser");
+             if (lasers->size() > 1 || ln > 1) 
+                 tfname += ln;
+-
+-            tfname += "_frame";
+-            ROS_INFO_NAMED("rosaria", "rosaria: Creating publisher for laser #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
+-            new LaserPublisher(l, n, true, tfname);
+-        }
++        #%d named %s with tf frame name %s", ln, l->getName(), tfname.c_str());
++}
+         robot->unlock();
+         ROS_INFO_NAMED("rosaria", "rosaria: Done creating laser publishers");
+     }
diff --git a/software_faults/RosAria.cpp._MLPA_349.patch b/software_faults/RosAria.cpp._MLPA_349.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3899407730be969d16eae0757d6e85c89f6f5538
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_349.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_349	2020-01-20 09:44:08.157945340 +0000
+@@ -353,8 +353,6 @@
+ }
+ void RosAriaNode::publish()
+ {
+-    pos = robot->getPose();
+-    tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
diff --git a/software_faults/RosAria.cpp._MLPA_35.patch b/software_faults/RosAria.cpp._MLPA_35.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f4431e2dcb673b68862c440d1c5b791d7dbceec8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_35.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_35	2020-01-20 09:43:57.844945340 +0000
+@@ -193,8 +193,6 @@
+ RosAriaNode::RosAriaNode(ros::NodeHandle nh)
+ :n(nh), serial_port(""), serial_baud(0), conn(NULL), laserConnector(NULL), robot(NULL), myPublishCB(this, &RosAriaNode::publish), sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false), debug_aria(false), TicksMM(-1), DriftFactor(-99999), RevCount(-1), publish_aria_lasers(false)
+ {
+-    n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+-    ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+     n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
diff --git a/software_faults/RosAria.cpp._MLPA_350.patch b/software_faults/RosAria.cpp._MLPA_350.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8dda7018f83f8b64693bc03310991830dc764ee4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_350.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_350	2020-01-20 09:44:08.171945340 +0000
+@@ -354,8 +354,6 @@
+ void RosAriaNode::publish()
+ {
+     pos = robot->getPose();
+-    tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_351.patch b/software_faults/RosAria.cpp._MLPA_351.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f2cf3cc6b899fb6c9121214b4ea12c309c5e2a14
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_351.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_351	2020-01-20 09:44:08.184945340 +0000
+@@ -355,8 +355,6 @@
+ {
+     pos = robot->getPose();
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
diff --git a/software_faults/RosAria.cpp._MLPA_352.patch b/software_faults/RosAria.cpp._MLPA_352.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9fdc86883fdcb83e494d4b1051ff54f2fc67d806
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_352.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_352	2020-01-20 09:44:08.200945340 +0000
+@@ -356,8 +356,6 @@
+     pos = robot->getPose();
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_353.patch b/software_faults/RosAria.cpp._MLPA_353.patch
new file mode 100644
index 0000000000000000000000000000000000000000..354e98636b9e7558d13592866a3ab4cbc000e006
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_353.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_353	2020-01-20 09:44:08.218945340 +0000
+@@ -357,8 +357,6 @@
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
diff --git a/software_faults/RosAria.cpp._MLPA_354.patch b/software_faults/RosAria.cpp._MLPA_354.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f7b1cd71be15ae730fa5e1a28d5a5dbe10e57342
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_354.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_354	2020-01-20 09:44:08.234945340 +0000
+@@ -358,8 +358,6 @@
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
diff --git a/software_faults/RosAria.cpp._MLPA_355.patch b/software_faults/RosAria.cpp._MLPA_355.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8a9439a47aafaa395b5298993a5cb47f5ced7fcf
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_355.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_355	2020-01-20 09:44:08.248945340 +0000
+@@ -359,8 +359,6 @@
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_356.patch b/software_faults/RosAria.cpp._MLPA_356.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c63e1d5dcd6b2e1808e6bf2773e06c4c85fe091b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_356.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_356	2020-01-20 09:44:08.261945340 +0000
+@@ -360,8 +360,6 @@
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_357.patch b/software_faults/RosAria.cpp._MLPA_357.patch
new file mode 100644
index 0000000000000000000000000000000000000000..224c5821dfd3d701b4504eb4f85aa3af69b2a768
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_357.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_357	2020-01-20 09:44:08.274945340 +0000
+@@ -361,8 +361,6 @@
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
diff --git a/software_faults/RosAria.cpp._MLPA_358.patch b/software_faults/RosAria.cpp._MLPA_358.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e3985c118b2f0e6d051307b4eb6ddce0105d3997
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_358.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_358	2020-01-20 09:44:08.286945340 +0000
+@@ -362,8 +362,6 @@
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_359.patch b/software_faults/RosAria.cpp._MLPA_359.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4af5d6338de431ea58376d274a96f058dfa7774d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_359.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_359	2020-01-20 09:44:08.304945340 +0000
+@@ -363,8 +363,6 @@
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_36.patch b/software_faults/RosAria.cpp._MLPA_36.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ee80d71c434a8e61edecd6dc4f8553210b4297c5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_36.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_36	2020-01-20 09:43:57.863945340 +0000
+@@ -194,8 +194,6 @@
+ :n(nh), serial_port(""), serial_baud(0), conn(NULL), laserConnector(NULL), robot(NULL), myPublishCB(this, &RosAriaNode::publish), sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false), debug_aria(false), TicksMM(-1), DriftFactor(-99999), RevCount(-1), publish_aria_lasers(false)
+ {
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+-    ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_360.patch b/software_faults/RosAria.cpp._MLPA_360.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1a35ce0f26c5a31a85bdd434fe4508108af64af8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_360.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_360	2020-01-20 09:44:08.317945340 +0000
+@@ -364,8 +364,6 @@
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
diff --git a/software_faults/RosAria.cpp._MLPA_361.patch b/software_faults/RosAria.cpp._MLPA_361.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6c2e13c197e47bc654fe401413844c6fefc3fcea
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_361.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_361	2020-01-20 09:44:08.330945340 +0000
+@@ -365,8 +365,6 @@
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
diff --git a/software_faults/RosAria.cpp._MLPA_362.patch b/software_faults/RosAria.cpp._MLPA_362.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b55ab2f42351148e76f5d1c4419bc87b439d4597
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_362.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_362	2020-01-20 09:44:08.342945340 +0000
+@@ -366,8 +366,6 @@
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
diff --git a/software_faults/RosAria.cpp._MLPA_363.patch b/software_faults/RosAria.cpp._MLPA_363.patch
new file mode 100644
index 0000000000000000000000000000000000000000..67f82b1a0dbfde8b059492fb2aeb651e990e0315
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_363.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_363	2020-01-20 09:44:08.355945340 +0000
+@@ -367,8 +367,6 @@
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
diff --git a/software_faults/RosAria.cpp._MLPA_364.patch b/software_faults/RosAria.cpp._MLPA_364.patch
new file mode 100644
index 0000000000000000000000000000000000000000..07245acdd30faea26c712ed722273ed714fc26fc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_364.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_364	2020-01-20 09:44:08.368945340 +0000
+@@ -368,8 +368,6 @@
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
diff --git a/software_faults/RosAria.cpp._MLPA_365.patch b/software_faults/RosAria.cpp._MLPA_365.patch
new file mode 100644
index 0000000000000000000000000000000000000000..39ef6961d4b4eb3b545c127d32c22f763cb34b1c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_365.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_365	2020-01-20 09:44:08.380945340 +0000
+@@ -369,8 +369,6 @@
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
diff --git a/software_faults/RosAria.cpp._MLPA_366.patch b/software_faults/RosAria.cpp._MLPA_366.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ee2a7bc6200357648a4ea03bbf86208bfa73b8e7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_366.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_366	2020-01-20 09:44:08.394945340 +0000
+@@ -370,11 +370,9 @@
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+     bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
diff --git a/software_faults/RosAria.cpp._MLPA_367.patch b/software_faults/RosAria.cpp._MLPA_367.patch
new file mode 100644
index 0000000000000000000000000000000000000000..84f1ffa54e0139a26cf15a5fc100304cfbea2de1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_367.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_367	2020-01-20 09:44:08.406945340 +0000
+@@ -374,8 +374,6 @@
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
diff --git a/software_faults/RosAria.cpp._MLPA_368.patch b/software_faults/RosAria.cpp._MLPA_368.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d48262ab58c899fb3b2d74fdfda49e541c20a76a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_368.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_368	2020-01-20 09:44:08.419945340 +0000
+@@ -375,13 +375,11 @@
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+     bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+     bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
diff --git a/software_faults/RosAria.cpp._MLPA_369.patch b/software_faults/RosAria.cpp._MLPA_369.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1eefbbef835fe85a8c79f5e06ca60fe3392ff189
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_369.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_369	2020-01-20 09:44:08.432945340 +0000
+@@ -381,8 +381,6 @@
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
diff --git a/software_faults/RosAria.cpp._MLPA_37.patch b/software_faults/RosAria.cpp._MLPA_37.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e20d9e06b056c981e0f3e639d20aa44ac1ac98f9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_37.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_37	2020-01-20 09:43:57.879945340 +0000
+@@ -195,11 +195,9 @@
+ {
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+     ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
diff --git a/software_faults/RosAria.cpp._MLPA_370.patch b/software_faults/RosAria.cpp._MLPA_370.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0744f9ba5940c1ca80e59a105126075cdf8b976e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_370.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_370	2020-01-20 09:44:08.445945340 +0000
+@@ -382,13 +382,11 @@
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+     ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
diff --git a/software_faults/RosAria.cpp._MLPA_371.patch b/software_faults/RosAria.cpp._MLPA_371.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d9c2f03938fea9093225e9823d1194183230b845
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_371.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_371	2020-01-20 09:44:08.462945340 +0000
+@@ -388,8 +388,6 @@
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
diff --git a/software_faults/RosAria.cpp._MLPA_372.patch b/software_faults/RosAria.cpp._MLPA_372.patch
new file mode 100644
index 0000000000000000000000000000000000000000..292da1997127471d4804b2078636551d0ca0fad6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_372.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_372	2020-01-20 09:44:08.483945340 +0000
+@@ -389,9 +389,7 @@
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+     ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
diff --git a/software_faults/RosAria.cpp._MLPA_373.patch b/software_faults/RosAria.cpp._MLPA_373.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f053ccbe4598bfd864e7dd18ce8d4cac7cfc8e76
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_373.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_373	2020-01-20 09:44:08.502945340 +0000
+@@ -391,8 +391,6 @@
+     ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
diff --git a/software_faults/RosAria.cpp._MLPA_374.patch b/software_faults/RosAria.cpp._MLPA_374.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b5808b103c8edd850892fb6230730871f1a73f69
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_374.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_374	2020-01-20 09:44:08.522945340 +0000
+@@ -392,7 +392,6 @@
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,7 +443,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+     encoders.right_encoder = robot->getRightEncoder();
+     encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_375.patch b/software_faults/RosAria.cpp._MLPA_375.patch
new file mode 100644
index 0000000000000000000000000000000000000000..862f822c6a0352341bc7b4936c91972f5f9efc1a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_375.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_375	2020-01-20 09:44:08.541945340 +0000
+@@ -444,8 +444,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+     encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
diff --git a/software_faults/RosAria.cpp._MLPA_376.patch b/software_faults/RosAria.cpp._MLPA_376.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ff6544392820316b5e288b4183ba802e1eac150e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_376.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_376	2020-01-20 09:44:08.558945340 +0000
+@@ -445,8 +445,6 @@
+         }
+     }
+     encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_377.patch b/software_faults/RosAria.cpp._MLPA_377.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2df79ad02e78a3b4fd95bbe079ceff39f249ff20
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_377.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_377	2020-01-20 09:44:08.577945340 +0000
+@@ -446,8 +446,6 @@
+     }
+     encoders.left_encoder = robot->getLeftEncoder();
+     encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+-    encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_378.patch b/software_faults/RosAria.cpp._MLPA_378.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7a38a00b0bb525a4fa1c65d7fe4bd921d5e5faf6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_378.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_378	2020-01-20 09:44:08.597945340 +0000
+@@ -447,8 +447,6 @@
+     encoders.left_encoder = robot->getLeftEncoder();
+     encoders.right_encoder = robot->getRightEncoder();
+     encoders.header.stamp = ros::Time::now();
+-    encoders.header.frame_id = frame_id_odom;
+-    encoder_pub.publish(encoders);
+ }
+ 
+ bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
diff --git a/software_faults/RosAria.cpp._MLPA_379.patch b/software_faults/RosAria.cpp._MLPA_379.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a40633a7f569181f9975365b10bca9e88471fc97
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_379.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_379	2020-01-20 09:44:08.619945340 +0000
+@@ -353,9 +353,6 @@
+ }
+ void RosAriaNode::publish()
+ {
+-    pos = robot->getPose();
+-    tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_38.patch b/software_faults/RosAria.cpp._MLPA_38.patch
new file mode 100644
index 0000000000000000000000000000000000000000..375f420c273ce8bbf3f720ced334d6fbcfe36ca1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_38.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_38	2020-01-20 09:43:57.895945340 +0000
+@@ -199,8 +199,6 @@
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
diff --git a/software_faults/RosAria.cpp._MLPA_380.patch b/software_faults/RosAria.cpp._MLPA_380.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b661584cf9c01109b3831857b80e91f6ac49c24a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_380.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_380	2020-01-20 09:44:08.638945340 +0000
+@@ -354,9 +354,6 @@
+ void RosAriaNode::publish()
+ {
+     pos = robot->getPose();
+-    tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
diff --git a/software_faults/RosAria.cpp._MLPA_381.patch b/software_faults/RosAria.cpp._MLPA_381.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5894e0a6630263b6d342e08747249c2d1941b3bd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_381.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_381	2020-01-20 09:44:08.656945340 +0000
+@@ -355,9 +355,6 @@
+ {
+     pos = robot->getPose();
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_382.patch b/software_faults/RosAria.cpp._MLPA_382.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1eff7495632d99266e83afbf2317bab3ace275cb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_382.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_382	2020-01-20 09:44:08.673945340 +0000
+@@ -356,9 +356,6 @@
+     pos = robot->getPose();
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
diff --git a/software_faults/RosAria.cpp._MLPA_383.patch b/software_faults/RosAria.cpp._MLPA_383.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2a7cb828d011bf58652a5c591fd7cd4caf2327cc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_383.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_383	2020-01-20 09:44:08.696945340 +0000
+@@ -357,9 +357,6 @@
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
diff --git a/software_faults/RosAria.cpp._MLPA_384.patch b/software_faults/RosAria.cpp._MLPA_384.patch
new file mode 100644
index 0000000000000000000000000000000000000000..418cd985f7011225667ba87619fe3b4df8a1c7fc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_384.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_384	2020-01-20 09:44:08.718945340 +0000
+@@ -358,9 +358,6 @@
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_385.patch b/software_faults/RosAria.cpp._MLPA_385.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3aeef4bf0a5fbbf16b7a09babd895b6f03c6f8c2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_385.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_385	2020-01-20 09:44:08.739945340 +0000
+@@ -359,9 +359,6 @@
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_386.patch b/software_faults/RosAria.cpp._MLPA_386.patch
new file mode 100644
index 0000000000000000000000000000000000000000..012e4caec22d79f443ed1ada094771f3c53b2afd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_386.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_386	2020-01-20 09:44:08.758945340 +0000
+@@ -360,9 +360,6 @@
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
diff --git a/software_faults/RosAria.cpp._MLPA_387.patch b/software_faults/RosAria.cpp._MLPA_387.patch
new file mode 100644
index 0000000000000000000000000000000000000000..de625f8c3d89ee82f6ce408c032db964a7da0754
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_387.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_387	2020-01-20 09:44:08.776945340 +0000
+@@ -361,9 +361,6 @@
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_388.patch b/software_faults/RosAria.cpp._MLPA_388.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2132a2906dce55ba80d1c15cbaeded8f07f38433
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_388.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_388	2020-01-20 09:44:08.798945340 +0000
+@@ -362,9 +362,6 @@
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_389.patch b/software_faults/RosAria.cpp._MLPA_389.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7b60290e4de902b4c416ca2ddcad6032ff9c6780
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_389.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_389	2020-01-20 09:44:08.817945340 +0000
+@@ -363,9 +363,6 @@
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
diff --git a/software_faults/RosAria.cpp._MLPA_39.patch b/software_faults/RosAria.cpp._MLPA_39.patch
new file mode 100644
index 0000000000000000000000000000000000000000..dd15ccca011689e2dc40580a26a9f994dfe1f35f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_39.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_39	2020-01-20 09:43:57.915945340 +0000
+@@ -200,8 +200,6 @@
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+     n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
diff --git a/software_faults/RosAria.cpp._MLPA_390.patch b/software_faults/RosAria.cpp._MLPA_390.patch
new file mode 100644
index 0000000000000000000000000000000000000000..081d5474ef16f91e9b4b5a66aa33abc38c26b5a1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_390.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_390	2020-01-20 09:44:08.836945340 +0000
+@@ -364,9 +364,6 @@
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
diff --git a/software_faults/RosAria.cpp._MLPA_391.patch b/software_faults/RosAria.cpp._MLPA_391.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c23a12bf00f298929b433b3260b81da4a1d2eb4b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_391.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_391	2020-01-20 09:44:08.853945340 +0000
+@@ -365,9 +365,6 @@
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
diff --git a/software_faults/RosAria.cpp._MLPA_392.patch b/software_faults/RosAria.cpp._MLPA_392.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a8f411ee285daf8a6c20352e349f1a369d29f950
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_392.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_392	2020-01-20 09:44:08.876945340 +0000
+@@ -366,9 +366,6 @@
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
diff --git a/software_faults/RosAria.cpp._MLPA_393.patch b/software_faults/RosAria.cpp._MLPA_393.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3bf87ba8c03408f131e3ea3b3c24cb80b6e2c963
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_393.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_393	2020-01-20 09:44:08.896945340 +0000
+@@ -367,9 +367,6 @@
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
diff --git a/software_faults/RosAria.cpp._MLPA_394.patch b/software_faults/RosAria.cpp._MLPA_394.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6d50f6e2a37c2b5c1119bf34002cd085b7ae8439
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_394.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_394	2020-01-20 09:44:08.918945340 +0000
+@@ -368,9 +368,6 @@
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
diff --git a/software_faults/RosAria.cpp._MLPA_395.patch b/software_faults/RosAria.cpp._MLPA_395.patch
new file mode 100644
index 0000000000000000000000000000000000000000..02834de5fa7cd437cac0f748499a37ac7ad289af
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_395.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_395	2020-01-20 09:44:08.939945340 +0000
+@@ -369,12 +369,9 @@
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+     bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
diff --git a/software_faults/RosAria.cpp._MLPA_396.patch b/software_faults/RosAria.cpp._MLPA_396.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b31e8144ad5595f4c607761c3f6afcb08735126e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_396.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_396	2020-01-20 09:44:08.961945340 +0000
+@@ -370,12 +370,9 @@
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
diff --git a/software_faults/RosAria.cpp._MLPA_397.patch b/software_faults/RosAria.cpp._MLPA_397.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b143839cbd863e94d6977a8161f269863c0a67f3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_397.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_397	2020-01-20 09:44:08.982945340 +0000
+@@ -374,14 +374,11 @@
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+     bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
diff --git a/software_faults/RosAria.cpp._MLPA_398.patch b/software_faults/RosAria.cpp._MLPA_398.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d668b1da1cf2abad15df2cc6f94c12ab56cf67ce
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_398.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_398	2020-01-20 09:44:09.000945340 +0000
+@@ -375,14 +375,11 @@
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+     bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
diff --git a/software_faults/RosAria.cpp._MLPA_399.patch b/software_faults/RosAria.cpp._MLPA_399.patch
new file mode 100644
index 0000000000000000000000000000000000000000..71608ab6dcf9b9be9d7a38115eb78ff9eea67b49
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_399.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_399	2020-01-20 09:44:09.022945340 +0000
+@@ -381,14 +381,11 @@
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
diff --git a/software_faults/RosAria.cpp._MLPA_4.patch b/software_faults/RosAria.cpp._MLPA_4.patch
new file mode 100644
index 0000000000000000000000000000000000000000..689c3524cbbc041f5203ae28f418422bbf0ab300
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_4.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_4	2020-01-20 09:43:56.075945340 +0000
+@@ -148,13 +148,11 @@
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
diff --git a/software_faults/RosAria.cpp._MLPA_40.patch b/software_faults/RosAria.cpp._MLPA_40.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0a9e372a0fd43173f0218a7cb69b103a00020fae
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_40.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_40	2020-01-20 09:43:57.935945340 +0000
+@@ -201,8 +201,6 @@
+ 
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
diff --git a/software_faults/RosAria.cpp._MLPA_400.patch b/software_faults/RosAria.cpp._MLPA_400.patch
new file mode 100644
index 0000000000000000000000000000000000000000..21721823ddfe84f077b06915b613d51f9d29865d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_400.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_400	2020-01-20 09:44:09.038945340 +0000
+@@ -382,14 +382,11 @@
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+     ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
diff --git a/software_faults/RosAria.cpp._MLPA_401.patch b/software_faults/RosAria.cpp._MLPA_401.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0251d06a5fb975b5ed98a5a134a16a9ce14d7b83
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_401.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_401	2020-01-20 09:44:09.056945340 +0000
+@@ -388,10 +388,7 @@
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
diff --git a/software_faults/RosAria.cpp._MLPA_402.patch b/software_faults/RosAria.cpp._MLPA_402.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fc9aae13715d829a0818060afccc7323f4db06c0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_402.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_402	2020-01-20 09:44:09.078945340 +0000
+@@ -389,10 +389,7 @@
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+     ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
diff --git a/software_faults/RosAria.cpp._MLPA_403.patch b/software_faults/RosAria.cpp._MLPA_403.patch
new file mode 100644
index 0000000000000000000000000000000000000000..09072e58edf6a4fa77393445566c614290ff2f8a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_403.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_403	2020-01-20 09:44:09.099945340 +0000
+@@ -391,8 +391,6 @@
+     ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,7 +442,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+     encoders.right_encoder = robot->getRightEncoder();
+     encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_404.patch b/software_faults/RosAria.cpp._MLPA_404.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a24dec2d5853ba4e8e519263fccdbdfee0e66986
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_404.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_404	2020-01-20 09:44:09.121945340 +0000
+@@ -392,7 +392,6 @@
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,8 +443,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+     encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
diff --git a/software_faults/RosAria.cpp._MLPA_405.patch b/software_faults/RosAria.cpp._MLPA_405.patch
new file mode 100644
index 0000000000000000000000000000000000000000..bf7b40cc799b64c31937ba1c4a5d0f94d0216aec
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_405.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_405	2020-01-20 09:44:09.141945340 +0000
+@@ -444,9 +444,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_406.patch b/software_faults/RosAria.cpp._MLPA_406.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0ea1a4f33716ddfea1b47b67b946efd088e9ed7a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_406.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_406	2020-01-20 09:44:09.163945340 +0000
+@@ -445,9 +445,6 @@
+         }
+     }
+     encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+-    encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_407.patch b/software_faults/RosAria.cpp._MLPA_407.patch
new file mode 100644
index 0000000000000000000000000000000000000000..67ed6b2e7908ffe2d1f68c49d3365552eddabedd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_407.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_407	2020-01-20 09:44:09.181945340 +0000
+@@ -446,9 +446,6 @@
+     }
+     encoders.left_encoder = robot->getLeftEncoder();
+     encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+-    encoders.header.frame_id = frame_id_odom;
+-    encoder_pub.publish(encoders);
+ }
+ 
+ bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
diff --git a/software_faults/RosAria.cpp._MLPA_408.patch b/software_faults/RosAria.cpp._MLPA_408.patch
new file mode 100644
index 0000000000000000000000000000000000000000..12be7d1375b813402159c80c8d42862ba275e3e9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_408.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_408	2020-01-20 09:44:09.203945340 +0000
+@@ -353,10 +353,6 @@
+ }
+ void RosAriaNode::publish()
+ {
+-    pos = robot->getPose();
+-    tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
diff --git a/software_faults/RosAria.cpp._MLPA_409.patch b/software_faults/RosAria.cpp._MLPA_409.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a21c2afb1e9122aa8c10a5738a4b3fa12d6d4b35
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_409.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_409	2020-01-20 09:44:09.221945340 +0000
+@@ -354,10 +354,6 @@
+ void RosAriaNode::publish()
+ {
+     pos = robot->getPose();
+-    tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_41.patch b/software_faults/RosAria.cpp._MLPA_41.patch
new file mode 100644
index 0000000000000000000000000000000000000000..97bfecda992f9cdc690c1ca040fda00264e63683
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_41.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_41	2020-01-20 09:43:57.953945340 +0000
+@@ -202,8 +202,6 @@
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_410.patch b/software_faults/RosAria.cpp._MLPA_410.patch
new file mode 100644
index 0000000000000000000000000000000000000000..17bcc788a6f01b12d5ebee84c569b2288440168a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_410.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_410	2020-01-20 09:44:09.238945340 +0000
+@@ -355,10 +355,6 @@
+ {
+     pos = robot->getPose();
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
diff --git a/software_faults/RosAria.cpp._MLPA_411.patch b/software_faults/RosAria.cpp._MLPA_411.patch
new file mode 100644
index 0000000000000000000000000000000000000000..504fed29e27ded926fd4eed99c7bee96284ad29e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_411.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_411	2020-01-20 09:44:09.258945340 +0000
+@@ -356,10 +356,6 @@
+     pos = robot->getPose();
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
diff --git a/software_faults/RosAria.cpp._MLPA_412.patch b/software_faults/RosAria.cpp._MLPA_412.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a836579ab87243f7da0c51ca3d9b8b37ecbb6dd8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_412.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_412	2020-01-20 09:44:09.274945340 +0000
+@@ -357,10 +357,6 @@
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_413.patch b/software_faults/RosAria.cpp._MLPA_413.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e10116e46fa63d4129dfa5189da9470801fa5f67
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_413.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_413	2020-01-20 09:44:09.291945340 +0000
+@@ -358,10 +358,6 @@
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_414.patch b/software_faults/RosAria.cpp._MLPA_414.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fce5e2fefcac9a1168eb43d1852d5b74f7dd890f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_414.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_414	2020-01-20 09:44:09.309945340 +0000
+@@ -359,10 +359,6 @@
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
diff --git a/software_faults/RosAria.cpp._MLPA_415.patch b/software_faults/RosAria.cpp._MLPA_415.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9a85dc3cc6148f41d10fb635f4f9f6f94998b6b8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_415.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_415	2020-01-20 09:44:09.333945340 +0000
+@@ -360,10 +360,6 @@
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_416.patch b/software_faults/RosAria.cpp._MLPA_416.patch
new file mode 100644
index 0000000000000000000000000000000000000000..10521215fd0a36335f13fabeccfd223addc3d34f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_416.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_416	2020-01-20 09:44:09.356945340 +0000
+@@ -361,10 +361,6 @@
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_417.patch b/software_faults/RosAria.cpp._MLPA_417.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0cc96f8c080b60d9d71d4579cf05b7e97c14ba4a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_417.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_417	2020-01-20 09:44:09.377945340 +0000
+@@ -362,10 +362,6 @@
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
diff --git a/software_faults/RosAria.cpp._MLPA_418.patch b/software_faults/RosAria.cpp._MLPA_418.patch
new file mode 100644
index 0000000000000000000000000000000000000000..973bc6273465908f6a93543c8e7aa015dc250620
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_418.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_418	2020-01-20 09:44:09.397945340 +0000
+@@ -363,10 +363,6 @@
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
diff --git a/software_faults/RosAria.cpp._MLPA_419.patch b/software_faults/RosAria.cpp._MLPA_419.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f5b1ebac0604ff22fab43428e326673c54828da1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_419.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_419	2020-01-20 09:44:09.416945340 +0000
+@@ -364,10 +364,6 @@
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
diff --git a/software_faults/RosAria.cpp._MLPA_42.patch b/software_faults/RosAria.cpp._MLPA_42.patch
new file mode 100644
index 0000000000000000000000000000000000000000..33590d9e0bac792974a6645fce28066cc3da17bd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_42.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_42	2020-01-20 09:43:57.970945340 +0000
+@@ -203,8 +203,6 @@
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_420.patch b/software_faults/RosAria.cpp._MLPA_420.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e4e383a28570df8d7682015379fca8cc6f385024
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_420.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_420	2020-01-20 09:44:09.434945340 +0000
+@@ -365,10 +365,6 @@
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
diff --git a/software_faults/RosAria.cpp._MLPA_421.patch b/software_faults/RosAria.cpp._MLPA_421.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7505343e85f86d5daefbab84f5eff69b36ef8ba0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_421.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_421	2020-01-20 09:44:09.452945340 +0000
+@@ -366,10 +366,6 @@
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
diff --git a/software_faults/RosAria.cpp._MLPA_422.patch b/software_faults/RosAria.cpp._MLPA_422.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f52614a0cd99a3c963eb9779544dc47ac3a92d2a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_422.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_422	2020-01-20 09:44:09.469945340 +0000
+@@ -367,10 +367,6 @@
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
diff --git a/software_faults/RosAria.cpp._MLPA_423.patch b/software_faults/RosAria.cpp._MLPA_423.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2ceae287794127022ce5bbddc26ab9d3f278f0bb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_423.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_423	2020-01-20 09:44:09.486945340 +0000
+@@ -368,13 +368,9 @@
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+     bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
diff --git a/software_faults/RosAria.cpp._MLPA_424.patch b/software_faults/RosAria.cpp._MLPA_424.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e555664cd7765c41a3373cf49b67c15904ff555d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_424.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_424	2020-01-20 09:44:09.504945340 +0000
+@@ -369,13 +369,9 @@
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
diff --git a/software_faults/RosAria.cpp._MLPA_425.patch b/software_faults/RosAria.cpp._MLPA_425.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b16cda746acf2ff5c9179890c83fef171a22b138
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_425.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_425	2020-01-20 09:44:09.520945340 +0000
+@@ -370,18 +370,14 @@
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+     bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
diff --git a/software_faults/RosAria.cpp._MLPA_426.patch b/software_faults/RosAria.cpp._MLPA_426.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4511767e473e4d5509adb1fcc8ac1d1b484f7baf
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_426.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_426	2020-01-20 09:44:09.537945340 +0000
+@@ -374,15 +374,11 @@
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
diff --git a/software_faults/RosAria.cpp._MLPA_427.patch b/software_faults/RosAria.cpp._MLPA_427.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e8f789a75b64bfa3c8a4fc6bd4b4071f221d432a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_427.patch
@@ -0,0 +1,23 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_427	2020-01-20 09:44:09.553945340 +0000
+@@ -375,20 +375,16 @@
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+     bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
diff --git a/software_faults/RosAria.cpp._MLPA_428.patch b/software_faults/RosAria.cpp._MLPA_428.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e8eda373aebf7a9cbf063d7b02740f8be678ae4e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_428.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_428	2020-01-20 09:44:09.578945340 +0000
+@@ -381,15 +381,11 @@
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
diff --git a/software_faults/RosAria.cpp._MLPA_429.patch b/software_faults/RosAria.cpp._MLPA_429.patch
new file mode 100644
index 0000000000000000000000000000000000000000..68a84a9f307d1e0f07a388a067c1f7102f814635
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_429.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_429	2020-01-20 09:44:09.607945340 +0000
+@@ -382,16 +382,12 @@
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+     ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
diff --git a/software_faults/RosAria.cpp._MLPA_43.patch b/software_faults/RosAria.cpp._MLPA_43.patch
new file mode 100644
index 0000000000000000000000000000000000000000..642b8c68999706a7aeb1e2d14d5285731a1a02ab
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_43.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_43	2020-01-20 09:43:57.986945340 +0000
+@@ -204,8 +204,6 @@
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
diff --git a/software_faults/RosAria.cpp._MLPA_430.patch b/software_faults/RosAria.cpp._MLPA_430.patch
new file mode 100644
index 0000000000000000000000000000000000000000..17ee66f05eaf388410d5b19d3e58e5fd842fa71c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_430.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_430	2020-01-20 09:44:09.629945340 +0000
+@@ -388,11 +388,7 @@
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
diff --git a/software_faults/RosAria.cpp._MLPA_431.patch b/software_faults/RosAria.cpp._MLPA_431.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f8f5f6e4803e40b43914f6e4d2bf5e5c3a2e1566
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_431.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_431	2020-01-20 09:44:09.651945340 +0000
+@@ -389,10 +389,7 @@
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+     ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,7 +441,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+     encoders.right_encoder = robot->getRightEncoder();
+     encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_432.patch b/software_faults/RosAria.cpp._MLPA_432.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a305501b35fdf2f2f62c80c7237ac16d28fcc507
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_432.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_432	2020-01-20 09:44:09.671945340 +0000
+@@ -391,8 +391,6 @@
+     ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,8 +442,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+     encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
diff --git a/software_faults/RosAria.cpp._MLPA_433.patch b/software_faults/RosAria.cpp._MLPA_433.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d89ba3fd2f552a06818b78683ea4baff7a6ef42d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_433.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_433	2020-01-20 09:44:09.696945340 +0000
+@@ -392,7 +392,6 @@
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,9 +443,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_434.patch b/software_faults/RosAria.cpp._MLPA_434.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7d4495966bff6e0671d42b08167fb51647abe048
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_434.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_434	2020-01-20 09:44:09.720945340 +0000
+@@ -444,10 +444,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+-    encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_435.patch b/software_faults/RosAria.cpp._MLPA_435.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3a571a37fe86991664b42162cdad7648f8902541
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_435.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_435	2020-01-20 09:44:09.744945340 +0000
+@@ -445,10 +445,6 @@
+         }
+     }
+     encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+-    encoders.header.frame_id = frame_id_odom;
+-    encoder_pub.publish(encoders);
+ }
+ 
+ bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
diff --git a/software_faults/RosAria.cpp._MLPA_436.patch b/software_faults/RosAria.cpp._MLPA_436.patch
new file mode 100644
index 0000000000000000000000000000000000000000..10948143877d8dd109885ab9b60c164e27cd663a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_436.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_436	2020-01-20 09:44:09.778945340 +0000
+@@ -353,11 +353,6 @@
+ }
+ void RosAriaNode::publish()
+ {
+-    pos = robot->getPose();
+-    tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_437.patch b/software_faults/RosAria.cpp._MLPA_437.patch
new file mode 100644
index 0000000000000000000000000000000000000000..671036be3cc983ca59428431e4f325d8431c5c6a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_437.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_437	2020-01-20 09:44:09.805945340 +0000
+@@ -354,11 +354,6 @@
+ void RosAriaNode::publish()
+ {
+     pos = robot->getPose();
+-    tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
diff --git a/software_faults/RosAria.cpp._MLPA_438.patch b/software_faults/RosAria.cpp._MLPA_438.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3adc24e766e1ee94dc676d48a1310d0d70607ac1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_438.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_438	2020-01-20 09:44:09.831945340 +0000
+@@ -355,11 +355,6 @@
+ {
+     pos = robot->getPose();
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+-    position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
diff --git a/software_faults/RosAria.cpp._MLPA_439.patch b/software_faults/RosAria.cpp._MLPA_439.patch
new file mode 100644
index 0000000000000000000000000000000000000000..542fced444084aa9e18f08bc33a01cfc8aeeeaaf
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_439.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_439	2020-01-20 09:44:09.858945340 +0000
+@@ -356,11 +356,6 @@
+     pos = robot->getPose();
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+-    position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_44.patch b/software_faults/RosAria.cpp._MLPA_44.patch
new file mode 100644
index 0000000000000000000000000000000000000000..45da9333770e06cec0ea59006a9233a519569bd9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_44.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_44	2020-01-20 09:43:58.001945340 +0000
+@@ -205,8 +205,6 @@
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
diff --git a/software_faults/RosAria.cpp._MLPA_440.patch b/software_faults/RosAria.cpp._MLPA_440.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1503cdc94f31e4f342b75f04b5027ae7ab0cc275
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_440.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_440	2020-01-20 09:44:09.885945340 +0000
+@@ -357,11 +357,6 @@
+     tf::poseTFToMsg(tf::Transform(tf::createQuaternionFromYaw(pos.getTh() * M_PI / 180), tf::Vector3(pos.getX() / 1000, pos.getY() / 1000, 0)), position.pose.pose);
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+-    position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_441.patch b/software_faults/RosAria.cpp._MLPA_441.patch
new file mode 100644
index 0000000000000000000000000000000000000000..37655c5eb2bfa49f7a88311bf4f9bd82e7cb0209
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_441.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_441	2020-01-20 09:44:09.911945340 +0000
+@@ -358,11 +358,6 @@
+     position.twist.twist.linear.x = robot->getVel() / 1000.0;
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+-    position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
diff --git a/software_faults/RosAria.cpp._MLPA_442.patch b/software_faults/RosAria.cpp._MLPA_442.patch
new file mode 100644
index 0000000000000000000000000000000000000000..269ce6f72c3c31fa17626d9dad0766dfc118f72e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_442.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_442	2020-01-20 09:44:09.937945340 +0000
+@@ -359,11 +359,6 @@
+     position.twist.twist.linear.y = robot->getLatVel() / 1000.0;
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+-    position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_443.patch b/software_faults/RosAria.cpp._MLPA_443.patch
new file mode 100644
index 0000000000000000000000000000000000000000..10ab595f96fed1477eb73ba62385f9e7c0c22540
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_443.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_443	2020-01-20 09:44:09.964945340 +0000
+@@ -360,11 +360,6 @@
+     position.twist.twist.angular.z = robot->getRotVel() * M_PI / 180;
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+-    position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
diff --git a/software_faults/RosAria.cpp._MLPA_444.patch b/software_faults/RosAria.cpp._MLPA_444.patch
new file mode 100644
index 0000000000000000000000000000000000000000..006bf2f184cec90efbb3a97d5994e6a347a0b2a7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_444.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_444	2020-01-20 09:44:09.990945340 +0000
+@@ -361,11 +361,6 @@
+     position.header.frame_id = frame_id_odom;
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+-    pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
diff --git a/software_faults/RosAria.cpp._MLPA_445.patch b/software_faults/RosAria.cpp._MLPA_445.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ec2114424606ce0ecd1437b6efa70bb7ca571db1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_445.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_445	2020-01-20 09:44:10.015945340 +0000
+@@ -362,11 +362,6 @@
+     position.child_frame_id = frame_id_base_link;
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+-    ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
diff --git a/software_faults/RosAria.cpp._MLPA_446.patch b/software_faults/RosAria.cpp._MLPA_446.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6e5ac976542177497645cfc823aa7bed682210ab
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_446.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_446	2020-01-20 09:44:10.039945340 +0000
+@@ -363,11 +363,6 @@
+     position.header.stamp = ros::Time::now();
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+-    odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
diff --git a/software_faults/RosAria.cpp._MLPA_447.patch b/software_faults/RosAria.cpp._MLPA_447.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d507aefe2c76ef2cd5bc89181730c52b901e36c8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_447.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_447	2020-01-20 09:44:10.061945340 +0000
+@@ -364,11 +364,6 @@
+     pose_pub.publish(position);
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+-    odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
diff --git a/software_faults/RosAria.cpp._MLPA_448.patch b/software_faults/RosAria.cpp._MLPA_448.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fd82bfc049386a70f60cb89d121223a28c1d7be7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_448.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_448	2020-01-20 09:44:10.087945340 +0000
+@@ -365,11 +365,6 @@
+     ROS_DEBUG("RosAria: publish: (time %f) pose x: %f, pose y: %f, pose angle: %f; linear vel x: %f, vel y: %f; angular vel z: %f", position.header.stamp.toSec(), (double)position.pose.pose.position.x, (double)position.pose.pose.position.y, (double)position.pose.pose.orientation.w, (double)position.twist.twist.linear.x, (double)position.twist.twist.linear.y, (double)position.twist.twist.angular.z);
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+-    odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+     odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
diff --git a/software_faults/RosAria.cpp._MLPA_449.patch b/software_faults/RosAria.cpp._MLPA_449.patch
new file mode 100644
index 0000000000000000000000000000000000000000..dac11476028b266e571d60ab3d9de0f9af5ae4f0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_449.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_449	2020-01-20 09:44:10.112945340 +0000
+@@ -366,11 +366,6 @@
+     odom_trans.header.stamp = ros::Time::now();
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+-    odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
diff --git a/software_faults/RosAria.cpp._MLPA_45.patch b/software_faults/RosAria.cpp._MLPA_45.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4aaea45ee309561e33eb0756633c667565ae0b60
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_45.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_45	2020-01-20 09:43:58.022945340 +0000
+@@ -206,8 +206,6 @@
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_450.patch b/software_faults/RosAria.cpp._MLPA_450.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1f3d8551b53dab3ded7b0ef8ea74240679e5589e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_450.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_450	2020-01-20 09:44:10.142945340 +0000
+@@ -367,14 +367,9 @@
+     odom_trans.header.frame_id = frame_id_odom;
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+-    odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+     bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
diff --git a/software_faults/RosAria.cpp._MLPA_451.patch b/software_faults/RosAria.cpp._MLPA_451.patch
new file mode 100644
index 0000000000000000000000000000000000000000..13c4641c1d7148bf0c16a8917e4b69b1b07b8567
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_451.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_451	2020-01-20 09:44:10.168945340 +0000
+@@ -368,14 +368,9 @@
+     odom_trans.child_frame_id = frame_id_base_link;
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+-    odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
diff --git a/software_faults/RosAria.cpp._MLPA_452.patch b/software_faults/RosAria.cpp._MLPA_452.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c07749eb17d2c075816f09e85edb4968b78ad5fe
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_452.patch
@@ -0,0 +1,22 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_452	2020-01-20 09:44:10.196945340 +0000
+@@ -369,19 +369,14 @@
+     odom_trans.transform.translation.x = pos.getX() / 1000;
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+-    odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+     bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
diff --git a/software_faults/RosAria.cpp._MLPA_453.patch b/software_faults/RosAria.cpp._MLPA_453.patch
new file mode 100644
index 0000000000000000000000000000000000000000..74fdd8e91013dbc1a29d30f3b93cec8e971a2d9a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_453.patch
@@ -0,0 +1,22 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_453	2020-01-20 09:44:10.221945340 +0000
+@@ -370,19 +370,14 @@
+     odom_trans.transform.translation.y = pos.getY() / 1000;
+     odom_trans.transform.translation.z = 0.0;
+     odom_trans.transform.rotation = tf::createQuaternionMsgFromYaw(pos.getTh() * M_PI / 180);
+-    odom_broadcaster.sendTransform(odom_trans);
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
diff --git a/software_faults/RosAria.cpp._MLPA_454.patch b/software_faults/RosAria.cpp._MLPA_454.patch
new file mode 100644
index 0000000000000000000000000000000000000000..91158dcf46b490b12c9dfb09dcc93852cc58011d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_454.patch
@@ -0,0 +1,24 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_454	2020-01-20 09:44:10.245945340 +0000
+@@ -374,21 +374,16 @@
+     int stall = robot->getStallValue();
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+-    bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
diff --git a/software_faults/RosAria.cpp._MLPA_455.patch b/software_faults/RosAria.cpp._MLPA_455.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a8e28c3cca470c403c86afe8557aa611a3f007de
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_455.patch
@@ -0,0 +1,24 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_455	2020-01-20 09:44:10.271945340 +0000
+@@ -375,21 +375,16 @@
+     unsigned char front_bumpers = (unsigned char)(stall >> 8);
+     unsigned char rear_bumpers = (unsigned char)(stall);
+     bumpers.header.frame_id = frame_id_bumper;
+-    bumpers.header.stamp = ros::Time::now();
+     std::stringstream bumper_info(std::stringstream::out);
+     for (unsigned int i = 0;i < robot->getNumFrontBumpers();i++){
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
diff --git a/software_faults/RosAria.cpp._MLPA_456.patch b/software_faults/RosAria.cpp._MLPA_456.patch
new file mode 100644
index 0000000000000000000000000000000000000000..99ad43790128d83919b7ab061bf8de01d2fa2c6a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_456.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_456	2020-01-20 09:44:10.293945340 +0000
+@@ -381,17 +381,12 @@
+         bumpers.front_bumpers[i] = (front_bumpers & (1 << (i + 1))) == 0 ? 0 : 1;
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+-    ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+     voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
diff --git a/software_faults/RosAria.cpp._MLPA_457.patch b/software_faults/RosAria.cpp._MLPA_457.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f43570dab595a8584b94e57a22a31a10bf5731e4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_457.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_457	2020-01-20 09:44:10.315945340 +0000
+@@ -382,17 +382,12 @@
+         bumper_info << " " << (front_bumpers & (1 << (i + 1)));
+     }
+     ROS_DEBUG("RosAria: Front bumpers:%s", bumper_info.str().c_str());
+-    bumper_info.str("");
+     unsigned int numRearBumpers = robot->getNumRearBumpers();
+     for (unsigned int i = 0;i < numRearBumpers;i++){
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
diff --git a/software_faults/RosAria.cpp._MLPA_458.patch b/software_faults/RosAria.cpp._MLPA_458.patch
new file mode 100644
index 0000000000000000000000000000000000000000..699c7ff2119aee5c13ecb7504531e3ccf06f8c0d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_458.patch
@@ -0,0 +1,22 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_458	2020-01-20 09:44:10.349945340 +0000
+@@ -388,11 +388,7 @@
+         bumpers.rear_bumpers[i] = (rear_bumpers & (1 << (numRearBumpers - i))) == 0 ? 0 : 1;
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+-    ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,7 +440,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+     encoders.right_encoder = robot->getRightEncoder();
+     encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
diff --git a/software_faults/RosAria.cpp._MLPA_459.patch b/software_faults/RosAria.cpp._MLPA_459.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b26935708b1568c32fb40930c096af90d409ffbb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_459.patch
@@ -0,0 +1,22 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_459	2020-01-20 09:44:10.379945340 +0000
+@@ -389,10 +389,7 @@
+         bumper_info << " " << (rear_bumpers & (1 << (numRearBumpers - i)));
+     }
+     ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+-    bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,8 +441,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+     encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
diff --git a/software_faults/RosAria.cpp._MLPA_46.patch b/software_faults/RosAria.cpp._MLPA_46.patch
new file mode 100644
index 0000000000000000000000000000000000000000..fdf4f6b12ed6dbc24f53e287a54dc7c8d5e93697
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_46.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_46	2020-01-20 09:43:58.037945340 +0000
+@@ -207,8 +207,6 @@
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
diff --git a/software_faults/RosAria.cpp._MLPA_460.patch b/software_faults/RosAria.cpp._MLPA_460.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d68a16759b0f98b54e6a1afeef62d28bf5034f77
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_460.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_460	2020-01-20 09:44:10.406945340 +0000
+@@ -391,8 +391,6 @@
+     ROS_DEBUG("RosAria: Rear bumpers:%s", bumper_info.str().c_str());
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+-    batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,9 +442,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+     encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_461.patch b/software_faults/RosAria.cpp._MLPA_461.patch
new file mode 100644
index 0000000000000000000000000000000000000000..532f2de75f71c9377823040114eb856a68f2d4e3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_461.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_461	2020-01-20 09:44:10.432945340 +0000
+@@ -392,7 +392,6 @@
+     bumpers_pub.publish(bumpers);
+     std_msgs::Float64 batteryVoltage;
+     batteryVoltage.data = robot->getRealBatteryVoltageNow();
+-    voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+         soc.data = robot->getStateOfCharge() / 100.0;
+@@ -444,10 +443,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+-    encoders.header.frame_id = frame_id_odom;
+     encoder_pub.publish(encoders);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_462.patch b/software_faults/RosAria.cpp._MLPA_462.patch
new file mode 100644
index 0000000000000000000000000000000000000000..849c4397eb36eceb83f946a480eaeef75d326f51
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_462.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_462	2020-01-20 09:44:10.459945340 +0000
+@@ -444,11 +444,6 @@
+             sonar_pub.publish(cloud);
+         }
+     }
+-    encoders.left_encoder = robot->getLeftEncoder();
+-    encoders.right_encoder = robot->getRightEncoder();
+-    encoders.header.stamp = ros::Time::now();
+-    encoders.header.frame_id = frame_id_odom;
+-    encoder_pub.publish(encoders);
+ }
+ 
+ bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
diff --git a/software_faults/RosAria.cpp._MLPA_463.patch b/software_faults/RosAria.cpp._MLPA_463.patch
new file mode 100644
index 0000000000000000000000000000000000000000..630ca6532c3663c21eb85c06b3e79178bfa3c3ce
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_463.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_463	2020-01-20 09:44:11.525945340 +0000
+@@ -395,8 +395,6 @@
+     voltage_pub.publish(batteryVoltage);
+     if (robot->haveStateOfCharge()) {
+         std_msgs::Float32 soc;
+-        soc.data = robot->getStateOfCharge() / 100.0;
+-        state_of_charge_pub.publish(soc);
+     }
+     char s = robot->getChargeState();
+     if (s != recharge_state.data) {
diff --git a/software_faults/RosAria.cpp._MLPA_464.patch b/software_faults/RosAria.cpp._MLPA_464.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4b8c5799826c3af1823bdeec017cfcec2ec51218
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_464.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_464	2020-01-20 09:44:11.585945340 +0000
+@@ -400,8 +400,6 @@
+     }
+     char s = robot->getChargeState();
+     if (s != recharge_state.data) {
+-        ROS_INFO("RosAria: publishing new recharge state %d.", s);
+-        recharge_state.data = s;
+         recharge_state_pub.publish(recharge_state);
+     }
+     bool e = robot->areMotorsEnabled();
diff --git a/software_faults/RosAria.cpp._MLPA_465.patch b/software_faults/RosAria.cpp._MLPA_465.patch
new file mode 100644
index 0000000000000000000000000000000000000000..daa6723e29abd8120f542df088df676d6d9cc272
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_465.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_465	2020-01-20 09:44:11.603945340 +0000
+@@ -401,8 +401,6 @@
+     char s = robot->getChargeState();
+     if (s != recharge_state.data) {
+         ROS_INFO("RosAria: publishing new recharge state %d.", s);
+-        recharge_state.data = s;
+-        recharge_state_pub.publish(recharge_state);
+     }
+     bool e = robot->areMotorsEnabled();
+     if (e != motors_state.data || !published_motors_state) {
diff --git a/software_faults/RosAria.cpp._MLPA_466.patch b/software_faults/RosAria.cpp._MLPA_466.patch
new file mode 100644
index 0000000000000000000000000000000000000000..30b3d36c6c1ab42530f02858ef7a08f8bec68080
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_466.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_466	2020-01-20 09:44:11.662945340 +0000
+@@ -406,8 +406,6 @@
+     }
+     bool e = robot->areMotorsEnabled();
+     if (e != motors_state.data || !published_motors_state) {
+-        ROS_INFO("RosAria: publishing new motors state %d.", e);
+-        motors_state.data = e;
+         motors_state_pub.publish(motors_state);
+         published_motors_state = true;
+     }
diff --git a/software_faults/RosAria.cpp._MLPA_467.patch b/software_faults/RosAria.cpp._MLPA_467.patch
new file mode 100644
index 0000000000000000000000000000000000000000..36205f0c0335266f1b52f29fc5f7e12d31f7734a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_467.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_467	2020-01-20 09:44:11.677945340 +0000
+@@ -407,8 +407,6 @@
+     bool e = robot->areMotorsEnabled();
+     if (e != motors_state.data || !published_motors_state) {
+         ROS_INFO("RosAria: publishing new motors state %d.", e);
+-        motors_state.data = e;
+-        motors_state_pub.publish(motors_state);
+         published_motors_state = true;
+     }
+     if (publish_sonar || publish_sonar_pointcloud2) {
diff --git a/software_faults/RosAria.cpp._MLPA_468.patch b/software_faults/RosAria.cpp._MLPA_468.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5b57cedc20cd0bfd393f0053e90d581d8608bba8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_468.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_468	2020-01-20 09:44:11.691945340 +0000
+@@ -408,8 +408,6 @@
+     if (e != motors_state.data || !published_motors_state) {
+         ROS_INFO("RosAria: publishing new motors state %d.", e);
+         motors_state.data = e;
+-        motors_state_pub.publish(motors_state);
+-        published_motors_state = true;
+     }
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         sensor_msgs::PointCloud cloud;
diff --git a/software_faults/RosAria.cpp._MLPA_469.patch b/software_faults/RosAria.cpp._MLPA_469.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3d26ea9397cf571965bbf819347ec1fd5944632b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_469.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_469	2020-01-20 09:44:11.715945340 +0000
+@@ -406,9 +406,6 @@
+     }
+     bool e = robot->areMotorsEnabled();
+     if (e != motors_state.data || !published_motors_state) {
+-        ROS_INFO("RosAria: publishing new motors state %d.", e);
+-        motors_state.data = e;
+-        motors_state_pub.publish(motors_state);
+         published_motors_state = true;
+     }
+     if (publish_sonar || publish_sonar_pointcloud2) {
diff --git a/software_faults/RosAria.cpp._MLPA_47.patch b/software_faults/RosAria.cpp._MLPA_47.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6155d3dc190b1070af8576417e4e232eefafd0dc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_47.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_47	2020-01-20 09:43:58.052945340 +0000
+@@ -208,8 +208,6 @@
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
diff --git a/software_faults/RosAria.cpp._MLPA_470.patch b/software_faults/RosAria.cpp._MLPA_470.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b9c49d42e00eb43ed6954d97649fcd9afc7bf296
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_470.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_470	2020-01-20 09:44:11.736945340 +0000
+@@ -407,9 +407,6 @@
+     bool e = robot->areMotorsEnabled();
+     if (e != motors_state.data || !published_motors_state) {
+         ROS_INFO("RosAria: publishing new motors state %d.", e);
+-        motors_state.data = e;
+-        motors_state_pub.publish(motors_state);
+-        published_motors_state = true;
+     }
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         sensor_msgs::PointCloud cloud;
diff --git a/software_faults/RosAria.cpp._MLPA_471.patch b/software_faults/RosAria.cpp._MLPA_471.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8d1a84361ce556507504c79abff21562e4b7fd7f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_471.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_471	2020-01-20 09:44:11.787945340 +0000
+@@ -413,8 +413,6 @@
+     }
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         sensor_msgs::PointCloud cloud;
+-        cloud.header.stamp = position.header.stamp;
+-        cloud.header.frame_id = frame_id_sonar;
+         std::stringstream sonar_debug_info;
+         sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
diff --git a/software_faults/RosAria.cpp._MLPA_472.patch b/software_faults/RosAria.cpp._MLPA_472.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2fe1ce76cb4b4dc5fc044d53c859d8f4738e8b5f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_472.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_472	2020-01-20 09:44:11.805945340 +0000
+@@ -414,9 +414,7 @@
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         sensor_msgs::PointCloud cloud;
+         cloud.header.stamp = position.header.stamp;
+-        cloud.header.frame_id = frame_id_sonar;
+         std::stringstream sonar_debug_info;
+-        sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+             reading = robot->getSonarReading(i);
diff --git a/software_faults/RosAria.cpp._MLPA_473.patch b/software_faults/RosAria.cpp._MLPA_473.patch
new file mode 100644
index 0000000000000000000000000000000000000000..56c0d57151d1e28c7d79a2938655bc5df5bd1607
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_473.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_473	2020-01-20 09:44:11.821945340 +0000
+@@ -416,7 +416,6 @@
+         cloud.header.stamp = position.header.stamp;
+         cloud.header.frame_id = frame_id_sonar;
+         std::stringstream sonar_debug_info;
+-        sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+             reading = robot->getSonarReading(i);
+@@ -431,7 +430,6 @@
+             p.z = 0.0;
+             cloud.points.push_back(p);
+         }
+-        ROS_DEBUG_STREAM(sonar_debug_info.str());
+         if (publish_sonar_pointcloud2) {
+             sensor_msgs::PointCloud2 cloud2;
+             if (!sensor_msgs::convertPointCloudToPointCloud2(cloud, cloud2)) {
diff --git a/software_faults/RosAria.cpp._MLPA_474.patch b/software_faults/RosAria.cpp._MLPA_474.patch
new file mode 100644
index 0000000000000000000000000000000000000000..495a69b13c1bf34596108db90ccd0d134b753882
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_474.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_474	2020-01-20 09:44:11.841945340 +0000
+@@ -413,10 +413,7 @@
+     }
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         sensor_msgs::PointCloud cloud;
+-        cloud.header.stamp = position.header.stamp;
+-        cloud.header.frame_id = frame_id_sonar;
+         std::stringstream sonar_debug_info;
+-        sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+             reading = robot->getSonarReading(i);
diff --git a/software_faults/RosAria.cpp._MLPA_475.patch b/software_faults/RosAria.cpp._MLPA_475.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d2b33701bf9f2cc1ba262bbffc6083802d3cb04d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_475.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_475	2020-01-20 09:44:11.860945340 +0000
+@@ -414,9 +414,7 @@
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         sensor_msgs::PointCloud cloud;
+         cloud.header.stamp = position.header.stamp;
+-        cloud.header.frame_id = frame_id_sonar;
+         std::stringstream sonar_debug_info;
+-        sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+             reading = robot->getSonarReading(i);
+@@ -431,7 +429,6 @@
+             p.z = 0.0;
+             cloud.points.push_back(p);
+         }
+-        ROS_DEBUG_STREAM(sonar_debug_info.str());
+         if (publish_sonar_pointcloud2) {
+             sensor_msgs::PointCloud2 cloud2;
+             if (!sensor_msgs::convertPointCloudToPointCloud2(cloud, cloud2)) {
diff --git a/software_faults/RosAria.cpp._MLPA_476.patch b/software_faults/RosAria.cpp._MLPA_476.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a67f27e4467a8d44cb28f7593340ccb1d8275d4a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_476.patch
@@ -0,0 +1,21 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_476	2020-01-20 09:44:11.887945340 +0000
+@@ -413,10 +413,7 @@
+     }
+     if (publish_sonar || publish_sonar_pointcloud2) {
+         sensor_msgs::PointCloud cloud;
+-        cloud.header.stamp = position.header.stamp;
+-        cloud.header.frame_id = frame_id_sonar;
+         std::stringstream sonar_debug_info;
+-        sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+             reading = robot->getSonarReading(i);
+@@ -431,7 +428,6 @@
+             p.z = 0.0;
+             cloud.points.push_back(p);
+         }
+-        ROS_DEBUG_STREAM(sonar_debug_info.str());
+         if (publish_sonar_pointcloud2) {
+             sensor_msgs::PointCloud2 cloud2;
+             if (!sensor_msgs::convertPointCloudToPointCloud2(cloud, cloud2)) {
diff --git a/software_faults/RosAria.cpp._MLPA_477.patch b/software_faults/RosAria.cpp._MLPA_477.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5fbf8963f911c71b76578bef49088d9494a2ba84
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_477.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_477	2020-01-20 09:44:11.913945340 +0000
+@@ -419,12 +419,10 @@
+         sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+-            reading = robot->getSonarReading(i);
+             if (!reading) {
+                 ROS_WARN("RosAria: Did not receive a sonar reading.");
+                 continue;
+             }
+-            sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+             p.x = reading->getLocalX() / 1000.0;
+             p.y = reading->getLocalY() / 1000.0;
diff --git a/software_faults/RosAria.cpp._MLPA_478.patch b/software_faults/RosAria.cpp._MLPA_478.patch
new file mode 100644
index 0000000000000000000000000000000000000000..99ecd95ce4041d9d472878c2c331716f43d50bfd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_478.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_478	2020-01-20 09:44:11.930945340 +0000
+@@ -424,9 +424,7 @@
+                 ROS_WARN("RosAria: Did not receive a sonar reading.");
+                 continue;
+             }
+-            sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+             p.y = reading->getLocalY() / 1000.0;
+             p.z = 0.0;
+             cloud.points.push_back(p);
diff --git a/software_faults/RosAria.cpp._MLPA_479.patch b/software_faults/RosAria.cpp._MLPA_479.patch
new file mode 100644
index 0000000000000000000000000000000000000000..64585d41d33fed31fc4fd044847d5386f3b2757b
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_479.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_479	2020-01-20 09:44:11.945945340 +0000
+@@ -426,8 +426,6 @@
+             }
+             sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+             p.z = 0.0;
+             cloud.points.push_back(p);
+         }
diff --git a/software_faults/RosAria.cpp._MLPA_48.patch b/software_faults/RosAria.cpp._MLPA_48.patch
new file mode 100644
index 0000000000000000000000000000000000000000..37a90a402476327b267cfffdfa564e29bf1fbaa1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_48.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_48	2020-01-20 09:43:58.071945340 +0000
+@@ -209,8 +209,6 @@
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
diff --git a/software_faults/RosAria.cpp._MLPA_480.patch b/software_faults/RosAria.cpp._MLPA_480.patch
new file mode 100644
index 0000000000000000000000000000000000000000..825e7bc74ae3b86dd46d6854138d2f24375a8551
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_480.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_480	2020-01-20 09:44:11.961945340 +0000
+@@ -427,8 +427,6 @@
+             sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+             p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+-            p.z = 0.0;
+             cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
diff --git a/software_faults/RosAria.cpp._MLPA_481.patch b/software_faults/RosAria.cpp._MLPA_481.patch
new file mode 100644
index 0000000000000000000000000000000000000000..418bd6daf726ecd2dedccc4c1d5eda19350cbdb5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_481.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_481	2020-01-20 09:44:11.981945340 +0000
+@@ -428,8 +428,6 @@
+             geometry_msgs::Point32 p;
+             p.x = reading->getLocalX() / 1000.0;
+             p.y = reading->getLocalY() / 1000.0;
+-            p.z = 0.0;
+-            cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
+         if (publish_sonar_pointcloud2) {
diff --git a/software_faults/RosAria.cpp._MLPA_482.patch b/software_faults/RosAria.cpp._MLPA_482.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c5da159f4f4a6fb1918d1ed60190fea5ee701109
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_482.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_482	2020-01-20 09:44:12.004945340 +0000
+@@ -419,14 +419,11 @@
+         sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+-            reading = robot->getSonarReading(i);
+             if (!reading) {
+                 ROS_WARN("RosAria: Did not receive a sonar reading.");
+                 continue;
+             }
+-            sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+             p.y = reading->getLocalY() / 1000.0;
+             p.z = 0.0;
+             cloud.points.push_back(p);
diff --git a/software_faults/RosAria.cpp._MLPA_483.patch b/software_faults/RosAria.cpp._MLPA_483.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0a9566a12500ef5f9a89038cada21f1e154c1c15
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_483.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_483	2020-01-20 09:44:12.023945340 +0000
+@@ -424,10 +424,7 @@
+                 ROS_WARN("RosAria: Did not receive a sonar reading.");
+                 continue;
+             }
+-            sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+             p.z = 0.0;
+             cloud.points.push_back(p);
+         }
diff --git a/software_faults/RosAria.cpp._MLPA_484.patch b/software_faults/RosAria.cpp._MLPA_484.patch
new file mode 100644
index 0000000000000000000000000000000000000000..135bc6019034880033cc7b3428dca274cd9de00a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_484.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_484	2020-01-20 09:44:12.041945340 +0000
+@@ -426,9 +426,6 @@
+             }
+             sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+-            p.z = 0.0;
+             cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
diff --git a/software_faults/RosAria.cpp._MLPA_485.patch b/software_faults/RosAria.cpp._MLPA_485.patch
new file mode 100644
index 0000000000000000000000000000000000000000..05ab5bb2c23f6ff90e4e39087985f920f1b6a02d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_485.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_485	2020-01-20 09:44:12.060945340 +0000
+@@ -427,9 +427,6 @@
+             sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+             p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+-            p.z = 0.0;
+-            cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
+         if (publish_sonar_pointcloud2) {
diff --git a/software_faults/RosAria.cpp._MLPA_486.patch b/software_faults/RosAria.cpp._MLPA_486.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ff7af830db5b957b88a3bfa2c24f2610a121c5f1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_486.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_486	2020-01-20 09:44:12.083945340 +0000
+@@ -419,15 +419,11 @@
+         sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+-            reading = robot->getSonarReading(i);
+             if (!reading) {
+                 ROS_WARN("RosAria: Did not receive a sonar reading.");
+                 continue;
+             }
+-            sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+             p.z = 0.0;
+             cloud.points.push_back(p);
+         }
diff --git a/software_faults/RosAria.cpp._MLPA_487.patch b/software_faults/RosAria.cpp._MLPA_487.patch
new file mode 100644
index 0000000000000000000000000000000000000000..35de71b45e87f81beca4415ae5869515af16b42e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_487.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_487	2020-01-20 09:44:12.102945340 +0000
+@@ -424,11 +424,7 @@
+                 ROS_WARN("RosAria: Did not receive a sonar reading.");
+                 continue;
+             }
+-            sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+-            p.z = 0.0;
+             cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
diff --git a/software_faults/RosAria.cpp._MLPA_488.patch b/software_faults/RosAria.cpp._MLPA_488.patch
new file mode 100644
index 0000000000000000000000000000000000000000..992b48fd95e16508ed32573c204d5f475bd0a575
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_488.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_488	2020-01-20 09:44:12.120945340 +0000
+@@ -426,10 +426,6 @@
+             }
+             sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+-            p.z = 0.0;
+-            cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
+         if (publish_sonar_pointcloud2) {
diff --git a/software_faults/RosAria.cpp._MLPA_489.patch b/software_faults/RosAria.cpp._MLPA_489.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a65dba035e1f0fe897bdcdcf8c857315ffbf14c6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_489.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_489	2020-01-20 09:44:12.153945340 +0000
+@@ -419,16 +419,11 @@
+         sonar_debug_info << "Sonar readings: ";
+         for (int i = 0;i < robot->getNumSonar();i++){
+             ArSensorReading* reading = NULL;
+-            reading = robot->getSonarReading(i);
+             if (!reading) {
+                 ROS_WARN("RosAria: Did not receive a sonar reading.");
+                 continue;
+             }
+-            sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+-            p.z = 0.0;
+             cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
diff --git a/software_faults/RosAria.cpp._MLPA_49.patch b/software_faults/RosAria.cpp._MLPA_49.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a556b78e74bca889bc86f64d3a24d432d9cd0faa
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_49.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_49	2020-01-20 09:43:58.092945340 +0000
+@@ -210,8 +210,6 @@
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
diff --git a/software_faults/RosAria.cpp._MLPA_490.patch b/software_faults/RosAria.cpp._MLPA_490.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b7e5c092d74576e8bc4fc7ff753fe3678a90679a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_490.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_490	2020-01-20 09:44:12.181945340 +0000
+@@ -424,12 +424,7 @@
+                 ROS_WARN("RosAria: Did not receive a sonar reading.");
+                 continue;
+             }
+-            sonar_debug_info << reading->getRange() << " ";
+             geometry_msgs::Point32 p;
+-            p.x = reading->getLocalX() / 1000.0;
+-            p.y = reading->getLocalY() / 1000.0;
+-            p.z = 0.0;
+-            cloud.points.push_back(p);
+         }
+         ROS_DEBUG_STREAM(sonar_debug_info.str());
+         if (publish_sonar_pointcloud2) {
diff --git a/software_faults/RosAria.cpp._MLPA_491.patch b/software_faults/RosAria.cpp._MLPA_491.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a918c1b748b6800e2bad5e5683fdee24e267a63f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_491.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_491	2020-01-20 09:44:12.334945340 +0000
+@@ -453,8 +453,6 @@
+ 
+ bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+-    ROS_INFO("RosAria: Enable motors request.");
+-    robot->lock();
+     if (robot->isEStopPressed()) 
+         ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_492.patch b/software_faults/RosAria.cpp._MLPA_492.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d10ad8bf64f3ad6781581d9ac128315e649c891e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_492.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_492	2020-01-20 09:44:12.352945340 +0000
+@@ -454,11 +454,9 @@
+ bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+     ROS_INFO("RosAria: Enable motors request.");
+-    robot->lock();
+     if (robot->isEStopPressed()) 
+         ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+ 
+-    robot->enableMotors();
+     robot->unlock();
+     return true;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_493.patch b/software_faults/RosAria.cpp._MLPA_493.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7d78ea4679d25c935e32e0046e27c7d8285dd560
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_493.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_493	2020-01-20 09:44:12.369945340 +0000
+@@ -458,8 +458,6 @@
+     if (robot->isEStopPressed()) 
+         ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+ 
+-    robot->enableMotors();
+-    robot->unlock();
+     return true;
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_494.patch b/software_faults/RosAria.cpp._MLPA_494.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e6bca344405cd432ec157895f3d6501b55683e9e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_494.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_494	2020-01-20 09:44:12.390945340 +0000
+@@ -453,12 +453,9 @@
+ 
+ bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+-    ROS_INFO("RosAria: Enable motors request.");
+-    robot->lock();
+     if (robot->isEStopPressed()) 
+         ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+ 
+-    robot->enableMotors();
+     robot->unlock();
+     return true;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_495.patch b/software_faults/RosAria.cpp._MLPA_495.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3933d3cd79acddb8928d2dc64068f4f12363dce3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_495.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_495	2020-01-20 09:44:12.409945340 +0000
+@@ -454,12 +454,9 @@
+ bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+     ROS_INFO("RosAria: Enable motors request.");
+-    robot->lock();
+     if (robot->isEStopPressed()) 
+         ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+ 
+-    robot->enableMotors();
+-    robot->unlock();
+     return true;
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_496.patch b/software_faults/RosAria.cpp._MLPA_496.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2b6ad012bd845836b046f0fd397faaaf84bb0b62
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_496.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_496	2020-01-20 09:44:12.432945340 +0000
+@@ -453,13 +453,9 @@
+ 
+ bool RosAriaNode::enable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+-    ROS_INFO("RosAria: Enable motors request.");
+-    robot->lock();
+     if (robot->isEStopPressed()) 
+         ROS_WARN("RosAria: Warning: Enable motors requested, but robot also has E-Stop button pressed. Motors will not enable.");
+ 
+-    robot->enableMotors();
+-    robot->unlock();
+     return true;
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_497.patch b/software_faults/RosAria.cpp._MLPA_497.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5ca2bcecf63dd3079810c05f9fce5173fce96012
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_497.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_497	2020-01-20 09:44:12.485945340 +0000
+@@ -465,8 +465,6 @@
+ 
+ bool RosAriaNode::disable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+-    ROS_INFO("RosAria: Disable motors request.");
+-    robot->lock();
+     robot->disableMotors();
+     robot->unlock();
+     return true;
diff --git a/software_faults/RosAria.cpp._MLPA_498.patch b/software_faults/RosAria.cpp._MLPA_498.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d7e7502cebf41b0be0f1b51f66950ef1afdc29cc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_498.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_498	2020-01-20 09:44:12.504945340 +0000
+@@ -466,8 +466,6 @@
+ bool RosAriaNode::disable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+     ROS_INFO("RosAria: Disable motors request.");
+-    robot->lock();
+-    robot->disableMotors();
+     robot->unlock();
+     return true;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_499.patch b/software_faults/RosAria.cpp._MLPA_499.patch
new file mode 100644
index 0000000000000000000000000000000000000000..69712f777b81cea41c0270f1e84ed6e61643fab2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_499.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_499	2020-01-20 09:44:12.521945340 +0000
+@@ -467,8 +467,6 @@
+ {
+     ROS_INFO("RosAria: Disable motors request.");
+     robot->lock();
+-    robot->disableMotors();
+-    robot->unlock();
+     return true;
+ }
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
diff --git a/software_faults/RosAria.cpp._MLPA_5.patch b/software_faults/RosAria.cpp._MLPA_5.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c1041104505610c795bfbdba23ae48acb8441d96
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_5.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_5	2020-01-20 09:43:56.106945340 +0000
+@@ -154,13 +154,11 @@
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
+             robot->setLatAccel(value);
+     }
+-    value = config.lat_decel * 1000;
+     if (value != robot->getLatDecel() && value > 0) {
+         ROS_INFO("Setting LatDecel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_50.patch b/software_faults/RosAria.cpp._MLPA_50.patch
new file mode 100644
index 0000000000000000000000000000000000000000..89753a9904e23a5b061b907a1b29e35d13ea5479
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_50.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_50	2020-01-20 09:43:58.114945340 +0000
+@@ -211,8 +211,6 @@
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
diff --git a/software_faults/RosAria.cpp._MLPA_500.patch b/software_faults/RosAria.cpp._MLPA_500.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d7ae15ccaf453fc45c9a3ed3a9fb2cdbdb263c38
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_500.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_500	2020-01-20 09:44:12.542945340 +0000
+@@ -465,9 +465,6 @@
+ 
+ bool RosAriaNode::disable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+-    ROS_INFO("RosAria: Disable motors request.");
+-    robot->lock();
+-    robot->disableMotors();
+     robot->unlock();
+     return true;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_501.patch b/software_faults/RosAria.cpp._MLPA_501.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ad45e5b0d9a6a0ffa4e2385acce5477cfcbd5e32
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_501.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_501	2020-01-20 09:44:12.562945340 +0000
+@@ -466,9 +466,6 @@
+ bool RosAriaNode::disable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+     ROS_INFO("RosAria: Disable motors request.");
+-    robot->lock();
+-    robot->disableMotors();
+-    robot->unlock();
+     return true;
+ }
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
diff --git a/software_faults/RosAria.cpp._MLPA_502.patch b/software_faults/RosAria.cpp._MLPA_502.patch
new file mode 100644
index 0000000000000000000000000000000000000000..25c6233a10b653297b0a1ea8e1c6b40940008256
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_502.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_502	2020-01-20 09:44:12.589945340 +0000
+@@ -465,10 +465,6 @@
+ 
+ bool RosAriaNode::disable_motors_cb(std_srvs::Empty::Request& request, std_srvs::Empty::Response& response)
+ {
+-    ROS_INFO("RosAria: Disable motors request.");
+-    robot->lock();
+-    robot->disableMotors();
+-    robot->unlock();
+     return true;
+ }
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
diff --git a/software_faults/RosAria.cpp._MLPA_503.patch b/software_faults/RosAria.cpp._MLPA_503.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7b48ad0e08c663c3a5755c4c438d1d21c063fae3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_503.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_503	2020-01-20 09:44:12.618945340 +0000
+@@ -473,8 +473,6 @@
+ }
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
+ {
+-    veltime = ros::Time::now();
+-    ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+     robot->lock();
+     robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
diff --git a/software_faults/RosAria.cpp._MLPA_504.patch b/software_faults/RosAria.cpp._MLPA_504.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f04ac66b8fff7d90519470adea6bb1581ea45a49
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_504.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_504	2020-01-20 09:44:12.636945340 +0000
+@@ -474,8 +474,6 @@
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
+ {
+     veltime = ros::Time::now();
+-    ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+     robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
diff --git a/software_faults/RosAria.cpp._MLPA_505.patch b/software_faults/RosAria.cpp._MLPA_505.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d6dd8a00c036efe69bb8b24d209ac278fad14e02
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_505.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_505	2020-01-20 09:44:12.653945340 +0000
+@@ -475,8 +475,6 @@
+ {
+     veltime = ros::Time::now();
+     ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_506.patch b/software_faults/RosAria.cpp._MLPA_506.patch
new file mode 100644
index 0000000000000000000000000000000000000000..cce7134da185cc86420af2779d9a53c9f5265471
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_506.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_506	2020-01-20 09:44:12.671945340 +0000
+@@ -476,11 +476,9 @@
+     veltime = ros::Time::now();
+     ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+     robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+     robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_507.patch b/software_faults/RosAria.cpp._MLPA_507.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1c8e5b43c829d31ce7180e3d951f297d0c0be5bf
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_507.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_507	2020-01-20 09:44:12.688945340 +0000
+@@ -480,8 +480,6 @@
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+-    robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_508.patch b/software_faults/RosAria.cpp._MLPA_508.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f69d79890164d5225e6918e325e0e0593707a6e8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_508.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_508	2020-01-20 09:44:12.703945340 +0000
+@@ -481,8 +481,6 @@
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
+     robot->setRotVel(msg->angular.z * 180 / M_PI);
+-    robot->unlock();
+-    ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
+ 
+ void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
diff --git a/software_faults/RosAria.cpp._MLPA_509.patch b/software_faults/RosAria.cpp._MLPA_509.patch
new file mode 100644
index 0000000000000000000000000000000000000000..449e13a6d051304ade1d2cade3c2fb169656a9ce
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_509.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_509	2020-01-20 09:44:12.726945340 +0000
+@@ -473,9 +473,6 @@
+ }
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
+ {
+-    veltime = ros::Time::now();
+-    ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+     robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
diff --git a/software_faults/RosAria.cpp._MLPA_51.patch b/software_faults/RosAria.cpp._MLPA_51.patch
new file mode 100644
index 0000000000000000000000000000000000000000..76d977e9c7b0663231bbdb53d6b06a5782892ce6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_51.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_51	2020-01-20 09:43:58.137945340 +0000
+@@ -212,8 +212,6 @@
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
diff --git a/software_faults/RosAria.cpp._MLPA_510.patch b/software_faults/RosAria.cpp._MLPA_510.patch
new file mode 100644
index 0000000000000000000000000000000000000000..322769784f084d07a4a5bf57fcc723194de27e19
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_510.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_510	2020-01-20 09:44:12.746945340 +0000
+@@ -474,9 +474,6 @@
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
+ {
+     veltime = ros::Time::now();
+-    ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_511.patch b/software_faults/RosAria.cpp._MLPA_511.patch
new file mode 100644
index 0000000000000000000000000000000000000000..639a05eb9fe71542662f2a2df255244d0155d9b8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_511.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_511	2020-01-20 09:44:12.765945340 +0000
+@@ -475,12 +475,9 @@
+ {
+     veltime = ros::Time::now();
+     ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+     robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_512.patch b/software_faults/RosAria.cpp._MLPA_512.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7f5963b53c92f22be3213e7ab95db6b784ebde24
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_512.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_512	2020-01-20 09:44:12.783945340 +0000
+@@ -476,12 +476,9 @@
+     veltime = ros::Time::now();
+     ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+     robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+-    robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_513.patch b/software_faults/RosAria.cpp._MLPA_513.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3f9653b339499570fd249f22713583291b45419f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_513.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_513	2020-01-20 09:44:12.802945340 +0000
+@@ -479,10 +479,6 @@
+     robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+-
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+-    robot->unlock();
+-    ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
+ 
+ void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
diff --git a/software_faults/RosAria.cpp._MLPA_514.patch b/software_faults/RosAria.cpp._MLPA_514.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1e913e618fdf28b526d7f92912aaacc025455145
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_514.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_514	2020-01-20 09:44:12.828945340 +0000
+@@ -473,10 +473,6 @@
+ }
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
+ {
+-    veltime = ros::Time::now();
+-    ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_515.patch b/software_faults/RosAria.cpp._MLPA_515.patch
new file mode 100644
index 0000000000000000000000000000000000000000..456c73c7e5670c34f3fbbc01429995e8a6bf5eb7
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_515.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_515	2020-01-20 09:44:12.847945340 +0000
+@@ -474,13 +474,9 @@
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
+ {
+     veltime = ros::Time::now();
+-    ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+     robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_516.patch b/software_faults/RosAria.cpp._MLPA_516.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1e063e7bab694961ba07d95533616643a182dca4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_516.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_516	2020-01-20 09:44:12.866945340 +0000
+@@ -475,13 +475,9 @@
+ {
+     veltime = ros::Time::now();
+     ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+-    robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_517.patch b/software_faults/RosAria.cpp._MLPA_517.patch
new file mode 100644
index 0000000000000000000000000000000000000000..3d0805792ee0914239a42c78b057a926826953af
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_517.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_517	2020-01-20 09:44:12.884945340 +0000
+@@ -476,13 +476,8 @@
+     veltime = ros::Time::now();
+     ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+     robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+-
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+-    robot->unlock();
+-    ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
+ 
+ void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
diff --git a/software_faults/RosAria.cpp._MLPA_518.patch b/software_faults/RosAria.cpp._MLPA_518.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b1f531d662f41d11240bffe9499990c82e4565ae
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_518.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_518	2020-01-20 09:44:12.907945340 +0000
+@@ -473,14 +473,9 @@
+ }
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
+ {
+-    veltime = ros::Time::now();
+-    ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+     robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_519.patch b/software_faults/RosAria.cpp._MLPA_519.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7e7536e2f0c48e5d368dd18fc9c14565fb34bb41
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_519.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_519	2020-01-20 09:44:12.933945340 +0000
+@@ -474,14 +474,9 @@
+ void RosAriaNode::cmdvel_cb(const geometry_msgs::TwistConstPtr& msg)
+ {
+     veltime = ros::Time::now();
+-    ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+ 
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+-    robot->unlock();
+     ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_52.patch b/software_faults/RosAria.cpp._MLPA_52.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4a42797dbd17fa9b5a04b3d439fde0bc83576552
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_52.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_52	2020-01-20 09:43:58.160945340 +0000
+@@ -213,8 +213,6 @@
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
diff --git a/software_faults/RosAria.cpp._MLPA_520.patch b/software_faults/RosAria.cpp._MLPA_520.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9b9b342871ce02dd787be920a056f8b665115cfb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_520.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_520	2020-01-20 09:44:12.956945340 +0000
+@@ -475,14 +475,8 @@
+ {
+     veltime = ros::Time::now();
+     ROS_INFO("new speed: [%0.2f,%0.2f](%0.3f)", msg->linear.x * 1e3, msg->angular.z, veltime.toSec());
+-    robot->lock();
+-    robot->setVel(msg->linear.x * 1e3);
+     if (robot->hasLatVel()) 
+         robot->setLatVel(msg->linear.y * 1e3);
+-
+-    robot->setRotVel(msg->angular.z * 180 / M_PI);
+-    robot->unlock();
+-    ROS_DEBUG("RosAria: sent vels to to aria (time %f): x vel %f mm/s, y vel %f mm/s, ang vel %f deg/s", veltime.toSec(), (double)msg->linear.x * 1e3, (double)msg->linear.y * 1e3, (double)msg->angular.z * 180 / M_PI);
+ }
+ 
+ void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
diff --git a/software_faults/RosAria.cpp._MLPA_521.patch b/software_faults/RosAria.cpp._MLPA_521.patch
new file mode 100644
index 0000000000000000000000000000000000000000..551b79406ba61a29ea0b836d715fe1e7dd807ecb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_521.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_521	2020-01-20 09:44:13.047945340 +0000
+@@ -488,8 +488,6 @@
+ void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
+ {
+     if (ros::Time::now() - veltime > ros::Duration(0.6)) {
+-        robot->lock();
+-        robot->setVel(0.0);
+         if (robot->hasLatVel()) 
+             robot->setLatVel(0.0);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_522.patch b/software_faults/RosAria.cpp._MLPA_522.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b5ce2777efb5e2bd8638d9e0fd5e01ecac1a5dbc
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_522.patch
@@ -0,0 +1,14 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_522	2020-01-20 09:44:13.061945340 +0000
+@@ -489,11 +489,9 @@
+ {
+     if (ros::Time::now() - veltime > ros::Duration(0.6)) {
+         robot->lock();
+-        robot->setVel(0.0);
+         if (robot->hasLatVel()) 
+             robot->setLatVel(0.0);
+ 
+-        robot->setRotVel(0.0);
+         robot->unlock();
+     }
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_523.patch b/software_faults/RosAria.cpp._MLPA_523.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1c7e8753a0c6b3d2dc3f700782185c6886aa20d9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_523.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_523	2020-01-20 09:44:13.078945340 +0000
+@@ -492,9 +492,6 @@
+         robot->setVel(0.0);
+         if (robot->hasLatVel()) 
+             robot->setLatVel(0.0);
+-
+-        robot->setRotVel(0.0);
+-        robot->unlock();
+     }
+ }
+ int main(int argc, char** argv)
diff --git a/software_faults/RosAria.cpp._MLPA_524.patch b/software_faults/RosAria.cpp._MLPA_524.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c7fa44a9d124d068b94f0cc777d86e01213c1bad
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_524.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_524	2020-01-20 09:44:13.102945340 +0000
+@@ -488,12 +488,9 @@
+ void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
+ {
+     if (ros::Time::now() - veltime > ros::Duration(0.6)) {
+-        robot->lock();
+-        robot->setVel(0.0);
+         if (robot->hasLatVel()) 
+             robot->setLatVel(0.0);
+ 
+-        robot->setRotVel(0.0);
+         robot->unlock();
+     }
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_525.patch b/software_faults/RosAria.cpp._MLPA_525.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d9cbb03d80b370d37c68e3aa89177788aa637dc6
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_525.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_525	2020-01-20 09:44:13.125945340 +0000
+@@ -489,12 +489,8 @@
+ {
+     if (ros::Time::now() - veltime > ros::Duration(0.6)) {
+         robot->lock();
+-        robot->setVel(0.0);
+         if (robot->hasLatVel()) 
+             robot->setLatVel(0.0);
+-
+-        robot->setRotVel(0.0);
+-        robot->unlock();
+     }
+ }
+ int main(int argc, char** argv)
diff --git a/software_faults/RosAria.cpp._MLPA_526.patch b/software_faults/RosAria.cpp._MLPA_526.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9e74a81aefa5c25d07154338461cd00370a04d9e
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_526.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_526	2020-01-20 09:44:13.154945340 +0000
+@@ -488,13 +488,8 @@
+ void RosAriaNode::cmdvel_watchdog(const ros::TimerEvent& event)
+ {
+     if (ros::Time::now() - veltime > ros::Duration(0.6)) {
+-        robot->lock();
+-        robot->setVel(0.0);
+         if (robot->hasLatVel()) 
+             robot->setLatVel(0.0);
+-
+-        robot->setRotVel(0.0);
+-        robot->unlock();
+     }
+ }
+ int main(int argc, char** argv)
diff --git a/software_faults/RosAria.cpp._MLPA_527.patch b/software_faults/RosAria.cpp._MLPA_527.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8aa43d1dbe23d39aa4f024f31f9cb305b3505f97
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_527.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_527	2020-01-20 09:44:13.219945340 +0000
+@@ -499,9 +499,7 @@
+ }
+ int main(int argc, char** argv)
+ {
+-    ros::init(argc, argv, "RosAria");
+     ros::NodeHandle n(std::string("~"));
+-    Aria::init();
+     RosAriaNode* node = new RosAriaNode(n);
+     if (node->Setup() != 0) {
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
diff --git a/software_faults/RosAria.cpp._MLPA_528.patch b/software_faults/RosAria.cpp._MLPA_528.patch
new file mode 100644
index 0000000000000000000000000000000000000000..75f9735efc62b212715971b619a8d41c27148841
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_528.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_528	2020-01-20 09:44:13.237945340 +0000
+@@ -501,13 +501,11 @@
+ {
+     ros::init(argc, argv, "RosAria");
+     ros::NodeHandle n(std::string("~"));
+-    Aria::init();
+     RosAriaNode* node = new RosAriaNode(n);
+     if (node->Setup() != 0) {
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
+         return -1;
+     }
+-    node->spin();
+     delete node;
+     ROS_INFO("RosAria: Quitting... \n");
+     return 0;
diff --git a/software_faults/RosAria.cpp._MLPA_529.patch b/software_faults/RosAria.cpp._MLPA_529.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f4e4288c39c7baa0d829f5f4aa0db2658f81aa8d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_529.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_529	2020-01-20 09:44:13.256945340 +0000
+@@ -507,8 +507,6 @@
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
+         return -1;
+     }
+-    node->spin();
+-    delete node;
+     ROS_INFO("RosAria: Quitting... \n");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_53.patch b/software_faults/RosAria.cpp._MLPA_53.patch
new file mode 100644
index 0000000000000000000000000000000000000000..aec259ca4c6d9159bd4c07d779e0957d8f8b99bd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_53.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_53	2020-01-20 09:43:58.181945340 +0000
+@@ -214,8 +214,6 @@
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
diff --git a/software_faults/RosAria.cpp._MLPA_530.patch b/software_faults/RosAria.cpp._MLPA_530.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0973a5789ff50fe0f24a2c10db7fc6af26c25a62
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_530.patch
@@ -0,0 +1,10 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_530	2020-01-20 09:44:13.271945340 +0000
+@@ -508,7 +508,5 @@
+         return -1;
+     }
+     node->spin();
+-    delete node;
+-    ROS_INFO("RosAria: Quitting... \n");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_531.patch b/software_faults/RosAria.cpp._MLPA_531.patch
new file mode 100644
index 0000000000000000000000000000000000000000..15200951d22eec1c17af6c2482df49cf6dea7757
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_531.patch
@@ -0,0 +1,18 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_531	2020-01-20 09:44:13.290945340 +0000
+@@ -499,15 +499,12 @@
+ }
+ int main(int argc, char** argv)
+ {
+-    ros::init(argc, argv, "RosAria");
+     ros::NodeHandle n(std::string("~"));
+-    Aria::init();
+     RosAriaNode* node = new RosAriaNode(n);
+     if (node->Setup() != 0) {
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
+         return -1;
+     }
+-    node->spin();
+     delete node;
+     ROS_INFO("RosAria: Quitting... \n");
+     return 0;
diff --git a/software_faults/RosAria.cpp._MLPA_532.patch b/software_faults/RosAria.cpp._MLPA_532.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d36d895e7782a4001b83df098a7a8be60ad4105a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_532.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_532	2020-01-20 09:44:13.312945340 +0000
+@@ -501,14 +501,11 @@
+ {
+     ros::init(argc, argv, "RosAria");
+     ros::NodeHandle n(std::string("~"));
+-    Aria::init();
+     RosAriaNode* node = new RosAriaNode(n);
+     if (node->Setup() != 0) {
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
+         return -1;
+     }
+-    node->spin();
+-    delete node;
+     ROS_INFO("RosAria: Quitting... \n");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_533.patch b/software_faults/RosAria.cpp._MLPA_533.patch
new file mode 100644
index 0000000000000000000000000000000000000000..26eec296a5f56d6c07d362fc87e018444219fedd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_533.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_533	2020-01-20 09:44:13.332945340 +0000
+@@ -507,8 +507,5 @@
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
+         return -1;
+     }
+-    node->spin();
+-    delete node;
+-    ROS_INFO("RosAria: Quitting... \n");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_534.patch b/software_faults/RosAria.cpp._MLPA_534.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7ed642d137056aa4342217ad2f2e6af459051ebd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_534.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_534	2020-01-20 09:44:13.354945340 +0000
+@@ -499,16 +499,12 @@
+ }
+ int main(int argc, char** argv)
+ {
+-    ros::init(argc, argv, "RosAria");
+     ros::NodeHandle n(std::string("~"));
+-    Aria::init();
+     RosAriaNode* node = new RosAriaNode(n);
+     if (node->Setup() != 0) {
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
+         return -1;
+     }
+-    node->spin();
+-    delete node;
+     ROS_INFO("RosAria: Quitting... \n");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_535.patch b/software_faults/RosAria.cpp._MLPA_535.patch
new file mode 100644
index 0000000000000000000000000000000000000000..152ea3b3e092e5a1b4c62b2c943bb25121b00306
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_535.patch
@@ -0,0 +1,17 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_535	2020-01-20 09:44:13.374945340 +0000
+@@ -501,14 +501,10 @@
+ {
+     ros::init(argc, argv, "RosAria");
+     ros::NodeHandle n(std::string("~"));
+-    Aria::init();
+     RosAriaNode* node = new RosAriaNode(n);
+     if (node->Setup() != 0) {
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
+         return -1;
+     }
+-    node->spin();
+-    delete node;
+-    ROS_INFO("RosAria: Quitting... \n");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_536.patch b/software_faults/RosAria.cpp._MLPA_536.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c880aea4ba24ce5fd8d601523983fd25b33c4328
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_536.patch
@@ -0,0 +1,19 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_536	2020-01-20 09:44:13.400945340 +0000
+@@ -499,16 +499,11 @@
+ }
+ int main(int argc, char** argv)
+ {
+-    ros::init(argc, argv, "RosAria");
+     ros::NodeHandle n(std::string("~"));
+-    Aria::init();
+     RosAriaNode* node = new RosAriaNode(n);
+     if (node->Setup() != 0) {
+         ROS_FATAL("RosAria: ROS node setup failed... \n");
+         return -1;
+     }
+-    node->spin();
+-    delete node;
+-    ROS_INFO("RosAria: Quitting... \n");
+     return 0;
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_54.patch b/software_faults/RosAria.cpp._MLPA_54.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6ed70c988b956ec58ead1258b9e41082c51e9d86
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_54.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_54	2020-01-20 09:43:58.203945340 +0000
+@@ -215,8 +215,6 @@
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_55.patch b/software_faults/RosAria.cpp._MLPA_55.patch
new file mode 100644
index 0000000000000000000000000000000000000000..398f969ee7e1c36d19bcfdfe527ef9799105955f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_55.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_55	2020-01-20 09:43:58.225945340 +0000
+@@ -216,8 +216,6 @@
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
diff --git a/software_faults/RosAria.cpp._MLPA_56.patch b/software_faults/RosAria.cpp._MLPA_56.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4455a9658a48f5e5bae48f071e36ffcf63fe2c37
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_56.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_56	2020-01-20 09:43:58.244945340 +0000
+@@ -217,8 +217,6 @@
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_57.patch b/software_faults/RosAria.cpp._MLPA_57.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ec34b6dca4dadb5028abf5a16139a546d4fa03eb
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_57.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_57	2020-01-20 09:43:58.263945340 +0000
+@@ -218,8 +218,6 @@
+     motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+-    veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_58.patch b/software_faults/RosAria.cpp._MLPA_58.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b6826b30f3d9ee0be588a1e0d4ce64c5e26655b0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_58.patch
@@ -0,0 +1,11 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_58	2020-01-20 09:43:58.279945340 +0000
+@@ -219,8 +219,6 @@
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+-    veltime = ros::Time::now();
+-    encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
+ 
+ RosAriaNode::~RosAriaNode()
diff --git a/software_faults/RosAria.cpp._MLPA_59.patch b/software_faults/RosAria.cpp._MLPA_59.patch
new file mode 100644
index 0000000000000000000000000000000000000000..35488452ce22ead177b76f1bb170a90a6d410383
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_59.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_59	2020-01-20 09:43:58.298945340 +0000
+@@ -193,9 +193,6 @@
+ RosAriaNode::RosAriaNode(ros::NodeHandle nh)
+ :n(nh), serial_port(""), serial_baud(0), conn(NULL), laserConnector(NULL), robot(NULL), myPublishCB(this, &RosAriaNode::publish), sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false), debug_aria(false), TicksMM(-1), DriftFactor(-99999), RevCount(-1), publish_aria_lasers(false)
+ {
+-    n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+-    ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_6.patch b/software_faults/RosAria.cpp._MLPA_6.patch
new file mode 100644
index 0000000000000000000000000000000000000000..c4eed86dbda1b2c235717fbb7acb0707d946e354
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_6.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_6	2020-01-20 09:43:56.129945340 +0000
+@@ -160,12 +160,10 @@
+         if (robot->getAbsoluteMaxLatDecel() > 0) 
+             robot->setLatDecel(value);
+     }
+-    value = config.rot_accel * 180 / M_PI;
+     if (value != robot->getRotAccel() && value > 0) {
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
+-    value = config.rot_decel * 180 / M_PI;
+     if (value != robot->getRotDecel() && value > 0) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_60.patch b/software_faults/RosAria.cpp._MLPA_60.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0603b320b4795cc93d3d00a7685dae46c514c04a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_60.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_60	2020-01-20 09:43:58.313945340 +0000
+@@ -194,12 +194,9 @@
+ :n(nh), serial_port(""), serial_baud(0), conn(NULL), laserConnector(NULL), robot(NULL), myPublishCB(this, &RosAriaNode::publish), sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false), debug_aria(false), TicksMM(-1), DriftFactor(-99999), RevCount(-1), publish_aria_lasers(false)
+ {
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+-    ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
diff --git a/software_faults/RosAria.cpp._MLPA_61.patch b/software_faults/RosAria.cpp._MLPA_61.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0406a33773b146d16977927976af8769e4f26de3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_61.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_61	2020-01-20 09:43:58.330945340 +0000
+@@ -195,12 +195,9 @@
+ {
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+     ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
diff --git a/software_faults/RosAria.cpp._MLPA_62.patch b/software_faults/RosAria.cpp._MLPA_62.patch
new file mode 100644
index 0000000000000000000000000000000000000000..886d87af178e2b71fea0fda902c0208ac0b3e6f8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_62.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_62	2020-01-20 09:43:58.346945340 +0000
+@@ -199,9 +199,6 @@
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
diff --git a/software_faults/RosAria.cpp._MLPA_63.patch b/software_faults/RosAria.cpp._MLPA_63.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7865609e9a77af71bfed14674d68557167e46b77
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_63.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_63	2020-01-20 09:43:58.365945340 +0000
+@@ -200,9 +200,6 @@
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+     n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
diff --git a/software_faults/RosAria.cpp._MLPA_64.patch b/software_faults/RosAria.cpp._MLPA_64.patch
new file mode 100644
index 0000000000000000000000000000000000000000..942305f4ebbb292da868771344d692a2ea010504
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_64.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_64	2020-01-20 09:43:58.379945340 +0000
+@@ -201,9 +201,6 @@
+ 
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_65.patch b/software_faults/RosAria.cpp._MLPA_65.patch
new file mode 100644
index 0000000000000000000000000000000000000000..76e6c66a8312fead2d94c693a8bfbd0b55ee2383
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_65.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_65	2020-01-20 09:43:58.402945340 +0000
+@@ -202,9 +202,6 @@
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_66.patch b/software_faults/RosAria.cpp._MLPA_66.patch
new file mode 100644
index 0000000000000000000000000000000000000000..7d817ff19b1858005f16b0660415af4af47d0eb3
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_66.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_66	2020-01-20 09:43:58.426945340 +0000
+@@ -203,9 +203,6 @@
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
diff --git a/software_faults/RosAria.cpp._MLPA_67.patch b/software_faults/RosAria.cpp._MLPA_67.patch
new file mode 100644
index 0000000000000000000000000000000000000000..da1f5def437c3c5ac254e80b4839e8eb095dbc36
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_67.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_67	2020-01-20 09:43:58.449945340 +0000
+@@ -204,9 +204,6 @@
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
diff --git a/software_faults/RosAria.cpp._MLPA_68.patch b/software_faults/RosAria.cpp._MLPA_68.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8aa69141adcadf4de79f2d2d8e6f2a0844a0f51f
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_68.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_68	2020-01-20 09:43:58.472945340 +0000
+@@ -205,9 +205,6 @@
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_69.patch b/software_faults/RosAria.cpp._MLPA_69.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d07c90027f61483beccad9d7da4d7f8f4fd26852
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_69.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_69	2020-01-20 09:43:58.498945340 +0000
+@@ -206,9 +206,6 @@
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
diff --git a/software_faults/RosAria.cpp._MLPA_7.patch b/software_faults/RosAria.cpp._MLPA_7.patch
new file mode 100644
index 0000000000000000000000000000000000000000..67e0aae7b421bb1ad5195fe3c6c14e1a43792501
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_7.patch
@@ -0,0 +1,15 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_7	2020-01-20 09:43:56.157945340 +0000
+@@ -165,12 +165,10 @@
+         ROS_INFO("Setting RotAccel from Dynamic Reconfigure: %d", value);
+         robot->setRotAccel(value);
+     }
+-    value = config.rot_decel * 180 / M_PI;
+     if (value != robot->getRotDecel() && value > 0) {
+         ROS_INFO("Setting RotDecel from Dynamic Reconfigure: %d", value);
+         robot->setRotDecel(value);
+     }
+-    robot->unlock();
+ }
+ 
+ void RosAriaNode::sonarConnectCb()
diff --git a/software_faults/RosAria.cpp._MLPA_70.patch b/software_faults/RosAria.cpp._MLPA_70.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e54b0f0e483f2904ea0872d376a6ee63aaa253dd
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_70.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_70	2020-01-20 09:43:58.521945340 +0000
+@@ -207,9 +207,6 @@
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
diff --git a/software_faults/RosAria.cpp._MLPA_71.patch b/software_faults/RosAria.cpp._MLPA_71.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8954c89be6b37c4dd5b853e579dfd8df5a6304b9
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_71.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_71	2020-01-20 09:43:58.543945340 +0000
+@@ -208,9 +208,6 @@
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
diff --git a/software_faults/RosAria.cpp._MLPA_72.patch b/software_faults/RosAria.cpp._MLPA_72.patch
new file mode 100644
index 0000000000000000000000000000000000000000..afb2a57c9764d3e0b4061c7d62b1d33eabd98268
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_72.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_72	2020-01-20 09:43:58.564945340 +0000
+@@ -209,9 +209,6 @@
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
diff --git a/software_faults/RosAria.cpp._MLPA_73.patch b/software_faults/RosAria.cpp._MLPA_73.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8ca43df913cf0365e8a2a04b23db1102fd8da194
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_73.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_73	2020-01-20 09:43:58.585945340 +0000
+@@ -210,9 +210,6 @@
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
diff --git a/software_faults/RosAria.cpp._MLPA_74.patch b/software_faults/RosAria.cpp._MLPA_74.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9628358b19a3ba1860e05d7e8b2fb3c7c4c64783
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_74.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_74	2020-01-20 09:43:58.628945340 +0000
+@@ -211,9 +211,6 @@
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
diff --git a/software_faults/RosAria.cpp._MLPA_75.patch b/software_faults/RosAria.cpp._MLPA_75.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2445bd7650209f56ca0391515b1ab241344fb101
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_75.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_75	2020-01-20 09:43:58.668945340 +0000
+@@ -212,9 +212,6 @@
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
diff --git a/software_faults/RosAria.cpp._MLPA_76.patch b/software_faults/RosAria.cpp._MLPA_76.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4eca7f042c9d239c148e72925463afc112618c59
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_76.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_76	2020-01-20 09:43:58.708945340 +0000
+@@ -213,9 +213,6 @@
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
diff --git a/software_faults/RosAria.cpp._MLPA_77.patch b/software_faults/RosAria.cpp._MLPA_77.patch
new file mode 100644
index 0000000000000000000000000000000000000000..21f7dbf555b5c5a0d770e9e459276f3109f5ddd4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_77.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_77	2020-01-20 09:43:58.738945340 +0000
+@@ -214,9 +214,6 @@
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
diff --git a/software_faults/RosAria.cpp._MLPA_78.patch b/software_faults/RosAria.cpp._MLPA_78.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2dd57274ee3f6349711e5120c4223c45f57e1069
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_78.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_78	2020-01-20 09:43:58.762945340 +0000
+@@ -215,9 +215,6 @@
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
diff --git a/software_faults/RosAria.cpp._MLPA_79.patch b/software_faults/RosAria.cpp._MLPA_79.patch
new file mode 100644
index 0000000000000000000000000000000000000000..36602b8eb1e576afbfe47e8d13c7a189a1367301
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_79.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_79	2020-01-20 09:43:58.789945340 +0000
+@@ -216,9 +216,6 @@
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+-    published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
diff --git a/software_faults/RosAria.cpp._MLPA_8.patch b/software_faults/RosAria.cpp._MLPA_8.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4b05bcb1c2196f5772c58246d334ce589b5f2b16
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_8.patch
@@ -0,0 +1,23 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_8	2020-01-20 09:43:56.191945340 +0000
+@@ -121,7 +121,6 @@
+ 
+ void RosAriaNode::dynamic_reconfigureCB(rosaria::RosAriaConfig& config, uint32_t level)
+ {
+-    robot->lock();
+     if (TicksMM != config.TicksMM && config.TicksMM > 0) {
+         ROS_INFO("Setting TicksMM from Dynamic Reconfigure: %d -> %d ", TicksMM, config.TicksMM);
+         TicksMM = config.TicksMM;
+@@ -138,12 +137,10 @@
+         robot->comInt(88, RevCount);
+     }
+     int value;
+-    value = config.trans_accel * 1000;
+     if (value != robot->getTransAccel() && value > 0) {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
diff --git a/software_faults/RosAria.cpp._MLPA_80.patch b/software_faults/RosAria.cpp._MLPA_80.patch
new file mode 100644
index 0000000000000000000000000000000000000000..aa90fb61c18f5065e129f5b061f664e55400af0d
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_80.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_80	2020-01-20 09:43:58.805945340 +0000
+@@ -217,9 +217,6 @@
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
+-    enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+-    veltime = ros::Time::now();
+     encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
+ 
diff --git a/software_faults/RosAria.cpp._MLPA_81.patch b/software_faults/RosAria.cpp._MLPA_81.patch
new file mode 100644
index 0000000000000000000000000000000000000000..4e2d8d1932fb11a452898bdd88cf39022b4d5bde
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_81.patch
@@ -0,0 +1,12 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_81	2020-01-20 09:43:58.819945340 +0000
+@@ -218,9 +218,6 @@
+     motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+-    disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+-    veltime = ros::Time::now();
+-    encoder_pub = n.advertise < rosaria::Encoders > ("encoders", 1);
+ }
+ 
+ RosAriaNode::~RosAriaNode()
diff --git a/software_faults/RosAria.cpp._MLPA_82.patch b/software_faults/RosAria.cpp._MLPA_82.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ee20811dafc98dac4438620f6638eae0f9d8419a
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_82.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_82	2020-01-20 09:43:58.863945340 +0000
+@@ -193,13 +193,9 @@
+ RosAriaNode::RosAriaNode(ros::NodeHandle nh)
+ :n(nh), serial_port(""), serial_baud(0), conn(NULL), laserConnector(NULL), robot(NULL), myPublishCB(this, &RosAriaNode::publish), sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false), debug_aria(false), TicksMM(-1), DriftFactor(-99999), RevCount(-1), publish_aria_lasers(false)
+ {
+-    n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+-    ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
diff --git a/software_faults/RosAria.cpp._MLPA_83.patch b/software_faults/RosAria.cpp._MLPA_83.patch
new file mode 100644
index 0000000000000000000000000000000000000000..dd47be4a76eabd9e854122663ec559e9e2270e41
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_83.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_83	2020-01-20 09:43:58.891945340 +0000
+@@ -194,13 +194,9 @@
+ :n(nh), serial_port(""), serial_baud(0), conn(NULL), laserConnector(NULL), robot(NULL), myPublishCB(this, &RosAriaNode::publish), sonar_enabled(false), publish_sonar(false), publish_sonar_pointcloud2(false), debug_aria(false), TicksMM(-1), DriftFactor(-99999), RevCount(-1), publish_aria_lasers(false)
+ {
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+-    ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
diff --git a/software_faults/RosAria.cpp._MLPA_84.patch b/software_faults/RosAria.cpp._MLPA_84.patch
new file mode 100644
index 0000000000000000000000000000000000000000..2e35216c9ba81bf66f3c952d8364c7f45772a3b5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_84.patch
@@ -0,0 +1,16 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_84	2020-01-20 09:43:58.917945340 +0000
+@@ -195,13 +195,9 @@
+ {
+     n.param("port", serial_port, std::string("/dev/ttyUSB0"));
+     ROS_INFO("RosAria: set port: [%s]", serial_port.c_str());
+-    n.param("baud", serial_baud, 0);
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
diff --git a/software_faults/RosAria.cpp._MLPA_85.patch b/software_faults/RosAria.cpp._MLPA_85.patch
new file mode 100644
index 0000000000000000000000000000000000000000..b916aca466247b2cb9629433d7160c467cc1e1d5
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_85.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_85	2020-01-20 09:43:58.945945340 +0000
+@@ -199,10 +199,6 @@
+     if (serial_baud != 0) 
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+-    n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
diff --git a/software_faults/RosAria.cpp._MLPA_86.patch b/software_faults/RosAria.cpp._MLPA_86.patch
new file mode 100644
index 0000000000000000000000000000000000000000..05f240034ce024066cf49fece062e7232328b8aa
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_86.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_86	2020-01-20 09:43:58.979945340 +0000
+@@ -200,10 +200,6 @@
+         ROS_INFO("RosAria: set serial port baud rate %d", serial_baud);
+ 
+     n.param("debug_aria", debug_aria, false);
+-    n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_87.patch b/software_faults/RosAria.cpp._MLPA_87.patch
new file mode 100644
index 0000000000000000000000000000000000000000..55fd4460fdfbf6a955823d1be745eb125bb5d7a1
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_87.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_87	2020-01-20 09:43:59.005945340 +0000
+@@ -201,10 +201,6 @@
+ 
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+-    n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_88.patch b/software_faults/RosAria.cpp._MLPA_88.patch
new file mode 100644
index 0000000000000000000000000000000000000000..654fa8955ce2963c37e482189b9ed2b7444fde04
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_88.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_88	2020-01-20 09:43:59.030945340 +0000
+@@ -202,10 +202,6 @@
+     n.param("debug_aria", debug_aria, false);
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+-    n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
diff --git a/software_faults/RosAria.cpp._MLPA_89.patch b/software_faults/RosAria.cpp._MLPA_89.patch
new file mode 100644
index 0000000000000000000000000000000000000000..75f569904d79c13a7ae199196c8f173f35ba52d8
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_89.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_89	2020-01-20 09:43:59.052945340 +0000
+@@ -203,10 +203,6 @@
+     n.param("aria_log_filename", aria_log_filename, std::string("Aria.log"));
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+-    n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
diff --git a/software_faults/RosAria.cpp._MLPA_9.patch b/software_faults/RosAria.cpp._MLPA_9.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d8cdad532681fb9da377405cdf9eb5a3088b0bd0
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_9.patch
@@ -0,0 +1,20 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_9	2020-01-20 09:43:56.242945340 +0000
+@@ -138,17 +138,14 @@
+         robot->comInt(88, RevCount);
+     }
+     int value;
+-    value = config.trans_accel * 1000;
+     if (value != robot->getTransAccel() && value > 0) {
+         ROS_INFO("Setting TransAccel from Dynamic Reconfigure: %d", value);
+         robot->setTransAccel(value);
+     }
+-    value = config.trans_decel * 1000;
+     if (value != robot->getTransDecel() && value > 0) {
+         ROS_INFO("Setting TransDecel from Dynamic Reconfigure: %d", value);
+         robot->setTransDecel(value);
+     }
+-    value = config.lat_accel * 1000;
+     if (value != robot->getLatAccel() && value > 0) {
+         ROS_INFO("Setting LatAccel from Dynamic Reconfigure: %d", value);
+         if (robot->getAbsoluteMaxLatAccel() > 0) 
diff --git a/software_faults/RosAria.cpp._MLPA_90.patch b/software_faults/RosAria.cpp._MLPA_90.patch
new file mode 100644
index 0000000000000000000000000000000000000000..45fe6f122d7b22b111ac1a5b6099f871acbb1746
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_90.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_90	2020-01-20 09:43:59.077945340 +0000
+@@ -204,10 +204,6 @@
+     n.param("publish_aria_lasers", publish_aria_lasers, false);
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+-    n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
diff --git a/software_faults/RosAria.cpp._MLPA_91.patch b/software_faults/RosAria.cpp._MLPA_91.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0b723ca4b8b1aef984327b64888ab73af134e4c4
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_91.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_91	2020-01-20 09:43:59.105945340 +0000
+@@ -205,10 +205,6 @@
+     n.param("odom_frame", frame_id_odom, std::string("odom"));
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+-    n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
diff --git a/software_faults/RosAria.cpp._MLPA_92.patch b/software_faults/RosAria.cpp._MLPA_92.patch
new file mode 100644
index 0000000000000000000000000000000000000000..8c580af5d236ca43c96e2519717920eb5856f293
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_92.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_92	2020-01-20 09:43:59.132945340 +0000
+@@ -206,10 +206,6 @@
+     n.param("base_link_frame", frame_id_base_link, std::string("base_link"));
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+-    pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
diff --git a/software_faults/RosAria.cpp._MLPA_93.patch b/software_faults/RosAria.cpp._MLPA_93.patch
new file mode 100644
index 0000000000000000000000000000000000000000..e89a859c875d50a81a1bc7a710b3fa0060b7a086
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_93.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_93	2020-01-20 09:43:59.156945340 +0000
+@@ -207,10 +207,6 @@
+     n.param("bumpers_frame", frame_id_bumper, std::string("bumpers"));
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+-    bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
diff --git a/software_faults/RosAria.cpp._MLPA_94.patch b/software_faults/RosAria.cpp._MLPA_94.patch
new file mode 100644
index 0000000000000000000000000000000000000000..0e2278bcacc6d9e37cfff6c85f971586ac94d9d2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_94.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_94	2020-01-20 09:43:59.180945340 +0000
+@@ -208,10 +208,6 @@
+     n.param("sonar_frame", frame_id_sonar, std::string("sonar"));
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+-    sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
diff --git a/software_faults/RosAria.cpp._MLPA_95.patch b/software_faults/RosAria.cpp._MLPA_95.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1a96f114f83b1cbdf106f6f13c944cfeab23360c
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_95.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_95	2020-01-20 09:43:59.202945340 +0000
+@@ -209,10 +209,6 @@
+     pose_pub = n.advertise < nav_msgs::Odometry > ("pose", 1000);
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+     state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
diff --git a/software_faults/RosAria.cpp._MLPA_96.patch b/software_faults/RosAria.cpp._MLPA_96.patch
new file mode 100644
index 0000000000000000000000000000000000000000..07d1b193ebb1a010cb7548f6a88fdd564255ed43
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_96.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_96	2020-01-20 09:43:59.224945340 +0000
+@@ -210,10 +210,6 @@
+     bumpers_pub = n.advertise < rosaria::BumperState > ("bumper_state", 1000);
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+-    voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+     motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
diff --git a/software_faults/RosAria.cpp._MLPA_97.patch b/software_faults/RosAria.cpp._MLPA_97.patch
new file mode 100644
index 0000000000000000000000000000000000000000..55fac37a14909edfaf9c81cd7ce95bcdb04f3586
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_97.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_97	2020-01-20 09:43:59.245945340 +0000
+@@ -211,10 +211,6 @@
+     sonar_pub = n.advertise < sensor_msgs::PointCloud > ("sonar", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+-    recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+     motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
diff --git a/software_faults/RosAria.cpp._MLPA_98.patch b/software_faults/RosAria.cpp._MLPA_98.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9a0397183b1ff0ae6708febe130ce9fa8f204f64
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_98.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_98	2020-01-20 09:43:59.266945340 +0000
+@@ -212,10 +212,6 @@
+     sonar_pointcloud2_pub = n.advertise < sensor_msgs::PointCloud2 > ("sonar_pointcloud2", 50, boost::bind(&RosAriaNode::sonarConnectCb, this), boost::bind(&RosAriaNode::sonarConnectCb, this));
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+-    recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+     published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
diff --git a/software_faults/RosAria.cpp._MLPA_99.patch b/software_faults/RosAria.cpp._MLPA_99.patch
new file mode 100644
index 0000000000000000000000000000000000000000..6f41bc7de5084cf62b3b80f6309f509eb4b4c3a2
--- /dev/null
+++ b/software_faults/RosAria.cpp._MLPA_99.patch
@@ -0,0 +1,13 @@
+--- RosAria.cpp
++++ RosAria.cpp._MLPA_99	2020-01-20 09:43:59.294945340 +0000
+@@ -213,10 +213,6 @@
+     voltage_pub = n.advertise < std_msgs::Float64 > ("battery_voltage", 1000);
+     recharge_state_pub = n.advertise < std_msgs::Int8 > ("battery_recharge_state", 5, true);
+     recharge_state.data = -2;
+-    state_of_charge_pub = n.advertise < std_msgs::Float32 > ("battery_state_of_charge", 100);
+-    motors_state_pub = n.advertise < std_msgs::Bool > ("motors_state", 5, true);
+-    motors_state.data = false;
+-    published_motors_state = false;
+     enable_srv = n.advertiseService("enable_motors", &RosAriaNode::enable_motors_cb, this);
+     disable_srv = n.advertiseService("disable_motors", &RosAriaNode::disable_motors_cb, this);
+     veltime = ros::Time::now();