In this project 2 autonomous 4-wheel independent steering agricultural robots were developed. This advanced steering system allows for exceptional maneuverability and precision, enabling the robot to navigate tight spaces and uneven terrain with ease. Coupled with GPS, IMU, depth camera, and LiDAR, the robot can autonomously perform tasks with high accuracy. Additionally, one of the robot was equipped with a self-balancing platform that ensures the load remains stable even on slopes, enhancing operational safety and efficiency. This combination of technologies optimizes field operations, reduces labor costs, and increases productivity in agricultural fields.
During this project I selected and setup the electronic system, designed the ROS system architecture for autonomous navigation, remote control, sensors and simulations.
Self-balancing platform robot.
Normal base robot.
A 4-wheel independent steering robot has various steering modes to enhance maneuverability and adaptability. In this project the modes used are shown in the figures below.
Mode A: Similar to a conventional car, only the front wheels steer at the same angle.
Mode B: Enables each wheel to steer at different angles, allowing the robot to change orientation without altering its position.
Mode C: Has the front wheels steering at the same angle while the rear wheels steer at the opposite angle, typical in large trucks or trailers for enhanced control.
Mode D: Allows all wheels to steer at the same angle, improving maneuverability in tight spaces.
Mode A
Mode B
Mode C
Mode D
Each robot is equipped with:
4 absolute encoders: Steering angles of each wheel.
4 incremental encoders: Speed of each wheel.
IMU & GPS-RTK: For autonomous navigation.
BLDC/Stepper motors and motor controllers.
60V battery.
The figure below shows the interconnections between all the components, the different control modules processed on the computer and their respective inputs and outputs.
Connection lines diagram
The signals sent/received by each components are described on the image to the left:
Depth camera: Depth information for obstacle avoidance (not implemented).
IMU: Acceleration, Angular velocity and Magnetic field.
GPS: Latitude, Longitude and Orientation
Motor controllers: Speed
Encoders: Absolute position
The robot equipped with the self-balancing platform has its own controller to precisely set the length of three rods connected to the platform. Depending on the length of each rod the platform can roll, pitch or yaw.
On the early stage of the project the kinematic model and a backstepping controller equations were extracted from "Path Tracking Controller Design of Four Wheel Independent Steering Automatic Guided Vehicle" by Yuhanes Dedy Setiawan, Trong Hai Nguyen, Pandu Sandi Pratama, Hak Kyeong Kim, and Sang Bong Kim. This paper introduces a kinematic modeling for the 4WIS-AGV based on a single track vehicle model and a controller based on Backstepping method for the 4WIS-AGV to track reference trajectories. From those equations I programmed a Python simulation using Pygame to visualize the robot behavior.
Zero-sideslip maneuver:
This maneuver is done when the sideslip angle of the vehicle is kept zero (βA = 0) while the vehicle moves. This maneuver is illustrated below. Because the vehicle body is always tangent to the path, this maneuver is desirable for the vehicle motion.
Zero-sideslip maneuver equations.
Zero-sideslip maneuver simulation.
Parallel steering maneuver:
This maneuver is done when both the front and rear wheels are steered with the same angle, direction and velocity as shown below. Moreover, in this condition, the vehicle moves without changing its orientation during the motion. This maneuver is very practical in vehicle lane-changing and obstacle avoidance. Consequently, this maneuver is very useful for AGVs when they have to move in small working space where conventional AGVs have limitation to move.
Parallel steering maneuver equations.
Parallel steering maneuver simulation.
Later, ROS 1 noetic was used to integrate the navigation and controllers packages. Mainly 3 packages were used:
Robot Localization: Using EKF combines GPS, IMU and wheels generated odometry to localize the robot on the global and local maps.
Navigation Stack: The ROS navigation stack package provided the local and global planners to allow the robot to follow waypoints and avoid obstacles. In this case the local planner used was TEB and global planner was Dijkstra.
ROS Control: Using this ROS suite the hardware interface with the real robot was developped and a swerve controller was used to be able to take full advantage of the robot capabilities.
The Solidworks models were simplified and exported into URDF format to use them in ROS and Gazebo. In this way the proper position of each sensor was obtained and then it was possible to get theirs respective TFs.
Self-balancing platform robot.
Normal base robot.
The swerve controller and different steering modes were manually tested first on Gazebo. Then, after carefully tunning the real motor controllers parameters tests were conducted on the real robots, as shown on the videos below.
Manual control simulation test.
Steering modes test.
After everything was working perfectly on the simulation and inside the garage, the robot was tested in the field using a remote keyboard and a remote controller to switch between the different steering modes.
Manual control test 1.
Manual control test 2.
Finally, the autonomous navigation system of the robot was tested, first in an open field in a square type path and then in an orchard field. Due to the space constraints it is important that the robot rotates in place rather than using a car like steering.
Autonomous test in open field.
Autonomous test in orchard.