Faut-il continuer à utiliser Ubuntu ?

La question peut paraître saugrenue, surtout quand on pense qu’Ubuntu a été pendant des années un système plébiscité par beaucoup. Et pourtant, les dernières versions LTS (“Long Term Support” : support à long terme) ont sérieusement érodé la confiance que certains plaçaient dans ce système :

  1. les soucis d’Ubuntu 16.04 ;
  2. Ubuntu 18.04, pas vraiment (vraiment pas ?) un sauveur ;
  3. Ubuntu 20.04, toujours pas mieux ?

Les soucis d’Ubuntu 16.04

Dans la distribution 16.04 d’Ubuntu (mais aussi de ses variantes KUbuntu, LUbuntu, XUbuntu, EdUbuntu, …), de nombreux logiciels ont posé des problèmes :

  • certains ont eu des comportements inadéquats dans certaines situations, comme la page d’accueil (LightDM) en présence d’écrans multiples (passage de l’écran intégré d’un portable à un écran externe ou à un vidéo-projecteur :  affichage parfois irrécupérable, l’ordinateur devant être relancé) ;
  • d’autres plantaient carrément, comme par exemple Gimp lorsqu’on utilisait l’outil de transformation par cage.

Cinq années plus tard, certains de ces problèmes (dont les deux cités plus haut) n’ont toujours pas été résolus, alors même qu’il existait des solutions (pour Gimp, lier le code à une version antérieure d’une bibliothèque, comme initialement prévu par les développeurs). Cette distribution a donc toujours été assez désagréable à utiliser, au point où certains sites ont préféré continuer (très longtemps) à utiliser la version LTS antérieure (Ubuntu 14.04).

Ubuntu 18.04, pas vraiment (vraiment pas ?) un sauveur

La sortie de la version LTS suivante, Ubuntu 18.04, a du coup été perçue comme une très bonne nouvelle. Pas pour très longtemps, malheureusement. En effet, en voulant à tout pris paraître plus à jour, la version 18.04 d’Ubuntu a choisi de proposer des versions plus récentes de certains environnements de développement comme Qt ou ROS, et uniquement ces versions.

Ainsi, alors qu’il est possible d’utiliser Qt4 ou Qt5 dans Ubuntu 16.04, Ubuntu 18.04 n’a longtemps proposé que Qt5. Or, le passage de Qt4 à Qt5 n’est pas anodin, la compatibilité ascendante n’ayant pas été assurée :  certaines classes, servant à mettre en œuvre des comportements, ont disparu au profit d’autres mises en œuvre (par exemple, la classe QSignalMapper servant à lier un identifiant entier ou chaîne de caractères à un bouton et permettant de connecter plusieurs boutons à une seule méthode). Pour un enseignant-chercheur utilisant Qt4 pour ses cours et sa recherche, le passage de Ubuntu 16.04 à Ubuntu 18.04 était donc compliqué, si son code ne pouvait pas tourner sous Qt5 : trouver du temps pour mettre à jour son code est rarement facile.

Pour ROS, le problème était encore pire : seule la toute nouvelle version Melodic était disponible pour Ubuntu 18.04. Or, de nombreux paquets de ROS n’étaient disponibles que pour la version précédente Kinetic. Passer à Ubuntu 18.04 supposait donc d’assurer le portage de Kinetic à Melodic de tous les paquets de ROS requis par mes programmes. Autrement dit, une tâche encore plus irréalisable (car beaucoup plus coûteuse en temps) que celle concernant Qt. Heureusement, ces paquets ont été portés par d’autres personnes… Au bout d’un ou deux ans !

En conséquence, j’ai du attendre plusieurs années avant de pouvoir migrer d’Ubuntu 16.04 à 18.04, malgré les nombreux soucis du premier système…

Ubuntu 20.04, toujours pas mieux ?

Quant à Ubuntu 20.04, il semble continuer sur la même lancée : pas de version Melodic de ROS mais la suivante (encore très incomplète, évidemment), et des logiciels ne fonctionnant pas correctement (par exemple, hplip permet bien d’imprimer avec les imprimantes HP, mais pas de scanner avec certaines)… Et je n’ai que très peu essayé cette distribution, du fait du premier point !

En conclusion, j’envisage très sérieusement de renoncer à la distribution Ubuntu, bien qu’elle soit largement utilisée dans mon université et mon laboratoire de recherche, à moins que leur politique ne change radicalement. Je me tournerais sans doute vers Debian, qui propose une version stable très sûre (sans tous ces problèmes) et qui reste très proche d’utilisation d’Ubuntu. Qui vivra verra !..

Fête de la science 2020 : en ligne

Logo de la fête de la science 2020Cette année, la fête de la science est organisée en grande partie en ligne, que ce soit au niveau de l’université de Lorraine ou de l’Inria. Je propose donc ici une version en ligne des activités que j’ai encadrées (avec l’aide de plusieurs collègues) en 2019 et 2018.

Comme cette page va être plus chargée que les précédentes, une petite table des matières s’impose :

Présentation Installations Activités


Un Thymio

1. Présentation

Le but de cette page est de vous permettre de prendre le contrôle d’un robot (un Thymio) dans un simulateur.  Pour cela, vous allez :

  1. lancer un simulateur, qui montrera le robot dans le terrain (simulé) que vous aurez choisi ;
  2. ouvrir l’application qui permet de programmer le robot,
  3. voir quel sera le comportement du robot qui correspond à votre programme.

L’intérêt principal de cette activité est de comprendre la relation entre un programme et le comportement qui lui est associé, cela dans un cadre aussi ludique que possible.

PosterLe poster Le poster et le diaporama utilisés lors des précédentes fêtes de la science reprennent et complètent ces quelques mots. Je vais essayer de faire d’ici peu une vidéo reprenant ma présentation avec le diaporama. DiaporamaLe diaporama

2. Installations

Avant d’aborder le cœur de cette activité, il est nécessaire d’installer le logiciel sur lequel elle s’appuie, et de télécharger les terrains pour le simulateur.

2.a) Installation d’Aseba

Si les logiciels Aseba ne sont pas encore installés sur votre ordinateur, vous pouvez trouver la suite Thymio sur cette page :  il y a une version pour Windows (≥ 7, 32 ou 64 bits), une pour Machintosh (10 ou ≥ 12), une pour Linux (un peu plus compliquée à installer), et même une pour iOS, toutes gratuites et open-source.

Si vous avez déjà la suite Thymio, ou une version plus ancienne des logiciels Aseba (dans laquelle le logiciel de programmation est séparé du simulateur), vous pouvez passer à l’étape suivante.

2.b) Téléchargement des terrains simulés

La page consacrée au simulateur pour les Thymios propose deux archives contenant des terrains : une première avec des terrains dits « de base », et une seconde avec des terrains complémentaires.  Choisissez une de ces archives (ou prenez les deux), et décompressez la/les sur votre ordinateur.

Attention : si vous avez une ancienne version d’Aseba (dans laquelle le logiciel de programmation est séparé du simulateur), le simulateur ne peut pas utiliser les fichiers d’extension playground contenus dans ces archives ; pas de panique, il y a une solution. Dans ce cas, il faut :

  1. ouvrir chaque fichier d’extension playground avec un gestionnaire d’archives (ce sont en fait des archives zip, il faut peut-être changer l’extension pour cela) ;
  2. extraire le contenu de cette archive (généralement une image et un fichier world.xml) ;
  3. changer l’extension du fichier world.xml en .playground (vous pouvez renommer entièrement le fichier).

C’est tout !

3. Faire bouger le robot (simulé)

Vous voilà prêt pour jouer avec un Thymio simulé.

Si vous utilisez la suite Aseba, suivez les indications données par la vidéo sur la page du simulateur. Sinon, démarrez le simulateur Playground, chargez le terrain qui vous convient, puis lancez Aseba Studio. Lorsqu’il indique ne pas trouver de Thymio, utilisez le menu déroulant à droite du champ textuel sous le libellé « Cible sélectionnée », et choisissez « TCP local ».

Vous voila prêt à programmer, et à voir quel comportement vous obtenez ! Vous pouvez aussi essayer de réaliser certaines des activités proposées dans le livret ci-joint. Attention, cependant :

  • les comportements par défaut ne sont pas disponibles en simulation, les activités de la section A sont donc impossibles à réaliser ;
  • d’autre part, je ne crois pas que le son fonctionne sur le nouveau simulateur (il ne fonctionne pas sur l’ancien), ce qui empêche de faire l’activité B.2 ;
  • les pistes à suivre (pour l’activité B.5) sont disponibles dans les terrains thymio-challenge-pack.playground et thymio-discovery-yeti.playground ;
  • enfin, je n’ai pas eu le temps de créer une version simulée de la cible nécessaire pour l’activité B.6 (désolé).

Quelques indications

Si vous n’avez jamais utilisé Aseba, le plus simple est d’utiliser le mode VPL.  Une vidéo d’introduction est disponible sur la page le présentant.  J’ai aussi résumé les principaux points à connaître dans un guide reprenant des document du site thymio.org.

Si vous préférez, vous pouvez utiliser Scratch ou Bloky.

Si vous avez des soucis, vous pouvez trouver de l’aide sur la foire aux questions ou le wiki dédiés au Thymio, sur le forum associé (en anglais) ou ailleurs sur internet, ou finalement en m’envoyant un message (à l’adresse alexisPTscheuer@loriaPTfr, en remplaçant les PT par des .).

Présentation Installations Activités Haut de page

Fête de la science 2019 : activités et démonstrations

Bannière de la fête de la science

Cette année encore, la faculté des sciences et technologies de l’université de Lorraine et le Loria organisent des activités pour la fête de la science. Comme les années précédentes, j’organise un atelier autour des Thymios II proposant :

Posterun poster, Un Thymio II des robots, Valise de Thymios II Présentationune présentation,
Guideun guide, Activités
des activités
.

Un grand merci à tous ceux qui ont accepté de m’aider à encadrer cet atelier : Olivier Buffet, Vincent Colotte, Jessica Colombel, Alain Dutech, Yassine El Khadiri, Cécile Pierrot, Vincent Thomas & Yang You.

Fête de la science 2018 : activités et démonstrations

Bannière fête scienceComme l’an dernier et pour la journée Ada Lovelace, dans le cadre de la fête de la science à la FST, j’ai proposé une présentation, un poster et des activités utilisant les Thymios II du département d’informatique de la faculté des sciences et technologies de l’université de Lorraine. Olivier Buffet, Francis Colas & Olivier Rochel (Inria & Loria), ainsi que deux ingénieurs de l’équipe Larsen, ont assuré les activités pendant la majorité du vendredi, je me suis occupé du samedi. Cela a été l’occasion de discuter avec un enseignant du problème du paquet Aseba pour Ubuntu 18.04.

Cette page vient en complément du poster et des transparents, et présente :

Petit robot à pattes

© Laurine Perdrix – Hélianthe

Journée Ada Lovelace 2018

Visage de Ada Lovelace / Ada Lovelace's Face
La journée Ada Lovelace a été l’occasion de proposer à des collégiennes et des lycéennes les activités préparées pour les fêtes de la science 2017 et 2018, grâce à l’aide d’Olivier Buffet & d’Alain Dutech (Inria & Loria). Cette page vous fournit :

 

Installing a Canon Printer on XUbuntu 18.04

Now that I have Aseba Studio working, I tried to get connected to my Canon Wi-Fi printer, and it is once again quite difficult. Is there something rotten in Ubuntu’s world?

Let us start by the beginning, and describe my printer’s configuration: it is a Canon Pixma MG4250, connected by Wi-Fi to my Freebox Revolution. It is detected by system-config-printer, which by default chose automatically the corresponding driver, by failled at last step to define the new printer and returned cups-error-internal-error. My first reaction was of course to check the Web for others having a similar problem, and the way they solved it if any did, but I did not find anything relevant.

I then tried something else: instead of choosing the automatically detected printer, I gave the URI found on XUbuntu 16.04, which is cnijnet:/ followed by (what I think to be) the MAC address of the printer. I then had to choose a driver (where system-config-printer automatically did it in previous method), but adding the printer still failled at last step, this time with cups-error-not-possible.

At last, I applied the method which worked on XUbuntu 16.04, which is to use Canon driver. I chose the Debian archive from their page, and tried to install it. However, it needed three packages (libpango1.0, libpng12 and libtiff14) while only the first is still available on 18.04 (the two others are obsolete). A web search indicated that older packages can be used, I thus got those of the previous LTS (xenius) on the Ubuntu archive site (but the last one, libtiff14, needs a direct access to tiff directory of the French archive site, as the library is not referenced, only its dev part). Once those package are saved and installed (with a sudo dpkg -i ...), Canon’s installation script works fine, and adds the printer. Everything now works fine.

As I found abnormal the two errors sent by system-config-printer, I filled a bug report on launchpad.

Missing Aseba Studio on Ubuntu 18.04

I am using Aseba Studio as development tool for the Thymios (personal French page | official English one) in several courses at master level.  I longed for Ubuntu 18.04 to come out, in order to replace this (%§$*!) buggy Ubuntu 16.04, but the aseba package provided in Ubuntu 18.04 has also a bug (cf Launchpad): several executables are missing, including those I need (Aseba Studio).

As some of my future students may also need it, I decided to solve this bug by compiling the whole package from the sources available on github. It was not easy as the contained file indicating how to compile forgot several needed package, and github provided a master archive with some empty directories. I reported the problem, found out how to compile, and sum up everything in an archive (19.4 Mo, TarBzip file) containing the 3 github archives (1.6.9 master + dashel + enki), a building script and a read-me, which makes the compilation quite straightforward. Feel free to use and give your feedback.

Edit: Thymio seems now (in September 2019) to provide a valid package (with 1.6.1 version) for Ubuntu 18.04 on its page. I still wait for my students to verify whether this package does work.

Qt Graphical Objects and Multi-Threads

While working at the ROS-Qt control benchmark I am developing, I discovered why ROS-Qt’s create package used a signal to log messages on the Qt window: modifying Qt graphical objects from different threads can lead to serious problems (program abortion with segmentation violation, for example). I wrote a simple example showing the problem and how to solve it (I will use it in L3 course as well as in the M2 control course – these two links are to French pages, sorry).

Installer XUbuntu 18.04 sur un HP 14-cf0013nf

(I translated the previous article, as most of the pages on wich I added a reference to it were in French.)
Cette page est référencée par la liste des portable HP testés sous Ubuntu, et sur la liste des cartes Wi-Fi fonctionnant sous Ubuntu et celle des matériels bluetooth pris en charge

L’installation de ce portable comporte deux points techniques : la gestion de la carte carte combo wifi/bluetooth Realtek RTL8723DE, et la configuration de VMware pour utiliser le système Windows installé en dual-boot.

Activer le Wi-Fi et le bluetooth

Le portable HP 14-cf0013nf contient une carte mère Intel® Core™ i3-7020U avec une carte graphique HD Graphics 620. Les deux sont parfaitement reconnues par XUbuntu 18.04. Ce n’est cependant pas le cas pour la carte combo wifi/bluetooth Realtek RTL8723DE : elle a besoin de quelques manipulations pour fonctionner correctement !

J’ai trouvé deux solutions pour faire fonctionner le Wi-Fi (Network Manager ne montre à l’origine aucun réseau Wi-Fi, car le module du noyau ne gère pas correctement la carte RTL8723DE) :

  1. La solution la plus souvent recommandée (y compris par HP – en anglais) est d’utiliser la branche extended du dépôt GitHub rtlwifi_new de Larry Finger. Vous pouvez soit récupérer l’archive sur la page, soit utiliser git ou svn pour télécharger le code.
    Vous pouvez alors soit compiler et installer ce code (make; sudo make install), soit utiliser dkms pour le faire (sudo dkms add ./rtlwifi_new; sudo dkms install rtlwifi-new/0.6). La seconde solution est préférable, car le module devrait être automatiquement recompilé pour tout nouveau noyau (si j’ai bien compris). Vous aurez besoin d’installer le paquet build-essential, ainsi que dkms (en anglais) pour la seconde solution.
    Vous pouvez alors utiliser ce module avec sudo modprobe -v rtl8723de ant_sel=1, le dernier argument indiquant quelle antenne vous voulez utiliser (1 ou 2,testez les deux pour trouver celle qui fonctionne le mieux). Attention : cette solution n’est pas efficace pour mon portable, le signal Wi-Fi étant plus faible (entre 50 et 60 %) que sous Windows avec le même portable, ou sous Xubuntu avec d’autres.
  2. En cherchant un moyen d’avoir un meilleur signal, j’ai trouvé dans un des problèmes (en anglais) du dépôt de Larry Finger une référence à un module de smlinux, qui est plus récent.
    J’ai commencé par enlever l’autre module: sudo service NetworkManager stop; sudo rmmod -f rtl8723_common rtl8723de; sudo dkms uninstall rtlwifi-new/0.6; sudo dkms remove rtlwifi-new/0.6 --all; sudo service NetworkManager start.
    Comme ci-dessus, vous pouvez récupérer l’archive or télécharger le code, puis compiler et installer ce code (make; sudo make install) or utiliser dkms (sudo dkms add ./rtl8723de; sudo dkms install rtl8723de/5.1.1.8_21285.20171026_COEX20170111-1414). Une fois le module lancé (toujours avec sudo modprobe -v rtl8723de ant_sel=#), le signal Wi-Fi est bien meilleur (similaire à Windows ou à un autre portable)!

Pour les deux solutions, le Secure Boot doit être désactivé, ou le module n’est pas démarré (et vous n’avez de nouveau aucune connexion Wi-Fi dans Network Manager). Cela peut (c’était mon cas) changer l’ordre des Boot Loaders, mettant en premier celui de MS (qui démarre Windows) au lieu du grub (qui donne le choix). Il faut alors remettre le bon ordre dans les réglages du Bios.

Il est dommage qu’aucun de ces deux modules ne soit proposé d’une manière plus simple, comme le module de Dmitry Tunin (pointé dans la liste des portable HP testés sous Ubuntu) qui est disponible sous la forme d’un paquet : sudo add-apt-repository ppa:hanipouspilot/rtlwifi; sudo apt-get update; sudo apt-get install rtlwifi-new-dkms; echo "options rtl8723be fwlps=1 ips=0 ant_sel=2" | sudo tee /etc/modprobe.d/rtl8723be.conf. C’est plus simple à installer, mais ce module ne concerne pas la carte RTL8723DE, mais la RTL8723BE et d’autres.

Faire fonctionner le bluetooth a été plus simple, grace à Dmitry Tunin ! Encore une fois, le module par défaut n’était pas le bon : blueman ne disposait d’aucun adaptateur. Une discussion effrayante (en anglais) se termine heureusement par une réponse rassurante : il suffit de quelques commandes (sudo add-apt-repository ppa:hanipouspilot/bluetooth; sudo apt update; sudo apt install btrtl-rtl8723de-dkms) pour faire fonctionner le bluetooth !

Configurer VMware pour utiliser le système du disque

Bientôt !