Skip to content

Instantly share code, notes, and snippets.

@okalachev
okalachev / temp_plot.py
Last active April 21, 2021 18:00
Script for plotting RPi temperature graph
# Running: PYTHONUNBUFFERED=1 python temp_plot.py | tee temp.csv
import time
import subprocess
print('uptime,temperature,throttling')
while True:
uptime = float(open('/proc/uptime', 'r').readline().split()[0]) / 60
temp = float(open('/sys/class/thermal/thermal_zone0/temp').read()) / 1000
throttled = subprocess.check_output(['vcgencmd', 'get_throttled'])
@okalachev
okalachev / deqsub.py
Last active February 26, 2020 19:17
rospy subscriber that doesn't loose messages
import rospy
from collections import deque
from threading import Event, Thread
def subscribe_deque(name, data_class, callback=None, callback_args=(),
queue_size=1, **kwargs):
def cb(msg):
queue.append(msg)
@okalachev
okalachev / tree.cpp
Created December 12, 2019 02:18
Tree game implemented in C++
#include <iostream>
#include <string>
using namespace std;
struct Node
{
public:
// Answer constructor
Node(string answer) :
@okalachev
okalachev / publish_statustext
Created November 11, 2019 21:24
Publishing STATUSTEXT message to PX4 testing (with MAVROS)
#!/usr/bin/env bash
rostopic pub --once /mavros/statustext/send mavros_msgs/StatusText "header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
severity: 7
text: 'Debug!'"
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6/DRnrPS9as/l8TO0m8uAHV857pxZjrDauLZrZhGvi8VT9Y2NLJmQj4oHiBXRHo+8az0fvwu6qsCT41YxY55OacXI91tFYOW6bHhVo0naMtglrXTs0vVuzoR3UxGLOCC/Mpk3D73RIptfpDxO7deUqHPhNc+RWQlLSkhKwKiIEj8XbWvCBORQW4MrUXYFBZIQuLPCOhQqOPlTw+uqk6Yn30papzcrkEISPHR8tkvHTEn1mIISw0/12vaEiBBDZ6aQ2r/StVb7hQCik72aw8A2Sg6tZpmwFg2032HKsJu0b3r2eEkKM3xnFav+8vJPvodezk2OARz7hIAnzwfh6uox oleg@MacBook-Pro-1.Dlink
@okalachev
okalachev / README.md
Created August 27, 2019 21:01 — forked from urpylka/README.md
Сборка .deb пакетов из ROS пакетов

Сборка debian пакетов из ROS пакетов

Заметка основана на материалах:

  1. https://answers.ros.org/question/173804/generate-deb-from-ros-package/ (кстати, здесь описывается проблема иногда возникающая make[1]: *** [override_dh_auto_configure] Error 2)
  2. https://gist.github.com/awesomebytes/196eab972a94dd8fcdd69adfe3bd1152 (исходная инструкция)
  3. https://github.com/ros-infrastructure/ros_buildfarm/blob/master/doc/custom_rosdistro.rst (статья про использование кастомных зависимостей rosdep в rosbuildfarm)
  4. https://answers.ros.org/question/230104/using-bloom-to-generate-binaries-for-multiple-packages/ (вопрос про билдинг нескольких пакетов)
  5. https://answers.ros.org/question/292024/how-to-use-bloom-generate-with-private-dependencies/ (статья про билдинг с кастомными зависимостями)
  6. https://answers.ros.org/question/280213/generate-deb-from-dependent-res-package-locally/#280235 (исходная статья для предыдущей)
@okalachev
okalachev / double_flip.py
Last active May 16, 2021 09:23
Double flip on Clover drone
import math
import rospy
from clover import srv
from std_srvs.srv import Trigger
from sensor_msgs.msg import Range
from mavros_msgs.srv import SetMode
rospy.init_node('fly')
@okalachev
okalachev / serial_control.py
Created May 13, 2019 13:27
mavlink serial control
#!/usr/bin/env python
import rospy
from mavros_msgs.msg import Mavlink
from mavros import mavlink
from pymavlink import mavutil
rospy.init_node('serial_data')
rospy.loginfo('Node inited')
@okalachev
okalachev / nodelet_template.cpp
Created February 19, 2019 05:03
ROS nodelet template
#include <ros/ros.h>
#include <nodelet/nodelet.h>
#include <pluginlib/class_list_macros.h>
#include <geometry_msgs/PoseStamped.h>
class Example : public nodelet::Nodelet
{
public:
Example() {}
@okalachev
okalachev / sonar.py
Last active January 30, 2022 23:06
ROS node that filters and publishes data from HC-SR04 rangefinder
# -*- coding: utf-8 -*-
import time
import threading
import pigpio
import collections
import numpy
import rospy
from sensor_msgs.msg import Range