Close
0%
0%

Quad-ROS-bot

Development platform for agricultural robots

Public Chat
Similar projects worth following
A small electric quad bike modified to navigate autonomously around a farm. We needed something small and light-weight, but big enough to carry a whole load of computer equipment and sensors to rapid prototype autonomous navigation and obstacle avoidance using the Robot Operating System (ROS). We are going to try and present a series of videos detailing the steps we take, which will be updated every 2 weeks or so. There will also be drawings for the parts made for adapting the Quad bike. Watch this space for updates !!!
  • 1 × 'Renegade LT100E' electric 36v quad bike
  • 1 × Gimson Robotics GLA4000-S 12V DC Linear Actuator
  • 2 × Heavy Duty Stainless Steel Actuator Bracket, 10mm Pin
  • 2 × TE Connectivity, 12V dc Coil Non-Latching Relay DPDT, 30A Switching Current Flange Mount, 2 Pole

  • Robot Communication Tower

    Tegwyn☠Twmffat7 days ago 0 comments

    The tower features a Multitech IP67 base station with onboard 4G, WiFi and 8 channels of Lorawan, all mounted on a home grown piece of larch harvested from our own woodland. The plan is to use 2.4 and 5 GHz WIFI to communicate with the robot, live streaming data and video feeds to the control room. The Multitech box itself will be hard wired with ethernet cable to the control room.

  • Testing navigation system - data harvesting

    Tegwyn☠Twmffat04/17/2021 at 09:25 2 comments

    The robot was driven 2 different laps around some fields with the GPS and T265 camera data being recorded to a CSV file. We use animal terminology for all parts of the robot and the main 'thing' is called 'dog'. It also has a snout, eyes and even a lair, or 'nest'. All will be explained later !!!

    Another rest run using a different route:

View all 2 project logs

  • 1
    Overview of the 'Renegade LT100E' quad bike

    On delivery of the quad bike, we took off all the plastic panels, inserted the main fuse and tested the motor with the bike up on wooden blocks. Video 1 shows the main features and build quality of the bike and we also hacked into the throttle connector with a 5v arduino uno to test what the signal to the motor controller should look like. The signal was the 'analog out' type, which is a high frequency PWM that 'attempt' to replicate a true voltage out. We successfully ramped the motor steadily up and down. NB. The green wire on the throttle connector is for the signal.

    Here's the code to ramp up the motor:

     void setup() 
    {
      pinMode(11, OUTPUT);
      pinMode(13, OUTPUT);
      // Serial.begin(9600);
    }
    
    void loop() 
    {
        for (int speed = 0; speed < 155; speed++) 
        {
          analogWrite(11, speed);
          delay(20);
          // Serial.println(speed);
          digitalWrite(13,HIGH);
        }
        for (int speed = 155; speed >= 0; speed--) {
          analogWrite(11, speed);
          delay(20);
          // Serial.println(speed);
          digitalWrite(13,LOW);
        }
        // pause between LEDs:
        delay(100);
    }
  • 2
    Steering actuation

    The installation of the steering actuator is shown below, it's a thumping great 4000 N device capable of tearing the whole machine apart if not careful. The actuator needs to be able to turn slightly at each end and so is mounted on the stainless steel brackets to enable this. Also, the actuator must operate at exactly 90 degrees to the steering column or else there will be unwanted twist in the actuator as it move in and out that could damage the mounts at the ends. The actuator requires a high ampage, 12 volt supply and can be control via mechanical relays or MOSFETs. MOSFETS are much more expensive but more reliable and can be controlled directly from a micro-processor such as an Arduino, whilst the relays require an intermediator y chip, the L293E, to boost the power supply for the coils.

    This little beast is the Gimson Robotics GLA4000-S 12V DC Linear Actuator. It boasts a massive 4000 N of force, which is enough to pull the whole robot to pieces ! The actuator requires 2 stainless brackets for attaching to the robot frame:

    Some heavy duty 3/8" pipe clips were used to attach to the frame:

    We made some custom mild steel brackets to mount the actuator:

    ..... and used some 30 amp relays to handle the high current ( TE Connectivity, 12V dc Coil Non-Latching Relay DPDT, 30A Switching Current Flange Mount, 2 Pole) :

    Circuit diagram for the relays:

  • 3
    Front sub frame and steering position sensor mount


    This strange looking frame goes at the very front of the robot and performs two important functions. One is to mount a load of the sensors and antennae for the control system, and the other to mount an everyday 10K potentiometer to measure the steering angle. The steering angle is NOT measured by bolting the pot directly onto the top of the steering column , but via a gearing reduction timing belt to make better use of the pot's range and hence better resolution. This also has the benefit of hiding the pot deep within the frame work, well out of harms way. Video 3:

    All the photos and drawings needed to build the sub frame and bracket are given in this step, below. The important thing is to present the potentiometer assembly exactly parallel to the steering column or else the whole thing will fail and the belt might also come off the timing cogs. To prevent play, or backlash, the belt needs to be fairly tight, so the welding needs to be strong. The belt also needs some adjustment and this is enabled by the series of parallel holes drilled in the angle as seen in the photo above. Slots would also be a good option if a milling machine is available.

    The pot range and resolution was tested by using the Arduino Uno code below and we managed to get 340 units across the whole steering range, which is thought to be more than adequate. This could be further improved by using a gear ratio of 1:4 instead of 1:2.

    Code for testing the potentiometer:

    int sensorPin = A0;
    int ledPin = 13;
    int sensorValue = 0;
    
    void setup() 
    {
      Serial.begin(9600);
      pinMode(ledPin, OUTPUT);
    }
    
    void loop() 
    {
      sensorValue = analogRead(sensorPin);
      Serial.print("Pot value (0 to 1024):  ");
      Serial.println(sensorValue);
      digitalWrite(ledPin, HIGH);
      delay(250);
      digitalWrite(ledPin, LOW);
      delay(250);
    }

View all 3 instructions

Enjoy this project?

Share

Discussions

Dan Maloney wrote 03/22/2021 at 18:15 point

That's a very promising platform for all-terrain robots. Where did you find that? I'm guessing Ali Express or something like that.

  Are you sure? yes | no

Tegwyn☠Twmffat wrote 03/23/2021 at 09:18 point

Hello Dan! I got this one off Ebay for £600 = about $750 USD. I'm sure they're on Alibaba as well, i did not look.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates