ROS compatible tool to generate Allan Deviation plots

Overview

Allan Variance ROS

ROS package which loads a rosbag of IMU data and computes Allan Variance parameters

The purpose of this tool is to read a long sequence of IMU data and return the Angle Random Walk (ARW), Bias Instability and Random Walk for the gyroscope as well as Velocity Random Walk (VRW), Bias Instability and Random Walk for the accelerometer.

How to use

Build the package:

catkin build allan_variance_ros

Recommended: Reorganize ROS messages by timestamp using ROS Cookbook:

rosrun allan_variance_ros cookbag.py --input original_rosbag --output cooked_rosbag

Run the Allan Variance computation tool:

rosrun allan_variance_ros allan_variance [path_to_rosbags] [path_to_config_file]

This will compute the Allan Deviation for the IMU and generate a CSV. The next step is to visualize the plots and get parameters. For this run:

rosrun allan_variance_ros analysis.py --data allan_variance.csv

Press space to go to next figure.

How to collect sequence

Place your IMU on some damped surface and record your IMU data to a rosbag. You must record at least 3 hours of data. The longer the sequence, the more accurate the results.

Example Log

3 hour log of Realsense D435i IMU already "cooked".

Acceleration Gyroscope

Example terminal output:

ACCELEROMETER:
X Velocity Random Walk:  0.00333 m/s/sqrt(s)  0.19983 m/s/sqrt(hr)
Y Velocity Random Walk:  0.01079 m/s/sqrt(s)  0.64719 m/s/sqrt(hr)
Z Velocity Random Walk:  0.00481 m/s/sqrt(s)  0.28846 m/s/sqrt(hr)
X Bias Instability:  0.00055 m/s^2  1.99258 m/hr^2
Y Bias Instability:  0.00153 m/s^2  5.51917 m/hr^2
Z Bias Instability:  0.00052 m/s^2  1.86155 m/hr^2
X Accel Random Walk:  0.00008 m/s^2
Y Accel Random Walk:  0.00020 m/s^2
Z Accel Random Walk:  0.00007 m/s^2
GYROSCOPE:
X Angle Random Walk:  0.00787 deg/sqrt(s)  0.47215 deg/sqrt(hr)
Y Angle Random Walk:  0.00987 deg/sqrt(s)  0.59204 deg/sqrt(hr)
Z Angle Random Walk:  0.00839 deg/sqrt(s)  0.50331 deg/sqrt(hr)
X Bias Instability:  0.00049 deg/s  1.76568 deg/hr
Y Bias Instability:  0.00136 deg/s	 4.88153 deg/hr
Z Bias Instability:  0.00088 deg/s	 3.15431 deg/hr
X Rate Random Walk:  0.00007 deg/s
Y Rate Random Walk:  0.00028 deg/s
Z Rate Random Walk:  0.00011 deg/s

Kalibr

Kalibr is a useful collection of tools for calibrating cameras and IMUs. For IMU calibration it needs the noise parameters of the IMU generated in a yaml file. allan_variance_ros automatically generates this file file as imu.yaml:

#Accelerometer
accelerometer_noise_density: 0.006308226052016165 
accelerometer_random_walk: 0.00011673723527962174 

#Gyroscope
gyroscope_noise_density: 0.00015198973532354657 
gyroscope_random_walk: 2.664506559330434e-06 

rostopic: '/sensors/imu' #Make sure this is correct
update_rate: 400.0 #Make sure this is correct

References

Comments
  • Add imu data simulation to support evaluation of the calibration result

    Add imu data simulation to support evaluation of the calibration result

    There are several open source IMU instrinsic calibration tools. However the result of those tools varies a lot and the calibration result is difficult to evaluate.
    So I create a tool to simulate IMU data by implementing IMU-Noise-Model then use the tools to calibrate simulated IMU data. After comparing IMU simulator configuration and calibration result, I found allan_variance_ros gives a good result.

    Experiment steps

    1. Simulate IMU Data: Build the branch feature-support-imu-simulation and run rosrun allan_variance_ros imu_simulator imu-sim.bag config/simulation/imu_simulator.yaml to get simulated imu data imu-sim.bag;
    2. Compute calibration result: Use calibration tool to get imu.yaml.

    Result analysis

    Simulator configuration config/simulation/imu_simulator.yaml and result of allan_variance_ros fit very well, especially the noise_density.

    config/simulation/imu_simulator.yaml

    #Accelerometer
    accelerometer_noise_density: 0.0025019929573561175 
    accelerometer_random_walk: 6.972435158192731e-05
    accelerometer_bias: 0.007
    
    #Gyroscope
    gyroscope_noise_density: 0.0001888339269965301 
    gyroscope_random_walk: 2.5565313322052523e-06
    gyroscope_bias: 0.006
    
    rostopic: '/sensors/imu'
    update_rate: 400.0
    
    sequence_time: 11000
    

    imu.yaml

    #Accelerometer
    accelerometer_noise_density: 0.002514275004256148 
    accelerometer_random_walk: 7.839662376685361e-05 
    
    #Gyroscope
    gyroscope_noise_density: 0.00018857851446797772 
    gyroscope_random_walk: 3.4044926542479456e-06 
    
    rostopic: '/sensors/imu' #Make sure this is correct
    update_rate: 400.0 #Make sure this is correct
    

    Log graph of simulated data: acceleration gyro

    I also test imu_utils, but get a bad result:

    %YAML:1.0
    ---
    type: IMU
    name: xsens
    Gyr:
       unit: " rad/s"
       avg-axis:
          gyr_n: 3.7434416456652866e-03
          gyr_w: 2.6282617430254198e-05
       x-axis:
          gyr_n: 3.7318006434153101e-03
          gyr_w: 2.5886094931213328e-05
       y-axis:
          gyr_n: 3.7504972327004698e-03
          gyr_w: 2.6307730658703765e-05
       z-axis:
          gyr_n: 3.7480270608800802e-03
          gyr_w: 2.6654026700845500e-05
    Acc:
       unit: " m/s^2"
       avg-axis:
          acc_n: 4.9111024092767130e-02
          acc_w: 4.7116333895251159e-04
       x-axis:
          acc_n: 5.0225631388534600e-02
          acc_w: 4.2043757646841598e-04
       y-axis:
          acc_n: 4.8325112701115391e-02
          acc_w: 5.1573007305579790e-04
       z-axis:
          acc_n: 4.8782328188651393e-02
          acc_w: 4.7732236733332096e-04
    
    opened by kekeliu-whu 7
  • About units of params Accel Random Walk and Rate Random Walk

    About units of params Accel Random Walk and Rate Random Walk

    Hi author, Thanks for your sharing so convient tool to community very much. In code we average three axis Accel Random Walk to get accelerometer_random_walk of kalibr. accelerometer_random_walk's unit is m/s^3/sqrt(HZ), namely m/s^2/sqrt(s), but the Accel Random Walk's unit is m/s^2, is there a typo ? The same question exist about Rate Random Walk. Velocity Random Walk and Angle Random Walk units are equal to accelerometer_noise_density and gyroscope_noise_densityof kalibr. Thanks for your help and time! https://github.com/ori-drs/allan_variance_ros/blob/25a33882f1fafddc910dbbdb0e2d4858cde009fc/scripts/analysis.py#L121

    opened by narutojxl 6
  • Simulation Accuracy

    Simulation Accuracy

    I am getting the following on the example simulation:

    #Accelerometer
    accelerometer_noise_density: 0.0025019929573561175 #true
    accelerometer_noise_density: 0.0017989768146338795 
    
    accelerometer_random_walk: 6.972435158192731e-05 #true
    accelerometer_random_walk: 5.073249247970349e-05 
    
    #Gyroscope
    gyroscope_noise_density: 0.0001888339269965301  #true
    gyroscope_noise_density: 0.00013494835013762752 
    
    gyroscope_random_walk: 2.5565313322052523e-06 #true
    gyroscope_random_walk: 2.324462789522549e-06 
    
    rostopic: '/sensors/imu' 
    update_rate: 400 
    

    The accelerometer_noise_density seems to be almost half what it should be here. acceleration

    Here is the script I am using to generate this result: simulate_imu.sh.txt

    opened by goldbattle 5
  • ValueError with cookbag.py and analysis.py

    ValueError with cookbag.py and analysis.py

    • Hi, I've recorded IMU data (all topics) with SBG Ellipse. When I turn on cookbag. py, I get this error:
    > magda@magda-VirtualBox:~$ cd catkin_ws
    > magda@magda-VirtualBox:~/catkin_ws$ source devel/setup.bash
    > magda@magda-VirtualBox:~/catkin_ws$ rosrun allan_variance_ros cookbag.py --input /home/magda/catkin_ws/src/allan_variance_ros/2022-08-12-12-14-04.bag --output cooked_rosbag
    > Failed to load Python extension for LZ4 support. LZ4 compression will not be available.
    > Traceback (most recent call last):
    >   File "/home/magda/catkin_ws/src/allan_variance_ros/scripts/cookbag.py", line 14, in <module>
    >     with rosbag.Bag(args.output, 'w', compression='lz4') as outbag:
    >   File "/opt/ros/melodic/lib/python2.7/dist-packages/rosbag/bag.py", line 445, in __init__
    >     raise ValueError('compression must be one of: %s' % ', '.join(allowed_compressions))  
    > **ValueError: compression must be one of: none, bz2**
    
    • But then I run normally

    > rosrun allan_variance_ros allan_variance /home/magda/catkin_ws/src/allan_variance_ros/ /home/magda/catkin_ws/src/allan_variance_ros/config/ellipse.yaml

    • this works great and I get allan_variance.csv. Unfortunatelly the next step doesn't work again. I see this error:
    > magda@magda-VirtualBox:~/catkin_ws$ rosrun allan_variance_ros analysis.py --data /home/magda/catkin_ws/src/allan_variance_ros/allan_variance.csv
    > 
    > /home/magda/catkin_ws/src/allan_variance_ros/scripts/analysis.py:23: RuntimeWarning: divide by zero encountered in log
    >   logy = np.log(y)
    > Traceback (most recent call last):
    >   File "/home/magda/catkin_ws/src/allan_variance_ros/scripts/analysis.py", line 101, in <module>
    >     accel_wn_intercept_x, xfit_wn = get_intercept(period[0:white_noise_break_point], acceleration[0:white_noise_break_point,0], -0.5, 1.0)
    >   File "/home/magda/catkin_ws/src/allan_variance_ros/scripts/analysis.py", line 24, in get_intercept
    >     coeffs, _ = curve_fit(line_func, logx, logy, bounds=([m, -np.inf], [m + 0.001, np.inf]))
    >   File "/home/magda/.local/lib/python3.6/site-packages/scipy/optimize/minpack.py", line 734, in curve_fit
    >     ydata = np.asarray_chkfinite(ydata, float)
    >   File "/home/magda/.local/lib/python3.6/site-packages/numpy/lib/function_base.py", line 486, in asarray_chkfinite
    >     "array must not contain infs or NaNs")
    > **ValueError: array must not contain infs or NaNs**
    
    • Additionally I have created a launch file in which I show IMU topic and frequency. In this topic IMU status, sensors values and computed orientation using Quaternion are listed.

    Do you know where is the problem? Thank you very much for the answer

    opened by MagdaZal 5
  • compile err

    compile err

    1. uint64_t catkin_build/src/allan_variance_ros/include/allan_variance_ros/ImuMeasurement.hpp:14:3: error: ‘uint64_t’ does not name a type uint64_t t{}; ///< ROS time message received (nanoseconds).

    add #include <stdint.h> in ImuMeasurement.hpp file.

    1. error: expected unqualified-id before ‘using’ catkin_build/src/allan_variance_ros/include/allan_variance_ros/AllanVarianceComputor.hpp:17:1: error: expected unqualified-id before ‘using’ using EigenVector = std::vector<T, Eigen::aligned_allocator>;
    opened by improve100 4
  • analysis.py:25: RuntimeWarning: divide by zero encountered in log

    analysis.py:25: RuntimeWarning: divide by zero encountered in log

    Hello author, I have recorded 3hr 37:31s (13051s) 2021-11-18-14-38-03.bag, it only contains imu data which published by gazebo libgazebo_ros_imu_sensor.so. cooked_rosbag_2021-11-18-14-38-03.bag is located in /home/jxl/jxl/allan_ws/. gazebo_husky.yaml is

    imu_topic: "/imu/data"
    imu_rate: 50
    measure_rate: 50
    sequence_time: 13050 #bag in seconds
    
    rosrun allan_variance_ros cookbag.py  --input /home/jxl/2021-11-18-14-38-03.bag  --output  cooked_rosbag_2021-11-18-14-38-03.bag
    rosrun allan_variance_ros allan_variance  /home/jxl/jxl/allan_ws/ /home/jxl/jxl/allan_ws/src/allan_variance_ros/config/gazebo_husky.yaml
    

    When createing allan_variance.csv, it reminds me many imu msgs timestamp have somewrong, this is only part of the information output by the terminal.

    [ERROR] [1637290175.093369303]: Skipped imu messages 614547
    [ INFO] [1637290175.093390054]: 12291 / 13050 seconds loaded
    [ERROR] [1637290175.093418470]: IMU message before last imu time. IMU time: 13077039999998 last imu time 93877317622759
    [ERROR] [1637290175.093438070]: Skipped imu messages 614548
    [ INFO] [1637290175.093457149]: 12291 / 13050 seconds loaded
    [ERROR] [1637290175.093483640]: IMU message before last imu time. IMU time: 13077059999998 last imu time 93877317622759
    [ERROR] [1637290175.093503903]: Skipped imu messages 614549
    [ERROR] [1637290175.093530664]: IMU message before last imu time. IMU time: 13077079999998 last imu time 93877317622759
    [ERROR] [1637290175.093551317]: Skipped imu messages 614550
    [ INFO] [1637290175.093572197]: 12291 / 13050 seconds loaded
    [ERROR] [1637290175.093600659]: IMU message before last imu time. IMU time: 13077099999998 last imu time 93877317622759
    
    [ INFO] [1637290176.968499108]: Computed 0 averages for period 985.5
    [ INFO] [1637290176.968519090]: Computed 0 averages for period 985.6
    [ INFO] [1637290176.968539519]: Computed 0 averages for period 985.7
    [ INFO] [1637290176.968559882]: Computed 0 averages for period 985.8
    [ INFO] [1637290176.968580278]: Computed 0 averages for period 985.9
    [ INFO] [1637290176.968600411]: Computed 0 averages for period 986
    [ INFO] [1637290176.968620740]: Computed 0 averages for period 986.1
    [ INFO] [1637290176.968641282]: Computed 0 averages for period 986.2
    [ INFO] [1637290176.968661284]: Computed 0 averages for period 986.3
    [ INFO] [1637290176.968681675]: Computed 0 averages for period 986.4
    [ INFO] [1637290176.968701987]: Computed 0 averages for period 986.5
    [ INFO] [1637290176.968721859]: Computed 0 averages for period 986.6
    [ INFO] [1637290176.968742431]: Computed 0 averages for period 986.7
    [ INFO] [1637290176.968763563]: Computed 0 averages for period 986.8
    [ INFO] [1637290176.968783902]: Computed 0 averages for period 986.9
    [ INFO] [1637290176.968804266]: Computed 0 averages for period 987
    [ INFO] [1637290176.968824155]: Computed 0 averages for period 987.1
    [ INFO] [1637290176.968844767]: Computed 0 averages for period 987.2
    [ INFO] [1637290176.968865573]: Computed 0 averages for period 987.3
    

    When i rosrun allan_variance_ros analysis.py --data /home/jxl/jxl/allan_ws/allan_variance.csv, program is terminated. Is there something i missing? Every imu msg has a timestamp, does it mean cookbag.py do nothing actually ? Thanks for any your suggestion and help.

    ➜  [/home/jxl/jxl/allan_ws] rosrun allan_variance_ros analysis.py --data  /home/jxl/allan_variance.csv 
    /home/jxl/jxl/allan_ws/src/allan_variance_ros/scripts/analysis.py:25: RuntimeWarning: divide by zero encountered in log
      logy = np.log(y)
    Traceback (most recent call last):
      File "/home/jxl/jxl/allan_ws/src/allan_variance_ros/scripts/analysis.py", line 84, in <module>
        accel_wn_intercept_x, xfit_wn = get_intercept(period[0:white_noise_break_point], acceleration[0:white_noise_break_point,0], -0.5, 1.0)
      File "/home/jxl/jxl/allan_ws/src/allan_variance_ros/scripts/analysis.py", line 26, in get_intercept
        coeffs, _ = curve_fit(line_func, logx, logy, bounds=([m, -np.inf], [m + 0.001, np.inf]))
      File "/home/jxl/.local/lib/python3.8/site-packages/scipy/optimize/minpack.py", line 735, in curve_fit
        ydata = np.asarray_chkfinite(ydata, float)
      File "/usr/lib/python3/dist-packages/numpy/lib/function_base.py", line 495, in asarray_chkfinite
        raise ValueError(
    ValueError: array must not contain infs or NaNs
    ➜  [/home/jxl/jxl/allan_ws] 
    

    This is csv file's part info.

    0.5 -0 -0 -0 -0 -0 -0 
    0.6000000238418579102 -0 -0 -0 -0 -0 -0 
    0.6999999880790710449 -0 -0 -0 -0 -0 -0 
    0.8000000119209289551 -0 -0 -0 -0 -0 -0 
    0.8999999761581420898 -0 -0 -0 -0 -0 -0 
    1 -0 -0 -0 -0 -0 -0 
    1.10000002384185791 -0 -0 -0 -0 -0 -0 
    1.20000004768371582 -0 -0 -0 -0 -0 -0 
    1.29999995231628418 -0 -0 -0 -0 -0 -0 
    1.39999997615814209 -0 -0 -0 -0 -0 -0 
    1.5 -0 -0 -0 -0 -0 -0 
    
    opened by narutojxl 4
  • OpenMP Support and Rosbag Fix

    OpenMP Support and Rosbag Fix

    This adds ability to calculate the allan variance values in parallel (halved my processing time on a 8 core machine) If the user's compiler doesn't support OpenMP then it should ignore the pragma.

    Some small quality of life improvements for the print statements in a couple places also. Additionally fixed some compile warnings for the try catch exceptions.

    Additionally, creating the bag variable locally instead of in the class fixed this error (ubuntu 20.04):

    allan_variance: /usr/include/boost/smart_ptr/shared_ptr.hpp:734:
    typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = rosbag::EncryptorBase; typename
    boost::detail::sp_member_access<T>::type = rosbag::EncryptorBase*]: Assertion `px != 0' failed.
    
    opened by goldbattle 3
  • How long should this take to run?

    How long should this take to run?

    Not complaining - trying to plan - but approx. how long should the allan_variance computation process take for say ~3hr long data?

    I have a rosbag ~3hrs (11214s) long being processed. The message Computed X averages for period Y is progressing through 1-unit of "period" every ~3.5s real-time. If I take "period" to mean the seconds in the rosbag it looks like my computer will take >10hrs to process... Is just how it is or am I missing something?

    Obviously this is dependant on my hardware. I'm on a Ryzen 3600X based machine 16GB if that helps.

    opened by seajayshore 2
  • Example ROS Bags

    Example ROS Bags

    Here are some more example bags that you can link to from the readme (feel free to reupload or directly link): https://drive.google.com/drive/folders/1a3Es85JDKl7tSpVWEUZryOwtsXB8793o?usp=sharing

    opened by goldbattle 1
  • Small QoL changes

    Small QoL changes

    Allow simulator to stop generating on ctrl+c, and some debug printouts to help users see what was read in. Additionally, don't try to process if there is no IMU data extracted from the bag.

    opened by goldbattle 1
  • Units from my IMU

    Units from my IMU

    Hi,

    I record a video and extract IMU metadata like shown below. I need to know the units so i can easily use your tool. Please help !!

    "Doc1961:Accelerometer": { "id": "Accelerometer", "table": "QuickTime::Stream", "val": "0.97705078125 -0.775634765625 -0.63134765625" }, "Doc1961:AngularVelocity": { "id": "AngularVelocity", "table": "QuickTime::Stream", "val": "-0.711596667766571 -0.207726567983627 -0.145941227674484"

    opened by sadsasuke 1
  • results interpret

    results interpret

    hi! i got calibration papers: acceleration gyro

    this is cheap mpu-650 (GY-521). how to understand is it good or not ? what "stars", "circles", "triangles" mean ?

    opened by zoldaten 7
  • Failed to load Python extension for LZ4 support. LZ4 compression will not be available

    Failed to load Python extension for LZ4 support. LZ4 compression will not be available

    thanks for sharing your work. when I try to run rosrun allan_variance_ros cookbag.py --input workspace/imu_calibration.bag --output workspace/cooked_rosbag.bag I get this error :Failed to load Python extension for LZ4 support. LZ4 compression will not be available. I instaled lz4 and roslz4 package but it still occur.What is the mistake?

    opened by John-Mccarty 3
Owner
Oxford Dynamic Robot Systems Group
Oxford Robotics Institute, University of Oxford
Oxford Dynamic Robot Systems Group
Matryoshka loader is a tool that red team operators can leverage to generate shellcode for Microsoft Office document phishing payloads.

Overview Matryoshka loader is a tool that red team operators can leverage to generate shellcode for an egghunter to bypass size-limitations and perfor

Praetorian 26 Dec 15, 2022
LLpatch: Userspace tool to generate Linux kernel livepatch

LLpatch: LLVM-based Kernel Livepatch Generation LLpatch generates, from a source patch, a kernel loadable module or binary package, that can update Li

Google 28 Nov 30, 2022
D2R mod generator. Provide quick tool to generate .txt files to change game balance: increase drop, monster density or even randomize items.

Diablo 2 mod generator Generator is inspired by d2modmaker. It provides fast and easy way to create mod without any modding knowledge. Features includ

Smirnov Vladimir 31 Dec 22, 2022
A tool to generate elegant UML-like class/object diagrams for C++ header files

Diagrams for C++ header files Note: This is a PoC project; Issues will drive the development What's this all about We strive for a tool to generate el

Mohammed Elwardi Fadeli 2 Mar 19, 2022
Generate and Install NDS Forwarders

NDSForwarder This app will create nds forwarders and install them to the home screen of the 3ds. The forwarders created with this app work in conjunct

MechanicalDragon 81 Jan 3, 2023
Generate huge load-avg

Loadavg-generator Will create a lot of threads, limited to 2 CPUs to avoid hanging the system. Code is avoiding pthread to avoid eating too much memor

Adrien Mahieux 7 Jul 6, 2022
Generate dense random crosswords

CrosswordGenerator crossword_gen is a program written in C allowing to generate random crosswords from a list of words. The following parameters are e

null 2 Oct 31, 2021
Trusted QSL from the ARRL, this repo is a manual sync and only to generate a AppImage of the app

Trusted QSL from the ARRL, this repo is a manual sync and only to generate a AppImage of the app

Pavel Milanes (CO7WT) 2 Nov 17, 2021
Generate representative samples from Pwned Passwords (HIBP)

Generate representative samples from Pwned Passwords (HIBP) This program generates representative samples from Pwned Passwords (HIBP), taking the coun

Solar Designer 11 Nov 24, 2022
Generate Arista Type 7 Passwords in C

arista_type_7 Generate Arista Type 7 Passwords in C and Python A friend had the need to provision Arista Type 7 Passwords on switches. According to Ry

Kristian Koehntopp 5 Nov 29, 2022
An application that can generate traduction pokeemerald dizzy egg project files. Credits to Pokecreator and myself.

INSTRUCTIONS First of all, you have to launch "PokeemeraldTraductor.exe", chose a language then, you just have to wait until the traduction finish. A

null 5 Dec 31, 2022
A gazebo actor plugin that utilizes the map of the environment and graph search methods to generate random actor trajectories that don't pass through walls, furniture, etc.

Gazebo-Map-Actor-Plugin A gazebo actor plugin that utilizes the map of the environment and graph search methods to generate random actor trajectories

Yasin Sonmez 11 Dec 23, 2022
An application that can generate traduction pokeemerald dizzy egg project files. Credits to Pokecreator and myself.

INSTRUCTIONS First of all, you have to launch "PokeemeraldTraductor.exe", chose a language then, you just have to wait until the traduction finish. A

null 5 Dec 31, 2022
A Blender script to procedurally generate 3D spaceships

Spaceship Generator A Blender script to procedurally generate 3D spaceships from a random seed. Usage Install Blender 2.80 or greater: http://blender.

Michael Davies 7.3k Dec 30, 2022
Generate code for pretty-printing C++ enums

enums Generate code for pretty-printing C++ enums. Supported platforms Only Linux x86/x86_64 systems are supported. For the missing platforms, the too

Andrei Burdulescu 0 Jan 31, 2022
C parsing, semantic analys, generate a graph from a source code. An educational project during my third year of Computer Science Licence.

Pour compiler le programme, il suffit d'exécuter compiler.sh avec la commande "./compiler.sh" en se trouvant dans le dossier racine du projet. Un fich

Jean Philippe Carlens 3 Feb 3, 2022
Sysmon event simulation utility which can be used to simulate the attacks to generate the Sysmon Event logs for testing the EDR detections and correlation rules by Blue teams.

SysmonSimulator SysmonSimulator is an Open source Windows event simulation utility created in C language, that can be used to simulate most of the att

Scarred Monk 744 Dec 25, 2022
Automatically de-obfuscate ollvm and generate binaries

AntiOllvm Automatically deobfuscate binaries and generate new binaries. Chinese Help 中文帮助点击 帮助 Decriptor Software obfuscation protection is very commo

sanfengAndroid 71 Dec 6, 2022
image_projection is a ROS package to create various projections from multiple calibrated cameras.

image_projection Overview image_projection is a ROS package to create various projections from multiple calibrated cameras. Use cases involve: Rectify

Technische Universität Darmstadt ROS Packages 118 Dec 22, 2022