public static Plotter createPlotter(String frameTitle) {
   PlotterPanel plotterPanel = new PlotterPanel();
   Plotter plotter = plotterPanel.getPlotter();
   plotter.setRangeLimit(1, 2, -.2, .2, .2, -.2);
   if (frameTitle == null) {
     frameTitle = "Plotter Panel " + plotterPanelId;
   }
   JFrame f = new JFrame(frameTitle);
   f.getContentPane().add(new JScrollPane(plotterPanel), BorderLayout.CENTER);
   f.pack();
   f.setVisible(true);
   return plotter;
 }
  // Plot model-pred - measurement on a 2d graph
  public void showSample(int numPlotSample, String frameTitle) {

    Plotter plotter = createPlotter(frameTitle);
    // filter out zero velocity region
    int nSamples = getNumSamples();
    ArrayList<Point3d> com = new ArrayList<>(nSamples);
    ArrayList<Point3d> cop = new ArrayList<>(nSamples);
    packRobotComCopSeries(com, cop);

    for (int i = 0; i < nSamples; i += nSamples / numPlotSample) {
      plotter.addArtifact(
          new CircleArtifact("sensedCoP" + i, cop.get(i).x, cop.get(i).y, 0.005, true, Color.RED));
      plotter.addArtifact(
          new CircleArtifact("modelCoM" + i, com.get(i).x, com.get(i).y, 0.01, false, Color.RED));
    }
  }