User:Erigualter: Difference between revisions

From Octave
Jump to navigation Jump to search
Line 69: Line 69:
* # [https://savannah.gnu.org/bugs/?51437 51437] - mean(zeros(1,0)) does not return NaN for Matlab compatibility
* # [https://savannah.gnu.org/bugs/?51437 51437] - mean(zeros(1,0)) does not return NaN for Matlab compatibility


However, In the meanwhile I decided to focus in control system functionalities. So, I started to develop a prototype for a GUI sisotool.
[[File:video1.png|250px|thumb|left|[https://youtu.be/VxosC6S3XK8 Link video ]]]
[[File:video2.png|250px|thumb|left|[https://youtu.be/YtqTC5X42jY Link video ]]]


[[File:sisotool.png|400px|center|Concept of Interactive adjust of poles and zeros in Octave.]]
However, In the meanwhile I decided to focus in control system functionalities. So, I started to develop a prototype for a GUI sisotool '''(Interactive adjust of poles and zeros in Octave)'''.


In this evaluation code, the user can:
In this evaluation code, the user can:
Line 84: Line 85:


and videos about the performance of the interface which it was a concern. However, it has been proved promising:
and videos about the performance of the interface which it was a concern. However, it has been proved promising:
[[File:video1.png|250px|thumb|left|[https://youtu.be/VxosC6S3XK8 Link video ]]]
[[File:video2.png|250px|thumb|left|[https://youtu.be/YtqTC5X42jY Link video ]]]


== F: Feeling fine ==
== F: Feeling fine ==

Revision as of 20:26, 19 March 2018

Public application template

This part is answered in public on your user page. Please copy its source (edit tab) and then fill. Delete any examples and annotations (this markup) afterwards. Same for questions that do not apply to your situation.

A: An introduction

My name is Erivelton Gualter and I am a first year PhD student at Cleveland State University, USA. My overall background is related to robotics applied to biomechanics. I am currently developing a robotics transfemoral prosthesis and I built a robotic wheelchair when I majored in Automation and Control Engineering at FEI University in Sao Paulo, Brazil. I am fluent in Portuguese, English and Intermediate Spanish.

It is my first time applying to the Google Summer of Code. However, I have been in touch with a couple organization: Octave and Sympy. My primary goal to participate in the gsoc is to build a long term relationship with the open source community. I want to take it serious and get involved. I have been using a lot of open source tools, and now I fell it is time to contribute for it.

I choose Octave because I have used MATLAB during my entire undergraduate program and I still use it for my PhD. However, now It is time to switch gears, so I decided to use Octave due the similarity to m scripting. Unfortunately, Octave still lacking some crucial functions which prevent some group of people to also switch gears. Therefore, I want to be part of maintainers group and I want to be able to use Octave for all my projects.

C: Contact

However, I was using dev101 in the IRC chat, which I will not longer use anymore.

E: Coding experience

Short answer of Programming Languages (in approximate order of proficiency):

  • M-file scripting;
  • C/C++;
  • Python;
  • HTML, CSS, Javascript, Pelican (Web development);
  • Java.

Some illustration about what I have done:

Deep and detailed answer about programming language experience:

  • M-file scripting Octave/Matlab
    • I have been used Matlab/Octave in several classes at my undergraduate, such as: Numerical Calculus, Classical Control Systems I and II, Modern Control, Digital Signal Processing, Artificial Intelligence, and Computational Intelligence Applied to Control.
    • Also, in Online Courses at Coursera plataform: Aerial Robotics, Computational Motion Planning and Mobility: code
    • Here is a link with the overall projects developed in m-scriptiong file:code
    • I also have created some GUI (graphical user interface) in matlab:
      • Simulation of Inverted pendulum mounted to a motorized cart, where the user can select the parameters of the system and the controller. code
      • Simulation of Variable Stiffness Actuator for a Prosthesis: code
  • C/C++
    • I used C and C++ in several classes: Introduction to Computer Programming, Laboratory Automation Engineering, Embedded Systems, Advanced Programming Language I and II, Data Structure.
    • I joined to the Artificial Intelligence and Robotics laboratory to develop robots with the ability to play soccer. I developed part of the strategy to pass system and intercept algorithms.
    • I build an Power-Assisted Wheelchair controlled by EMG signals: https://www.youtube.com/watch?v=rjgii2i_xP4 , here is the link for the full project: https://eriveltongualter.github.io/wheelchair.html
  • Python
    • I built an Airhockey table, which I developed the repository mechanism, upgraded airflow system, and display interface. For this task I used a Raspberry Pi as an interface. code
    • I have done some web scraping for fun.


The biggest coding project I worked on with a big group was the period I was an undergraduate researcher at Artificial Intelligence and Robotics Laboratory. We were in 6 programmers, 4 mechanicals and 3 electronic guys. For the software development, we used TortoiseSVN and then we switched to Bitbucket. Back then I was amused how efficiently everyone could collaborate to the software without messing up. Since then, I have been using github for my classes and research to be more organized.

I discovered GSoC in the end of January of this year, I have been exploring the Octave community and I performed some basic tasks, just as downloaded and build the system. Also, I started working in the following bug:

  • # 51437 - mean(zeros(1,0)) does not return NaN for Matlab compatibility

However, In the meanwhile I decided to focus in control system functionalities. So, I started to develop a prototype for a GUI sisotool (Interactive adjust of poles and zeros in Octave).

In this evaluation code, the user can:

  • add poles and zeros by clicking with the left and right button in the mouse;
  • Reallocated/Reposition by clicking and drag the pole/zero to desired position;
  • To delete the pole/zero, you can click with the scroll on this.

Here is the code I have been working:

and videos about the performance of the interface which it was a concern. However, it has been proved promising:

F: Feeling fine

  • “IRC and mailing list”: I have been hanging out in the IRC and following the mailing list without any problems;
  • “Mercurial”: I have been using git a quite time and I used hg just in order to clone and update the Octave project. I might ask about hg later on or I am sure I can find the majority answers in hg documentation.
  • “mediawiki”: I fell fine editing the wiki.
  • “development tools”: Basic understand to build a GNU system, using configure-make-make install. Although I have built several programs when I was a windowns user in Microsoft Visual Studio.

After the GsoC, I feel confident in stay in the community. For sure, I will be using Octave in my phd research at least for more three years, since I just started. However, my main goal is to became a maintainer of the Octave as hobby independent of my research and job.

O: Only out of interest

I first heard about Octave in third year of my undergraduate program. I had a problem with my Matlab license and I needed to conclude a homework. Therefore, I found Octave by myself surfing on Google. Actually, in that time I did not feel the Octave appearance really welcoming (just noting I was a window's user in that time). Then in the last year of college I did a dual boot Windows and Ubuntu 14.04, and I installed Octave in the Ubuntu side. However, I have been using both Octave and Matlab since I share code with my adviser, I still use Matlab a lot. (I am still trying to convince him to switch with me).

In back the time I used Octave for the first time in window's, I faced some installation issues with took a while to figure out. I am not using windows anymore, so I assume it is fine nowadays.

P: Prerequisites

  • I have a personal laptop with Ubuntu 16.04 and Windows 10 (but I only use windows for specific software of my research). Also, I have full access for both system.
  • I basically spend my whole day in my laptop (24h).

S: Self-assessment

I belief that construct critics is essential for anyone looking to improve their abilities in certain tasks.

I am autonomous in my tasks and I consider myself very pro-activity individual. I prefer to discuss the goals desire prior to coding. After established the goals, even if we do not discussed what is the right path is to reach the goal I will be proactive and find a solution to reach this goal. Obviously with a feedback and construct criticism, the work will be concluded much faster.

Y: Your task

  • Did you select a task from our list of proposals and ideas?
    • If yes, what task did you choose? Please describe what part of it you especially want to focus on if you can already provide this information. Please also wiki-link the page for your elaborated proposal here.
  • Please provide a rough estimated timeline for your work on the task. This should include the GSoC midterms and personal commitments like exams or vacation ("non-coding time"). If possible, include two or three milestones you expect.