User:Erigualter: Difference between revisions

Jump to navigation Jump to search
4,900 bytes added ,  26 March 2018
m
(Created page with "= Public application template = This part is answered in public on your '''user page'''. Please copy its source ('''edit''' tab) and then fill. Delete any e...")
 
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Public application template =
= Public application - Erivelton Gualter (dev101) =
This part is answered in public on your '''[[Special:MyPage|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 ==
== A: An introduction ==
Line 29: Line 28:


'''Some illustration about what I have done:'''
'''Some illustration about what I have done:'''
<gallery heights=400px mode="slideshow">
<gallery heights=400px mode="slideshow">
File:GUI.png|Simulator of gait walking with amputee subjects using prosthesis built.
File:GUI.png|Simulator of gait walking with amputee subjects using prosthesis built.
File:pendulum.png|Inverted Pendulum Interface to simulate different parameters.
File:pendulum.png|[https://github.com/EriveltonGualter/Inverted-Pendulum Inverted Pendulum Interface to simulate different parameters].
File:wheelchair.jpg|Power-Assisted Wheelchair. Embedded Controller in C.
File:wheelchair.jpg|[https://youtu.be/rjgii2i_xP4 Power-Assisted Wheelchair. Embedded Controller in C].
File:robofei.png|Strategy and Controller of robots to play soccer in C++.
File:robofei.png|[https://eriveltongualter.github.io/robotsoccer.html Strategy and Controller of robots to play soccer in C++].
</gallery>
</gallery>
'''Deep and detailed answer about programming language experience:'''
'''Deep and detailed answer about programming language experience:'''


Line 50: Line 47:
** 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 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 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: \url{https://www.youtube.com/watch?v=rjgii2i_xP4} , here is the link for the full project: \url{https://eriveltongualter.github.io/wheelchair.html}
** I build an Power-Assisted Wheelchair controlled by EMG signals: [https://www.youtube.com/watch?v=rjgii2i_xP4 https://www.youtube.com/watch?v=rjgii2i_xP4] , here is the link for the full project: [https://eriveltongualter.github.io/wheelchair.html https://eriveltongualter.github.io/wheelchair.html]


* Python
* Python
Line 61: Line 58:
*** [https://fei-nta.github.io/webpage/ https://fei-nta.github.io/webpage/]
*** [https://fei-nta.github.io/webpage/ https://fei-nta.github.io/webpage/]
*** [https://vickykras.github.io/ https://vickykras.github.io/]
*** [https://vickykras.github.io/ https://vickykras.github.io/]
[[File:video1.png|250px|thumb|left|[https://youtu.be/VxosC6S3XK8 Link video ]]]
[[File:video2.png|250px|thumb|left|[https://youtu.be/YtqTC5X42jY Link video ]]]
The biggest coding project I worked on with a big group was the period I was an undergraduate researcher at [http://fei.edu.br/robofei/ 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:
* # [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 '''(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:
** [https://github.com/EriveltonGualter/Concept-SISO-tool-for-Octave Repository Code];
and videos about the performance of the interface which it was a concern. However, it has been proved promising.


== F: Feeling fine ==
== F: Feeling fine ==
Line 85: Line 106:


== Y: Your task ==
== Y: Your task ==
* Did you select a task from our list of proposals and ideas?
=== Interactive tool for SISO Linear Control System Design ===
** 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.''
I did not select a direct task from the list of proposal. However, I checked in the wiki and I found a project in the name of Matheus Vieira Portela called ''"GUI for manipulating closed-loop systems for the control package"'' from GSoC 2013 ( [https://wiki.octave.org/Summer_of_Code https://wiki.octave.org/Summer_of_Code] ). Unfortunately, he did not finish the project. As I do not have access to his proposal, I tracked past conversations in the mailing list and talked to the IRC fellows, such as ''dougstew'', ''andy1978'' and ''batterylow'', then I decided to propose '''"Interactive tool for SISO Linear Control System Design"'''.
[[Category: Summer of Code]]
 
Just as the Matlab has a function called sisotool to performs the the design of Single-Input, Single-Output (SISO) controllers for feedback system, my idea is to create a GUI with the same characteristics.
 
For this proposal, the GUI will be able of design controllers from interactive plots. For example, adding, modifying and removing poles and zeros to the root locus diagram, where both the Bode and Nichols diagram can also be visualized.
 
==== Community Bonding Period (23 April - 13 May) ====
I will explore the control package created by Lukas Reichlin and maintainers Alexander Wilms and Doug Stewart. My goal is to become comfortable with the structure of the following codes:
* rlocus.m;
* nyquist.m;
* bode.m.
 
I will discuss the project with the mentor aiming to refine this proposal goals and timeline.
 
The tasks, notes and decisions made during this week will be posted in the following blog which is already is ready published: [https://eriveltongualter.github.io/GSoC2018/pages/pelcian.html#pelcian https://eriveltongualter.github.io/GSoC2018/].
 
==== Phase 1  Initial phase of coding ====
'''Week 1 (14 May - 20 May)'''
* Setting up.
 
'''Week 2 (21 May - 27 May)'''
* Implement the function sisotool(Gp). This function will plot the Root Locus, Nyquist and Bode diagram in the same plot;
* The goal at this point is to create the layout of the plots.
* The distribution in the plots will be fixed at this point. However, in Phase 2 the function will have attributes to choose the desired diagrams in the interface. Example: sisotool(Gb, 'rlocus', 'nyquist');
 
'''Week 3  (28 May - 3 June)}'''
* Add polos and zeros, being real or complex, to the plant through the UI elements.
* Position polos and zeros according to the mouse input.
* Polos and zeros can be reallocated by dragging with the left button of the mouse.
 
'''Week 4 & 5 (4 June - 17 June)'''
* Any remaining work will be completed;
* Submission of Phase 1 evaluation;
* Complete post about the phase with detailed documentation.
 
==== Phase 2 ====
'''Week 6 (18 June - 24 June)'''
* Create the layout of the complete GUI interface with buttons, sliders, and others, examples:
** ''edit box'' for the compensator gain;
** poles and zeros ''buttons'';
** ''listboxes'' for the desired plots to be shown.
 
'''Week 7 \& 8(25 June - 8 July)'''
* Add functionalities for the graphical elements from week 6.
 
'''Week 9 (9 July - 15 July)'''
* Submission of Phase 2 evaluation;
* Complete post about this phase with detailed documentation.
 
==== Phase 3 ====
'''Week 10 & 11 (16 July - 29 July)'''
* Add Step Response Time functionality. The user can select the step response to visualize the characteristics of the output, such as: Rise time and Peak Overshoot.
* Export compensator design to the workspace.
 
'''Week 12 (30 July - 5 August)'''
* Any remaining work will be completed.
 
'''Week 13 (6 August - 14 August)'''
* Complete post about the phase with detailed documentation.
* Final Submission
 
Mentor for this project: '''Doug Stewart'''
29

edits

Navigation menu