Giter VIP home page Giter VIP logo

cdfr's People

Contributors

3wnbr1 avatar jljonnard avatar kazzor avatar maxyolo01 avatar phileasl avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

philtell

cdfr's Issues

Implement side selection

Rendre possible la sélection de coté du robot

  • Design / ROS 2 concepts to be used
  • Implementation
    • Strategy (Strategix & Cetautomatix) 698b7b4
    • Assurancetourix & Vision
    • Navigation
    • Titan & Hyperion
  • Testing

Il est possible de définir un callback sur une rclcpp::Node/rclpy.node.Node lors de la reception d'un rcp_interface::msg::ParameterEvent, émis lors d'un événement sur un/plusieurs paramètre de la node. Voir exemple

Hyperion Feature Request

Features Hyperion, à contribuer

  • Calcul du score de notre équipe
  • Verification en mode [OK] / [WARN] / [FAIL] pour plusieurs critères :
    • Robots hyperstatique
    • status de Asterix / Obelix / Assurancetourix / Pharaon
    • Colisions
    • Actions executées avec succès / rejetées
    • ...

Sera intégré dans les tests automatiques
Screen Shot 2020-05-14 at 1 15 01 PM

canTransform exception in drive spamming warning log

By using canTransform(...) i was hoping for something like a "wait for transform" behavior.

It did the trick, but while checking for the transform it spams a lot of warning messages like Warning: Invalid frame ID "odom" passed to canTransform argument target_frame - frame does not exist in the log.

I haven't found anything that will simply prevent this warning from appearing. So in order to avoid this garbage to appear, i decided to disable the log of drive node.

As discussed with @3wnbr1 in #31, this move is too rough, we need to work around to achieve a smoother solution and keep the log of drive.

@3wnbr1 comes with:

See example below to catch exceptions
https://github.com/ros2/geometry2/blob/ros2/tf2_ros/src/tf2_echo.cpp

Race condition in cetautomatix causing global robots failure

#39 reverted a mitigation against this race condition

The ideal design would be prevent cetautomatix initialization completion as long as an odom message hasn't been received. We can't block the constructor's completion as this would result onto the odom callback handler not being called. We could instead use a boolean semaphore within the node to let know each subroutine if the node is ready and early return if it is not / report as not not ready yet.

Short term mitigation was to position with dummy values but this is impractical and can cause side effects.

Packages need documentation

Each package needs to be documented on the WIKI (Github Menubar).
Edit the ROS markdown and add a description of your package and how to use it.

DOC en Français les amis 😉

[Navigation2] Planner and Controller

Le contrôleur DWB présent dans la navigation de base ne réponds pas aux exigences de performance.

  • Sur Raspberry Pi (4B), le contrôleur n'est pas capable de gérer des fréquences supérieures à 20Hz. Le pas d'integration n'est alors pas suffisant pour l'odomètrie ce qui augmente l'erreur. Le nouveau contrôleur devra tourner à 200Hz minimum.
  • Le contrôleur DWB est trop complexe pour notre cas d'usage (toutefois, il reste inégalé pour le SLAM (Simultaneous Localization And Mapping)). L'erreur maximale de position tolérable par robot est fixée à 1 cm, l'erreur minimale du contrôleur DWB est 25 cm, il n'est de plus pas adapté aux robots non-holonomiques, ne favorisant pas les rotations sur lui même.
  • Le planneur global (Pathfinder) ne répond pas non plus aux exigences de précision en finissant sur l'objectif en spirale. De plus, il ne tire pas pleinement parti du nav_msgs::msg::Path qui n'est pas une liste de geometry_msgs::msg::Point mais de geometry_msgs::msg::Pose contenant également une orientation interpretable par le contrôleur.
  • Cependant du fait de l'architecture de ROS navigation2, ces composants existent sous forme de plugins et sont de ce fait remplaçables par d'autres plus adaptés

Il est donc entreprit de développer 2 plugins de navigation

  • Le Planner à partir de nav2_core::GlobalPlanner et sur base de https://navigation.ros.org/tutorials/docs/writing_new_nav2planner_plugin.html
    Le planneur pourra combiner déplacements linéaires, rotations et courbes de bezier en fonction de la situation. Un planeur plus complexe tel que contenus dans OMPL n'est pas nécessaire pour l'instant mais pourrais à fortiori remplacer les courbes de bezier sur la trajectoire intermédiaire

  • Le contrôleur à partir de DWB et TEB qui sont les 2 seuls contrôleurs supporté par navigation2.
    Design en cours...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.