We are ARK, Aerial Robotics Kharagpur, a
research group at Indian Institute of Technology Kharagpur.
We build aerial robots as a hobby, for research, for fun and plan to build an army to conquer Mars, soon enough.
We blog about our hacks, research, projects and experiences as our birds (drones) travel different galaxies.
Aman Chandra, 15 October 2017 - Kharagpur, India
Beep Beep Beep Whirr! And the mechanical bird soared up and away! Indeed, Aerial Robotics is the most intriguing field in the world of Robotics.
This blog is a guide to assemble a multicopter with an onboard low level microcontroller, starting from the very quad-root level. Hop onboard, let’s get started!
Ardupilot Mega (APM) is an IMU autopilot that is based on the Arduino Mega platform. It is capable for autonomous stabilisation, way-point based navigation and two way telemetry with Xbee wireless modules, supporting 8 RC channels with 4 serial ports. ArduPilot Mega consists of the main processor board and the IMU shield which fits above or below it.
The copter uses 850kV Brushless DC Motors, each with a dedicated Electronic Speed Controller of current rating 40A. The ESCs provide electronically generated three-phase electric power low voltage source of energy for the motor. The PPM signal for the control comes from the APM. ESCs can be BEC or OPTO.
A Lithium Polymer battery of rating 11.1V, 3s, 5000mAh, 20C is used for powering the motors. The battery provides an average flight time of 4-6 minutes.
The quadcopter is controlled by a 6 channel 2.4 GHz RC transmitter and a 6 channel PPM receiver in manual mode. The bandwidth of the transmitter is 500Hz.
The Ublox Neo-M8N GPS module includes a HMC5883L digital compass.It outputs precise position updates at 10Hz. The Ublox NEO-M8N is configured to run at a baud rate of 38400.
The illustration below highlights the typical installation of a quadcopter. It contains optional equipment including a Camera, Gimbal and a Battery Monitor and it utilizes an ESC wired “Y” power connection rather than the power distribution board common to many MultiCopters.
The figure shows motor order for Quad X (the numbers indicates the connected autopilot output pin) and the propeller direction (clockwise (CW) motors are shown in green and take pusher propellers,counterclockwise motors (CCW) are shown in blue and take puller propellers. Diagrams for other frames can be found on the official Arducopter Website
The diagrams shows two types of propellers: clockwise (called pushers) and counterclockwise (called pullers). It is most reliable to recognize the correct propeller type by its shape. Note that the propellers have the edge with the shallow consistent curve at the leading edge in direction of rotation and the more radical scalloped (and usually thinner edge) as the trailing edge.
Mission Planner is free, open source software available for Windows. The latest version can be downloaded from here.
Once you’ve installed the Mission Planner onto your computer, connect the autopilot board to your computer using the micro USB cable. Windows should automatically detect and install the correct driver software.
Open the Mission Planner and select the COM port drop-down on the upper-right corner of the screen (near the Connect button). Select AUTO or the specific port for your board (PX4 FMU or Arduino Mega 2560). Set the Baud rate to 115200 as shown. Don’t hit Connect just yet.
On the Mission Planner’s Initial Setup->Install Firmware screen select the appropriate icon that matches your frame (i.e. Quad, Hexa). Answer Yes when it asks you “Are you sure?”.
If all goes well you will see some status appear on the bottom right including the words, “erase…”, “program…”, “verify..” and “Upload Done”. The firmware has been succesfully uploaded to the board.
Select the desired port and data rate and then press the Connect button to connect to the autopilot. After connecting Mission Planner will download parameters from the autopilot and the button will change to Disconnect as shown.
A video demonstration of the live compass calibration can be found here.
RC transmitters are used to control vehicle movement and orientation. Copter minimally controls throttle, pitch, roll and yaw. Each of these control signals are mapped to transmitter stick/switch(s) and in turn to autopilot channels from the connected receiver.
Copter default channel mappings are:
For safety reasons you should disconnect the battery and/or remove propellers before preforming radio calibration. Also, centre trims in manual RC mode before preforming RC calibration. If trims are not centred you may need to do the RC calibration again after you have used the vehicle.
The calibration positions are: level, on right side, left side, nose down, nose up and on its back.
A video demonstration can be found here.
Electronic speed controllers are responsible for spinning the motors at the speed requested by the autopilot. Most ESCs need to be calibrated so that they know the minimum and maximum pwm values that the flight controller will send.
Before calibrating ESCs, please ensure that your copter has NO PROPS on it and that the APM is NOT CONNECTED to your computer via USB and the Lipo battery is disconnected.
Once you have calibrated your ESCs, you can test them by plugging in your LiPo. Remember: no propellers!
There are a few things you need to know about the flight modes in ArduCopter before flying.
You can read more about flight modes here.
Before proceeding, ensure that the following params are set in Config/Tuning->Full Parameter List
- THR_MIN = 130
- THR_MAX = 1000
- MOT_SPIN_ARMED = 0
Flying a multicopter is an art and it will take some time, break some propellers and explode some LiPos but you will definitely get a hold of it! Fly high, may the thrust be with you!
Here’s a video of the Hexacopter Eagle with a self-designed wooden frame:
The next step in the world of Aerial Robotics is Autonomous Flight. Odroid and Raspberry Pi are common High Level Controllers. Stay Tuned!