Other Robot Project...
 
Notifications
Clear all

[Sticky] Other Robot Projects

76 Posts
22 Users
23 Likes
15.8 K Views
THRandell
(@thrandell)
Estimable Member
Joined: 1 year ago
Posts: 117
 

@melbul

Hi Mel,

I looked over your code and I like the way that you broke the logic up into three subroutines: read the sensors, avoid obstacles (determine wheel speeds) and set motor speeds.  Good stuff.  I can’t help but think that there might be a simpler way to set wheels speeds in the setMotors subroutine…

Anyway, in the spirit of constructive comments I’d like to bring up two points.

1)  along with using print statements in your code to debug calculations I would like to suggest that you also find some way for BB1 to indicate externally what it is doing.  For example, when the left sonar finds an obstacle then light up an LED or make some distinctive sound to help you debug the behavior of your robot.  I’ve found this helpful when things don’t seem to be working as expected.

2)  adopt the subsumption architecture for your programs.  I know that it has been around since the 1980s but roboticists are still using it and you are really close with this code.  

I picked up Robot Programming: A Practical Guide to Behavior-Based Robotics by Joe Jones used for $7 US and I’m still referring to it.  It’s not a book of academic first principles but more a bag of tricks for programming robots.

 

 

Tom


   
ReplyQuote
Melbul
(@melbul)
Eminent Member
Joined: 2 years ago
Posts: 48
 

@thrandell

Hi Tom,

Thanks for the feedback, I agree that the motor speed code needs looking at, a process I’m now engaged in. 
My original design had 16 Ultrasonic sensors around the robot, with RGB leds that signalled their condition. They were set as pairs on each corner, base and upper deck, with a controller for each pair connected to the main controller by i2c. 
I found this design was too complicated for a starter robot and required a lot of programming skill that I did not have, hence the rebuild and simplified version.

I shall take a look at subsumption architecture and have just purchased the book you mentioned via EBAY in the UK.

Thanks again for you constructive feedback!

Regards,

Mel.

 

 


   
ReplyQuote
THRandell
(@thrandell)
Estimable Member
Joined: 1 year ago
Posts: 117
 

@melbul

 

Posted by: @melbul

I shall take a look at subsumption architecture and have just purchased the book you mentioned via EBAY in the UK.

Awesome!

 


   
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 3 years ago
Posts: 1556
 

@melbul 

@thrandell

Had a longer look at your code to try and figure out the exact logic.
Some things made no sense to me like,
leftSpeed = leftSpeed;
rightSpeed = rightSpeed;
Why change a value to the same value?

Also I wasn't sure why you were adding or subtracting speed values for the turning rate? Why not just set the left and right speeds for the different turning rates.

I imagined something like the code below except the speed values might need changing.

 

 

  // DISTANCE value is set to the smallest value returned by all the sensors.

  // assume straight ahead to start with

  setLeftSpeed  = 250;
  setRightSpeed = 250;

  if (distance < MIN_DISTANCE){

    if      ((SENSOR_0<SENSOR_1)&&(SENSOR_0<SENSOR_2)&&(SENSOR_0<SENSOR_3)&&(SENSOR_0<SENSOR_4)){
      // SMALL_LEFT
      setLeftSpeed = 100;
      setRightSpeed = 200;
    }
    else if ((SENSOR_1<SENSOR_0)&&(SENSOR_1<SENSOR_2)&&(SENSOR_1<SENSOR_3)&&(SENSOR_1<SENSOR_4)){
      // SMALL_RIGHT
      setLeftSpeed = 200;
      setRightSpeed = 100;
    }

    else if ((SENSOR_3<SENSOR_0)&&(SENSOR_3<SENSOR_1)&&(SENSOR_3<SENSOR_2)&&(SENSOR_3<SENSOR_4)){
       // MEDIUM_LEFT
       setLeftSpeed = 200;
       setRightSpeed = 50;
    }
    else if ((SENSOR_4<SENSOR_0)&&(SENSOR_4<SENSOR_1)&&(SENSOR_4<SENSOR_2)&&(SENSOR_4<SENSOR_3)){
       // MEDIUM_RIGHT
       setLeftSpeed = 50;
       setRightSpeed = 200;
    }
    
    else if  ((SENSOR_2<SENSOR_0)&&(SENSOR_2<SENSOR_1)&&(SENSOR_2<SENSOR_3)&&(SENSOR_2<SENSOR_4)){

      if ((SENSOR_1<SENSOR_3)){
        // HARD_RIGHT
        setLeftSpeed = 0;
        setRightSpeed = 100;

      } else if((SENSOR_3<SENSOR_1)){
        // HARD_LEFT
        setLeftSpeed = 100;
        setRightSpeed = 0;
      }
    }

    leftSpeed = setLeftSpeed;
    rightSpeed = setRightSpeed;

  }


 

sensorArray

 


   
ReplyQuote
Melbul
(@melbul)
Eminent Member
Joined: 2 years ago
Posts: 48
 

@robotbuilder

As I have progressed a little in my abilities I will be changing my approach to how the whole control of the base is programmed.

Toms suggestions about the strategy and application of the code caused me to look at different ways of going about the basic control of the robot. Once I have re jigged the code and it does an adequate job of guiding the robot without running into things, then I will be moving on to higher level systems of control.

I have a Jetson Nano to play with, which will be the next level controller.

as always, your input is greatly appreciated.

mel.


   
ReplyQuote
THRandell
(@thrandell)
Estimable Member
Joined: 1 year ago
Posts: 117
 

@melbul

Hi Mel,

I'm curious about what levels of control you're planning to implement?  Do you some objectives that you can share?

 

Tom


   
ReplyQuote
Melbul
(@melbul)
Eminent Member
Joined: 2 years ago
Posts: 48
 

@thrandell 

I’m currently working through Paul McWhorters AI on the Jetson Nano series of videos.

It is looking more than likely that I will be utilising some sort of vision driven control along with a 6DOF arm that i built a couple of months back that will be mounted on the front of BB1.

mel


   
THRandell reacted
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 3 years ago
Posts: 1556
 

@melbul 

As I have progressed a little in my abilities I will be changing my approach to how the whole control of the base is programmed.

That's ok.  I was just responding to your request,

Comments on my poor coding will be gratefully received

Once you have worked your way through Paul McWhorters AI on the Jetson Nano series of videos you will be way ahead of me.  I am just a low level roll your own programmer from the past.

 


   
ReplyQuote
Mr Owl
(@mr-owl)
Eminent Member
Joined: 3 years ago
Posts: 47
 

Autonomous  Robot that navigates a course by marker recognition and thru passages - I will attempt

I have built robots with GPS attributes , ESP 32 cam, robots with grippers, Pixy2 CMU cam, light , sonic navigation, built the first phase of the dronebot  stopped when Bill stopped   watched  Bill's  stuff , watching Paul ( Top Tech Boy.com) stuff and others 

Would like to combine what I learned into a autonomous vehicle with the above attributes -looking for resource (  video , systems ,schematics, codes  all in one package ) that i can go to school on.

Don't want a " canned vehicle " won't learn anything off of it 

Technology is changing to fast - any input from you guys who work with this stuff day in and day out would be appreciated 

This post was modified 9 months ago by Mr Owl

   
Inst-Tech reacted
ReplyQuote
THRandell
(@thrandell)
Estimable Member
Joined: 1 year ago
Posts: 117
 

@mr-owl

Mr Owl,

I’m finding it difficult to frame a response to your request.  I am sure that after following Bill down the ‘Real’ Robot rabbit hole you and others are feeling like you’ve been left out in the cold.  So maybe searching for another ‘all in one resource’ might not be the most expeditious way to use your time.  I don’t know about you but I’ve only got so many projects left in these hands so I’m trying to choose wisely…

For what it’s worth Reddit is having another Robotics Showcase this year and these are the areas that they showcase.  You’ll probably have more luck finding resources if you take on one of these areas to work on.

  • Autonomous Ground Vehicle (AGV – Mobile Robots)
  • Unmanned Aerial Vehicle (UAV – Drones)
  • Autonomous Underwater Vehicle (AUV – Submarines, Sailboats)
  • Legged Robots (Bipeds, Quadrupeds, Hexapods)
  • Manipulation (Robot Arms, Grippers, Hands)
  • Simulation (Physical, Virtual, AI)
  • Multi-Agent & Swarm Robotics
  • Navigation, Path Planning, & Motion Planning
  • Localisation & Mapping
  • Perception & Machine Vision
  • Artificial Intelligence, Machine Learning, Deep Learning
  • Social Robots & Human Robot Interaction
  • Domestic & Consumer Robots
  • Commercial & Industrial Robotics
  • Search & Rescue

 

 

On another note: Happy Pi Day!  After all, where would Robotics be without Mathematics.

IMG 1809

Here's my contribution.  Quiche is a pie, right?

Tom

 


   
ReplyQuote
Mr Owl
(@mr-owl)
Eminent Member
Joined: 3 years ago
Posts: 47
 

@thrandell 

Thanks Tom

I'll look into reddit

Some universities  were offering robotic course with a robot -U of W  looked interesting 

One that would be on line would be  Nice 

There are organization that offer  the same to STEM instructors but the ones I found  are rather low end 

or not specific to my interest

I'll keep looking I do have time 

 

 


   
ReplyQuote
THRandell
(@thrandell)
Estimable Member
Joined: 1 year ago
Posts: 117
 
Posted by: @mr-owl

I'll look into reddit

Hey Mr Owl,

  I noticed that the Reddit Robotics Showcase is coming up July 30 and 31.  Here's a link to the event.  It might be fun to listen in.  I watched it last year and it was a combination of academic, shameless business self promotion and hobbyists.  

https://robohub.org/the-reddit-robotics-showcase-2022/

 

Tom


   
ReplyQuote
Mr Owl
(@mr-owl)
Eminent Member
Joined: 3 years ago
Posts: 47
 

@thrandell  thanks for the link


   
ReplyQuote
THRandell
(@thrandell)
Estimable Member
Joined: 1 year ago
Posts: 117
 

@melbul

Hi Mel,

I’ve been meaning to ask you about your progress with the Robot Programming book by Joe Jones.  It occurred to me that since you’re from the UK you might not get his Boston behavior allusion, the one that causes the robot to swerve randomly.  Now that I type this out its probably  obvious, but he’s taking a potshot at the way people drive in Boston Massachusetts USA.  Anyway, it still cracks me up.  I implemented it for a laugh on my Lewis and Clark robot and it was pretty easy to spot. LOL.

 

Tom


   
ReplyQuote
Melbul
(@melbul)
Eminent Member
Joined: 2 years ago
Posts: 48
 

Hi Tom,

The robot is on a bit of a back burner at the moment, I have been renovating my daughters new property with her for the past few months. That is nearly finished now, so I hope to be able get back to my hobbies soon! 

Mel.

 


   
THRandell reacted
ReplyQuote
Page 5 / 6