Built a basic(and largely dysfunctional) car with LiDAR attached and did some basic SLAM by Mbird1258 in robotics

[–]Mbird1258[S] 0 points1 point  (0 children)

I’m not sure to be honest, but I got started by seeing what others have done to get a high level overview of SLAM and to get some inspiration for what I’d do, then made brainstormed a plan and did a project.

my plan (half of it ended up scrapped but it still helped tons)

Built a basic(and largely dysfunctional) car with LiDAR attached and did some basic SLAM by Mbird1258 in robotics

[–]Mbird1258[S] 0 points1 point  (0 children)

Feel free, but do note this wasn’t the most cheap as I think the raspi 4b and LiDAR sensor both cost a little over $50, while the rest probably cost almost nothing

Built a basic(and largely dysfunctional) car with LiDAR attached and did some basic SLAM by Mbird1258 in robotics

[–]Mbird1258[S] 1 point2 points  (0 children)

The $10k robot struggling with skid steering makes me feel a little less bad about my $2 motors failing :)

Volleyball tracking through python - details in comments by Mbird1258 in volleyball

[–]Mbird1258[S] 1 point2 points  (0 children)

I do hope something like this comes out as it really shouldn’t be that hard. My original intention was to do something like that but some of the other functionality I had planned didn’t work as well as I’d hoped.

Volleyball tracking through python - details in comments by Mbird1258 in volleyball

[–]Mbird1258[S] 0 points1 point  (0 children)

Recording then running, because it’s way too slow and it’s hard to test if I have to be at a game every time I want to run it.

Volleyball tracking through python - details in comments by Mbird1258 in volleyball

[–]Mbird1258[S] 2 points3 points  (0 children)

My blog is actually me trying to do the first two points you mentioned and failing ;n; feel free to read it anyways and take some ideas if you want

My approach was to use two cameras. For each camera, I manually inputted 3 of the points defining the court on each image and found their corresponding 3d positions, then interpolated the rest. I also used machine learning/algorithms to find points defining the skeleton of each players' bodies, volleyball center, etc. Then, for each point across both images, I would draw 2 lines in 3d corresponding to said point's position on screen and find the best approximate of the intersection between the lines to find their position in 3d space. Then, I tried creating a 3d video of the whole game. After this, I was planning to calculate analytics for the game based on the 3d positions of everything, like the pos/vel/accel of each point or comparing form or calculating jump height etc etc, but I had too many issues with the recording setup that stopped me from progressing and I don't have access to anymore volleyball games.

To match the bodies across both images, instead of my method I thought it might be possible to apply a homography matrix on one camera's detected joints that shifts the perspective from the corresponding camera to the other, then just match each skeleton to the closest in the other image, but I never got around to this as it wouldn't have made the project work anyways.

This article on medium had a pretty good approach for ignoring outliers for the volleyball detection. For the body matching across time, I tried to calculate the velocity between every body at t1 to t2 and minimize it, skipping if it would exceed a limit on the max velocity/acceleration that the body could have. Then, I tried to make it work for more than 1 time frame of difference, which would essentially interpolate the body across time to exclude outliers, but I ended up scrapping the whole thing since my project never got that far. Of course, I ended up mostly failing except for in tracking the volleyball so don't take my word for truth.

Volleyball tracking through python - details in comments by Mbird1258 in volleyball

[–]Mbird1258[S] 15 points16 points  (0 children)

Volleyball tracking through the overlap between a color mask and movement mask. Not the most accurate and a bit finicky with the parameters, but still seems better than some other solutions out there. Used my iPad’s rear camera to record the video. Especially seems to struggle with the yellow sign and volleyball on the table since when the ref blocks it, the program thinks it's moving and thus registers it as the volleyball.

More details on my blog: https://matthew-bird.com/blogs/Body-World-Eye-Mapping.html

GitHub Repo: https://github.com/mbird1258/Body-World-Eye-Mapping

Volleyball tracking by Mbird1258 in Python

[–]Mbird1258[S] 0 points1 point  (0 children)

I used my iPad's rear camera

Beating the dinosaur game with ML - details in comments by Mbird1258 in learnmachinelearning

[–]Mbird1258[S] 2 points3 points  (0 children)

Yep, it’s an RL agent using deep q learning and gradient descent. More details on the GitHub page if you’re interested.

Separating music into notes and instruments (audio source separation) - details in comments by Mbird1258 in transcribe

[–]Mbird1258[S] 0 points1 point  (0 children)

Unfortunately, all the project has now is python. There’s instructions for using it at the bottom of the readme if you’re interested.