# Tenth Week – Backpropagation

For this week, I learned about and used backpropagation, a method of training neural networks.

As a method of learning and testing, I tried to use the backpropagation method to identify if certain random points in the cartesian space were inside the left ‘hollow’ space, right ‘hollow’ space or outside  of a lemniscate (a side eight or infinity symbol), which was drawn using the parametric equations.

For this, I generated various random points, used conditions to know where they were in relation to the figure, and then taught the neural network. After this I used other points, different from the ones used for the teaching, but still random, and analised to see if the network correctly identified them as being in the right place.

I also started an exercise that used both backpropagation and hopfield networks, but didn’t finish it due to the amount of patterns necessary – 36 (26 letters and 10 digits).

# Eigth and Ninth Weeks – V-REP Remote API Function Testing and Hopfield Networks

For the eigth and ninth weeks, I created a V-REP scene with a simple actuated inverted pendulum, as a means to test various of the V-REP <-> Matlab Remote API functions. I also noticed the simpleSynchronousTest.m file, provided by Coppelia Robotics themselves along with the other V-REP <-> Matlab Remote API contents, that I hadn’t noticed before, which was a valuable step forward since, with its contents, not only was I now able to synchronize V-REP and Matlab, by being able to put the V-REP simulation on hold until Matlab sends a signal to calculate the next step/instant, but also being able to start the simulation through Matlab, using a certain communication port.

With this, I am now able to, in real time, plot the Time-Position and Time-Torque graphs for the joint, as seen in the image below.

A video of the created scene, oscilating by changing the target joint position through Matlab, can be seen here.

A git with the already created scenes and Matlab scripts can be found here.

During the ninth week, I also advanced on my neural network work by learning about and using Hopfield Networks. This type of artificial neural network is a recurrent neural network, and can be used for reconstructing stored patterns.

A reconstruction, based on a script developed on Matlab, can be seen below.

These networks, however, can, during the reconstruction process, reconstruct patterns that aren’t any of the stored ones, due to converging to a local minimum that is not the expected one.

# Sixth and Seventh Weeks – V-REP/Matlab Interfacing and Neural Network Exercises

During the sixth and seventh weeks, I solved various neural networks exercises, proposed by my advisor and using the Matlab Neural Network Toolbox, as a means to familiarize myself with neural networks, as they can be used for the learning part of the project.

During the sixth week, I also interfaced one of the previously developed basic V-REP scenes  with Matlab, using the Coppelia Robotics’ remote API library and Matlab scripts/functions.

# Fourth and Fifth Weeks – V-REP Familiarization

For the fourth and fifth weeks, I proceeded to familiarize myself with the V-REP software, starting with the tutorials presented in the V-REP user manual and video tutorials on Youtube, and then with basic ‘scenes’ related to the project.

During the fourth week, the group also had the third and last ROS Workshop session where, using code developed during the previous sessions, we developed team decision code, for a game that was to be played during the session.

# Third Week – V-REP/Matlab Interfacing & ROS Workshop

For the third week, I did a little research on how to interface V-REP with Matlab. According to the V-REP manual, this interfacing can be done directly through a remote API, or through ROS. The remote API method was chosen, as it connects V-REP to Matlab directly, and can easily be used on the various OSs.

The group also had the second ROS Workshop session, focused on teaching ROS properties to the group.

# Second Week – Research & ROS Workshop

For the second week, I did additional research on the topic of humanoid balance control, and techniques used to simplify the control problem.

The group also had the first session of the ROS Workshop, which was focused on deepening C++ knowledge.

# First Week – Preliminary Report

For the first week, I was tasked with writing a preliminary report, detailing previous works relatated to the thesis, and the expected work plan.