Localization is the most critical subsystem. Fieldroid uses a Leica robot total station to localize the robot in the environment. The Leica total station is initialized by calibrating to a 360 degree tracking prism mounted on top of the robot. Leica then continuously shoots a laser at the tracking prism to give an accurate pose of the robot in the world frame. The Leica also sends the timestamp, which can be used for clock synchronization. The data through the survey-gun is sent at around 1Hz, which requires that the system utilize dead-reckoning techniques for the interim. The data obtained from the Leica is within millimeter accuracy and therefore is highly reliable for precise and accurate field painting. This data can be integrated with the encoder data and in the future, the IMU data to present a multilayered pose in the world frame.
The drive system uses a robot-base provided by Sensible Machines. It is a robust drive system designed to work on fields. It has two drive wheels and four castor wheels for ease of maneuverability. It uses highly powerful DC motors and motor encoders to calculate the robot velocity and distance traveled. The RoboteQ motor controller processes the data from the encoders and communicates with the on-board BeagleBone which also receives the localization data from the survey-gun to correctly the position of the robot in the world frame.
The drive system and localization system work in strict synchronization to localize the robot in real time with the pre-calculated path planning data.
Fieldroid has multiple communication protocol. 3DR radio are used to communicate between the robot (receiver end) and the Leica command station (transmitter end). The pair communicates at a frequency of 915 MHz and at a baud rate of 56700. The radios have been configured for single way communication. The transmitter radio receives the data from the laptop connected via serial USB to the Leica tracking station. The receiver radio receives the data and sends it to the BeagleBone through UART. There are LEDs on both the radios which turns solid green when both radios establish communication and the LEDs blink when the connection is lost indicating fault. Also, there are LEDs which turn red and orange indicating data transfer over radios. The only issues seen with this component of the subsystem was when another team used the same pair of radios for communication; however, this problem can be resolved by giving separate id’s to the radios. These highly reliable radios ensure no loss of data and are otherwise a perfect choice for on-field communication. An Android based user application is designed to deploy the robot at the start and to also obtain the run time performance data after the completion of field painting. This application uses bluetooth communication to connect the user to the on-board microcontroller. A USB Bluetooth is connected on the Beaglebone to establish the required communication. RS-232 communication protocol has been implemented for sending and receiving commands in between the Beaglebone and the drive system motor-controller. This communication protocol is much more robust and reliable compared to the USB communication.
Fieldroid has two separate power system modules. The first one is used to control the on-board electronics. Power is derived from 14.8V and 6.6 mAH Li-ion batteries. These batteries are rechargeable and provide sufficient current to meet the system requirements. The power is distributed to the unit modules using a custom designed power distribution printed circuit board (PCB). The PCB has built in protection circuitries for current spikes, overvoltage protection for improper fluctuations and noise rectification in case of disturbances. There were a few glitches in the PCB. These errors are on the schedule to be rectified in the spring semester as part of the risk mitigation plan. The ground traces on the PCB are thinner than the power traces which are undesirable. Also, the DC-DC converter pad layout is mirrored upside down, which causes the first issue.
The second power system is used to power the drive system. The batteries used for the drive system supply 24V at 50A. This is required to run the RoboteQ motor controller used for the drive system and the DC motors. The power system has appropriate LED indication at various points to indicate a functional system and give us warning in case of failure at any node. This is critical for easy debugging and robust system functionality.
Our paint system was deconstructed from pre-built field marking equipment. It, therefore paints highly reliable and consistent field lines. It consists of a 6 gallon paint can, which can store sufficient paint to complete the field. It has a pump which triggers paint when receiving commands from the BeagleBone. It works on 12V and draws a maximum of 3.3A. This makes it highly power efficient which is desirable for our robot system. The robot has a spray mechanism at the bottom which is used to paint the field lines. It can be adjusted to change the width of the paint lines and also the height is adjustable to meet the user needs.
We can use this motion model to create motion primitives which the robot can choose to follow. In our case, the robot moves in either straight lines or circle arcs so the motion primitives look like the paths shown below in the Figure. Model Predictive Control looks ahead at the goal path a specified amount of time called the horizon time (usually on the order a few seconds). The goal path - a piecewise function in the X and Y dimensions – is then transformed into the reference frame of the robot and compared to each motion primitive. The error between each motion primitive and goal path is found by comparing the average euclidean distances between several points at matching times and then averaging them. Then the motion primitive associated with the lowest error is chosen. The motor commands that will generate this motion are sent to the motor controller. This control method generated very smooth motion which was ideal for field painting. When there was error in the state estimate and goal position the system was able to smoothly correct for it so that the resulting lines were not jagged.
To ensure the operator and equipment safety, a highly reliable emergency stop is incorporated. The emergency stop, if triggered, immediately halts the drive system. This meets MFR 2 which states that the robot shall stop within 2 seconds of receiving the emergency command. The E-stop makes the robot system highly robust and reliable to use for any user as well as the robot. A Spektrum DX6 radio transmitter is used to send the signal to the RoboteQ motor-controller. A Spektrum radio receiver mounted on the robot is used to receive the emergency signal and pass the information to the motor-controller.
For ease-of-use of Fieldroid an android application has been developed. The application requires bluetooth communication between the app and the robot.This application allows the user to choose from number of options. The user can chose field size, can deploy the robot, can vary the speed of the robot, etc. This added functionality makes the system easily configurable and deployable within few minutes.