示例#1
0
 def test_get_content(self):
     reader = csv_reader.CSVReader('testdata/test.csv.gz', zipped=True)
     rows = []
     with closing(reader.get_content()) as content:
         for r in content:
             rows.append(r)
     self.assertEqual(2, len(rows))
     self.assertEqual(['v1.1', 'v1.2', 'v1.3'], rows[0])
     self.assertEqual(['v2.1', 'v2.2', 'v2.3'], rows[1])
示例#2
0
 def __init__(self,
              data_file_name,
              data_short_name,
              lookup_file_name,
              lookup_short_name,
              key_name,
              output_file_name,
              zipped=False):
     self.data_reader_ = csv_reader.CSVReader(data_file_name, zipped)
     self.lookup_reader_ = csv_reader.CSVReader(lookup_file_name, zipped)
     self.data_short_name_ = data_short_name
     self.lookup_short_name_ = lookup_short_name
     self.data_header_ = self.data_reader_.get_header()
     self.lookup_header_ = self.lookup_reader_.get_header()
     assert key_name in self.data_header_
     assert key_name in self.lookup_header_
     self.key_name_ = key_name
     self.output_file_name_ = output_file_name
     self.zipped_ = zipped
示例#3
0
    def test_get_join(self):
        output_fn = '/tmp/output.csv.gz'
        lookup = csv_lookup.CSVLookup(
            data_file_name='testdata/test.csv.gz',
            data_short_name='',
            lookup_file_name='testdata/lookup.csv.gz',
            lookup_short_name='lookup',
            key_name='COL1',
            output_file_name=output_fn,
            zipped=True)
        lookup.join()

        reader = csv_reader.CSVReader(output_fn, zipped=True)
        header = reader.get_header()
        self.assertEqual(4, len(header))
        self.assertEqual(['COL1', 'COL2', 'COL3', 'lookup.COL2'], header)

        rows = []
        with closing(reader.get_content()) as content:
            for r in content:
                rows.append(r)
        self.assertEqual(2, len(rows))
        self.assertEqual(['v1.1', 'v1.2', 'v1.3', 'l1.1'], rows[0])
        self.assertEqual(['v2.1', 'v2.2', 'v2.3', 'l2.1'], rows[1])
#      notice, this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright
#      notice, this list of conditions and the following disclaimer in the
#      documentation and/or other materials provided with the distribution.
#    * Neither the name of the Universal Robots A/S nor the names of its
#      contributors may be used to endorse or promote products derived
#      from this software without specific prior written permission.
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL UNIVERSAL ROBOTS A/S BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

import matplotlib.pyplot as plt

import sys
import csv_reader

with open('robot_data.csv') as csvfile:
    r = csv_reader.CSVReader(csvfile)

# plot
plt.plot(r.timestamp, r.target_q_1)
plt.show()

def plotCSVTcp(filenameCSV):

    filename = os.path.splitext(filenameCSV)[0]

    with open(('csv/' + filenameCSV)) as csvfile:
        r = csv_reader.CSVReader(csvfile)

    fig1 = plt.figure().gca()
    try:
        fig1.plot(r.timestamp, r.target_q_0, color='r', label='q0')
        fig1.plot(r.timestamp, r.target_q_1, color='g', label='q1')
        fig1.plot(r.timestamp, r.target_q_2, color='b', label='q2')
        fig1.plot(r.timestamp, r.target_q_3, color='c', label='q3')
        fig1.plot(r.timestamp, r.target_q_4, color='magenta', label='q4')
        fig1.plot(r.timestamp, r.target_q_5, color='orange', label='q5')
    except:
        print("Singular target_q_0-5")
        #return 1
    fig1.xaxis.set_major_locator(ticker.MultipleLocator(0.50))
    fig1.xaxis.set_minor_locator(ticker.MultipleLocator(0.25))
    plt.grid(True)
    plt.title(filenameCSV + " - Gelenkwinkel")
    plt.ylabel('Gelenkwinkel in Rad')
    plt.xlabel('Zeit in s')
    plt.legend()
    plt.savefig('png/' + filename + '_q.png', dpi=300)

    fig12 = plt.figure().gca()
    try:
        fig12.plot(r.timestamp, r.target_qd_0, color='r', label='qd0')
        fig12.plot(r.timestamp, r.target_qd_1, color='g', label='qd1')
        fig12.plot(r.timestamp, r.target_qd_2, color='b', label='qd2')
        fig12.plot(r.timestamp, r.target_qd_3, color='c', label='qd3')
        fig12.plot(r.timestamp, r.target_qd_4, color='magenta', label='qd4')
        fig12.plot(r.timestamp, r.target_qd_5, color='orange', label='qd5')
    except:
        print("Singular target_qd_0-5")
        #return 12
    fig12.xaxis.set_major_locator(ticker.MultipleLocator(0.50))
    fig12.xaxis.set_minor_locator(ticker.MultipleLocator(0.25))
    plt.grid(True)
    plt.title(filenameCSV + " - Winkelgeschwindigkeit")
    plt.ylabel('Winkelgeschwindigkeit in Rad/s')
    plt.xlabel('Zeit in s')
    plt.legend()
    plt.savefig('png/' + filename + '_qd.png', dpi=300)

    fig2 = plt.figure().gca()
    try:
        fig2.plot(r.timestamp, r.target_TCP_pose_0, color='r', label='X')
        fig2.plot(r.timestamp, r.target_TCP_pose_1, color='g', label='Y')
        fig2.plot(r.timestamp, r.target_TCP_pose_2, color='b', label='Z')
    except:
        print("Singular target_TCP_pose_0-2")
    # return 2
    fig2.xaxis.set_major_locator(ticker.MultipleLocator(0.50))
    fig2.xaxis.set_minor_locator(ticker.MultipleLocator(0.25))
    plt.grid(True)
    plt.title(filenameCSV + " - Pose XYZ")
    plt.ylabel('XYZ in m')
    plt.xlabel('Zeit in s')
    plt.legend()
    plt.savefig('png/' + filename + '_Pose_XYZ.png', dpi=300)

    fig3 = plt.figure().gca()
    try:
        fig3.plot(r.timestamp, r.target_TCP_pose_3, color='c', label='rx')
        fig3.plot(r.timestamp,
                  r.target_TCP_pose_4,
                  color='magenta',
                  label='ry')
        fig3.plot(r.timestamp, r.target_TCP_pose_5, color='orange', label='rz')
    except:
        print("Singular target_TCP_pose_3-5")
        #return 3
    fig3.xaxis.set_major_locator(ticker.MultipleLocator(0.50))
    fig3.xaxis.set_minor_locator(ticker.MultipleLocator(0.25))
    plt.grid(True)
    plt.title(filenameCSV + " - Pose rxryrz")
    plt.ylabel('rxryrz in Rad')
    plt.xlabel('Zeit in s')
    plt.legend()
    plt.savefig('png/' + filename + '_Pose_rxryrz.png', dpi=300)

    fig4 = plt.figure().gca()
    try:
        fig4.plot(r.timestamp, r.target_TCP_speed_0, color='r', label='dX')
        fig4.plot(r.timestamp, r.target_TCP_speed_1, color='g', label='dY')
        fig4.plot(r.timestamp, r.target_TCP_speed_2, color='b', label='dZ')
    except:
        print("Singular target_TCP_speed_0-2")
        #return 4
    fig4.xaxis.set_major_locator(ticker.MultipleLocator(0.50))
    fig4.xaxis.set_minor_locator(ticker.MultipleLocator(0.25))
    plt.grid(True)
    plt.title(filenameCSV + " - Pose Geschwindigkeit XYZ")
    plt.ylabel('dXYZ in m/s')
    plt.xlabel('Zeit in s')
    plt.legend()
    plt.savefig('png/' + filename + '_Pose_Geschwindigkeit_XYZ.png', dpi=300)

    fig5 = plt.figure().gca()
    try:
        fig5.plot(r.timestamp, r.target_TCP_speed_3, color='c', label='drx')
        fig5.plot(r.timestamp,
                  r.target_TCP_speed_4,
                  color='magenta',
                  label='dry')
        fig5.plot(r.timestamp,
                  r.target_TCP_speed_5,
                  color='orange',
                  label='drz')
    except:
        print("Singular target_TCP_speed_3-5")
        #return 5
    fig5.xaxis.set_major_locator(ticker.MultipleLocator(0.50))
    fig5.xaxis.set_minor_locator(ticker.MultipleLocator(0.25))
    plt.grid(True)
    plt.title(filenameCSV + " - Pose Geschwindigkeit rxryrz")
    plt.ylabel('drxryrz in Rad/s')
    plt.xlabel('Zeit in s')
    plt.legend()
    plt.savefig('png/' + filename + '_Pose_Geschwindigkeit_rxryrz.png',
                dpi=300)

    #target_TCP_acc_X
    fig6 = plt.figure().gca()
    try:
        fig6.plot(r.timestamp, r.target_TCP_acc_0, color='r', label='ddX')
        fig6.plot(r.timestamp, r.target_TCP_acc_1, color='g', label='ddY')
        fig6.plot(r.timestamp, r.target_TCP_acc_2, color='b', label='ddZ')
    except:
        print("Singular target_TCP_acc_X")
        #return 6
    fig6.xaxis.set_major_locator(ticker.MultipleLocator(0.50))
    fig6.xaxis.set_minor_locator(ticker.MultipleLocator(0.25))
    plt.grid(True)
    plt.title(filenameCSV + " - Pose Beschleunigung XYZ")
    plt.ylabel('ddXYZ in m/s**2')
    plt.xlabel('Zeit in s')
    plt.legend()
    plt.savefig('png/' + filename + '_Pose_Beschleunigung_XYZ.png', dpi=300)

    return 0
示例#6
0
 def test_get_header(self):
     reader = csv_reader.CSVReader('testdata/test.csv.gz', zipped=True)
     header = reader.get_header()
     self.assertEqual(3, len(header))
     self.assertEqual(['COL1', 'COL2', 'COL3'], header)