Skip to content

A collection of scripts and functionality, some practical and useful day to day, others with no redeeming usefulness other than fun!

Notifications You must be signed in to change notification settings

MZandtheRaspberryPi/im_practical_programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

im_practical_programming

This is a landing page for a collection of scripts and projects, some practical and useful day to day, others with no redeeming usefulness other than fun! See below projects and links:

Big Projects

quadruped_control via MPC

This was a fun project where I designed and implemented a controller using the unicycle model and model predictive control (MPC) for a quadruped. See a video demo here.

quad_traj

quad_traj_plot

quadruped autonomy

This was a fun project where I created software and integrated existing software to enable an autonomy stack for the Unitree Go1 Robot. I also designed and fabricated the sensor backpack including picking hardware components and integrating them. See a video demo here. It uses the CMU Navigation Framework here as a base with some glue of other modules to hold it together.

This was the first test of the system. Note the crane for safety. quad_auto_first_test

This is an example of what the quadruped sees: quad_what_sees

I did this in simulation before doing it in the real world. You can see a sim demo here. spot_what_sees

robo_drawing

I made a Kinematics and Trajectory Workshop based on drawing shapes with robot arms and taught it to 20 students. There is one version of the workshop where students have to do all the math themselves (here) and I made an expansive assignment with guided questions and structured code they insert their math into ([here])(https::/kinematics_and_traj_workshop.pdf). There is another version where the students don't have to do any math, rather they input a set of waypoints and the robot will draw their shape, letting them focus on moving robots and having fun! See one video demo on a small educational robot, the MyCobot 280 Raspberry Pi edition, that we used for the workshop here. See a video demo on a Franka Panda arm that I did for comparison purposes here. All twenty students got the small robots moving!

drawing_robot

Travelling Salesman with Drones

This was a project I did to solve the Travelling Salesman problem in 3D with aerial robotics. Find the code here. I used Gazebo to simulate the system and a C++ library I created to solve a path to take pictures of aruco markers scattered throughout the environment. I wrapped the C++ library with a ROS2 interface. See a video demo here.

with_gazebo
aruco
profiling

drone_swarm

This was a group project I did to control swarms of drones through various obstacles. I implemented a model predictive controller for a flexible number of drones that tracked reference trajectories, allowing transitions between formations like squares and arrows while tracking. See a video demo here.
swarm1
swarm2 swarmmpc1
swarmmpc2

state estimation with UKF

This is a project where I designed a circuit board and programmed it with a state estimator and a fluid simulator as a gift for a professor. See a video demo here and the repo here.
cuppa_Gif

digital_compass

This is a project where I designed, manufactured, and coded a digital compass that uses an inertial measurement unit (IMU) to estimate orientation in 3d-space. I implemented an extended kalman filter to (EKF) to do the estimation. Find the repo here. A video explanation is available here and a video demo is available here.
compass_pic
compass_pic_2
compass_demo

quadruped_learning

This is a project where I taught a robot dog to walk in simulation. I used imitation learning and inverse reinforcement learning. Find a video demo here and the repo here.
motion_retargeting

robodanceproject.com

This is a project where I implemented a front end in Angular and a back end in C++ to explore and visualize forward kinematics for a quadruped robot. I deployed this using Amazon Web Service's Lightsail. Find the repo here. robo_dance

think_like_an_octopus

This was an in-depth blog post I wrote around options for python multiprocessing including threading, multiprocessing, calling C++ code, and numpy. Find the repo here with a .pdf and links to the post.
octopus_blog_pic

robo_tentacle

This is a project where I designed a soft robotic manipulator based on continuum manipulators. I then made the mould, the robot by casting sillicon, and got it to pick objects up. See a video demo here.

robopickup robohold

led_catan

This was a project where I designed and fabricated a Settlers of Catan inspired game board. It used custom circuit boards for hexagonal tiles underneath a 3d-printed game board that diffused the lights. It can randomize the board, and remembers the current game board if a power-outtage occurs.

catan

mycobot

I prepared a robot arm to pick and place objects and use computer vision for students to use in a hackathon. See more details here. full_setup demo_pic

Bug0/1 with Quarduped

This was a project where I implemented grid-mapping based on a simulated lidar and integrated this with a local planner Bug0 and Bug1 to navigate to waypoints provided via RVIZ.

bug0

crystal_ball

This was a fun project where I made an orb that mounted to a cane like a witch's staff. Find the repo here with a write up and more pictures. witch_staff

toulouse_rover

This was a fun project I did to build an autonomous car, using a lidar. I did the robot design, hardware, and software by myself. It supports kinematics for differential drive, skid steering, and omni wheels, and a fourth fixed slow speed mode which is good for autonomous driving. It uses ROS and hector_mapping as well as move_it to do mapping and path planning. You can find more details here, and see a video explanation here.

toulouse autonomous_toulouse

buddy_singer

a repository to get a robot to sing from MIDI files. See a video demo here. singing_screenshot

all_seeing_drone

A project to introduce autonomous movement and face-following for a robolink CoDrone. I used the CoDrone API which lets you command roll, pitch, yaw, and throttle, but built a lot of functionality on top of that to do tracking, and in some cases rewrote bits of the CoDrone API to work with my needs. See the README here.

Demo of Autonomous Drone
Bottom left: processed drone video with debug information
Top left: cell phone camera in corner of room, showing drone flying
Right: raw drone input video
Notice it tracking me!

Here's a youtube video showing off the project. There's a link in the description of this video to another video that is more technical and shows some of the project work. Making a PB&J with autonomous drone camera-person

great_ball_project

This project uses Asyncronous Real-Time Communication (via the python aiortc library) to send video from a server to a client. This video is of a green ball bouncing. The client then uses computer vision to find the center of the ball and send it back to the server which displays an error from the true value.

Libraries used in include aiortc, numpy, opencv-python, and multiprocessing. In the below GIF, the window on the right has the raw frames from the server. The image on the left is overlaying a small blue dot on the calculated center, for display purposes. Unit tests, logging, config files, and more were added for code quality. Docker images and a deployment using Minikube were done as well.
great_ball_proj

holiday_project_2023

I designed a custom circuit and printer circuit board using a 555 timer and a 4017 decade counter to be my christmas cards for 2023. You can find the files here and a video demo here.
pcb_render
pcb_gif

my_bittle

This is a project where I integrated a camera sensor, a robot dog, and a raspberry pi to control the dog with computer vision. You can see a video demo here. You can find one python library I created to control the robot dog here and another python library to get images from the camera here. The demo code for integration is here. A writeup blog post is here.

bittle-demo

Spot Micro Robot

This was a fun project where I 3d printed the robot, planned the hardware, assembled, and used a fellow robot builder's ROS Repo to get it walking. I contributed a bit to the robot builder's ROS repo as well. It was mainly a hardware and electronics project for me. Check it out here.
spot_micro_demo

robo_arm

This is a robot arm project that I built from the ground up, including the software. It has two capabilities. The first is an arduino based arm that can be controlled via onboard joysticks and displays output to an OLED screen as it moves in x, y, z space with an inverse kinematic model. The second is a ROS Powered version that uses rosserial to communicate with the master node, and allows publishing of messages on a topic to command the arm in x, y, z coordinates. You can get to the repo here.
roboarm

Here is a demo of the arduino based version of the arm, and here is a demo of the ros based version of the arm.

prod_disaster_counter

This was a fun project to make a little device that can count things for people, like days in a row they've meditated, practiced a musical instrument, or gone for a walk. I made two versions of this. The first was hastily done on a prototyping board, the second was designed and manufactured to be prettier and more functional. You can find the documentation including cad, ecad, and code here.

You can see a video demo here.
demo_gif

Ultrasonic Bat

This was a project I organized and led with a group of friends. It is a small bat to hang on a christmas tree or put on a desk, that has ultrasonic sensors, RGB lights in the wings, and an OLED screen for a face. It can react when it sees things in front of it! I did all the 3d design and printing, as well as some of the software work relating to the oled and facial animations. I also coordinated with the hardware group, the software group, and the design group to make sure all the intermediate pieces worked together in the end product. You can find more info here.
ultrasonic bat

magic_box

This was a magical light box I built for a friend getting married. It has animations, looks pretty, and lets the user set the color for some of the animaetions. You can get to the repo with more details here.
magic box 1
magic box 2

Buddy Robot Dance with ROS

This was a fun project to get a robot to dance using ROS. I used a robot from Slant Concepts and re-coded it to work with ROS, via rosserial and a bluetooth connection. Check it out here.
buddy_dance

go2 wheels backback

I seem to build a lot of robot backpacks, with sensors and such to do autonomy. See another video demo here.

go2backpack

Pi Watch

This was a project to make a raspberry pi watch that can check buses near my apartment, show the weather, and turn off with button presses. Check out the repo here and a video showing off the project here.
pi_watch.gif

2025 Halloween Pumpkin Award

This was a project to make a 3d-printed pumpkin with lights inside as an award for the 2025 Best Pumpkin, voted during our annual pumpkin carving contest. See the repo here.

pumpkin_reward
all_pumpkins

Tableau Wine Night

This was a fun project to create a dataset from a winetasting I did among friends. From there I analyzed the data, created metrics, and presented an interactive visualization on it via Tableau Public. Find it here.
wine_night

Smaller Projects

bike_mudgaurd

I did some 3d-modelling and manufacturing to create a (not great) mudgaurd for my bike. Currently on v2. Find the repo here.
mudgaurd

headless_pi_setup

A guide on how to setup a Raspberry Pi with an emphasis on security, without a keyboard or display for the Pi. See the guide here!
pi_guide.png

Alexa and Raspberry Pi Lamp

A demo on how to control a Raspberry Pi Lamp using an Echo Dot. See the repo with links to guides here.
alexa_light_demo

Mood Lamp Guide

Here's a guide that is more a collection of tutorials to help you get your raspberry pi mood lamp kit from pimoroni up and running. Check it out here.
alexa_light_demo

Minecraft Server on your Pi

This has some links to guides to setup a minecraft server on your pi, as well as some tips on running the server and extra commands! Check it out here.
minecraft

R2D2 Sculpture with Amazon Echo Inside

This was a fun project to slice and print out some models I found and assemble them. Check it out here.
r2d2

About

A collection of scripts and functionality, some practical and useful day to day, others with no redeeming usefulness other than fun!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published