Skip to content

Instantly share code, notes, and snippets.

View jlblancoc's full-sized avatar

Jose Luis Blanco-Claraco jlblancoc

View GitHub Profile
@jlblancoc
jlblancoc / demo.launch.py
Created November 11, 2024 08:31
ROS2 launch.py: how to make it to quit on a node failure
from launch import LaunchDescription
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
from launch.actions import (DeclareLaunchArgument,
EmitEvent, LogInfo, RegisterEventHandler)
from launch.event_handlers import OnProcessExit
from launch.events import Shutdown
from ament_index_python import get_package_share_directory
import os
@jlblancoc
jlblancoc / README.md
Last active October 2, 2024 13:10
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:

# Download these two .deb files: 
wget https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.4-dev/libk4a1.4-dev_1.4.1_amd64.deb
wget https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/libk4a1.4/libk4a1.4_1.4.1_amd64.deb
@jlblancoc
jlblancoc / Instructions.md
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: http://wiki.ros.org/noetic/Installation/Source

You will find these errors, though:

Problem 1

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

@jlblancoc
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
jlblancoc / Instructions.md
Last active December 23, 2023 12:35
Tasmota Rules for LC Technology WiFi Relay

Introduction

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
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.
Delivered-To: [email protected]
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;
d=google.com; s=arc-20160816;
b=N3tZ5eARWjTJbaqKvySN+mHaSOUPVGHZP4DpOQQeS7j0oHIcDMgcEK/G1PAsMInAtw
3OvsVIDWf0Jn7M/zm/HCoJYwhTifyFOyEk+JHaXixlZOIMzLLkRuNwFdOw85IzVEG+d9
@jlblancoc
jlblancoc / method.md
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:

$1$2_
@jlblancoc
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
jlblancoc / notes.md
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:

Connect(
	ID_BUTTON1, wxEVT_COMMAND_BUTTON_CLICKED,
	(wxObjectEventFunction)&CDlgCalibWizardOnline::OnbtnStartClick);

into: