You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/project/intro.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,10 +3,11 @@ sidebar_position: 1
3
3
---
4
4
# About the project
5
5
6
-
Do you think that making a robot is difficult and expensive? No, it's not quite true. Yes, creating a robot requires a lot of knowledge from the basics. But modern frameworks can significantly speed up this process. Most of the time and effort is spent on creating the platform - the physical structure of the robot, selecting or developing the electronics, and setting up the first movements.
7
6
8
-
The goal of this project is to create a robot platform that can be easily replicated and assembled by yourself. Having a ready-made platform should lower the threshold for entering the fascinating world of robotics. The complexity of the first steps can scare off many people, but if a person has a platform that can start working in a few days, it will definitely attract more people.
7
+
Do you think that making a robot is difficult and expensive? No, it’s not entirely true. Yes, creating a robot from scratch requires a lot of knowledge. But modern frameworks can significantly speed up this process. The most time and effort is spent creating a platform — the physical design of the robot, selecting or developing electronics, and setting up the first movements.
9
8
10
-
Just imagine: in a few days, you assemble a robot that, like a robot vacuum cleaner, can map your home and move around it from point A to point B, avoiding obstacles. Sounds interesting, doesn't it?
9
+
The goal of this project is to create a robot platform that can be easily repeated and assembled independently. Having a ready-made platform should lower the threshold for entering the exciting world of robotics. The complexity of the first steps can scare off many interested parties, but if a person has a platform that can work in just a few days, it will definitely attract more interested parties.
10
+
11
+
Imagine: in a few days you assemble a robot that, like a robot vacuum cleaner, can map your house and move around it from point A to point B, avoiding obstacles. Interesting, right?
11
12
12
13
The next goal of this project is to create a student community around this platform that will develop it and carry out their own projects based on it, expanding and scaling its capabilities.
| 1 |**Розробка шасі робота**| - Створення легкої у виготовленні конструкції шасі з чотирма моторами, кожен з яких оснащений енкодером для вимірювання швидкості обертання коліс. <br/> - Розробка контролера моторів на базі STM32 з керуванням через послідовний інтерфейс. |
9
-
| 2 |**Інтеграція ROS2 та управління через Bluetooth Gamepad**| Налаштування мінімальної конфігурації ROS2 на Raspberry Pi для управління шасі робота за допомогою стандартного Bluetooth-джойстика. |
10
-
| 3 |**Запуск навігації в приміщенні з використанням лідара**| Вибір і налаштування одного з фреймворків ROS2 для створення карти приміщення та автономного переміщення між точками А і Б. |
11
-
| 4 |**Запуск навігації на відкритому просторі з використанням GPS**| Вибір та налаштування одного з фреймворків ROS2, який забезпечить автономну навігацію за визначеними маршрутними точками з використанням GPS.|
12
-
| 5 |**Реалізація навігації в приміщенні з використанням лише камери**| Вибір відповідного фреймворку для реалізації навігації з використанням тільки камери для створення карти приміщення та автономного пересування. |
13
-
| 6 |**Запуск профільних проєктів**| Початок роботи над спеціалізованими проєктами на основі готової платформи робота з розширенням її можливостей. |
6
+
|#|Step|Description|
7
+
|--- | --- |--- |
8
+
| 1 |**Development of the robot chassis**| - Creation of an easy-to-manufacture chassis design with four motors, each equipped with an encoder for measuring the speed of rotation of the wheels. <br/> - Development of a motor controller based on STM32 with control via a serial interface. |
9
+
| 2 |**Integration of ROS2 and control via Bluetooth Gamepad**| Setting up the minimum configuration of ROS2 on Raspberry Pi to control the robot chassis using a standard Bluetooth joystick.|
10
+
| 3 |**Launching indoor navigation using lidar**| Selecting and configuring one of the ROS2 frameworks to create a map of the room and autonomous movement between points A and B.|
11
+
| 4 |**Launching outdoor navigation using GPS**| Selecting and configuring one of the ROS2 frameworks that will provide autonomous navigation along specified waypoints using GPS. |
12
+
| 5 |**Implementation of indoor navigation using only the camera**| Selection of an appropriate framework for implementing navigation using only the camera to create a room map and autonomous movement.|
13
+
| 6 |**Launch of profile projects**| Start of work on specialized projects based on a ready-made robot platform with expansion of its capabilities. |
Але, як і очікувалось, були допущені помилки й з'явились побажання щодо вдосконалення.
22
+
But as expected mistakes were made and wishes were expressed for an improvement.
23
23
24
-
### Контролер шасі
24
+
### Chassis controller
25
25
26
-
Для керування моторами робота потрібен контролер шасі. На сьогоднішній день ми використовуємо [BeagleBone Blue](https://www.beagleboard.org/boards/beaglebone-blue). Але він занадто дорогий й останнім часом його дуже складно придбати. Тому ми хочемо розробити власний контролер на базі STM32.
26
+
A chassis controller is required to control the robot's motors. Currently, we're using [BeagleBone Blue](https://www.beagleboard.org/boards/beaglebone-blue). But it's too expensive and impossible to buy lately. That's why we want to develop our own controller on STM32 base.
27
27
28
-
**Основні функції:**
29
-
*Керування чотирма моторами постійного струму
30
-
*Зчитування показань енкодерів моторів
31
-
*Зчитування показань й калібрування акселерометра
32
-
*Зчитування показань й калібрування компаса
33
-
*Зчитування даних з GPS модуля
34
-
*ПІД регулятор швидкості коліс
35
-
* Ethernet інтерфейс для прийому команд керування
36
-
*Виходи PWM для керування сервоприводами.
28
+
**Main features:**
29
+
*Control of four DC motors
30
+
*Reading motor encoder readings
31
+
*Accelerometer reading and calibration
32
+
*Compass reading and calibration
33
+
*GPS module data reading
34
+
*PID wheel speed regulator
35
+
* Ethernet interface for receiving control commands
На першому етапі, так як є ризик зробити багато помилок, ми плануємо розробити плату у вигляді плати розширення до STM32-Discovery. Потім, коли ми вже здобудемо досвід, ми плануємо розробити повноцінну плату з встановленим на ній мікроконтролером STM32.
40
+
At the first stage, since there is a risk of making plenty of mistakes, we're planning to develop the board as a STM32-Discovery expansion board. Then, when we have gained experience, we're going to develop a full-fledged board with STM32 microcontroller installed on it.
41
41
42
-
## Розробка вбудованого програмного забезпечення
42
+
## Embedded software development
43
43
44
-
Контролер шасі потребує програмного забезпечення для STM32. Ми шукаємо команду студентів, які візьмуть участь у його розробці.
45
-
Дивись опис завдання по розробці шасі для того, щоб ознайомитись з основними функціями.
44
+
The chassis controller requires a STM32 software. We're looking for a students team, who will participate in it's development.
45
+
See the chassis design task description for basic functionality.
46
46
47
-
## Розробка конструкції робота
48
-
На першому етапі ми вирішили зробити якомога простішу конструкцію, щоб збірка не потребувала спеціальних знарядь, а матеріали можна було легко й недорого придбати. Тому наш робот зараз виглядає ось так:
47
+
## Robot design development
48
+
At the first stage, we've decided to make the design as simple as possible, so that the assembly wouldn't reqiure special tools and the materials could be purchased easily and inexpensively. Therefore, our robot now looks like this:
49
49

50
50
51
-
У цієї конструкції основний недолік - цього робота не можна використовувати на дворі при поганих погодних умовах. Також це шасі має погану прохідність, так як нема підвіски.
51
+
In this design, the main disadvantage of this robot - he cannot be used in bad weather conditions. Also, the chassis has poor cross-country ability due to lack of suspension.
52
52
53
-
Ми шукаємо групу студентів, котра зможе розробити, надрукувати й зібрати для проєкту сучасне шасі робота.
53
+
We're looking for students, who can design, print and assemble a modern robot chassis for this project.
54
54
55
-
Ось приклад непоганого opensource проєкту:
55
+
Here's an example of a good open source project:
56
56
57
57
<YouTubeVideovideoId="90HxqwZaWRA" />
58
58
59
59
## DevOps and Dev Process
60
60
61
-
Кількість учасників проєкту зростає. Також зростає кількість вихідного коду й його складність. Тому, щоб спростити процес розробки й запобігти випадкам, коли зміни порушують роботу програмного забезпечення, нам потрібно:
62
-
1.**Описати процес розробки:**
63
-
*Як приєднатись до проєкту.
64
-
*Як створити завдання?
65
-
*Як створити робочу гілку (branch)?
66
-
*Як створити PR?
67
-
*Вимоги до комітів
68
-
*Вимоги до code style
69
-
*Вимоги до покриття unit-тестами
70
-
*Вимоги до статичного аналізу коду
71
-
*й т.п.
72
-
2.**Налаштувати CI використовуючи GitHub Actions**
73
-
3.**Налаштувати Release процес використовуючи GitHub Packages**
61
+
The number of project participants is growing. The amount of source code and it's complexity is also increasing. Therefore, to simplify the development process and prevent changes from software breaking, we need to:
62
+
1.**Describe the development process:**
63
+
*How to join the project.
64
+
*How to create a task?
65
+
*How to create a working branch?
66
+
*How to create a PR?
67
+
*Commit requirements
68
+
*Code style requirements
69
+
*Unit tests coverage requirements
70
+
*Static code analysis requirements
71
+
*etc.
72
+
2.**Configure CI using GitHub Actions**
73
+
3.**Configure Release process using GitHub Packages**
0 commit comments