Google Summer of Code 2023 proposed ideas: Διαφορά μεταξύ των αναθεωρήσεων

Από Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση
(Νέα σελίδα με 'Contributors interested to participate should check which of the following projects fits their interests and skills. '''Τo communicate with the mentors and ask questi...')
 
Χωρίς σύνοψη επεξεργασίας
Γραμμή 64: Γραμμή 64:




== Development of a DIY robot kit for educators[επεξεργασία | επεξεργασία κώδικα] ==
== Development of a Robotic Education Platform for the DIY robot kit for educators ==


==== Brief Explanation ====
==== Brief Explanation ====
In GSoC 2019, one of the final projects was “A DIY robot kit for educators”. In this project, the contributor, Christos Chronis, designed and implemented a 3D printable robot for educational purposes from scratch. Electronic parts, such as cables, sensors, buttons, camera, accelerometer, LED set, as well as 3D printed parts were used to assemble the robot alongside with the code written in order to program it. Two years later, in GSoC 2021, the contributor developed another version of “A DIY robot kit for educators” with a Node-Red integration, based on the project of GSoC 2019.
The project started back on the GSoC 2019 when Christos Chronis designed and implemented a 3D printable robot for educational purposes from scratch. The idea was create a new educational robot, that will be modular, come at a low cost and be available to everyone. All of the parts of the modular robot were designed in a way so that they are easily 3D-printable. The 3D-printed parts are combined with basic low-cost electronics and sensors, which can be easily assembled to the final robot following extensive and simple guidelines of how to print and assemble the robot. In this way non-expert staff in robotics, electronics or IoT programming can assemble and use the robot. Alongside the guidelines, a number of demo scenarios for the class, e.g. simple navigation or sensing scenarios, that require basic programming skills are also provided.  


As the contributor of GSOC 2019 mentioned in his wiki page there is still a lot of work to be done, so that the original project (Proteas robot) can be improved and maybe be a direct competitor to any commercial alternative on educational robotics. Based on the work of the two previous contributors, I would like to propose my idea for GSOC 2022, which includes the robotic designs, the guidelines, the integration of the robot with Google Blockly and improvement of the back end code with a custom library for special control of every electronic part and sensor.
The project has been continued two years later, in GSoC 2021, by Georgios Giannakoulias, who developed a version of the “DIY robot kit for educators” that integrates Node-Red blocks and introduced a new way to program the robot based on blocks. Last year at the GSOC 2022 two more contributors Danai Brilli and Eleftheria Papagergiou worked on a new version of the robot and redesigned the whole programming stack. The robot can now be programmed using native Python code or using a custom version of Google Blockly (a Scratch-like user interface). They also improved the initial core library and developed a completed unified user interface with multiple project management, robot configuration page, a new programming mode for kindergarten learning activities and a Docker based deployment system with CI/CD capabilities.


All of the parts of the modular robot are gonna be designed this way so that they are 3D-printable. The 3D-printed parts together with basic low-cost electronics and sensors can be  easily combined to assemble the robot following the guidelines. Extensive and simple guidelines of how to print and assemble the robot will be provided, so that non-expert staff in robotics, electronics or IoT programming, will be able to follow them successfully. Alongside with the guidelines, the staff will also be provided with a number of demo scenarios for the class, e.g. simple navigation or sensing scenarios, that require basic programming skills.
'''What must be done in GSOC 2023:'''


The development of a desktop application will mainly consist of the open-source Google Blockly. Blockly is a free, open source web-based, visual programming editor, developed by Google. Users can drag blocks together to build programs. It is similar to Scratch, that the contributor of GSoC 2019 proposed, but it can be a lot easier configured, as it is open source and offers a lot more possibilities, such as custom creation of Google Blockly blocks or preferred language selection of the environment. In the GsoC 2021, the contributor made a first approach using Node-red, but Node-red demands specialized knowledge in its usage and it is not suitable for younger ages. So, the kids and adolescents can use our application for learning visual programming by using the custom blocks to build programs and then the robot can execute them in real time. The application and the robot can be used in STEM education for different experiments. Educators already know Scratch, so adjusting to Google Blockly will be an easy process. The desktop application will be wirelessly connected to the robot, so that the robot can execute the programs built and run by the students. The desktop application will be implemented in such a way, so that it is suitable for students, e.g. colorful and interactive design, pop ups for extra information or to notify the student if an action was successful or not. There will also be the option to save or import Blockly code. The already implemented code can be saved/ extracted into an xml file that will be downloaded in a preferred folder in the computer. Such an xml file can be imported into the application for later use.
The current robot programming stack runs in the robot itself, allowing for the use and programming of the robot without the need for additional software installation on a local computer. However, this feature has proven to be more of an obstacle than a benefit due to connectivity and update issues. Also the rising cost of Single Board Computers (SBCs), such as the Raspberry Pi, made DIY solutions uncompetitive with commercial alternatives.


In order for the Blockly integration to be possible, it is going to be essential for some parts of the existing code of the GSoC 2019-2021 robot to be rewritten. This means that back end code that runs in the Raspberry Pi and controls all the movements of the robot, will be improved. For that reason, I will create a custom functionality library (e.x. PID Controller) for special control of every electronic part and sensor. Based on the fact that the GSoC 2021 contributor introduced for the first time the logic of microservices, microservices and dockerization can be utilized so that different services run for controlling the robot movements as well as the communication between the Blockly desktop application and the Raspberry Pi.
To address these issues, the entire programming stack must be transferred to the cloud. This approach would remove the need for additional computational power within the robot and provide the opportunity for a wider range of SBCs or microcontrollers such as the Raspberry Pi Pico, Microbit, ESP32, or Micropython-enabled Arduino boards to be used. This would result in a reduction in the overall cost of construction for the robot and give users more freedom to choose their own computing components. Additionally, this approach would reduce the need to perform version updates on each robot separately. Based on the feedback we got from educators, the current approach for interaction with the robot is different from that of similar market robotic kits. Thus, it is necessary to adopt an approach that utilizes existing user interaction knowledge. The proposed solution of transferring the programming stack to the cloud addresses these issues and provides a cost-effective and user-friendly solution.


==== Expected Results ====
==== Expected Results ====
Within the months of the project the expected results are:
Within the months of the project the expected results are:  


* Understanding previous work
* Understanding previous work  
* Rewrite core library ( Backend code )
* Transfer the core library to Micropython
* Create microsreliable communication between Frontend - Backend code
* Convert the whole stack to be deployable on the cloud as a platform.
* Frontend implementation
* New programming modes
* Educational scenarios for the class
* Resolve bugs and provide improvements (front end - back end)
* Github automation for deployment
* Extensive documentation


==== Duration of the Project ====
==== Duration of the Project ====
Γραμμή 90: Γραμμή 92:


==== Related Repositories ====
==== Related Repositories ====
<nowiki>https://hackaday.io/project/26007-versatile-educational-2wd-robot</nowiki>
<nowiki>https://github.com/eellak/fossbot</nowiki>
 
<nowiki>https://github.com/chronis10/fossbot_source</nowiki>
 
<nowiki>https://github.com/chronis10/fossbot_simulator</nowiki>
 
<nowiki>https://github.com/cyberbotics/webots</nowiki>
 
<nowiki>https://github.com/bbcmicrobit</nowiki>


<nowiki>https://gist.github.com/yiorgosynkl/914e75d0f9ae98bb31f4d8da66ec9908</nowiki>
<nowiki>https://gist.github.com/yiorgosynkl/914e75d0f9ae98bb31f4d8da66ec9908</nowiki>
Γραμμή 97: Γραμμή 107:


<nowiki>https://github.com/isl-org/OpenBot</nowiki>
<nowiki>https://github.com/isl-org/OpenBot</nowiki>
==== Mentors: ====
Iraklis Varlamis
Christos Chronis
== Development of a Web Based robotic simulator for the DIY robot kit for educators ==
Google Summer of Code 2023 - Proposal
==== Brief Explanation ====
The project started back on the GSoC 2019 when Christos Chronis designed and implemented a 3D printable robot for educational purposes from scratch. The idea was create a new educational robot, that will be modular, come at a low cost and be available to everyone. All of the parts of the modular robot were designed in a way so that they are easily 3D-printable. The 3D-printed parts are combined with basic low-cost electronics and sensors, which can be easily assembled to the final robot following extensive and simple guidelines of how to print and assemble the robot. In this way non-expert staff in robotics, electronics or IoT programming can assemble and use the robot. Alongside the guidelines, a number of demo scenarios for the class, e.g. simple navigation or sensing scenarios, that require basic programming skills are also provided.
The project has been continued two years later, in GSoC 2021, by Georgios Giannakoulias, who developed a version of the “DIY robot kit for educators” that integrates Node-Red blocks and introduced a new way to program the robot based on blocks. Last year at the GSOC 2022 two more contributors Danai Brilli and Eleftheria Papagergiou worked on a new version of the robot and redesigned the whole programming stack. The robot can now be programmed using native Python code or using a custom version of Google Blockly (a Scratch-like user interface). They also improved the initial core library and developed a completed unified user interface with multiple project management, robot configuration page, a new programming mode for kindergarten learning activities and a Docker based deployment system with CI/CD capabilities.
What must be done in GSOC 2023:
A contributor Manousos Linardakis developed a simulator for the robot that gives the opportunity to everyone to use the previous programming stack without the need of a real robot. The current version is based on Coppelia Simulator and it was a great import to the whole robot interaction experience. Already the simulator has been tested by many educators and  received great comments. Based on that it is important to develop a new simulator. The new simulator must be web based and must provide a way to run different educational scenarios, like line following or obstacle avoidance. In addition the need for an integrated,  lightweight, web based simulator is very important because the existing simulator requires a high end PC and also adds extra steps to the procedure of testing and using the robot. Finally the new simulator must be capable of being integrated in the existing programming stack or in a future cloud based implementation. The proposed solution provides a cost-effective and user-friendly solution and eliminates the need of a real robot removing the cost boundaries and giving the opportunity to any educator to test and use our open source solution.
==== Expected Results ====
Within the months of the project the expected results are:
* Understanding previous work
* Add compatibility to core library for simulator support
* Develop a web based simulator
* Integration of the simulator with the platform
* Create stages for education scenarios
* Resolve bugs and provide improvements
* Github automation for deployment
* Extensive documentation
==== Related Repositories ====
<nowiki>https://github.com/eellak/fossbot</nowiki>
<nowiki>https://github.com/chronis10/fossbot_source</nowiki>
<nowiki>https://github.com/chronis10/fossbot_simulator</nowiki>
<nowiki>https://github.com/cyberbotics/webots</nowiki>
<nowiki>https://github.com/bbcmicrobit</nowiki>
<nowiki>https://gist.github.com/yiorgosynkl/914e75d0f9ae98bb31f4d8da66ec9908</nowiki>
<nowiki>https://gist.github.com/chronis10/9d069c56b3df9c92693ac8d24270a62a</nowiki>
<nowiki>https://github.com/isl-org/OpenBot</nowiki>
==== Mentors: ====
Iraklis Varlamis
Christos Chronis

Αναθεώρηση της 10:49, 27 Ιανουαρίου 2023

Contributors interested to participate should check which of the following projects fits their interests and skills.

Τo communicate with the mentors and ask questions about the projects, students should subscribe to this list and post relevant questions. Please follow the Proposal Template

For practical information, developers should visit this page.

Epoptes improvements

Brief Explanation

Epoptes is an open source computer lab management and monitoring tool. It is used in more than 1000 Greek schools, and in thousands more schools and businesses worldwide. The following improvements and new features have been requested by the community for years and can be implemented as part of a GSoC project:

- Make Epoptes available on more Linux distributions.

- Support screen sharing on Wayland.

- Drop the session service and keep only the system epoptes-client service.

- Use systemd socket activation and autorestart.

And if there's enough time left, also improve its firewall compatibility.

Duration of the Project

350 hours

Expected Results

It is expected that the student will send a pull request on https://github.com/epoptes/epoptes, suitable for merging upstream. That PR should implement all the aforementioned tasks, which are described in more detail at https://epoptes.org/documentation/gsoc/

Related repositories

https://epoptes.org/documentation/gsoc/

Knowledge Prerequisites

Python, GTK, Shell, networking, systemd services, Wayland, XDG desktop portals

Mentors:

Foteini Tsiami (fottsia@gmail.com), Siahos Yiannis (siahos@cti.gr)


Interoperability of GitLab boards with Nextcloud Decks

Brief Explanation

Nextcloud is free software for cloud collaboration. Nextcloud consists of core functionality plus installable apps. One of the apps is "Deck", that provides Kanban boards. GitLab also provides Kanban boards.

There exists a Nextcloud "GitLab" app which provides some integration of GitLab with Nextcloud, but it does very little. Its only substantial functionality is to show a panel with "GitLab todos" in the Nextcloud dashboard (which serves as the user's home page). That is, it provides a list in the user's Nextcloud dashboard that shows the next things the user has to do in GitLab. Each "todo" is just a title and a link to GitLab.

This project is about extending the GitLab-Nextcloud integration so that a user can see and manage the GitLab boards in Nextcloud's Deck application.

Duration of the Project

350 hours

Expected Results

Some organizations use both Nextcloud and GitLab. Some of their kanban boards tend to be on GitLab and some other on Nextcloud. Developers tend to use more GitLab, while non-developers tend to use Nextcloud. This project is expected to reduce duplication and help developers and non-developers co-operate better.

Related repositories

<https://github.com/nextcloud/deck/>

<https://github.com/nextcloud/integration\_gitlab>

Knowledge Prerequisites

JavaScript, PHP, Vue, Web APIs

Mentors:

Antonis Christofides


Development of a Robotic Education Platform for the DIY robot kit for educators

Brief Explanation

The project started back on the GSoC 2019 when Christos Chronis designed and implemented a 3D printable robot for educational purposes from scratch. The idea was create a new educational robot, that will be modular, come at a low cost and be available to everyone. All of the parts of the modular robot were designed in a way so that they are easily 3D-printable. The 3D-printed parts are combined with basic low-cost electronics and sensors, which can be easily assembled to the final robot following extensive and simple guidelines of how to print and assemble the robot. In this way non-expert staff in robotics, electronics or IoT programming can assemble and use the robot. Alongside the guidelines, a number of demo scenarios for the class, e.g. simple navigation or sensing scenarios, that require basic programming skills are also provided.

The project has been continued two years later, in GSoC 2021, by Georgios Giannakoulias, who developed a version of the “DIY robot kit for educators” that integrates Node-Red blocks and introduced a new way to program the robot based on blocks. Last year at the GSOC 2022 two more contributors Danai Brilli and Eleftheria Papagergiou worked on a new version of the robot and redesigned the whole programming stack. The robot can now be programmed using native Python code or using a custom version of Google Blockly (a Scratch-like user interface). They also improved the initial core library and developed a completed unified user interface with multiple project management, robot configuration page, a new programming mode for kindergarten learning activities and a Docker based deployment system with CI/CD capabilities.

What must be done in GSOC 2023:

The current robot programming stack runs in the robot itself, allowing for the use and programming of the robot without the need for additional software installation on a local computer. However, this feature has proven to be more of an obstacle than a benefit due to connectivity and update issues. Also the rising cost of Single Board Computers (SBCs), such as the Raspberry Pi, made DIY solutions uncompetitive with commercial alternatives.

To address these issues, the entire programming stack must be transferred to the cloud. This approach would remove the need for additional computational power within the robot and provide the opportunity for a wider range of SBCs or microcontrollers such as the Raspberry Pi Pico, Microbit, ESP32, or Micropython-enabled Arduino boards to be used. This would result in a reduction in the overall cost of construction for the robot and give users more freedom to choose their own computing components. Additionally, this approach would reduce the need to perform version updates on each robot separately. Based on the feedback we got from educators, the current approach for interaction with the robot is different from that of similar market robotic kits. Thus, it is necessary to adopt an approach that utilizes existing user interaction knowledge. The proposed solution of transferring the programming stack to the cloud addresses these issues and provides a cost-effective and user-friendly solution.

Expected Results

Within the months of the project the expected results are:

  • Understanding previous work
  • Transfer the core library to Micropython
  • Convert the whole stack to be deployable on the cloud as a platform.
  • New programming modes
  • Resolve bugs and provide improvements (front end - back end)
  • Github automation for deployment
  • Extensive documentation

Duration of the Project

350 hours

Related Repositories

https://github.com/eellak/fossbot

https://github.com/chronis10/fossbot_source

https://github.com/chronis10/fossbot_simulator

https://github.com/cyberbotics/webots

https://github.com/bbcmicrobit

https://gist.github.com/yiorgosynkl/914e75d0f9ae98bb31f4d8da66ec9908

https://gist.github.com/chronis10/9d069c56b3df9c92693ac8d24270a62a

https://github.com/isl-org/OpenBot

Mentors:

Iraklis Varlamis

Christos Chronis

Development of a Web Based robotic simulator for the DIY robot kit for educators

Google Summer of Code 2023 - Proposal

Brief Explanation

The project started back on the GSoC 2019 when Christos Chronis designed and implemented a 3D printable robot for educational purposes from scratch. The idea was create a new educational robot, that will be modular, come at a low cost and be available to everyone. All of the parts of the modular robot were designed in a way so that they are easily 3D-printable. The 3D-printed parts are combined with basic low-cost electronics and sensors, which can be easily assembled to the final robot following extensive and simple guidelines of how to print and assemble the robot. In this way non-expert staff in robotics, electronics or IoT programming can assemble and use the robot. Alongside the guidelines, a number of demo scenarios for the class, e.g. simple navigation or sensing scenarios, that require basic programming skills are also provided.

The project has been continued two years later, in GSoC 2021, by Georgios Giannakoulias, who developed a version of the “DIY robot kit for educators” that integrates Node-Red blocks and introduced a new way to program the robot based on blocks. Last year at the GSOC 2022 two more contributors Danai Brilli and Eleftheria Papagergiou worked on a new version of the robot and redesigned the whole programming stack. The robot can now be programmed using native Python code or using a custom version of Google Blockly (a Scratch-like user interface). They also improved the initial core library and developed a completed unified user interface with multiple project management, robot configuration page, a new programming mode for kindergarten learning activities and a Docker based deployment system with CI/CD capabilities.

What must be done in GSOC 2023:

A contributor Manousos Linardakis developed a simulator for the robot that gives the opportunity to everyone to use the previous programming stack without the need of a real robot. The current version is based on Coppelia Simulator and it was a great import to the whole robot interaction experience. Already the simulator has been tested by many educators and  received great comments. Based on that it is important to develop a new simulator. The new simulator must be web based and must provide a way to run different educational scenarios, like line following or obstacle avoidance. In addition the need for an integrated,  lightweight, web based simulator is very important because the existing simulator requires a high end PC and also adds extra steps to the procedure of testing and using the robot. Finally the new simulator must be capable of being integrated in the existing programming stack or in a future cloud based implementation. The proposed solution provides a cost-effective and user-friendly solution and eliminates the need of a real robot removing the cost boundaries and giving the opportunity to any educator to test and use our open source solution.

Expected Results

Within the months of the project the expected results are:

  • Understanding previous work
  • Add compatibility to core library for simulator support
  • Develop a web based simulator
  • Integration of the simulator with the platform
  • Create stages for education scenarios
  • Resolve bugs and provide improvements
  • Github automation for deployment
  • Extensive documentation

Related Repositories

https://github.com/eellak/fossbot

https://github.com/chronis10/fossbot_source

https://github.com/chronis10/fossbot_simulator

https://github.com/cyberbotics/webots

https://github.com/bbcmicrobit

https://gist.github.com/yiorgosynkl/914e75d0f9ae98bb31f4d8da66ec9908

https://gist.github.com/chronis10/9d069c56b3df9c92693ac8d24270a62a

https://github.com/isl-org/OpenBot

Mentors:

Iraklis Varlamis

Christos Chronis