Se coucher tard nuit
  1. Vous êtes ici :  
  2. Accueil
  3. Uncategorised

Uncategorised

ROS2

Détails
Clics : 1986

VirtualBox
1. Installer le CD add-on (CD des additions invité) ici
2. Si il y a une erreur:
2.1. sudo apt install gcc make perl -y
2.2. cd /media/ros2/VBox_GAs_6.1.50/
2.3. sudo ./VBoxLinuxAdditions.run
2.4. sudo reboot

Installation de ROS2 iron

TP1: Turtle
Dans une 1ère fenêtre (Ctrl + Alt + t)
1. cd ros2_iron/install/
2. source local_setup.bash 
3. ros2 run turtlesim turtlesim_node

note1: ros2 node list permet d'observer le nom du node: ici turtlesim

note2: ros2 topic list permet d'observer les topic disponibles: ici

/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose

note3: Consultez cette page pour comprendre le fonctionnement des topics

note4: ros2 topic list -t permet d'observer les topics disponibles mais aussi leur type: ici
/parameter_events [rcl_interfaces/msg/ParameterEvent]
/rosout [rcl_interfaces/msg/Log]
/turtle1/cmd_vel [geometry_msgs/msg/Twist]
/turtle1/color_sensor [turtlesim/msg/Color]
/turtle1/pose [turtlesim/msg/Pose]

note5: ros2 topic info /turtle1/cmd_vel (par exemple) nous affiche les informations suivantes:Le type de message + Le nombre de publicateur (UK: publisher) (normalement 0) +Le nombre d'abonnés (UK: subscribers) (devrait être 1, ou 2 si vous fonctionnez en même temps avec des versions Python et C++).

Exemple: ros2 topic info /turtle1/cmd_vel 
Type: geometry_msgs/msg/Twist
Publisher count: 0
Subscription count: 1

note6: ros2 interface show turtlesim/msg/Pose (par exemple) nous affiche quelques informations comme:

Exemple: ros2 interface show turtlesim/msg/Pose
float32 x
float32 y
float32 theta

float32 linear_velocity
float32 angular_velocity


Dans une 2nde fenêtre (Ctrl + Alt + t) ou dans un 2nd onglet (Ctrl + Shift + t)
4. cd ros2_iron/install/
5. source local_setup.bash 
6. ros2 run turtlesim turtle_teleop_key : On commande bien le node turtlesim. Ainsi, on peut commander la tortue avec le clavier.

7. Il est envisageable de publier dans le topic comme ci-dessous:

ros2 topic pub /turtle1/cmd_vel geometry_msgs/msg/Twist "linear:
  x: 0.5
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 0.5"

note7: il est également possible d'effectuer un rosbag (ros2bags) pour rejouer la séquence plus tard.

[SOURCE]

RoboCamp (www.snoeck.fr)

Détails
Clics : 2816

Zoom:

Lundi 

Mardi

Mercredi

Jeudi

Vendredi

 

Câblage de la carte Arduino avec la LED: 2 montages possibles

Exo 1:

/*
  Blink at ISTY

  Turns 3 LED on for one second, then off for one second, repeatedly.
  I tested this program at ISTY
  25/01/2024
*/

const int led_verte=13, led_orange=12, led_rouge=11;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(led_rouge, OUTPUT);
  pinMode(led_verte, OUTPUT);
  pinMode(led_orange, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(led_rouge, HIGH);   // turn the LED on (HIGH is the voltage level)
  digitalWrite(led_verte, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(led_rouge, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
  digitalWrite(led_verte, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Exo 2:

/*
  Blink at ISTY

  A pushbutton turns 3 LED on or off
  I tested this program at ISTY
  25/01/2024
*/

//paramétrage des entrées
const int bp=10;

//paramétrage des sorties
const int led_verte=13, led_orange=12, led_rouge=11;


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin bp as an input.
  pinMode(bp, INPUT_PULLUP);
  
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(led_rouge, OUTPUT);
  pinMode(led_verte, OUTPUT);
  pinMode(led_orange, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  if (digitalRead(bp) == HIGH)
  {
      digitalWrite(led_rouge, HIGH);   
      digitalWrite(led_verte, HIGH);   // turn the LED on (HIGH is the voltage level)
      delay(100);
    }
  }
  else
  {
  digitalWrite(led_rouge, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
  digitalWrite(led_verte, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
  }
}

 

 

Challenge avec un test de BP:

// ==========================
// Définition des broches
// ==========================
const int ledRouge  = 13;
const int ledOrange = 12;
const int ledVerte  = 11;

const int boutonPin = 2;   // fil/bouton poussoir sur pin 2

// ==========================
// Variables temps
// ==========================
unsigned long previousRouge = 0;
unsigned long previousVerte = 0;

bool etatRouge = false;
bool etatVerte = false;

void setup() {
  pinMode(ledRouge, OUTPUT);
  pinMode(ledOrange, OUTPUT);
  pinMode(ledVerte, OUTPUT);

  pinMode(boutonPin, INPUT_PULLUP);  
  // Contact fermé = LOW
}

void loop() {

  unsigned long currentMillis = millis();

  // ==========================
  // LED Rouge : clignote toutes les 1 seconde
  // ==========================
  if (currentMillis - previousRouge >= 1000) {
    previousRouge = currentMillis;
    etatRouge = !etatRouge;
    digitalWrite(ledRouge, etatRouge);
  }

  // ==========================
  // Lecture contact (bouton)
  // ==========================
  bool contactFerme = (digitalRead(boutonPin) == LOW);

  // ==========================
  // Si contact fermé
  // ==========================
  if (contactFerme) {

    // Orange ON
    digitalWrite(ledOrange, HIGH);

    // Verte clignote toutes les 100 ms
    if (currentMillis - previousVerte >= 100) {
      previousVerte = currentMillis;
      etatVerte = !etatVerte;
      digitalWrite(ledVerte, etatVerte);
    }

  }
  // ==========================
  // Si contact ouvert
  // ==========================
  else {
    digitalWrite(ledOrange, LOW);
    digitalWrite(ledVerte, LOW);
    etatVerte = false;
  }
}

Linux

Détails
Clics : 2008

Dans le terminal (Ctrl + Alt + T) et pour un nouvel onglet (Ctrl + Shift + T)

ls: Affiche le contenu d'un répertoire.
    ls -a : all. Affiche les fichiers cachés aussi
    ls -l : long. Donne la liste détaillées
cd: Change le répertoire courant.
    . (répertoire courant). C'est le répertoire dans lequel vous êtes actuellement.
    .. (répertoire parent). Vous amène dans le répertoire au dessus de votre répertoire courant.
    ~ (répertoire home). Ce répertoire conduit à votre "répertoire maison" par défaut (on parle de "home"). Comme /home/pete.
    - (répertoire précédent). Il vous conduira au répertoire précédent dont vous venez.
pwd: Affiche le chemin absolu du répertoire courant.
mkdir: Crée un nouveau répertoire.
    mkdir document
    mkdir -p document/livres
rm: Supprime un fichier ou un répertoire.
    rm -f : force à supprimer les fichiers protégés ou pas, sans confirmation
    rm -i : demande la confirmation avant la suppression (interactif)
    rm -r: supprime un réperetoire en récursif: il supprime les sous-répertoires
    rmdir: supprime un répertoire
cp: Copie des fichiers ou des répertoires.
    cp monfichiercool /home/pete/Documents/docscool
    cp *.jpg /home/pete/Pictures
    cp -r Pumpkin/ /home/pete/Documents
    cp -i monfichiercool /home/pete/Pictures
mv: Déplace des fichiers ou des répertoires.
cat: Affiche le contenu d'un fichier.
grep: Recherche une chaîne de caractères dans un fichier ou une sortie de commande.
find: Recherche des fichiers et des répertoires en fonction de critères spécifiques.
chmod: Modifie les permissions d'un fichier ou d'un répertoire.
chown: Modifie le propriétaire d'un fichier ou d'un répertoire.
tar: Crée ou extrait des fichiers d'archive au format tar.
ssh: Se connecte à un serveur distant en utilisant le protocole SSH.
top: Affiche les processus en cours d'exécution et les statistiques système en temps réel.
ps: Affiche les processus en cours d'exécution.
kill: Envoie un signal à un processus pour le terminer.
wget: Télécharge des fichiers à partir du Web.
ping: Vérifie la connectivité réseau avec une adresse IP ou un nom de domaine.
ifconfig: Affiche ou configure les interfaces réseau.
touch: changement horodatage des fichiers


Copier des répertoires sans copier leur contenu:
1/ Il faut se placer dans le répertoire parent
2/ find * -type d -exec mkdir -p ~/Documents/Cloud_UVSQ_2022-2023/{} \;
NB/ Cloud_UVSQ_2022-2023 est le répertoire de destination

 

Se renseigner sur une commande : man votrecommande

 

Des éditeurs de texte :

  • nano

  • gedit

  • featherpad

  • …..

PYTHON:

Pour installer la version 3.12 de python, voici les commandes:

sudo apt update && sudo apt upgrade -y

sudo apt install software-properties-common -y

sudo add-apt-repository ppa:deadsnakes/ppa

Note: le PPA deadsnakes contient la version la plus récente de Python pour Ubuntu

sudo apt update

sudo apt install python3.12

python3.12 --version
> 3.12.2 (en mars 2024)

Pour mettre à jour PIP:

curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
pip3.12 -V
> pip 24.0 from /home/ros/.local/lib/python3.12/site-packages/pip (python 3.12)

Ne pas supprimer les vieilles versions de Python car trop de dépendances avec ROS... (https://www.askpython.com/python/examples/uninstall-python-3-7-ubuntu)

VirtualBox
1. Installer le CD add-on (CD des additions invité) ici
2. Si il y a une erreur:
2.1. sudo apt install gcc make perl -y
2.2. cd /media/ros2/VBox_GAs_6.1.50/
2.3. sudo ./VBoxLinuxAdditions.run
2.4. sudo reboot

Installation de ROS2 iron


chaudière

Détails
Clics : 482

Page

Formation sur l'électronique (ADESFA)

Détails
Clics : 4666

Bienvenue dans le module de cours sur les bases de l'électronique, autour des microcontrôleurs

1ère séance: Mardi 31 octobre

Il s'agit de la présentation sur la commande d'actionneurs avec les cartes à microcontrôleurs. Cette séance s'est passée en présentiel à l'ENIT

Le document de cours est ici

 

 

  1. ADESFA
  2. SEE3
  3. SNPI3 - Réseaux & Python
  4. SNPI4 - Réseaux 3

Page 3 sur 4

  • 1
  • 2
  • 3
  • 4

Menu

  • Introduction
  • ADESFA
  • Linux
  • RoboCamp
  • ROS2
  • SEE
    • SEE3
    • SEE4
  • MT
    • MT3 - Cours & TD
    • MT3 TP
    • Projets MT3
    • MT4
    • Projets MT4
    • MT5
  • SNPI
    • SNPI3
    • SNPI4
    • SNPI5
  • ROS1
    • Projets (ROS1)
    • Projet Sabertooth 2x12
    • AX12
    • Calibrage ESC
  • AR3
  • Les dictionnaires en Python

Login Form

  • Mot de passe perdu ?
  • Identifiant perdu ?