WARNING
please attention to warnings:
- In case of having some pins disconnected or broken, please first read the tutorials to debug the problem and 'do not try your luck, otherwise, definitely you will burn some part!!!', or you can contact with Alireza Ahmadi as the designer of the robot.
- In case of noticing any delay in responds from the robot, please restart the nodes and connections.
- Always check the main connections (power, USB cables, Joystick) before turning the robot 'ON'.
Electrical section of the AgriBot includes controlling layers, sensors, battery management system (BMS) and actuators. The control layers’ structure is shown in below which is comprised of two different major layers, Low-level controllers and User layer which are containing DCM (Device Communication Manager), Sensors and User layers. The main program executed on Low-level controller runs on a Raspberry Pi 3 embedded controller and directly controls all the sensors and actuators, also runs master of ROS to manage all nodes working in the network. This layer is responsible for time synchronization of whole connections and I/O’s used in the process, like reading the IMU (Inertial Measurement Unit) and controlling all four actuators for driving and steering the robot.
Also, it runs the main nodes which drive the robot based on defined kinematics and provides a basic fusion of the sensors for localization out of IMU, wheel odometry and GPS. This layer of control is accessible via SSH. This type of connection makes user able to connect and stream out the status of all sensors and to implement his own high-level algorithms though establishing a client node to ROS master which mainly is running on Raspberry Pi.
The designed robot uses two batteries to power up all the actuators and electrical equipments. To turn on the robot, simply change the states of two switches in front of the robot (in the box) to NO. The images in below show the switches which control the power.
It's used to power up all the equipments working with logic level of voltage (3.3v ~ 5v). including Raspberry PI, Arduino controllers, Ethernet switch, USB hub and etc.
This battery is specially used to supply actuators and their drivers.
As robot has two different batteries, it uses two different chargers with sockets shown in image below to charge.
NOTE
both chargers have a LED to show the status of charge.
- RED is charging...
- GREEN is full...
to shutdown the robot first run the command below, to shutdown the raspberry pi and then swtich of both power keys shown in here
sudo poweroff
In such heavy and equipped robot, which needs to operate for a long time in uneven and/or muddy fields with lots of sensors and actuators which should be supplied properly, the power supply gets really important, in such a way that, if one of the controllers or sensors can’t get sufficient amount of power, it will cause unexpected neglects in operation which can directly affect how precise the tasks are achieved by the robot. Hence, the AgriBot uses two separate rechargeable 24v batteries to power up electrical tools. All the actuators are supplied through a 24v/5A battery which isolates the electrical connection of drive part from digital and sensor parts which use other 24v/10A battery to run. This separation avoids from effecting noses arisen from motors and drivers on main processor and logic parts. Also, each logic device gets its power from a separate regulator channel and this guarantees to have a stable working period for all electrical stuff.
Power distribution task is done by using a regulator board which provides different voltages. Regulator board has two input sockets and ten outputs which each output unit provides four different levels of voltages: 0v (GNG), 5v, 12v, 24v. In image below the configuration of input and output pins are marked.
as its show in image below: all supplied devices through BMS board are getting their power from bike-battery(with aluminum body).
hence, all actuators are driven by other battery to isolate the logic level equipments from power section (to avoid getting disturbed by actuators produced noise).
Some equipments like IMU, Drivers and Reset relays are connected to reaspberry pi by I/O pins and serial to USB converters. connection map is shown in image below.
IMU node as its completely explained in agribot_imu section is an Embedded-ROS node which uses an Arduino-ProMicro board to read the sensor and publish the topic /imu in network. its connection is shown in image below:
Rear caster wheels are motorized, by adding a perpendicular joint to their main axis, therefore their rotation around the Z-axis can be controlled by motion controller node. Also, this capability is implemented through an Embedded-ROS node running on a Arduino-UNO board.
The image below shows all connections related to rear-servos.
To find out more about the controller node please visit agribot_servo package, which tries to explain all the details about connections and controller node.
AgriBot platform is equipped with two geared DC-motors which, are connected to the Raspberry Pi (Local processor on AgriBot) via USB (Virtual Com-Port). Image below shows the driver and actuator model with related links.
The image below shows all connections related to front actuators.
To find out more about the controller node please visit agribot_base_controller package, which tries to explain all the details about connections and controller node.
As its explained in agribot_base_controller in case of occurring any problem in serial communication with actuators (front/back) two relays are utilized to automatically reset the power of drivers and re-establish the connections. this part which contains a relay board is shown in image below:
Also, a buzzer is used to warn the low battery or any other electrical/software faults through some alarms: the module is shown in below:
The Alarm code is shown in table below:
Type of Alarm | Repeat-Number | Repeat-Duration(ms) | Error/Notification | How to fix |
---|---|---|---|---|
Broken | 2 | 300 | Base launched | --- |
Continues | -- | -- | Low Battery | Debug The Power Status |
Broken | 5 | 70 | Serial Communication Error | Debug The Electrical Connections |
Also, a simple log of the error will be printed on the terminal which base is launched.
NOTE
all the connections used to control these part via raspberry pi is illustrated in Raspberry Pi GPIOs
Section
by: Alireza Ahmadi
University of Bonn- Robotics & Geodetic Engineering