{"id":1284,"date":"2019-09-20T10:41:40","date_gmt":"2019-09-20T15:41:40","guid":{"rendered":"https:\/\/www.protowrxs.com\/?page_id=1284"},"modified":"2019-09-20T10:44:26","modified_gmt":"2019-09-20T15:44:26","slug":"trimmer-bot","status":"publish","type":"page","link":"https:\/\/www.protowrxs.com\/index.php\/robotics\/trimmer-bot\/","title":{"rendered":"Trimmer Bot"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.protowrxs.com\/index.php\/robotics\/\">Back to Robotics<\/a><\/p>\n\n\n\n<p>\nSeptember 2013\n<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"500\" height=\"373\" src=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot5.jpg\" alt=\"\" class=\"wp-image-1285\" srcset=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot5.jpg 500w, https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot5-300x224.jpg 300w\" sizes=\"(max-width: 500px) 85vw, 500px\" \/><\/figure>\n\n\n\n<p>I don\u2019t usually post truly \u201cIn Progress\u201d projects, usually \nwaiting until I\u2019m fairly along and functioning before spilling it all out to the \nworld but thought I\u2019d throw this one out there as it will likely be a long \ncontinuously improving (hopefully improving at least) project. Additionally with \nthe lawn mowing \/ trimming season winding down here, it may be a few months \nbefore I can really test it out in the field so I thought I\u2019d share now.\n\n<\/p>\n\n\n\n<h2>But Why?<\/h2>\n\n\n\n<p>The TrimmerBot came about as a middle project between my radio  control mower ProtoMow One that was pure  RC and a planned radio control implementation of my big 54\u201d zero turn mower.  Some may know already but this is generally driven by some issues I have with my  back that makes it quite uncomfortable to push\/pull or ride bumpy things such as  mowers, and unfortunately things like motorcycles and mountain bikes as well\u2026 <\/p>\n\n\n\n<p>Yeah, that\u2019s the ticket, sure it is, It\u2019s not like I\u2019m LAZY or &nbsp;anything. \nUmm\u2026 yeah, sure. :-\/\n\n<\/p>\n\n\n\n<p>Anyhow, in order to drive the big 54\u201d zero turn, I was \ngoing to have to develop code for an \u201cArduino in the Middle\u201d solution to \ntranslate the radio control signals from the transmitter and drive the needed \nlinear actuators to move the zero turn arms. It wasn\u2019t going to work like the \nsmaller RC mower with the servos driving controls directly without big, and \nexpensive, servos. The big mower also needs more safety features like sonar \nsensors or similar to shut down if things get too close or out of control. \nHaving an Arduino in the middle reading inputs, driving outputs, and reading \nsensors along with a failsafe separate RC servo kill switch seems to be the way \nto handle it to me.\n\n<\/p>\n\n\n\n<figure class=\"wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"TrimmerBot V1\" width=\"840\" height=\"473\" src=\"https:\/\/www.youtube.com\/embed\/4Exa8THlwKw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2>The Plan<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"500\" height=\"373\" src=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot2.jpg\" alt=\"\" class=\"wp-image-1286\" srcset=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot2.jpg 500w, https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot2-300x224.jpg 300w\" sizes=\"(max-width: 500px) 85vw, 500px\" \/><\/figure>\n\n\n\n<p>With that in mind, I started playing with \nsample code to read the RC signals and drive motors based on that input. \nThinking that was going to be quite complicated and require lots of time, I was \npleasantly surprised at how easy it is to read RC channels and act on them with \nan Arduino. After having that basic code working in a short period of time, I \ncould control motors based on radio channel values. In the mean time ossipee \ngave me a link to a low cost four channel \ndual stick radio system that had centered sticks, just what I needed for the big \nmower build, so I had good four channel radio now to work from. The plan was \nreally to jump straight to the big mower and make it work but then I realized I \nneeded to get some shorter throw linear motors for that project so I ordered new \nones and waited.\n\n<\/p>\n\n\n\n<p>During this \u201cwait time\u201d kiwiclive  posted his Lawna mower bot which I thought was a cool overall  project. Looking at what he was doing made me start to think about something  similar and when I start thinking things can go downhill real fast. REAL fast&#8230;<\/p>\n\n\n\n<p>I remembered I had an old electric cooling fan I was going to use on my \u201869  Mustang project which had a nice 12v motor on it as well as an aluminum mount I  had built. The motor and mount wasn\u2019t going to work out on the car after all  because it was too deep so I was looking for a different cooling solution  anyhow. I pulled the fan blade off and was surprised to find a nice left  threaded shaft just like some weed eaters have. I dropped by the local hardware  store, picked up a $15 trimmer head that had the swing back plastic blades on it  and it mounted up perfectly to the motor with one of the mounting options.  <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"500\" height=\"373\" src=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot4.jpg\" alt=\"\" class=\"wp-image-1287\" srcset=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot4.jpg 500w, https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot4-300x224.jpg 300w\" sizes=\"(max-width: 500px) 85vw, 500px\" \/><\/figure>\n\n\n\n<h2>The Platform<\/h2>\n\n\n\n<p>Needing a platform, and not wanting to build yet another, I \ndecided to disassemble my LTBot platform  \nand put it back into service as the trimmer. The LTBot was fun, allowing remote \naccess telepresence with video that I could drive around the house but honestly \nI just never used that feature. The platform has been around for years and the \nmotors are nice and strong sealed planetary gear heads which have worked out \nquite well. In fact, they have encoders built into them so some dead reckoning \nin the future may be possible. Or worse case allow it to drive as straight as \npossible to trim down a sidewalk, driveway, etc.\n\n<\/p>\n\n\n\n<p>I mounted the trimmer head \nusing part of the original aluminum mounting bracket I had made for the car, \nputting the cutter head in the left front position so it could be a trimmer if \ndesired but still could be used for \u201cmowing\u201d small areas as well. <\/p>\n\n\n\n<p>For power \nI used an existing 7200mah 12v lead acid battery I had around, mounting it on \nthe back caster to offset the front heavy electric motor and trimmer head. It \nbalanced out quite nicely allowing nothing up front to get in the way of the \nblades or to run into things or get caught up in things.\n\n<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"500\" height=\"373\" src=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot3.jpg\" alt=\"\" class=\"wp-image-1288\" srcset=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot3.jpg 500w, https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbot3-300x224.jpg 300w\" sizes=\"(max-width: 500px) 85vw, 500px\" \/><\/figure>\n\n\n\n<h2>Remote Control Works<\/h2>\n\n\n\n<p>Initially I just used the remote control feature which allowed me to not only  sit in the shade to mow the smaller area of our yard, the \u201cpatio yard\u201d is what I  call it, with the RC mower but also edge it with the RC Trimmer. Pretty handy  overall but knowing the platform had a brain with the ProMini clone in there and  lots of programming space still available I wanted more capability. Using the RC  function helped me to get a better idea of how the platform handled, moved, etc  and how long it would run on a single charge on the 12v lead acid battery. Under  RC it will easily run around 30 minutes or more on a single charge. <\/p>\n\n\n\n<h2>So Now What?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"765\" src=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/IMG_4073-1024x765.jpg\" alt=\"\" class=\"wp-image-1289\" srcset=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/IMG_4073-1024x765.jpg 1024w, https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/IMG_4073-300x224.jpg 300w, https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/IMG_4073-768x574.jpg 768w, https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/IMG_4073-1200x896.jpg 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><\/figure>\n\n\n\n<p>Thinking about it, for the most part, trimming a lawn or edging is just \n\u201cwall following\u201d right? You move along the fence, bricks, house, edging, etc and \ncut the area you couldn\u2019t get to the with the mower. Sure, there are some areas \nwhere there are no boundaries to move against such as exposed flowers, \nsidewalks, etc but a lot of edging is against a wall or something similar. So \nwhy not use the standard wall follower function to edge a lawn? That is the idea \nanyhow, implementation isn\u2019t as easy as it always seems. I had thought about \nusing IR or ultrasonic sensors but with the variable materials and fences such \nas chain link being likely invisible to such technologies I figured that \u201ctouch\u201d \nwas the best solution. Long term the bot needs to have a much more comprehensive \nbumper \/ touch system but for proof of concept I used an old monster lever \nswitch my Dad had salvaged off of something years ago. \n<\/p>\n\n\n\n<p><strong><em>I have to stop and \njust saw how cool it is finding some of the things that my Dad used to stick \nback and salvage off things, just like I do today. He never built robots but he \ndid build many electronic items, helped me build computers, including my first, \na ZX81 that I still have, and was an \u201cEngineer\u201d for Seagate for many years \ndesigning hard drive electronics even though he was only a high school grad. He \nwas a great, smart and kind man and I owe many gratitudes to him for the time he \nspent with me helping me learn. Miss you Dad!<\/em><\/strong>\n\n<\/p>\n\n\n\n<p>For testing, I used the big \nlever switch, added a sweeper arm to rub against the fence and updated the code \nto basically just bang bang on\/off the wall to follow it. I have found that I \nneeded to have different approaches to this in order to stay on the wall and get \naround outside corners. I built a small test bot for wall following testing and \nfound that it\u2019s best to be aggressive getting back into the wall but gentle \ndriving away in order to hug enough and get around corners but not oscillate \non\/off the wall too much. It seems to work but could use more tuning as you can \nsee in the original video.\n\n<\/p>\n\n\n\n<h2>Getting It Done<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"629\" height=\"358\" src=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbotworking.jpg\" alt=\"\" class=\"wp-image-1290\" srcset=\"https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbotworking.jpg 629w, https:\/\/www.protowrxs.com\/wp-content\/uploads\/2019\/09\/trimmerbotworking-300x171.jpg 300w\" sizes=\"(max-width: 629px) 85vw, 629px\" \/><\/figure>\n\n\n\n<p>As you can see in most of the \npictures here, the bot gets loads of grass all over it. I had thought about \ncleaning it all up before taking pictures but figured TrimmerBot is a \u201cworking \nbot\u201d and the record should show that he does indeed get work done and gets dirty \ndoing it. So there!\n\n<\/p>\n\n\n\n<p>The basic configuration is my favorite CPU, a ProMini  ATMega328P clone CPU on a simple home built board that drives an ebay special 298  H-bridge and a SainSmart two channel relay board. I do have the small 2 amp  relay driving a larger 10 amp relay as the trimmer motor does pull around 6 amps  on startup and 2 amps or so when running. The RC receiver, small power  regulator, CPU, and relay boards are all mounted in a small radio shack box that  will be permanently mounted to the chassis upside down to keep water and debris  out for the most part. The top cover of the box has the power switch in it and  snaps over the base. <\/p>\n\n\n\n<p>The code reads the left\/right stick forward\/backward \nmovements and remaps them to -255 to 255 values to drive the PWM for the \nh-bridge. If you hold the right stick far right for two seconds it toggles the \ntrimmer motor on\/off. If you hold the left stick full left for two seconds it \nturns the wall follow mode on\/off. Holding the right stick far left toggles the \nsecond relay which was hooked up to the power the motors but they have since \nbeen hooked up directly so that relay output could be used for something else. \nThe left stick full right could be used to toggle on\/off another mode such as \nfull auto, straight line drive if I hook up the encoders, or something else in \nthe future.\n\n<\/p>\n\n\n\n<h2>Future Options?<\/h2>\n\n\n\n<p>The platform does need some physical \nstiffening so another layer or deck will be added to resolve that issue. The \nsecond deck will also help to keep the front trimmer motor from drooping from \nthe weight up front as well. I\u2019m not sure if I\u2019m going to use aluminum or clear \nacrylic or lexan yet for the second layer, will depend on what I have on hand or \ncan find I guess. It also needs a handle to pick it up as it is little heavy \nwith the motor and battery and rather awkward to move around otherwise.<\/p>\n\n\n\n<p>For \nnow, though, the bot actually does what I want &#8211; it lets me trim under remote \ncontrol and follow a fence or boundary trimming under autonomous mode. BUT it \ndoes need better bumpers so that will be the next step in the development. I \nalso need to add a front bumper so it can handle inside corners along with the \ncode for that. I\u2019ll develop that code on my little test bot (yes, little bots \nhave their uses!) so I can run it inside on the countertop and then update the \ncode on the big bot when it works.\n\n<\/p>\n\n\n\n<p>I really feel like the bot needs a big \nround front \/ side bumper to insure it can sense anything it is bumping into and \ntry to avoid it but have no clue how to implement it at this time. First \nthoughts was cutting up a plastic tub I had bought for the purpose but getting \nthe sensing \/ switching features right seems like quite a challenge. You can\u2019t \njust have one arm or ring to sense as outside there are all types of different \nthings at different heights that have to be considered and handled.<\/p>\n\n\n\n<p>Of course \nlong term options could include autonomous mowing, using one of the real time \nclock modules I have for scheduled \u201cmaintenance\u201d mowing like my Roombas do in \nthe house, some means to drive up to a charger and battery voltage monitoring \nalong with the ability to find and drive up to it\u2019s own charging station. Big \nideas that can time big time to accomplish, but could be done if I stay \nmotivated\u2026. so, yeah, it will be just an RC \/ Semi-autonomous little helper for \nsome time to come.\n<\/p>\n\n\n\n<h2>What\u2019s in a Name?<\/h2>\n\n\n\n<p> As a closing I know the name is very generic, another word with \u201cbot\u201d added to it but I have  not other deep ideas on what to call it and likely the name will stick. He  doesn\u2019t quite look like THIS TrimmerBot  (http:\/\/e3d99.deviantart.com\/art\/TrimmerBot-1s-397667190) but I\u2019m sure he wishes  he did. \ud83d\ude42<\/p>\n\n\n\n<p><a href=\"https:\/\/www.protowrxs.com\/index.php\/robotics\/\">Back to Robotics<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Back to Robotics September 2013 I don\u2019t usually post truly \u201cIn Progress\u201d projects, usually waiting until I\u2019m fairly along and functioning before spilling it all out to the world but thought I\u2019d throw this one out there as it will likely be a long continuously improving (hopefully improving at least) project. Additionally with the lawn &hellip; <a href=\"https:\/\/www.protowrxs.com\/index.php\/robotics\/trimmer-bot\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Trimmer Bot&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":19,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"spay_email":""},"categories":[],"tags":[],"_links":{"self":[{"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/pages\/1284"}],"collection":[{"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/comments?post=1284"}],"version-history":[{"count":2,"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/pages\/1284\/revisions"}],"predecessor-version":[{"id":1295,"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/pages\/1284\/revisions\/1295"}],"up":[{"embeddable":true,"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/pages\/19"}],"wp:attachment":[{"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/media?parent=1284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/categories?post=1284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.protowrxs.com\/index.php\/wp-json\/wp\/v2\/tags?post=1284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}