r/RobotBuilding•
moto_borg

Status shot of two wheeled robot and a bit of a text blurb!

Project

Hi everyone! I love the idea of this sub and I think its great. Ive often wished there was a community that could talk about robot builds as we do them. Youtube has more than a few content creators but making an entertaining video doesnt lend itself to discussing tiny details of the process. So this is my little robot! This is the 4th major revision of my two wheeled inverted pendulum(TWIP) robot. I started on this project about 15 months ago or so with the goal of just getting it moving around for now.

The 2nd and 3rd iterations both were stable and could stand just fine. However I had some balance issues and I didn't like the design much. The first few designs were mostly about getting all the crap crammed together and talking correctly. So what do I have going on there?

Well at the bottom i have 2 brushed geared motors powered by pololu motor boards.. The motors also come with encoders and so the motor encoder and driver board are both connected to an arduino nano (one for each side, two total) which handles a bunch of stuff involving the motors. The nano's are counting each wheel encoder movement, running a PI controller for movement, and communicating on i2c with the master.

The master is an uno in the middle (right side) and on the left side of the center area is a Pi3. Above that is a DROK (some random amazon brand?) DC-DC buck convertor. I use to drop 4s(~16v) to 5v for the arduino and pi's with more than enough current headroom for expansion plans (jetson tx2 for vision). The expansion plans are also why the middle is so empty and full of air.

The "main" arduino (the uno in the middle) is referred to as my flight system. It communicates with an IMU (BNO055) and then runs the PID loops to determine what the motors should do. It sends those commands to the motors and they execute the movements. It also receives current wheel counts from each motor and it can use that to do some basic dead reckoning and orientation.

The Pi3 runs a bunch of stuff as well but its mostly just interface and control crap. Nothing "low level". It runs python to talk with the arduino controller over serial which communicates relevant data to a redis Pub/Sub setup. The sub's to that redis data include a nodeJS application that runs a webinterface for live plotting of sensors and whatever other data I want. It can also control it. In addition I run another python program that will compile the data into blobs of data and commit that to an external database. So every run the system makes will be recorded in a database except for possible the last few seconds of it.

I have to reprint a few pieces of what is already there (ie the bottom most part. Those wheel mounts are SUPER flimsy.. and while yes you can see the tires toeing out here thats because the motors arent really screwed in. I just shoved it together and it held by friction for the pictures.

Well thats my robot! I'll update maybe if it feels worth it.

Thanks!

Posted Mar 12, 2018, 9:47 PM UTC

74
Loading comments…