Coder Social home page Coder Social logo

tudoroancea / ihm2 Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 9.56 MB

Display of my skills in optimal control for autonomous race cars

License: MIT License

Python 65.18% Shell 0.85% CMake 1.90% C++ 32.07%
autonomous-car autonomous-racing model-predictive-control nonlinear-optimization optimal-control racecar-simulator foxglove ros2 vehicle-modeling

ihm2's Introduction

๐Ÿ’ซ About Me:

๐Ÿ”ญ ๐Ÿš— I am interested in numerical computing, optimal control, robotics, machine learning, data science, and their applications to fields like autonomous driving and aerospace.
๐Ÿ ๐ŸŽ๏ธ I have spent two years working for the EPFL Racing Team Driverless and implemented optimization-based nonlinear control and estimation algorithms.
๐Ÿš€ ๐Ÿง‘โ€๐Ÿš€ I am currently working for the Gruyere Space Program and developing optimal-control-based safety certifications for GNC algorithms.

๐Ÿ’ป Tech Stack:

C C++ Dart LaTeX Python R Markdown Flutter Qt ROS NumPy Pandas PyTorch scikit-learn SciPy CMake Notion Docker

โœ๏ธ Random Dev Quote

ihm2's People

Contributors

tudoroancea avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

ihm2's Issues

Debug foxglove bridge incompatible QoS

Sometimes, QoS policy incompatibilities arise when using foxglove bridge. When it happens, we cannot visualize the corresponding data on foxglove studio, whether it is coming from a ros bag/mcap or live publishers.

My bests guess for the moment: if foxglove bridge creates a subscriber on a certain topic, it will (supposedly) check the QoS policies of the other subscribers and will use the same one. If the foxglove bridge is already running when we launch our nodes, it could start before the others and use wrong QoS profiles.

Relevant parts of foxglove bridge source code:
choice of the QoS profile and PR where it was introduced

add lap time computation in simulation node

Goal

add lap time computation capabilities to the simulation node. We could publish these lap times in the sim_node's diagnostics (the last one and the best one since the last reset).

how to properly handle the track options for the controller

Basically, each ocp solver will be generated for one track and only one track. When we switch tracks, we have to switch controllers.

  • Do we pre-generate controllers for all tracks and include them all ? => to be done properly, we would have to create some enums (maybe)
  • do we generate them lazily by calling a python script? => would be hard to source the right env from c++

Add `cones_observations` publisher to `sim_node`

Goal

In a first version, we could just add the ground truth for the cones observations.
In a second version, we could add noises to these observations and add parameters to choose from several noise models (gaussian, uniform, exponential, etc.).

Implementation

Parameters

  • cones_observations_freq: float
  • cones_observations_range_noise_model: string
  • cones_observations_bearing_noise_model: string (in "uniform", "uni","exponential","exp","normal", "gaussian")
  • cones_observations_range_noise_param: float (either max value for uniform (symmetric support), 1/mean for exp, std for normal)
  • cones_observations_bearing_noise_param: float

Publishers

  • /ihm2/cones_observations: ihm2/msg/ConesObservations

Custom interfaces

  • ihm2/mgs/ConesObservations: based on the following .msg file:
    # ConesObservations
    std_msgs/Header header
    uint8 BLUE = 0
    uint8 YELLOW = 1
    uint8 SMALL_ORANGE = 2
    uint8 BIG_ORANGE = 3
    float64[] rho
    float64[] theta
    uint8[] colors
    float64[] rho_uncertainty # std dev of the rho (range) measurement
    float64[] theta_uncertainty # std dev of the theta (bearing) measurement
    float64[] colors_confidence # confidence of the color measurement, between 0 and 1
    

add proper dependencies (with submodules)

To be added:

  • acados. Options:
    - instructions to install it in the conda env and possibly bash scripts
    - add it as git submodule and bult by colcon
  • foxglove bridge -> add it as submodule that will be built by colcon
  • foxglove studio -> provide download link

Implement IHM2 controller with FKin6 model

Goal

First implementation of the principal goal of this repo: develop new fancy controllers.

Implementation

For the moment, the acados ocp solver is generated for a particular track because of the splines embedded in the model. Either we find a way to provide the parameters of those splines at runtime, or we generate several controllers. Cf issue #6

write control node

Implementation

Implement an abstract class and first close this

then if time do this (otherwise keep for v2)

Don't forget about this for the message filters to synchronize /ihm2/pose and /ihm2/velocity

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.