Skip to content

Instantly share code, notes, and snippets.

View jlblancoc's full-sized avatar

Jose Luis Blanco-Claraco jlblancoc

View GitHub Profile
jlblancoc /
Last active August 11, 2023 07:04
Install Azure Kinect DK on Ubuntu 22.04 or newer

Install lib4adev driver library

The Microsoft Kinect for Azure (k4a) is only supported officially for Ubuntu 18.04.

Here are instructions to install its library in a more recent OS:

# Install the key
curl | sudo apt-key add -
jlblancoc /
Last active May 31, 2023 12:23
Install ROS 1 (Noetic) on Ubuntu 22.04 (Jammy)

Install ROS 1 (Noetic) on Ubuntu 22.04 (Jammy)

In general, follow these instructions:

You will find these errors, though:

Problem 1

Problem: hddtemp is not found as a rosdep. Solution:

jlblancoc / dibuja_dep.m
Created December 15, 2022 20:09
MATLAB function to draw the power spectral density of a time series
function [] = dibuja_dep(x, Fs)
% Dibuja la densidad espectral de potencia (dep)
% o power spectral density (psd) de una señal "x" muestreada a una
% frecuencia de muestreo "Fs" (Hz)
N = length(x);
X = fft(x);
X = X(1:N/2+1);
psdx = (1/(Fs*N)) * abs(X).^2;
psdx(2:end-1) = 2*psdx(2:end-1);
freq = 0:Fs/length(x):Fs/2;
jlblancoc /
Last active December 23, 2023 12:35
Tasmota Rules for LC Technology WiFi Relay


These commands are shown in the YouTube tutorial: xxx

Based on the official docs with the addition of the automatic sending of ready\r\n on boot, as required by the firmware of my boards (these ones).

Rules for all boards:

  • Open Module Configuration -> Set module to Generic (18). Click save.
  • Now, depending on the number of relays on your board, do the next 1, 2 or 4 changes:
jlblancoc / gtsam-serialization-example.cpp
Created October 6, 2020 06:50
GTSAM factor graph serialization example
#include <boost/archive/binary_iarchive.hpp>
#include <boost/archive/binary_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>
#include <fstream>
#include <gtsam/base/serialization.h>
// ... Includes for your values and factors:
#include <gtsam/base/GenericValue.h> // GTSAM_VALUE_EXPORT
#include <gtsam/geometry/Pose2.h>
This file has been truncated, but you can view the full file.
Received: by 2002:a02:8786:0:0:0:0:0 with SMTP id t6csp1186368jai;
Wed, 22 Jul 2020 22:43:39 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJylm/QLhynKq/SZznR1l+Y5sRRDMulWqyIKPUeIickBG5o/ELk3EloepDByZGlB+RSf/LfF
X-Received: by 2002:a92:5f5a:: with SMTP id t87mr1748507ilb.255.1595483019518;
Wed, 22 Jul 2020 22:43:39 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1595483019; cv=none;; s=arc-20160816;
jlblancoc /
Last active July 3, 2020 06:04
Regular expression: replace all C++ member variable names in a project `m_XXX` ==> "XX_" (Google style)

Search for:

([\r\n ,\.\t\[\_\*\>\(\-\!\&\{])m_([a-zA-Z0-9_]*)

Replace with:

jlblancoc / Factor1stOrderOutput.cpp
Created January 20, 2020 09:30
Minimal example: defining new factor and variable types for GTSAM
#include <libfgcontrol/Factor1stOrderOutput.h>
#include <mrpt/core/exceptions.h>
using namespace fgcontrol;
Factor1stOrderOutput::~Factor1stOrderOutput() = default;
gtsam::NonlinearFactor::shared_ptr Factor1stOrderOutput::clone() const
return boost::static_pointer_cast<gtsam::NonlinearFactor>(
jlblancoc /
Last active December 6, 2019 08:10
wxWidgets: massive port Connect() to Bind() using regular expressions

Regular expression syntax tested with Visual Studio Code (Dec 2019)

Goal: transform:



jlblancoc / capture.m
Created March 7, 2019 10:36
Example: capture analog streams with NationInstrument DAQ from MATLAB
function [] = main()
close all;
% Make sure:
disp('Searching devices...');
if (length(devs.Vendor)~=1),
error('Is the USB DAQ connected?');