My First but Not Humble Robot Project

mrmamrma Posts: 28
edited 2014-05-29 - 14:19:51 in Robotics
Finally, I've made up my mind and ordered a few parts. My robot will look like Stingray but not exatly the same. I am going to use Stingray motors and main wheels. I will make the chassis from black HDPE which is 4 mm thick. The HDPE is a God-send product for hobbyiests. Easy to work with and durable. And, the brain is going to be based on Arduino. In addition to regular ultrasonic sensors, I also plan to use a new cam module which is still alive at this time on Kickstarter. I will put it on a pan tilt servo unit to enable it watch every direction. In a few sentence they describe it as "Pixy is a fast vision sensor you can quickly “teach” to find objects, and it connects directly to Arduino and other controllers." More info can be found at Kickstarter -> Pixi (CMUcam5). My initial goals are to have it play in the house, e.g. when I throw a ball I expect him to follow, find and fetch it.

I will post my work as I make progress, because I learned a lot from the other contributers.


  • mrmamrma Posts: 28
    edited 2013-08-31 - 05:38:02
    Current status:


    Please see consequent posts for more pictures and detail in a chronological order.
    1024 x 768 - 56K
    1024 x 768 - 45K
    1024 x 768 - 56K
    1024 x 768 - 47K
    1024 x 768 - 44K
  • prof_brainoprof_braino Posts: 4,312
    edited 2013-08-31 - 07:22:17
    very cool. Watching with interest.
  • Duane DegnDuane Degn Posts: 10,002
    edited 2013-08-31 - 11:21:26
    It looks like the Pixy will have a faster refresh rate than the CMUcam4. While I also ordered a Pixy, the CMUcam4 can do a lot of what the CMUcam5 (aka Pixy) does.

    I'm also watching with interest to see what you do.
  • mrmamrma Posts: 28
    edited 2013-09-19 - 05:34:17
    Here is the pan/tilt mount running on Arduino, I'll put the CMUcam5 on this one. I've been considering to use the HiTec micro servos (HS-55) with this mount kit, but the servo arm horns do not match with the kit, so I got two ROB-09065 from Sparkfun, the circular mount fits just well to this mount kit. To help the beginners to the Arduino I also listed the code below,


    [PHP]// Servo Sweep
    // 19 Sep 2013 by mrma
    // Servo testing

    #include <Servo.h>

    Servo myservo1; // create servo object to control a servo
    Servo myservo2; // create servo object to control a servo

    int pos = 0; // variable to store the servo position

    void setup()
    myservo1.attach(8); // attaches the servo on pin 8 to the servo object
    myservo2.attach(9); // attaches the servo on pin 9 to the servo object

    void loop()
    for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
    { // in steps of 1 degree
    myservo1.write(pos); // tell servo to go to position in variable 'pos'
    myservo2.write(pos); // tell servo to go to position in variable 'pos'
    delay(10); // waits 10ms for the servo to reach the position
    for(pos = 180; pos >= 1; pos -= 1) // goes from 180 degrees to 0 degrees
    myservo1.write(pos); // tell servo to go to position in variable 'pos'
    myservo2.write(pos); // tell servo to go to position in variable 'pos'
    delay(5); // waits 5ms for the servo to reach the position
    1024 x 768 - 101K
  • mrmamrma Posts: 28
    edited 2013-09-22 - 06:57:04
    We've began the chassis.

    The top and bottom plates are made of HDPE. Side panels including the motor mounts will be from aluminum u profile. Here are some pictures;

    I feel so jealous of the ones who have access to a laser cutter. This could have been much easier with a laser cutter, although I'm not sure about the outcome with HDPE on a laser cutter.

    Anyway, with the help of my wife we first raw cut and do the fine trimming with dremel. I must admit she has done much of the work ;)
    1024 x 768 - 87K
    1024 x 768 - 94K
    1024 x 768 - 129K
    1024 x 768 - 100K
    1024 x 768 - 101K
  • mrmamrma Posts: 28
    edited 2013-09-22 - 07:04:21
    And the side panels, as I said these are made out of aluminum,

    I also prepared a template for the bolt holes to make sure that each side panel has the exact same drill pattern,

    I had some concerns that the aluminum profile was too thin (1 mm) but having had no alternative after some experiment it turned out to be fairly sturdy, especially after the bolts are done.
    1024 x 768 - 110K
    1024 x 768 - 71K
    1024 x 768 - 81K
    1024 x 768 - 77K
  • ercoerco Posts: 19,546
    edited 2013-09-22 - 20:03:30
    mrma: First, welcome aboard the forums.

    Great idea using that aluminum extrusion as your side panel! Ready to go and very consistent spacing. Nice project overall, kudos for classic fabrication with basic hand tools. As world goes mad with rapid prototyping, there's less incentive for people to "get their hands dirty" with saws, drills & files. But IMO, the skills you're using and sharing are absolutely relevant & necessary for common sense design, even (especially) for people who do use rapid prototyping. Please keep us updated!
    "When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

    - Pablo Picasso
  • mrmamrma Posts: 28
    edited 2013-09-23 - 12:09:01
    Thank you for your kind words,

    Now, It's time to focus on Stingray's tale. Since I use Parallax caster wheel I need to make a mount for the wheel which attaches to the chassis. Pictures tell much more than words,

    I cut this piece from an aluminum sheet that is 2 mm thick,

    At the final stage, after drilling and happy with the result, I will give the brushed aluminum effect manually, this is the how to video on youtube.
    1024 x 768 - 57K
    1024 x 768 - 95K
    1024 x 768 - 90K
    1024 x 768 - 54K
  • mrmamrma Posts: 28
    edited 2013-09-28 - 12:07:13
    Side panels are almost ready, I think I'm going to use the stock motor mounts that comes with Parallax motors. I want my robot a little high on the ground then maybe it can go outdoor and hairy carpets won't be a problem. For that, I designed the height as 50 mm, plenty enough to put the battery, motor controllers and obviously the motors in the chassis.
    1024 x 768 - 69K
    1024 x 768 - 85K
  • mrmamrma Posts: 28
    edited 2013-10-03 - 13:46:44
    And the marriage. Car manufacturers call this moment as "marriage" when the upper body meets with lower part. This is the first time the full chassis put together.

    1024 x 768 - 84K
    1024 x 768 - 61K
    1024 x 768 - 64K
    1024 x 768 - 66K
    1024 x 768 - 58K
  • Duane DegnDuane Degn Posts: 10,002
    edited 2013-10-03 - 14:39:18
    Thanks for the updates. It sure is looking nice. I'm looking forward to video of this thing moving.
  • mrmamrma Posts: 28
    edited 2013-10-06 - 07:18:30
    The tail assembly would become sturdier if there is a support from the buttom upward. And here is he solution. It's the same kind of aluminum, 2 mm thick. Cut and filed by manual tools.

    I have nothing but an old vise to use for bending. But the trick is; first make a groove around (0.5 mm) on the plate where you want to bend with a dremel cutting disc, and then bend it slowly. Before bending, I made some brushing with 240 grit sand paper. I'm very happy with the result :cool:, it's just great, isn't it?
    1024 x 767 - 100K
    1024 x 768 - 90K
    1024 x 768 - 77K
    1024 x 768 - 51K
  • mrmamrma Posts: 28
    edited 2013-10-20 - 09:08:55
    After a few busy weeks, found some time to work on my robot again. I brushed the aluminum tail that I cut from 2 mm sheet. It looked straightforward in the video I mentioned previously, but believe me it is a long and laborious process. It took me almost half an hour just to brush one side with 180 grade sand paper. The pictures were taken ten minutes apart.
    1024 x 768 - 55K
    1024 x 768 - 78K
    1024 x 768 - 79K
  • ercoerco Posts: 19,546
    edited 2013-10-22 - 02:49:29
    mrma wrote: »
    it's just great, isn't it?

    Fabulous! Nice work all around!
    "When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

    - Pablo Picasso
  • mrmamrma Posts: 28
    edited 2013-10-23 - 13:08:35
    I have two stock motors from Parallax, they are 7.2 volt and 310 rpm. My concern is that they are a little bit faster than I want them to be. I see that many people replace them, anyway. I'd prefer torque over speed, and I think a higher gear ratio will make it more stable. BTW, I'd like to thank Erco for finding the lower rpm replacement motors on Ebay. I guess I'll use the similar ones which are 70 rpms but 12 volt. I don't know yet if my 6 cells 7.2 volt NIMh battery pack would provide enough juice for them.

    1024 x 768 - 82K
    1024 x 768 - 66K
    1024 x 768 - 74K
    1024 x 768 - 89K
  • mrmamrma Posts: 28
    edited 2013-10-26 - 14:02:42
    So far I've spent much of the time on mechanics rather than the electronics. But, I'm not in a hurry and try to get the joy of doing things slow but steady. The chassis is almost done, I'll add some handles and maybe some protective rubber caps, just in case it decides to run away and hit somewhere :thumb:

    1024 x 768 - 56K
    1024 x 768 - 58K
    1024 x 768 - 56K
    1024 x 768 - 52K
    1024 x 768 - 45K
    1024 x 768 - 44K
    1024 x 768 - 47K
    1024 x 768 - 54K
    1024 x 768 - 51K
    1024 x 768 - 54K
  • Duane DegnDuane Degn Posts: 10,002
    edited 2013-10-26 - 14:46:19
    That's looking very very nice.

    I meant comment on your earlier motor post. I'm not so sure fast motors are a bad thing. As long as the motor have enough torque to move the robot at slow speeds, I don't think having a fast top speed is a bad thing. You can always keep the speed low with your program.

    I'm a big fan of encoders myself and it looks like those motors lend themselves to adding encoders. With encoders, you can set up a PID routine (usually just the P is needed) and have the PWM signal automatically adjust to get the speed output you want.

    Even bad low end torque can be overcome with encoders. My Mecanum wheeled rover 5 robot is really a bit under powered but by adding feedback from the encoders I was able to get the robot to travel a slow speeds consistently.

    There's a video linked to at Let's Make Robots with lots of really good information about robotics. One of the things suggested is to make a robot so it's capable of turning around in place. It also suggests the powered wheels be on the outside most edge of the robot.

    Thanks for keeping us updated on your progress. It's fun to follow along.
  • mrmamrma Posts: 28
    edited 2014-02-22 - 02:55:41
    It's been a time since my last post. Business and other stuff as expected.
    Thank you guys for your comments and feedback.

    In the meantime I purchased some parts for my robot. I'm not sure yet how I can make use of them in the end but we'll see.

    One of the items that I bought is Sparkfun Robotic Claw MK II with its Pan/Tilt Bracket.
    The claw is made from metal and has a spring clutch, I hope it will save the servo from ruining.
    The more complex looking claw is surprisingly cheaper than the bracket, but the bracket comes with its servo. Even though it says the bracket is made especially for the claw there is no easy way to put them together. The assembly instructions are really poor and the proposed method doesn't fit my liking so I decide to make a U shape piece as an adapter between to screw them together.

    Here you can see the pictures, I just installed the servos;

    1024 x 768 - 63K
    1024 x 768 - 72K
    1024 x 768 - 79K
  • trookstrooks Posts: 212
    edited 2014-02-22 - 08:19:53

    In my not so humble opinion you are one ingenious fellow.

    I also admire and envy your craft with hand tools.

    From what I have seen so far you could have a career In packing design.

    My next project once I(hopefully) start bringing in money instead of putting it out on tools and equipment to build my current project will be bot building.

    You have already solved two of the problems I expected to have with most bot kits in getting higher ground clearance and adding the enclosures that could also facilitate adding more sensors and associated discrete components within the enclosure.

    I will continue to follow your project and will be delighted for any comments or suggestions you would care to share once I start posting my project here.

    -If you think you will fail, you are likely right. If are certain you are going to win you just made your chances of doing so much more certain.- author unknown to me
  • mrmamrma Posts: 28
    edited 2014-03-02 - 04:27:01
    Thank you very much for your nice words, they are really motivating. :smile:

    I've made the piece that I mentioned in my previous post. It's a simple U shape aluminum to connect the claw to the pan/tilt bracket.


    Then, I mounted the claw on a test platform to see how it works. In the video you'll see that a servo tester in automatic mode tilting and opening the claw.

    Will this be able to lift up a softdrink can ? Not sure yet, we'll see.


    and, here is the video,
    1024 x 768 - 70K
    1024 x 768 - 67K
    1024 x 768 - 67K
    1024 x 768 - 86K
    1024 x 768 - 80K
  • TtailspinTtailspin Posts: 1,326
    edited 2014-03-18 - 20:36:21
    I think just crushing a can would be cool, let alone picking one up. :)

    Great work mrma. Thanks for sharing :thumb::thumb:

    -mumbles something about castors and stumbles off into the dark...
  • mrmamrma Posts: 28
    edited 2014-04-21 - 13:52:22
    After months of waiting, I received my Pixi. I mentioned before, it was one of the Kickstarter projects that I backed. The guys from Charmed Labs and Carnegie Mellon are behind it. It's a vision sensor that can quickly be taught new objects, and it can be connected directly to Arduino. Which suits me nicely because for this project I'm using another Arduino compatible board DigiX. It's also from Kickstarter but another story.

    Here are the first pictures of the product, mounting brackets fastened.

    It processes images at a frame rate of 50 Hz and support multiple interfaces: UART serial, SPI, I2C, digital out, or analog out. I must say that from my point of view, the result of the project was the best one so far coming from Kickstarter. There was also an optional purposefully built pan/tilt kit but I thought that I could make it by myself by using servos out of the house-stock.
    1024 x 768 - 95K
    1024 x 768 - 107K
    1024 x 768 - 119K
  • mrmamrma Posts: 28
    edited 2014-04-22 - 10:44:54
    ​I had hopes that it would not be a challenging work, but it was not as easy as I thought. First things first, I didn't invent this pan/tilt mechanism, the one comes with Pixy is a similar solution. So if there is credit it goes to the project team. I got the inspiration (!) from them.

    The old friend HDPE comes to stage again. Why do I use this stuff for everything, because;
    1. I have it,
    2. It's durable, a little flexible but not brittle,
    3. It's machineable, drillable, sandable and can be filed like soft metals, and can be cut with any small teeth saw.
    4. and it looks good.
    ​​Below are the stages for creating the pan/tilt mechanism. Pan servo is fastened with screws, but tilt servo is kept only with the bracket (painted in black, later) and there is a small trick to keep it in place. I made a small groove on the plate and filed one side of the mount of servo to fit in that groove, so that it doesn't move back and forth.


    And, the final product put together,
    1024 x 768 - 87K
    1024 x 768 - 102K
    1024 x 768 - 84K
    1024 x 768 - 69K
    1024 x 768 - 79K
    1024 x 768 - 83K
    1024 x 768 - 106K
    1024 x 768 - 108K
    1024 x 768 - 103K
    1024 x 768 - 67K
  • mrmamrma Posts: 28
    edited 2014-05-05 - 10:08:50
    The mount for ultrasonic distance sensors. It fits so nicely and tight that no screw needed to keep it in place. Now, at least two more are needed.

    1024 x 768 - 95K
    1024 x 768 - 86K
    1024 x 768 - 62K
    1024 x 768 - 74K
    1024 x 768 - 53K
    1024 x 768 - 76K
  • mrmamrma Posts: 28
    edited 2014-05-19 - 10:32:50
    I've been trying to figure out how to arrange and place the modules on the robot. My main principle on this issue is modularity. Everything should be easy to replace, change and upgrade. Especially, after spending so many hours on the main plates, I strongly refrain from drilling or damaging the main plates needlessly. So I ended up putting the boards on a seperate small plate.

    Later, I started experimenting with ultrasonic sensors. Much to my surprise, these sensors are really sensitive and precise, almost in the rate of half a centimeter. And there is more, I thought it would be a great idea to have a permanent display on the bot for debugging, displaying the state of the program, etc. Thus, I assembled a 4x20 character display. My code is still in a spagetti state therefore I didn't post it yet. But I will post it when it is ready and beautified.

    Here are some pictures of the top plate and mentioned elements on top of it;
    1024 x 768 - 114K
    1024 x 768 - 72K
    1024 x 768 - 113K
    1024 x 768 - 103K
  • mrmamrma Posts: 28
    edited 2014-05-21 - 07:22:52
    Now that I've almost come near to finish my hardware part of the robot, I should be focusing on the more enjoyable episode which is programming. I have tried to come up with the concept of a state to make my robot have an idea what it is doing at any given time. Until I add image sensing capabilities, my robot has very simple vision tools, so its obstacle avoidance method will also be simple. Actually, it will only be equipped with ultrasonic distance sensors at the beginning. When it detecs an object ahead it should rotate in place and check if the 'new front' is empty to move forward.

    When I power it on, it will begin in [initialize & wait] state until it receives a move command via bluetooth module which puts it in [moving forward] state.

    Below, you will find my first and simple state diagram. I will build my software on top of it and the state diagram will surely change and improve over time.

    1024 x 768 - 39K
  • Duane DegnDuane Degn Posts: 10,002
    edited 2014-05-21 - 12:53:15
    It's been fun to follow along with your progress reports. Thanks for taking time to document your project.

    I think ultrasound sensors work great most of the time but they do have their limitations. Hard flat surfaces can be invisible to US as shallow angles. Soft surfaces (like out couch) absorb US rather than reflect it.

    Some simple IR sensors like used in the BOE-Bot could really help make up for the weaknesses of US. When I added a US sensor to my Scribbler 2, I was very pleased to see how well the two different types of sensors complimented each other.

    The S2 uses a single IR detector and two IR LEDs. The S2 can figure out which side the obstacle is on by using only one IR LED at a time.

    Thanks again for letting us follow along in this project.
  • mrmamrma Posts: 28
    edited 2014-05-23 - 10:25:15
    Thank you Duane for your kind words and advices.

    Actually, I've already purchased an infrared distance sensor with LM393. They say that it can work between 2 to 80 cm, but haven't tested it yet. I didn't give much attention when I bought it maybe because it was fairly cheap but if I'm not wrong it just warns you with a low digital signal when it senses a reflection from a predetermined distance, that distance can be adjusted with a potentiometer, though.

    I think that the Sharp IR sensor which is also sold by Parallax is a better solution in terms of IR technology. Instead of telling only yes or no, it speaks analog and gives a voltage corresponding to the distance of the object. I haven't had any experience with that yet, and I don't know how narrow the IR beam is. For example; will it be able to detect a thin wooden chair leg correctly? We'll see.
  • Duane DegnDuane Degn Posts: 10,002
    edited 2014-05-23 - 12:01:39
    mrma wrote: »
    if I'm not wrong it just warns you with a low digital signal when it senses a reflection from a predetermined distance,

    I think it's more accurate to say "senses a reflection of a predetermined magnitude". An object which reflects IR well will return a stronger reading than an object that doesn't reflect IR well.

    But even with this limitation (similar to the S2's IR sensors), it can be very useful in cases where ultrasound doesn't perform well.

    There where several times when my S2 would be cruising full speed towards a wooden chest but because of the angle of the chest, the US was being bounced away from the sensor and not back to the sensor. It wasn't until the IR sensor picked up the chest that the robot would turn away from an eminent collision. So even though the IR sensors couldn't accurately measure the distance to the obstacle, just knowing there was an obstacle was a big help.

    I have one of the Sharp IR sensors and I've only used it a little. From my very limited experience with it, I think it's a good sensor. My guess is it would be able to pick up a chair leg. I've found the IR sensors on the S2 are blind to most chair legs. Fortunately chair leg detection is a strength of US sensors.
  • ercoerco Posts: 19,546
    edited 2014-05-23 - 13:03:03
    Those Sharp analog IR sensors work great, I've been stocking up:

    They are analog output, but in a pinch you can use them as digital sensors:

    WRT chair leg detection, I'd have to say that sensing at a distance would depends on the chair leg position & geometry. By scanning your sensor you can improve detection reliability:
    "When you make a thing, a thing that is new, it is so complicated making it that it is bound to be ugly. But those that make it after you, they don’t have to worry about making it. And they can make it pretty, and so everybody can like it when others make it after you."

    - Pablo Picasso
Sign In or Register to comment.