Carl Need To Move More

I knew Carl is getting bored with just docking and undocking, but I had not quantified it until recently. I created a “wheel encoder watcher” to log any travel and rotations.

I estimate Carl has traveled about a third of a mile, but he has been contemplating his navel 99.96% of his life.

pi@Carl:~/Carl $ ./totalwheel.sh 
Total Travel:  463537 mm 1520.7 ft
Total Rotate:  461872 deg 1282.9 revolutions
Total Motion:  11348.4 sec 3.1 hrs
Total Life:  6964.69   percentInMotion: .04
pi@Carl:~/Carl $ more wheel.log 
2020-01-26 10:28|[catchup.150dia_test_533mm_8s]travel: 79950.0 rotation: 0.0 motion: 1200.0 sec
2020-01-26 10:28|[catchup.300base_test_360deg_6s]travel: 0.0 rotation: 108000.0 motion: 1800.0 sec
2020-01-26 10:28|[catchup.100orbit_test_838mm_360deg_18s]travel: 83800.0 rotation: 36000.0 motion: 1800.0 sec
2020-01-26 10:28|[catchup.100remote_drive]travel: 152400.0 rotation: 36000.0 motion: 2600.0 sec
2020-01-26 10:28|[catchup.776dockings_186mm_360deg]travel: 145112.0 rotation: 279360.0 motion: 3833.0 sec
2020-01-26 10:28|[wheellog.py.logMotionStop]travel:   531.4 rotation:     0.3 motion:     8.1 sec
2020-01-26 10:30|[wheellog.py.logMotionStop]travel:  -533.1 rotation:    -0.3 motion:     8.3 sec
2020-01-26 10:32|[wheellog.py.logMotionStop]travel:     0.3 rotation:   357.7 motion:     5.6 sec
2020-01-26 10:32|[wheellog.py.logMotionStop]travel:    -0.3 rotation:   356.6 motion:     5.5 sec
2020-01-26 10:32|[wheellog.py.logMotionStop]travel:     0.0 rotation:   359.1 motion:     5.6 sec
2020-01-26 10:40|[wheellog.py.logMotionStop]travel:     0.6 rotation:   358.0 motion:     5.5 sec
2020-01-26 10:55|[wheellog.py.logMotionStop]travel:    -0.3 rotation:   358.3 motion:     5.5 sec
2020-01-26 10:58|[wheellog.py.logMotionStop]travel:    -0.3 rotation:   357.2 motion:     5.6 sec
2020-01-26 10:59|[wheellog.py.logMotionStop]travel:    -0.3 rotation:  -357.2 motion:     5.4 sec
2020-01-26 11:00|[wheellog.py.logMotionStop]travel:   533.1 rotation:     0.3 motion:     8.2 sec
2020-01-26 11:00|[wheellog.py.logMotionStop]travel:  -533.1 rotation:    -0.3 motion:     7.1 sec
2020-01-26 11:03|[wheellog.py.logMotionStop]travel:   837.8 rotation:   369.8 motion:    18.3 sec
2020-01-26 11:06|[wheellog.py.logMotionStop]travel:  1523.3 rotation:     0.3 motion:    20.3 sec
2020-01-26 11:54|[wheellog.py.logMotionStop]travel:     0.8 rotation:   176.5 motion:     2.3 sec
2020-01-26 11:54|[wheellog.py.logMotionStop]travel:     0.3 rotation:   177.6 motion:     2.3 sec
2020-01-26 11:54|[wheellog.py.logMotionStop]travel:   -73.7 rotation:    -1.1 motion:     1.1 sec
2020-01-26 11:54|[wheellog.py.logMotionStop]travel:    -6.4 rotation:    -0.3 motion:     0.4 sec
2020-01-26 11:54|[wheellog.py.logMotionStop]travel:    -5.0 rotation:     0.0 motion:     0.3 sec
1 Like

Maybe it’s time for Carl to “Boldly Go where no robot has gone before!”?

Keep an eye on his HgA1C, he’s looking a little pudgy there. :thinking: :wink:

For sure - I keep getting distracted from finishing his “docking independence.”

I have the code working that he can find the dock, and the “final inches” code to get on and off the dock, but he still needs the fancy “exact pre-docking position maneuver” OpenCV method I have been planning.

ately, I have been thinking a hardware solution (castor wheel groove in a dock base plate) might be easier and perhaps even more reliable.

IMHO, especially when it’s a “fixed” solution not requiring extensive software revisions, I prefer a “fixed” way of solving it, requiring little outside support.

Perhaps a FPGA-type device if software IS involved, or a purely “hardware” based solution like a guiding ramp.

Just make sure that the ramp can provide radial alignment too, but you already knew that!

I wish I had a “3D printer enthusiast” near by. I think I could design something that would be pretty.

Although my degree was in Mechanical Engineering, which allows me to understand the requirements, they didn’t teach me any “building skills” so the comment “We don’t issue screwdrivers to software engineers” best describes my mechanical creations.

1 Like

I have seen that all too often in my career.

“Book learnin’” is essential, and the skills to do the theoretical modeling are important, but the ability to know and understand which end of the soldering iron gets hot is no less essential.

If I had anything to do with any kind of Engineering degree, there would be, at least, a full year internship required for the degree. All too many people only know “what the book says” and once the book doesn’t have an answer, they’re totally lost.

BTW, the internship required would be “in the field” working with the people who actually do the work so they learn the real-world truths about their chosen profession.

From my lips to God’s ears! Right?

No disrespect intended, but have you considered a subscription to Nuts And Volts or any of the popular robotics magazines?

The magazine rack in any reasonably large Barn’s and Noble should have a good assortment. Micro Center also has some nice ones.

Try the local library and look for books on any kind of construction project. (Wood shop skills work well with plastic.)

There may even be books you can borrow that specifically address the skills you need.

Maybe Amazon et. al. has inexpensive e-books on the subject?

Check out a local hamfest or maker-faire, or find a robotics club. If not exist, maybe start one?

The fun is not in the destination, but in the trip!

Begin Rant

I have “subscription intolerance”. I now refuse to buy anything that needs a subscription - don’t need a subscription security system, subscription cruise control, subscription movies, subscription music, subscription fitness, subscription bicycle, subscription photoshop/lightroom, subscription thermostat, appliance repair, subscription lawyer, subscription two-day shipping, subscription airline credit card, or even subscription bug service.

I am inundated with suggestions (and opportunities) to learn and improve, and I am just tired. I broke my rule and subscribed to a digital birding magazine last year, and only ended up reading one article from one issue.

End Rant

I do kits well - Heathkit HT101 Ham transceiver, Heathkit Hero Robot, several homebuilt PCs, RugWarriorPro Robot Kit, GoPiGo3 Robot kit, and Ikea furniture. (I read instruction manuals, and excel at following directions, rules, and laws.) My scratch building efforts alway come out close but not pretty:

1 Like

Bottom line is: Does it get the job done? If so than you’ve got it knocked better than the vast majority of the wannabe punters out there.

Pretty nice job, though I tend to use epoxy instead of tape.

What’s that charger from anyway? Looks like a vacuum cleaner dock to me. How do you have Carl find it? What if he’s not in the same room?

Indeed it is - I bought an old iRobot charger on ebay, ripped out the guts, wired direct to the contacts, and added a 5v power supply across the 12v to run two green LEDs in the directional beacon. The smart charger thinks it is connected to a battery, but it really is connected to a 5v supply, the GoPiGo3 board’s 3v3 and 5v supplies, and the battery. And the Raspberry Pi is bouncing the load around with every WiFi packet and every sensor read, and every web page update, and every “Carl thought”.

You’re on to Carl, aren’t you. While I have the code working to find the charger when in the same room, that code is in Carl’s safe, locked up so he can’t touch it. Since I haven’t written the precision approach code, I don’t let Carl wander anywhere on his own. If I drive him or do some testing while he is off the charger, I return him to the place I found him - facing away from the dock at roughly a 90 degree angle to the wall, roughly aligned with the center of the dock, with his rear castor about an inch in front of the dock.

I “allow” him to turn 180 to face the dock, check the distance from the wall to know how much he will need to back up, then he turns 180 to face away again and backs up the most of the needed distance, then backs up the rest of the distance, then backs up a timed “just to be sure I’m all the way back”.

When he is charged, I “allow” him to get off the dock 93mm, and then contemplate his navel, checking his distance sensor, cpu temperature, processor speed, and battery every five or six seconds.

I really want to get to the point where he can wander off and return to the precision approach position on his own, but I keep getting distracted. (probably some fear of failure procrastination going on also.)

1 Like