mirror of
https://github.com/modelec/Documentations.git
synced 2026-01-18 16:37:30 +01:00
Merge remote-tracking branch 'origin/main'
# Conflicts: # Writerside/gu.tree
This commit is contained in:
8
Writerside/Writerside_libraries.tree
Normal file
8
Writerside/Writerside_libraries.tree
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE instance-profile
|
||||
SYSTEM "https://resources.jetbrains.com/writerside/1.0/product-profile.dtd">
|
||||
|
||||
<instance-profile id="Writerside_libraries"
|
||||
name="Writerside_libraries" is-library="true">
|
||||
|
||||
</instance-profile>
|
||||
@@ -17,7 +17,6 @@
|
||||
</toc-element>
|
||||
<toc-element topic="Coupe-de-France-de-Robotique-2025.md">
|
||||
<toc-element topic="Marcel.md">
|
||||
<toc-element topic="Moteur-CC.md"/>
|
||||
<toc-element topic="PCB-alimentation.md">
|
||||
<toc-element topic="Pilotage-PCB-alimentation.md"/>
|
||||
</toc-element>
|
||||
@@ -25,6 +24,77 @@
|
||||
<toc-element topic="Pilotage-PCB-odometrie.md"/>
|
||||
</toc-element>
|
||||
<toc-element topic="Panneau-de-commande.md"/>
|
||||
<toc-element topic="Moteur-CC.md"/>
|
||||
<toc-element topic="Code-Rasp.md">
|
||||
<toc-element topic="ROS2.md">
|
||||
<toc-element topic="ROS2-Intro.md"/>
|
||||
<toc-element topic="ROS2-Installation.md">
|
||||
<toc-element topic="ROS2-avec-JetBrain-pour-windows.md"/>
|
||||
</toc-element>
|
||||
<toc-element topic="ROS2-Modelec.md">
|
||||
<toc-element topic="Nodes.md">
|
||||
<toc-element topic="Arm-Controller-Node.md"/>
|
||||
<toc-element topic="Button-GPIO-Controller-Node.md"/>
|
||||
<toc-element topic="Game-Controller-Listener-Node.md"/>
|
||||
<toc-element topic="Lidar-Controller-Node.md"/>
|
||||
<toc-element topic="Move-Controller-Node.md"/>
|
||||
<toc-element topic="Multiple-Serial-Listener-Node.md"/>
|
||||
<toc-element topic="Odometry-Logic-Processor-Node.md"/>
|
||||
<toc-element topic="PCA9685-Controller-Node.md"/>
|
||||
<toc-element topic="PCB-Alim-Interface-Node.md"/>
|
||||
<toc-element topic="Solenoid-Controller-Node.md"/>
|
||||
<toc-element topic="Tirette-Controller-Node.md"/>
|
||||
</toc-element>
|
||||
<toc-element topic="Topics.md">
|
||||
<toc-element topic="Arm-Control-Topic.md"/>
|
||||
<toc-element topic="Button-Topic.md"/>
|
||||
<toc-element topic="Lidar-Topic.md"/>
|
||||
<toc-element topic="Odometry-Data-Topic.md"/>
|
||||
<toc-element topic="Solenoid-Topic.md"/>
|
||||
<toc-element topic="Serial-Listener-Topic.md">
|
||||
<toc-element topic="Raw-Data-Topic.md"/>
|
||||
<toc-element topic="Send-To-Serial-Topic.md"/>
|
||||
<toc-element topic="Odometry-Listener-Serial-Topic.md"/>
|
||||
<toc-element topic="PCB-Alim-Serial-Topic.md"/>
|
||||
</toc-element>
|
||||
<toc-element topic="Servo-Topic.md">
|
||||
<toc-element topic="Servo-Control-Topic.md"/>
|
||||
<toc-element topic="Clear-PCA9685.md"/>
|
||||
</toc-element>
|
||||
<toc-element topic="Tirette-Topic.md"/>
|
||||
<toc-element topic="Joy-Topic.md"/>
|
||||
</toc-element>
|
||||
<toc-element topic="Services.md">
|
||||
<toc-element topic="Add-Button-Service.md"/>
|
||||
<toc-element topic="Add-Solenoid-Service.md"/>
|
||||
<toc-element topic="Add-Serial-Listener-Service.md"/>
|
||||
<toc-element topic="Add-Servo-Service.md"/>
|
||||
<toc-element topic="Button-Service.md"/>
|
||||
<toc-element topic="Tirette-Service.md"/>
|
||||
</toc-element>
|
||||
<toc-element topic="Utils.md"/>
|
||||
</toc-element>
|
||||
<toc-element topic="ROS2-UI.md"/>
|
||||
<toc-element topic="ROS2-Interfaces.md">
|
||||
<toc-element topic="Message.md">
|
||||
<toc-element topic="Button-Message-Interface.md"/>
|
||||
<toc-element topic="OdometryData-Message-Interface.md"/>
|
||||
<toc-element topic="PCA9685Servo-Message-Interface.md"/>
|
||||
<toc-element topic="Solenoide-Message-Interface.md"/>
|
||||
<toc-element topic="ServoMode-Message-Interface.md"/>
|
||||
</toc-element>
|
||||
<toc-element topic="Service.md">
|
||||
<toc-element topic="AddButton-Service-Interface.md"/>
|
||||
<toc-element topic="AddSolenoid-Service-Interface.md"/>
|
||||
<toc-element topic="AddSerialListener-Service-Interface.md"/>
|
||||
<toc-element topic="AddServoMotor-Service-Interface.md"/>
|
||||
<toc-element topic="Button-Service-Interface.md"/>
|
||||
<toc-element topic="Tirette-Service-Interface.md"/>
|
||||
</toc-element>
|
||||
</toc-element>
|
||||
<toc-element topic="Developpement.md"/>
|
||||
</toc-element>
|
||||
</toc-element>
|
||||
</toc-element>
|
||||
</toc-element>
|
||||
<toc-element topic="Coupe-De-France-de-Robotique-2024.md">
|
||||
|
||||
11
Writerside/labels.list
Normal file
11
Writerside/labels.list
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE labels SYSTEM "https://resources.jetbrains.com/writerside/1.0/labels-list.dtd">
|
||||
<labels xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="https://resources.jetbrains.com/writerside/1.0/labels.xsd">
|
||||
<primary-label id="Deprecated" short-name="D" name="Deprecated" color="red">
|
||||
This feature is deprecated and will be removed in the future.
|
||||
</primary-label>
|
||||
|
||||
<secondary-label id="wip" name="WIP" color="purple">Work in progress</secondary-label>
|
||||
<secondary-label id="beta" name="β" color="tangerine">Beta</secondary-label>
|
||||
</labels>
|
||||
@@ -23,4 +23,29 @@
|
||||
<description>Created after removal of "dev" from Documentation Robot Modelec 2024</description>
|
||||
<accepts>Reseau.html</accepts>
|
||||
</rule>
|
||||
<rule id="2aee5e8a">
|
||||
<description>Created after removal of "ROS2" from Documentation Robot Modelec 2024</description>
|
||||
<accepts>ROS2.html</accepts>
|
||||
</rule>
|
||||
<rule id="7d1843c2">
|
||||
<description>Created after removal of "ArduinoData message interface" from Documentation Robot Modelec 2024
|
||||
</description>
|
||||
<accepts>ArduinoData.html</accepts>
|
||||
</rule>
|
||||
<rule id="797a0cd5">
|
||||
<description>Created after removal of "ModelecSnippet" from Documentation Robot Modelec 2024</description>
|
||||
<accepts>modelecsnippet.html</accepts>
|
||||
</rule>
|
||||
<rule id="19d7dbd0">
|
||||
<description>Created after removal of "Add Button" from Documentation Robot Modelec 2024</description>
|
||||
<accepts>Add-Button.html</accepts>
|
||||
</rule>
|
||||
<rule id="2aaa44a4">
|
||||
<description>Created after removal of "Robot Position" from Documentation Robot Modelec 2024</description>
|
||||
<accepts>Robot-Position.html</accepts>
|
||||
</rule>
|
||||
<rule id="35783336">
|
||||
<description>Created after removal of "Robot Position" from Documentation Robot Modelec 2024</description>
|
||||
<accepts>Robot-Position.html</accepts>
|
||||
</rule>
|
||||
</rules>
|
||||
14
Writerside/topics/Add-Button-Service.md
Normal file
14
Writerside/topics/Add-Button-Service.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Add Button
|
||||
|
||||
## Nom du service : **add_button**
|
||||
[Interface](AddButton-Service-Interface.md)
|
||||
|
||||
## Objectif
|
||||
Setup le contrôle d'un nouveau bouton sur les GPIO.
|
||||
Le bouton peut ensuite être contrôlé via le topic [](Button-Topic.md)
|
||||
|
||||
### Service
|
||||
- [](Button-GPIO-Controller-Node.md)
|
||||
|
||||
### Client
|
||||
-
|
||||
18
Writerside/topics/Add-Serial-Listener-Service.md
Normal file
18
Writerside/topics/Add-Serial-Listener-Service.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Add Serial Listener
|
||||
|
||||
## Nom du service : **add_serial_listener**
|
||||
[Interface](AddSerialListener-Service-Interface.md)
|
||||
|
||||
## Objectif
|
||||
Setup un listener sur un nouveau port série.
|
||||
Deux topics sont ensuite créés :
|
||||
- [](Raw-Data-Topic.md) : pour recevoir les données brutes du port série.
|
||||
- [](Send-To-Serial-Topic.md) : pour envoyer des données vers le port série.
|
||||
|
||||
### Service
|
||||
- [](Multiple-Serial-Listener-Node.md) : créer un nouveau listener USB ou renvoie un listener existant (si le listener existe déjà).
|
||||
|
||||
### Client
|
||||
- [](PCB-Alim-Interface-Node.md)
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
- [](Odometry-Logic-Processor-Node.md)
|
||||
14
Writerside/topics/Add-Servo-Service.md
Normal file
14
Writerside/topics/Add-Servo-Service.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Add Servo
|
||||
|
||||
## Nom du service : **add-servo**
|
||||
[Interface](AddServoMotor-Service-Interface.md)
|
||||
|
||||
## Objectif
|
||||
Setup le contrôle d'un nouveau servo moteur.
|
||||
|
||||
### Service
|
||||
- [](PCA9685-Controller-Node.md)
|
||||
|
||||
### Client
|
||||
- [](Arm-Controller-Node.md)
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
13
Writerside/topics/Add-Solenoid-Service.md
Normal file
13
Writerside/topics/Add-Solenoid-Service.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Add Solenoid
|
||||
|
||||
## Nom du service : **add_solenoid**
|
||||
[Interface](AddSolenoid-Service-Interface.md)
|
||||
|
||||
## Objectif
|
||||
Setup le contrôle d'un solénoïde.
|
||||
|
||||
### Service
|
||||
- [](Solenoid-Controller-Node.md)
|
||||
|
||||
### Client
|
||||
-
|
||||
29
Writerside/topics/AddButton-Service-Interface.md
Normal file
29
Writerside/topics/AddButton-Service-Interface.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# AddButton
|
||||
`<modelec_interface/srv/add_button.hpp>`
|
||||
|
||||
## Objectif
|
||||
Ajouter le contrôle d'un bouton.
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
uint8 pin
|
||||
string name
|
||||
---
|
||||
bool success
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
| Type | Name | Description |
|
||||
|--------|------|---------------|
|
||||
| uint8 | pin | pin du bouton |
|
||||
| string | name | nom du bouton |
|
||||
|
||||
## Retour
|
||||
|
||||
| Type | Name | Description |
|
||||
|------|---------|------------------------|
|
||||
| bool | success | requête réussie ou non |
|
||||
|
||||
## Utilisé par
|
||||
- [](Button-GPIO-Controller-Node.md)
|
||||
34
Writerside/topics/AddSerialListener-Service-Interface.md
Normal file
34
Writerside/topics/AddSerialListener-Service-Interface.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# AddSerialListener
|
||||
`<modelec_interface/srv/add_serial_listener.hpp>`
|
||||
|
||||
## Objectif
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
string name
|
||||
string serial_port
|
||||
int64 bauds
|
||||
---
|
||||
bool success
|
||||
string publisher
|
||||
string subscriber
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
| Type | Name | Description |
|
||||
|--------|-------------|-----------------------------|
|
||||
| string | name | nom du listener |
|
||||
| string | serial_port | port série à écouter |
|
||||
| int64 | bauds | vitesse de la liaison série |
|
||||
|
||||
## Retour
|
||||
|
||||
| Type | Name | Description |
|
||||
|------|---------|------------------------|
|
||||
| bool | success | requête réussie ou non |
|
||||
|
||||
## Utilisé par
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
- [](Multiple-Serial-Listener-Node.md)
|
||||
- [](PCB-Alim-Interface-Node.md)
|
||||
28
Writerside/topics/AddServoMotor-Service-Interface.md
Normal file
28
Writerside/topics/AddServoMotor-Service-Interface.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# AddServoMotor
|
||||
`<modelec_interface/srv/add_servo_motor.hpp>`
|
||||
|
||||
## Objectif
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
uint8 pin
|
||||
---
|
||||
bool success
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
| Type | Name | Description |
|
||||
|-------|------|---------------------|
|
||||
| uint8 | pin | pin du servo moteur |
|
||||
|
||||
## Retour
|
||||
|
||||
| Type | Name | Description |
|
||||
|------|---------|------------------------|
|
||||
| bool | success | requête réussie ou non |
|
||||
|
||||
## Utilisé par
|
||||
- [](Arm-Controller-Node.md)
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
- [](PCA9685-Controller-Node.md)
|
||||
26
Writerside/topics/AddSolenoid-Service-Interface.md
Normal file
26
Writerside/topics/AddSolenoid-Service-Interface.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# AddSolenoid
|
||||
`<modelec_interface/srv/add_solenoid.hpp>`
|
||||
|
||||
## Objectif
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
uint8 pin
|
||||
---
|
||||
bool success
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
| Type | Name | Description |
|
||||
|-------|------|-----------------|
|
||||
| uint8 | pin | pin du solenoid |
|
||||
|
||||
## Retour
|
||||
|
||||
| Type | Name | Description |
|
||||
|------|---------|------------------------|
|
||||
| bool | success | requête réussie ou non |
|
||||
|
||||
## Utilisé par
|
||||
- [](Solenoid-Controller-Node.md)
|
||||
14
Writerside/topics/Arm-Control-Topic.md
Normal file
14
Writerside/topics/Arm-Control-Topic.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Arm Control
|
||||
<primary-label ref="Deprecated"/>
|
||||
|
||||
## Nom du topic : **arm_control**
|
||||
[Interface](ServoMode-Message-Interface.md)
|
||||
|
||||
## Objectif
|
||||
Contrôler les actionneurs du bras de [](Serge.md)
|
||||
|
||||
### Publisher
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
|
||||
### Subscriber
|
||||
- [](Arm-Controller-Node.md)
|
||||
7
Writerside/topics/Arm-Controller-Node.md
Normal file
7
Writerside/topics/Arm-Controller-Node.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Arm Controller
|
||||
<primary-label ref="Deprecated"/>
|
||||
|
||||
`<modelec/arm_controller.hpp>`
|
||||
|
||||
## Objectif
|
||||
Node de contrôle du bras de [](Serge.md).
|
||||
12
Writerside/topics/Button-GPIO-Controller-Node.md
Normal file
12
Writerside/topics/Button-GPIO-Controller-Node.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Button GPIO Controller
|
||||
`<modelec/button_gpio_controller.hpp>`
|
||||
|
||||
## Objectif
|
||||
Contrôler un bouton sur un GPIO.
|
||||
|
||||
### Topic
|
||||
- [](Button-Topic.md) : Pour chaque bouton, un topic est créé pour publier l'état du bouton.
|
||||
|
||||
### Service
|
||||
- [](Add-Button-Service.md) : setup le contrôle d'un bouton sur un GPIO.
|
||||
- [](Button-Service.md) : vérifier l'état d'un bouton.
|
||||
21
Writerside/topics/Button-Message-Interface.md
Normal file
21
Writerside/topics/Button-Message-Interface.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# Button
|
||||
`<modelec_interface/msg/button.hpp>`
|
||||
|
||||
## Objectif
|
||||
Bouton on / off.
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
uint8 pin
|
||||
bool state
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
| Type | Name | Description |
|
||||
|-------|-------|-----------------|
|
||||
| uint8 | pin | pin du solenoid |
|
||||
| bool | state | état du bouton |
|
||||
|
||||
## Utilisé par
|
||||
- [](Button-GPIO-Controller-Node.md)
|
||||
29
Writerside/topics/Button-Service-Interface.md
Normal file
29
Writerside/topics/Button-Service-Interface.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Button
|
||||
`<modelec_interface/srv/button.hpp>`
|
||||
|
||||
## Objectif
|
||||
Connaitre l'état d'un bouton.
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
uint8 pin
|
||||
string name
|
||||
---
|
||||
bool status
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
| Type | Name | Description |
|
||||
|--------|------|----------------|
|
||||
| uint8 | pin | pin du button |
|
||||
| string | name | nom du button |
|
||||
|
||||
## Retour
|
||||
|
||||
| Type | Name | Description |
|
||||
|------|--------|------------------|
|
||||
| bool | status | statue du bouton |
|
||||
|
||||
## Utilisé par
|
||||
- [](Button-GPIO-Controller-Node.md)
|
||||
13
Writerside/topics/Button-Service.md
Normal file
13
Writerside/topics/Button-Service.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Button
|
||||
|
||||
## Nom du service : **button**
|
||||
[Interface](Button-Service-Interface.md)
|
||||
|
||||
## Objectif
|
||||
Vérifier l'état d'un bouton.
|
||||
|
||||
### Service
|
||||
- [](Button-GPIO-Controller-Node.md)
|
||||
|
||||
### Client
|
||||
-
|
||||
14
Writerside/topics/Button-Topic.md
Normal file
14
Writerside/topics/Button-Topic.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Button
|
||||
|
||||
## Nom du topic : **button/<name>**
|
||||
[Interface](Button-Message-Interface.md)
|
||||
|
||||
### Objectif
|
||||
Pour chaque bouton crée à partir du Service [`Add Button`](Add-Button-Service.md), un topic est crée suivant la nomenclature suivante : `button/<name>`
|
||||
Ce topic permet de recevoir continuellement l'état du bouton.
|
||||
|
||||
### Publisher
|
||||
- [](Button-GPIO-Controller-Node.md)
|
||||
|
||||
### Subscriber
|
||||
-
|
||||
13
Writerside/topics/Clear-PCA9685.md
Normal file
13
Writerside/topics/Clear-PCA9685.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Clear PCA9685
|
||||
|
||||
## Nom du topic : **clear_pca9685**
|
||||
Interface : std_msgs/msg/Empty
|
||||
|
||||
## Objectif
|
||||
Reset tous les PWM du PCA9685.
|
||||
|
||||
### Publisher
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
|
||||
### Subscriber
|
||||
- [](PCA9685-Controller-Node.md)
|
||||
8
Writerside/topics/Code-Rasp.md
Normal file
8
Writerside/topics/Code-Rasp.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# Code Rasp
|
||||
|
||||
Vous touverez ici la documentation pour tout savoir sur notre raspberry pi et le code qui tourne dessus.
|
||||
|
||||
### Dependence
|
||||
- [ROS2](ROS2.md)
|
||||
- [Qt6](https://www.qt.io/download) : Qt est un framework de développement d'applications multiplateformes. Il est utilisé pour créer l'interface graphique du robot.
|
||||
- [WiringPi](https://github.com/WiringPi/WiringPi) : WiringPi est une bibliothèque C pour la Raspberry Pi qui permet d'accéder aux GPIO. Elle est utilisée pour contrôler les actionneurs et lire les capteurs du robot.
|
||||
11
Writerside/topics/Developpement.md
Normal file
11
Writerside/topics/Developpement.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Developpement
|
||||
|
||||
|
||||
### Debug
|
||||
Pour recup les data de la rasp sur son pc->
|
||||
```bash
|
||||
source <modelec-serge-ROS install>/install/setup.bash
|
||||
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
|
||||
export FASTRTPS_DEFAULT_PROFILES_FILE=<modelec-serge-ROS install>/fastdds_setup.xml
|
||||
export ROS_DOMAIN_ID=128
|
||||
```
|
||||
12
Writerside/topics/Game-Controller-Listener-Node.md
Normal file
12
Writerside/topics/Game-Controller-Listener-Node.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Game Controller Listener
|
||||
`<modelec/gamecontroller_listener.hpp>`
|
||||
|
||||
## Objectif
|
||||
Recevoir les données de la manette de jeu et contrôle le robot avec.
|
||||
|
||||
### Topic
|
||||
- [](Joy-Topic.md) : reçoit les données de la manette de jeu.
|
||||
- [](Arm-Control-Topic.md) : envoie les données de contrôle du bras.
|
||||
|
||||
### Service
|
||||
- [](Add-Serial-Listener-Service.md) : créer un nouveau listener USB pour l'odometrie.
|
||||
13
Writerside/topics/Joy-Topic.md
Normal file
13
Writerside/topics/Joy-Topic.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Joy
|
||||
|
||||
## Nom du topic : **joy**
|
||||
Interface : sensor_msgs/msg/Joy
|
||||
|
||||
## Objectif
|
||||
Transmettre les données de la manette de jeu.
|
||||
|
||||
### Publisher
|
||||
- Joy
|
||||
|
||||
### Subscriber
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
10
Writerside/topics/Lidar-Controller-Node.md
Normal file
10
Writerside/topics/Lidar-Controller-Node.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# Lidar Controller
|
||||
`<modelec/lidar_controller.hpp>`
|
||||
|
||||
## Objectif
|
||||
Traite les infos recu par le lidar et les envoie au systeme de navigation.
|
||||
|
||||
### Topic
|
||||
- [](Lidar-Topic.md)
|
||||
|
||||
### Service
|
||||
13
Writerside/topics/Lidar-Topic.md
Normal file
13
Writerside/topics/Lidar-Topic.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Lidar
|
||||
|
||||
## nom du topic : **scan**
|
||||
Interface : sensor_msgs/msg/LaserScan
|
||||
|
||||
## Objectif
|
||||
Recevoir les données de télémétrie du lidar.
|
||||
|
||||
### Publisher
|
||||
- Rplidar
|
||||
|
||||
### Subscriber
|
||||
- [](Lidar-Topic.md)
|
||||
1
Writerside/topics/Message.md
Normal file
1
Writerside/topics/Message.md
Normal file
@@ -0,0 +1 @@
|
||||
# Message
|
||||
10
Writerside/topics/Move-Controller-Node.md
Normal file
10
Writerside/topics/Move-Controller-Node.md
Normal file
@@ -0,0 +1,10 @@
|
||||
<primary-label ref="Deprecated"/>
|
||||
|
||||
# Move Controller
|
||||
`<modelec/move_controller.hpp>`
|
||||
|
||||
## Objectif
|
||||
Node de test pour déplacer le robot sans le faire bouger pour tester les autres Nodes.
|
||||
|
||||
> **Warning**: Ce node est deprecated et n'est plus utilisé dans le code actuel. Il est conservé pour référence historique.
|
||||
{style="warning"}
|
||||
16
Writerside/topics/Multiple-Serial-Listener-Node.md
Normal file
16
Writerside/topics/Multiple-Serial-Listener-Node.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# Multiple Serial Listener
|
||||
`<modelec/multiple_serial_listener.hpp>`
|
||||
|
||||
## Objectif
|
||||
Un listener pour plusieurs ports série.
|
||||
|
||||
Le but de ce nœud est de permettre la communication avec plusieurs ports série en même temps. Il est configuré pour écouter les données sur plusieurs ports et les publier sur des topics ROS2 distincts. Cela permet de gérer plusieurs périphériques série simultanément sans avoir à créer un nœud séparé pour chaque port.
|
||||
|
||||
### Topic
|
||||
Ce nœud écoute et publie sur les topics suivants (un pour chaque port série) :
|
||||
- [](Raw-Data-Topic.md) : recup les informations brutes envoyées par le port série et les transmet au travers du topic.
|
||||
- [](Send-To-Serial-Topic.md) : envoie les données brutes au port série.
|
||||
|
||||
### Service
|
||||
Le noeud expose un service pour setup un port série :
|
||||
- [](AddSerialListener-Service-Interface.md)
|
||||
3
Writerside/topics/Nodes.md
Normal file
3
Writerside/topics/Nodes.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Nodes
|
||||
|
||||
Start typing here...
|
||||
13
Writerside/topics/Odometry-Data-Topic.md
Normal file
13
Writerside/topics/Odometry-Data-Topic.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Odometry Data
|
||||
|
||||
### Nom du topic : **odometry_data**
|
||||
[Interface](OdometryData-Message-Interface.md)
|
||||
|
||||
### Objectif
|
||||
Transmettre la position du robot renvoyé par l'odométrie.
|
||||
|
||||
### Publisher
|
||||
- [](Odometry-Logic-Processor-Node.md)
|
||||
|
||||
### Subscriber
|
||||
-
|
||||
13
Writerside/topics/Odometry-Listener-Serial-Topic.md
Normal file
13
Writerside/topics/Odometry-Listener-Serial-Topic.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Odometry
|
||||
|
||||
Un usb listener est setup avec comme nom `odometry`, il permet d'envoyer des données à l'odométrie grace au topic [](Send-To-Serial-Topic.md) et de recevoir des données de l'odométrie grace au topic [](Raw-Data-Topic.md).
|
||||
Les paramètres sont les suivants :
|
||||
- **name** : `odometry`
|
||||
- **baudrate** : `115200`
|
||||
- **serial_port** : `/dev/pts/6`
|
||||
|
||||
### Publisher
|
||||
- [](Multiple-Serial-Listener-Node.md)
|
||||
|
||||
### Subscriber
|
||||
- [](Odometry-Logic-Processor-Node.md)
|
||||
13
Writerside/topics/Odometry-Logic-Processor-Node.md
Normal file
13
Writerside/topics/Odometry-Logic-Processor-Node.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Odometry Logic Processor
|
||||
`<modelec/odometry_logic_processor.hpp>`
|
||||
|
||||
## Objectif
|
||||
Le but de ce noeud est de traiter les données d'odométrie envoyées par le noeud de listener USB et de les publier sur le topic `odometry` pour être utilisées par d'autres noeuds.
|
||||
|
||||
### Topic
|
||||
**[](Odometry-Listener-Serial-Topic.md)**
|
||||
- [](Raw-Data-Topic.md) : reçoit les données brutes envoyées par le port série.
|
||||
- [](Send-To-Serial-Topic.md) : envoie les données brutes au port série.
|
||||
|
||||
### Service
|
||||
- [](Add-Serial-Listener-Service.md) : créer un nouveau listener USB pour l'odométrie.
|
||||
22
Writerside/topics/OdometryData-Message-Interface.md
Normal file
22
Writerside/topics/OdometryData-Message-Interface.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# OdometryData
|
||||
`<modelec_interface/msg/odometry_data.hpp>`
|
||||
|
||||
## Objectif
|
||||
Transmission des données d'odométrie depuis le controller vers la rasp
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
int64 x
|
||||
int64 y
|
||||
int64 theta
|
||||
```
|
||||
|
||||
## Params
|
||||
| Type | Name | Description |
|
||||
|-------|-------|---------------|
|
||||
| int64 | x | position en x |
|
||||
| int64 | y | position en y |
|
||||
| int64 | theta | angle selon z |
|
||||
|
||||
## Utilisé par
|
||||
- [](Odometry-Logic-Processor-Node.md)
|
||||
12
Writerside/topics/PCA9685-Controller-Node.md
Normal file
12
Writerside/topics/PCA9685-Controller-Node.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# PCA9685 Controller
|
||||
`<modelec/pca9685_controller.hpp>`
|
||||
|
||||
## Objectif
|
||||
Contrôler le PCA9685 qui va lui-même contrôler des servo moteur grâce à des signaux PWM.
|
||||
|
||||
### Topic
|
||||
- [](Servo-Control-Topic.md) : mettre à jour la position angulaire d'un servo moteur.
|
||||
- [](Clear-PCA9685.md) : reset tous les PWM du PCA9685.
|
||||
|
||||
### Service
|
||||
- [](Add-Servo-Service.md) : setup le contrôle d'un servo moteur.
|
||||
23
Writerside/topics/PCA9685Servo-Message-Interface.md
Normal file
23
Writerside/topics/PCA9685Servo-Message-Interface.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# PCA9685Servo
|
||||
`<modelec_interface/msg/pca9685_servo.hpp>`
|
||||
|
||||
## Objectif
|
||||
Activer / désactiver un servo moteur.
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
uint8 pin
|
||||
int64 angle
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
| Type | Name | Description |
|
||||
|-------|-------|-----------------------|
|
||||
| uint8 | pin | pin du solenoid |
|
||||
| int64 | angle | angle du servo moteur |
|
||||
|
||||
## Utilisé par
|
||||
- [](PCA9685-Controller-Node.md)
|
||||
- [](Arm-Controller-Node.md)
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
13
Writerside/topics/PCB-Alim-Interface-Node.md
Normal file
13
Writerside/topics/PCB-Alim-Interface-Node.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# PCB Alim Interface
|
||||
`<modelec/pcb_alim_interface.hpp>`
|
||||
|
||||
## Objectif
|
||||
Interface entre le PCB alim et le systeme de navigation.
|
||||
|
||||
### Topic
|
||||
**[](PCB-Alim-Serial-Topic.md)**
|
||||
- [](Raw-Data-Topic.md) : reçoit les données brutes envoyées par le port série.
|
||||
- [](Send-To-Serial-Topic.md) : envoie les données brutes au port série.
|
||||
|
||||
### Service
|
||||
- [](Add-Serial-Listener-Service.md) : créer un nouveau listener USB pour le control du .
|
||||
13
Writerside/topics/PCB-Alim-Serial-Topic.md
Normal file
13
Writerside/topics/PCB-Alim-Serial-Topic.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# PCB Alim
|
||||
|
||||
Un usb listener est setup avec comme nom `pcb_alim`, il permet d'envoyer des données au PCB grace au topic [](Send-To-Serial-Topic.md) et de recevoir des données du PCB grace au topic [](Raw-Data-Topic.md).
|
||||
Les paramètres sont les suivants :
|
||||
- **name** : `odometry`
|
||||
- **baudrate** : `115200`
|
||||
- **serial_port** : `/dev/serial0`
|
||||
|
||||
### Publisher
|
||||
- [](Multiple-Serial-Listener-Node.md)
|
||||
|
||||
### Subscriber
|
||||
- [](PCB-Alim-Interface-Node.md)
|
||||
17
Writerside/topics/ROS2-Installation.md
Normal file
17
Writerside/topics/ROS2-Installation.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Installation
|
||||
|
||||
Si vous êtes sur Windows, il est recommandé d'utiliser WSL (Windows Subsystem for Linux) pour installer ROS2. Si vous êtes sur Linux, vous pouvez suivre les instructions ci-dessous.
|
||||
> Il existe tout de même une version de [ROS2 pour Windows](https://docs.ros.org/en/foxy/Installation/Windows-Install-Binary.html), mais elle est moins stable et moins bien supportée que la version Linux.
|
||||
> De plus aucun test n'a été effectué sur cette version. À vos risques et périls.
|
||||
|
||||
## Installation sur WSL
|
||||
|
||||
### Installation ROS2 sur WSL
|
||||
Installation de ROS2 sur WSL (Windows Subsystem for Linux) pour Windows. Il est recommandé d'utiliser la version 22.04 d'Ubuntu, car elle est plus stable et compatible avec ROS2.
|
||||
Ensuite, suivez la documentation officielle de [ROS2 Jazzy](https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html)
|
||||
|
||||
Il faut savoir que le projet ne peut pas être lancé directement depuis WSL, Modelec utilise la librairie [WiringPi](https://github.com/WiringPi/WiringPi) pour utiliser les GPIO de la Raspberry Pi. Lorsque vous lancez le projet autre part que sur une Raspberry Pi, la lib detecteras qu'elle n'est pas sur une Raspberry Pi et ne fonctionnera pas. Il faut donc lancer le projet sur la Raspberry Pi.
|
||||
Tout de même, il est possible de faire tourner le projet sans les `Nodes` liés aux actionneurs et capteurs. (Vous pouvez lancer des Nodes indépendamment de ceux liés aux actionneurs et capteurs de plus WiringPi va seulement afficher des erreurs, mais ne vas pas "cassé" le projet).
|
||||
|
||||
### Developpement sur WSL
|
||||
Pour développer sur WSL, vous pouvez utiliser différent IDE, actuellement, nous utilisons VS-Code ainsi que CLion. Pour utiliser VS-Code, ouvrez simplement votre projet WSL, pour CLion rendez-vous [ici](ROS2-avec-JetBrain-pour-windows.md) pour savoir comment le configurer.
|
||||
3
Writerside/topics/ROS2-Interfaces.md
Normal file
3
Writerside/topics/ROS2-Interfaces.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Interfaces package
|
||||
|
||||
Start typing here...
|
||||
24
Writerside/topics/ROS2-Intro.md
Normal file
24
Writerside/topics/ROS2-Intro.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Intro
|
||||
|
||||
#### Intro by ChatGPT
|
||||
ROS 2 (Robot Operating System 2) est un framework open-source conçu pour le développement de logiciels pour robots. C'est une évolution de ROS 1, améliorée pour mieux répondre aux exigences des systèmes robotiques modernes, notamment en matière de fiabilité, de performances et de compatibilité avec les environnements embarqués et temps réel.
|
||||
|
||||
##### Caractéristiques principales de ROS 2 :
|
||||
- Architecture distribuée : Les différents composants d'un robot (capteurs, actionneurs, algorithmes, etc.) communiquent via un système de messages asynchrones.
|
||||
- Middleware DDS : ROS 2 repose sur DDS (Data Distribution Service), un standard permettant une communication robuste et adaptable aux réseaux variés.
|
||||
- Support multi-plateforme : Compatible avec Linux, Windows, macOS et même des systèmes embarqués.
|
||||
- Gestion améliorée du temps réel : Permet un meilleur contrôle des latences, essentiel pour les robots nécessitant des réactions précises.
|
||||
- Modularité et scalabilité : Facilite le développement de robots complexes en permettant d'ajouter ou de modifier des composants indépendamment.
|
||||
|
||||
##### Composants clés :
|
||||
- Nœuds : Petits programmes qui effectuent des tâches spécifiques.
|
||||
- Topics : Canaux de communication permettant aux nœuds d’échanger des messages.
|
||||
- Services : Communication synchrone entre nœuds (requête/réponse).
|
||||
- Actions : Permettent l’exécution de tâches longues avec des mises à jour d’état.
|
||||
- Paramètres : Variables configurables qui influencent le comportement des nœuds.
|
||||
|
||||
#### Exemples d'utilisation :
|
||||
- Contrôle d’un bras robotique
|
||||
- Navigation autonome d’un robot mobile
|
||||
- Fusion de données issues de plusieurs capteurs
|
||||
- Si tu veux commencer avec ROS 2, l’installation et la configuration initiale se font via Ubuntu (recommandé) et tu peux tester avec des packages comme turtlesim pour voir le fonctionnement des nœuds et topics en pratique.
|
||||
28
Writerside/topics/ROS2-Modelec.md
Normal file
28
Writerside/topics/ROS2-Modelec.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Modelec package
|
||||
|
||||
## Pourquoi ROS2 sur Marcel ?
|
||||
|
||||
### 2024
|
||||
En 2024, le robot [Serge](Serge.md) n'utilisait pas ROS2 ni aucun framework de robotique. Il était programmé en C++, mais il n'y avait pas de structure de code particulière. Le code était divisé en plusieurs fichiers, mais il n'y avait pas de séparation claire entre les différentes parties du code. Le code était difficile à lire et à comprendre, ce qui rendait la maintenance et l'ajout de nouvelles fonctionnalités difficiles.
|
||||
|
||||
|
||||
#### Avantages du vanilla c++
|
||||
- Facilité de compréhension : Le code est plus facile à comprendre pour les personnes qui ne connaissent pas ROS2.
|
||||
- Pas de dépendances : Le code n'a pas besoin de dépendances externes, ce qui le rend plus léger et plus facile à déployer.
|
||||
- Pas de surcoût : Le code n'a pas besoin de ressources supplémentaires pour fonctionner, ce qui le rend plus rapide et plus efficace.
|
||||
- Pas de complexité : Le code est plus simple et plus facile à comprendre, ce qui le rend plus facile à maintenir et à déboguer.
|
||||
|
||||
#### Inconvenients
|
||||
- Pas de modularité : Le code n'est pas modulaire, ce qui rend difficile l'ajout de nouvelles fonctionnalités.
|
||||
- Pas de réutilisabilité : Le code n'est pas réutilisable, ce qui rend difficile l'utilisation de bibliothèques externes.
|
||||
- Pas de standardisation : Le code n'est pas standardisé, ce qui rend difficile la compréhension du code par d'autres personnes.
|
||||
- Pas de documentation : Le code n'est pas documenté, ce qui rend difficile la compréhension du code par d'autres personnes.
|
||||
|
||||
### Conclusion
|
||||
En 2024, le robot Serge n'utilisait pas ROS2 ni aucun framework de robotique. Le code était écrit en C++ sans structure particulière, ce qui le rendait difficile à lire et à maintenir. Bien que cela ait des avantages en termes de simplicité et de légèreté, cela a également entraîné des inconvénients majeurs tels que le manque de modularité, de réutilisabilité et de documentation. En conséquence, il était difficile d'ajouter de nouvelles fonctionnalités ou de comprendre le code par d'autres personnes.
|
||||
C'est pourquoi en 2025 le club Modelec a décidé de passer à ROS2 après avoir étudié son potentiel et ses avantages par rapport à la programmation en C++ sans structure particulière. Le passage à ROS2 a permis de structurer le code, de le rendre plus modulaire et réutilisable, et de faciliter la compréhension et la maintenance du code. De plus, ROS2 offre de nombreuses bibliothèques et outils qui facilitent le développement de logiciels pour robots, ce qui a permis au club Modelec de se concentrer sur l'implémentation de nouvelles fonctionnalités plutôt que sur la gestion du code.
|
||||
|
||||
> À partir de maintenant, nous allons plonger à l'intérieur de l'infrastructure ROS2 et de son fonctionnement.
|
||||
> Il est donc indispensable d'avoir des bases en ROS2 pour comprendre la suite.
|
||||
> Si vous ne connaissez pas ROS2, il est fortement recommandé de lire la documentation officielle ou de suivre un tutoriel d'introduction avant de continuer.
|
||||
{style="warning"}
|
||||
14
Writerside/topics/ROS2-UI.md
Normal file
14
Writerside/topics/ROS2-UI.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# GUI packages
|
||||
|
||||
Modelec utilise Qt6 pour créer l'interface graphique de son robot.
|
||||
> ROS2 utilise nativement Qt5 pour l'interface graphique, mais nous avons choisi de passer à Qt6 pour des raisons de compatibilité et de fonctionnalités.
|
||||
|
||||
## Installation de Qt6
|
||||
Pour installer Qt6 sur votre Raspberry Pi, suivez les instructions suivantes :
|
||||
- exécutez la commande suivante :
|
||||
```bash
|
||||
sudo apt install qt6-base-dev qt6-base-dev-tools
|
||||
```
|
||||
|
||||
## Programmation de l'interface graphique
|
||||
L'interface graphique est developpée dans le package ros <modelec_gui> et tourne dans une Node (ce qui lui permet d'échanger avec les autres Nodes du projet).
|
||||
28
Writerside/topics/ROS2-avec-JetBrain-pour-windows.md
Normal file
28
Writerside/topics/ROS2-avec-JetBrain-pour-windows.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# ROS2 avec JetBrain (pour windows)
|
||||
Pour les personnes utilisant un IDE JetBrain sur Windows, mais avec une installation ROS2 sur WLS, voici comment load le projet sur JetBrain.
|
||||
>Test Effectué avec CLion
|
||||
|
||||
## Requis
|
||||
- Avoir installé WSL avec une distribution Linux (Ubuntu 20.04 ou 22.04 recommandés)
|
||||
- Avoir installé un editeur JetBrain (CLion préféré, car nous développons principalement en C++)
|
||||
- Avoir installé ROS2 sur WSL (voir [ici](ROS2-Installation.md#installation-sur-wsl))
|
||||
|
||||
## 1. Ouvrir le projet
|
||||
- Ouvrir CLion
|
||||
- Si vous êtes dans un projet aller dans File > Close Project
|
||||
- Ensuite aller dans Remote Development > WSL
|
||||
- Connecter vous ensuite a votre distribution WSL via le menu
|
||||
- Puis ouvrir le dossier de votre projet ROS2 (cela peut être un peu long, car JetBrain va installer un serveur sur WSL)
|
||||
- Et pouf, vous avez votre projet ROS2 sur JetBrain
|
||||
|
||||
## 2. Configurer le projet
|
||||
- Dans le terminal de votre WSL, execute les commandes suivante :
|
||||
```bash
|
||||
source /opt/ros/jazzy/setup.bash
|
||||
colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=1
|
||||
```
|
||||
- Ensuite cela devrait avoir crée un dossier `build` dans votre projet
|
||||
- Dans ce dossier build devrait être présent un fichier `compile_commands.json`
|
||||
- Faite clique droit sur ce fichier et selectionner `Load Compilation Database Project`
|
||||
- Si tout c'est bien passé, votre projet devrais maintenant être configuré avec ROS2 sur JetBrain !
|
||||
- Pour tester, vous pouvez essayer de faire un `Ctrl + Click` sur une fonction de ROS2 et cela devrais vous amener a la déclaration de la fonction.
|
||||
3
Writerside/topics/ROS2.md
Normal file
3
Writerside/topics/ROS2.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# ROS2
|
||||
|
||||
Documentation pour utiliser ROS2 en adéquation avec le robot Marcel 2k25.
|
||||
7
Writerside/topics/Raw-Data-Topic.md
Normal file
7
Writerside/topics/Raw-Data-Topic.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Raw Data
|
||||
|
||||
## Nom du topic : **raw_data/<name>**
|
||||
Interface : std_msgs/msg/String
|
||||
|
||||
## Objectif
|
||||
Transmettre des données brutes depuis le port vers le rasp.
|
||||
7
Writerside/topics/Send-To-Serial-Topic.md
Normal file
7
Writerside/topics/Send-To-Serial-Topic.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Send To Serial
|
||||
|
||||
## Nom du topic : **send_to_serial/<name>**
|
||||
Interface : std_msgs/msg/String
|
||||
|
||||
## Objectif
|
||||
Transmettre des données vers le port série.
|
||||
5
Writerside/topics/Serial-Listener-Topic.md
Normal file
5
Writerside/topics/Serial-Listener-Topic.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Serial Listener
|
||||
|
||||
Pour chaque [](Serial-Listener-Topic.md), deux topics sont créés :
|
||||
- [](Raw-Data-Topic.md) : recupère les données brutes envoyées par le port série et les transmet au rasp.
|
||||
- [](Send-To-Serial-Topic.md) : envoie les données brutes au port série.
|
||||
1
Writerside/topics/Service.md
Normal file
1
Writerside/topics/Service.md
Normal file
@@ -0,0 +1 @@
|
||||
# Service
|
||||
1
Writerside/topics/Services.md
Normal file
1
Writerside/topics/Services.md
Normal file
@@ -0,0 +1 @@
|
||||
# Services
|
||||
14
Writerside/topics/Servo-Control-Topic.md
Normal file
14
Writerside/topics/Servo-Control-Topic.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Servo Control
|
||||
|
||||
## Nom du topic : **servo_control**
|
||||
[Interface](PCA9685Servo-Message-Interface.md)
|
||||
|
||||
## Objectif
|
||||
Mettre à jour la position angulaire d'un servo moteur.
|
||||
|
||||
### Publisher
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
- [](Arm-Controller-Node.md)
|
||||
|
||||
### Subscriber
|
||||
- [](PCA9685-Controller-Node.md)
|
||||
5
Writerside/topics/Servo-Topic.md
Normal file
5
Writerside/topics/Servo-Topic.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Servo
|
||||
Topic liée au contrôle des servos moteurs.
|
||||
|
||||
- [](Servo-Control-Topic.md)
|
||||
- [](Clear-PCA9685.md)
|
||||
38
Writerside/topics/ServoMode-Message-Interface.md
Normal file
38
Writerside/topics/ServoMode-Message-Interface.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# ServoMode
|
||||
<primary-label ref="Deprecated"/>
|
||||
|
||||
`<modelec_interface/msg/servo_mode.hpp>`
|
||||
|
||||
## Objectif
|
||||
Activer / désactiver un servo moteur (dans le contexte de Serge).
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
uint8 PINCE_CLOSED=0
|
||||
uint8 PINCE_MIDDLE=1
|
||||
uint8 PINCE_OPEN=2
|
||||
uint8 PINCE_FULLY_OPEN=3
|
||||
uint8 ARM_BOTTOM=4
|
||||
uint8 ARM_MIDDLE=5
|
||||
uint8 ARM_TOP=6
|
||||
|
||||
uint8 pin
|
||||
uint8 mode
|
||||
bool is_arm
|
||||
```
|
||||
|
||||
> DEPECATED: Ce message était utilisé pour [Serge](Serge.md)
|
||||
> Il va donc être supprimé dans une prochaine version.
|
||||
{style="warning"}
|
||||
|
||||
## Params
|
||||
|
||||
| Type | Name | Description |
|
||||
|-------|--------|----------------------|
|
||||
| uint8 | pin | pin du solenoid |
|
||||
| uint8 | mode | mode du servo moteur |
|
||||
| bool | is_arm | si c'est un bras |
|
||||
|
||||
## Utilisé par
|
||||
- [](Arm-Controller-Node.md)
|
||||
- [](Game-Controller-Listener-Node.md)
|
||||
11
Writerside/topics/Solenoid-Controller-Node.md
Normal file
11
Writerside/topics/Solenoid-Controller-Node.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Solenoid Controller
|
||||
`<modelec/solenoid_controller.hpp>`
|
||||
|
||||
## Objectif
|
||||
Contrôler l'état d'un solénoïde.
|
||||
|
||||
### Topic
|
||||
- [](Solenoid-Topic.md) : Contrôle de chaque solénoïde via ce topic.
|
||||
|
||||
### Service
|
||||
- [](Add-Solenoid-Service.md) : Setup le contrôle d'un solénoïde sur un GPIO.
|
||||
13
Writerside/topics/Solenoid-Topic.md
Normal file
13
Writerside/topics/Solenoid-Topic.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Solénoïde
|
||||
|
||||
## Nom du topic : **solenoid**
|
||||
[Interface](Solenoide-Message-Interface.md)
|
||||
|
||||
## Objectif
|
||||
Contrôler l'état d'un solénoïde.
|
||||
|
||||
### Publisher
|
||||
-
|
||||
|
||||
### Subscriber
|
||||
- [](Solenoid-Controller-Node.md)
|
||||
21
Writerside/topics/Solenoide-Message-Interface.md
Normal file
21
Writerside/topics/Solenoide-Message-Interface.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# Solénoïde
|
||||
`<modelec_interface/msg/solenoid.hpp>`
|
||||
|
||||
## Objectif
|
||||
Activer / désactiver un solénoïde.
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
uint8 pin
|
||||
bool state
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
| Type | Name | Description |
|
||||
|-------|-------|------------------|
|
||||
| uint8 | pin | pin du solenoid |
|
||||
| bool | state | état du solenoid |
|
||||
|
||||
## Utilisé par
|
||||
- [](Solenoid-Controller-Node.md)
|
||||
11
Writerside/topics/Tirette-Controller-Node.md
Normal file
11
Writerside/topics/Tirette-Controller-Node.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Tirette Controller
|
||||
`<modelec/tirette_controller.hpp>`
|
||||
|
||||
## Objectif
|
||||
Contrôler l'état de la tirette.
|
||||
|
||||
### Topic
|
||||
- [](Tirette-Topic.md) : envoie en continu l'état de la tirette.
|
||||
|
||||
### Service
|
||||
- [](Tirette-Service.md) : permet de vérifier l'état de la tirette à la demande.
|
||||
22
Writerside/topics/Tirette-Service-Interface.md
Normal file
22
Writerside/topics/Tirette-Service-Interface.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Tirette
|
||||
`<modelec_interface/srv/tirette.hpp>`
|
||||
|
||||
## Objectif
|
||||
Connaitre l'état de la tirette.
|
||||
|
||||
## Interface
|
||||
```cpp
|
||||
---
|
||||
bool status
|
||||
```
|
||||
|
||||
## Params
|
||||
|
||||
## Retour
|
||||
|
||||
| Type | Name | Description |
|
||||
|------|--------|----------------------|
|
||||
| bool | status | statue de la tirette |
|
||||
|
||||
## Utilisé par
|
||||
- [Tirette](Tirette-Controller-Node.md)
|
||||
13
Writerside/topics/Tirette-Service.md
Normal file
13
Writerside/topics/Tirette-Service.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Tirette
|
||||
|
||||
## Nom du service : **tirette**
|
||||
[Interface](Tirette-Service-Interface.md)
|
||||
|
||||
## Objectif
|
||||
Vérifier l'état de la tirette.
|
||||
|
||||
### Service
|
||||
- [](Tirette-Controller-Node.md)
|
||||
|
||||
### Client
|
||||
-
|
||||
11
Writerside/topics/Tirette-Topic.md
Normal file
11
Writerside/topics/Tirette-Topic.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Tirette
|
||||
|
||||
## nom du topic : **tirette_state**
|
||||
|
||||
## Objectif
|
||||
Vérifier l'état de la tirette en permanence.
|
||||
|
||||
### Publishers
|
||||
- [](Tirette-Controller-Node.md)
|
||||
|
||||
### Subscribers
|
||||
2
Writerside/topics/Topics.md
Normal file
2
Writerside/topics/Topics.md
Normal file
@@ -0,0 +1,2 @@
|
||||
# Topics
|
||||
pour voir en temps réel lors de l'execution les topics créer executé cette commande : `ros2 topic list`
|
||||
26
Writerside/topics/Utils.md
Normal file
26
Writerside/topics/Utils.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Utils
|
||||
|
||||
## Objectif
|
||||
Fonction utilitaire pour le développement utile pour plusieurs Nodes.
|
||||
|
||||
### Variable
|
||||
PI -> 3.14159265358979323846
|
||||
|
||||
### Fonctions
|
||||
#### `std::vector<std::string> split(const std::string &s, char delim)`
|
||||
Découpe une chaîne de caractères en fonction d'un délimiteur.
|
||||
|
||||
#### `std::string join(const std::vector<std::string> &v, const std::string &delim)`
|
||||
Joint un vecteur de chaînes de caractères en une seule chaîne, séparée par un délimiteur.
|
||||
|
||||
#### `bool startsWith(const std::string &s, const std::string &prefix)`
|
||||
Vérifie si une chaîne commence par un certain préfixe.
|
||||
|
||||
#### `bool endsWith(const std::string &s, const std::string &suffix)`
|
||||
Vérifie si une chaîne se termine par un certain suffixe.
|
||||
|
||||
#### `bool contains(const std::string &s, const std::string &substring)`
|
||||
Vérifie si une chaîne contient une sous-chaîne.
|
||||
|
||||
#### `T mapValue(T v, T v_min, T v_max, T v_min_prime, T v_max_prime)`
|
||||
Mappe une valeur d'un intervalle à un autre.
|
||||
@@ -5,4 +5,5 @@
|
||||
<topics dir="topics" web-path="topics"/>
|
||||
<images dir="images" web-path="images"/>
|
||||
<instance src="gu.tree" web-path="/gu/" version="1.0"/>
|
||||
<instance src="Writerside_libraries.tree"/>
|
||||
</ihp>
|
||||
Reference in New Issue
Block a user