{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "9fbd1823-3b01-4e79-98b9-b9a34dc1a149", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "b8a3db8e-ffef-4436-84c8-2ee50ecd38b4", "metadata": {}, "source": [ "## Quadcopter\n", "\n", "The quadcopter is a rigid body with 6 degrees of freedom. It can move in the x, y, and z directions, and it can rotate about the x, y, and z axes. The motion of the quadcopter is governed by the following equations:\n", "\n", "$$\n", "\\begin{aligned}\n", "\\dot{x} &= v_x \\\\\n", "\\dot{y} &= v_y \\\\\n", "\\dot{z} &= v_z \\\\\n", "\\dot{v}_x &= \\frac{1}{m}(T_1 - T_3) \\\\\n", "\\dot{v}_y &= \\frac{1}{m}(T_2 - T_4) \\\\\n", "\\dot{v}_z &= \\frac{1}{m}(T_3 + T_4 - T_1 - T_2) \\\\\n", "\\dot{\\theta}_x &= \\omega_x \\\\\n", "\\dot{\\theta}_y &= \\omega_y \\\\\n", "\\dot{\\theta}_z &= \\omega_z \\\\\n", "\\dot{\\omega}_x &= -\\frac{k_x}{I_x}(\\theta_x - \\theta_r) \\\\\n", "\\dot{\\omega}_y &= -\\frac{k_y}{I_y}(\\theta_y - \\theta_r) \\\\\n", "\\dot{\\omega}_z &= -\\frac{k_z}{I_z}(\\theta_z - \\theta_r)\n", "\\end{aligned}\n", "$$\n", "\n", "where:\n", "\n", "- x, y, and z are the position of the quadcopter in the global coordinate system\n", "- $\\theta_i$ are the angles of rotation of the quadcopter about the x, y, and z axes\n", "- $\\omega_i$ are the angular velocities of the quadcopter about the x, y, and z axes\n", "- $T_i$ are the thrust forces on the four rotors\n", "- $k_i$ are the stiffness coefficients of the rotors\n", "- $\\theta_r$ is the desired angle of rotation of the rotors" ] }, { "cell_type": "code", "execution_count": null, "id": "a9b80cbf-4232-4829-a48e-1ef202c27835", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" } }, "nbformat": 4, "nbformat_minor": 5 }