From c8cc497d0956422ccb980a4f8f89b1bbbd58d276 Mon Sep 17 00:00:00 2001 From: htqcheng Date: Mon, 6 Apr 2020 10:43:09 -0400 Subject: [PATCH 1/8] Create dji-drone-breakdown-for-technical-projects --- ...dji-drone-breakdown-for-technical-projects | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 wiki/common-platforms/dji-drone-breakdown-for-technical-projects diff --git a/wiki/common-platforms/dji-drone-breakdown-for-technical-projects b/wiki/common-platforms/dji-drone-breakdown-for-technical-projects new file mode 100644 index 00000000..53bf5921 --- /dev/null +++ b/wiki/common-platforms/dji-drone-breakdown-for-technical-projects @@ -0,0 +1,102 @@ +--- +# Jekyll 'Front Matter' goes here. Most are set by default, and should NOT be +# overwritten except in special circumstances. You should set the article's title: +title: Title goes here +# The 'title' is automatically displayed at the top of the page +# and used in other parts of the site. +--- +This template acts as a tutorial on writing articles for the Robotics Knowledgebase. In it we will cover article structure, basic syntax, and other useful hints. Every tutorial and article should start with a proper introduction. + +This goes above the first subheading. The first 100 words are used as an excerpt on the Wiki's Index. No images, HTML, or special formating should be used in this section as it won't be displayed properly. + +If you're writing a tutorial, use this section to specify what the reader will be able to accomplish and the tools you will be using. If you're writing an article, this section should be used to encapsulate the topic covered. Use Wikipedia for inspiration on how to write a proper introduction to a topic. + +In both cases, tell them what you're going to say, use the sections below to say it, then summarize at the end (with suggestions for further study). + +## First subheading +Use this section to cover important terms and information useful to completing the tutorial or understanding the topic addressed. Don't be afraid to include to other wiki entries that would be useful for what you intend to cover. Notice that there are two \#'s used for subheadings; that's the minimum. Each additional sublevel will have an added \#. It's strongly recommended that you create and work from an outline. + +This section covers the basic syntax and some rules of thumb for writing. + +### Basic syntax +A line in between create a separate paragraph. *This is italicized.* **This is bold.** Here is [a link](/). If you want to display the URL, you can do it like this . + +> This is a note. Use it to reinforce important points, especially potential show stoppers for your readers. It is also appropriate to use for long quotes from other texts. + + +#### Bullet points and numbered lists +Here are some hints on writing (in no particular order): +- Focus on application knowledge. + - Write tutorials to achieve a specific outcome. + - Relay theory in an intuitive way (especially if you initially struggled). + - It is likely that others are confused in the same way you were. They will benefit from your perspective. + - You do not need to be an expert to produce useful content. + - Document procedures as you learn them. You or others may refine them later. +- Use a professional tone. + - Be non-partisan. + - Characterize technology and practices in a way that assists the reader to make intelligent decisions. + - When in doubt, use the SVOR (Strengths, Vulnerabilities, Opportunities, and Risks) framework. + - Personal opinions have no place in the Wiki. Do not use "I." Only use "we" when referring to the contributors and editors of the Robotics Knowledgebase. You may "you" when giving instructions in tutorials. +- Use American English (for now). + - We made add support for other languages in the future. +- The Robotics Knowledgebase is still evolving. We are using Jekyll and GitHub Pages in and a novel way and are always looking for contributors' input. + +Entries in the Wiki should follow this format: +1. Excerpt introducing the entry's contents. + - Be sure to specify if it is a tutorial or an article. + - Remember that the first 100 words get used else where. A well written excerpt ensures that your entry gets read. +2. The content of your entry. +3. Summary. +4. See Also Links (relevant articles in the Wiki). +5. Further Reading (relevant articles on other sites). +6. References. + +#### Code snippets +There's also a lot of support for displaying code. You can do it inline like `this`. You should also use the inline code syntax for `filenames` and `ROS_node_names`. + +Larger chunks of code should use this format: +``` +def recover_msg(msg): + + // Good coders comment their code for others. + + pw = ProtocolWrapper() + + // Explanation. + + if rec_crc != calc_crc: + return None +``` +This would be a good spot further explain you code snippet. Break it down for the user so they understand what is going on. + +#### LaTex Math Support +Here is an example MathJax inline rendering \\( 1/x^{2} \\), and here is a block rendering: +\\[ \frac{1}{n^{2}} \\] + +#### Images and Video +Images and embedded video are supported. + +![Put a relevant caption here](assets/images/Hk47portrait-298x300.jpg) + +{% include video id="8P9geWwi9e0" provider="youtube" %} + +{% include video id="148982525" provider="vimeo" %} + +The video id can be found at the end of the URL. In this case, the URLs were +`https://www.youtube.com/watch?v=8P9geWwi9e0` +& `https://vimeo.com/148982525`. + +## Summary +Use this space to reinforce key points and to suggest next steps for your readers. + +## See Also: +- Links to relevant material within the Robotics Knowledgebase go here. + +## Further Reading +- Links to articles of interest outside the Wiki (that are not references) go here. + +## References +- Links to References go here. +- References should be in alphabetical order. +- References should follow IEEE format. +- If you are referencing experimental results, include it in your published report and link to it here. From 4de9c77bb82c347738b7c0d5e802671b7ee5b429 Mon Sep 17 00:00:00 2001 From: htqcheng Date: Mon, 6 Apr 2020 10:45:06 -0400 Subject: [PATCH 2/8] Rename dji-drone-breakdown-for-technical-projects to dji-drone-breakdown-for-technical-projects.md --- ...cal-projects => dji-drone-breakdown-for-technical-projects.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename wiki/common-platforms/{dji-drone-breakdown-for-technical-projects => dji-drone-breakdown-for-technical-projects.md} (100%) diff --git a/wiki/common-platforms/dji-drone-breakdown-for-technical-projects b/wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md similarity index 100% rename from wiki/common-platforms/dji-drone-breakdown-for-technical-projects rename to wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md From 3fbf1fa5ba945ab9824661169f521bbcadac4640 Mon Sep 17 00:00:00 2001 From: htqcheng Date: Mon, 6 Apr 2020 11:03:29 -0400 Subject: [PATCH 3/8] Add files via upload --- assets/images/DJI.png | Bin 0 -> 18765 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/images/DJI.png diff --git a/assets/images/DJI.png b/assets/images/DJI.png new file mode 100644 index 0000000000000000000000000000000000000000..62ce96acff034e697b3c9863d414783d06443d1b GIT binary patch literal 18765 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

R|ZFgNobUl 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 Date: Mon, 6 Apr 2020 13:17:13 -0400 Subject: [PATCH 4/8] Update dji-drone-breakdown-for-technical-projects.md --- ...-drone-breakdown-for-technical-projects.md | 115 ++++++++++-------- 1 file changed, 65 insertions(+), 50 deletions(-) diff --git a/wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md b/wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md index 53bf5921..d08d1ebc 100644 --- a/wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md +++ b/wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md @@ -1,30 +1,79 @@ --- -# Jekyll 'Front Matter' goes here. Most are set by default, and should NOT be -# overwritten except in special circumstances. You should set the article's title: -title: Title goes here -# The 'title' is automatically displayed at the top of the page -# and used in other parts of the site. +title: DJI Drone Breakdown for Technical Projects +published: true --- -This template acts as a tutorial on writing articles for the Robotics Knowledgebase. In it we will cover article structure, basic syntax, and other useful hints. Every tutorial and article should start with a proper introduction. +DJI is one of the best selling drone companies in the world. Considering also the fact that a DJI Matrice M100 costs $3500 and a M210 costs $12000, compared to a couple hundred dollars for most other manufacturers, it is obvious that they have some of the best drones in the market. DJI’s hardware is one of the best if not the best at the writing of this article (2020). -This goes above the first subheading. The first 100 words are used as an excerpt on the Wiki's Index. No images, HTML, or special formating should be used in this section as it won't be displayed properly. +It’s a good choice for many projects, where one would prefer not to build their own drone from scratch, however, it comes with important caveats especially for professional and research projects. -If you're writing a tutorial, use this section to specify what the reader will be able to accomplish and the tools you will be using. If you're writing an article, this section should be used to encapsulate the topic covered. Use Wikipedia for inspiration on how to write a proper introduction to a topic. -In both cases, tell them what you're going to say, use the sections below to say it, then summarize at the end (with suggestions for further study). +## Controller Drawbacks +DJI drones have one of the best commercially available PID controllers along with its state of the art hardware, but for research and enterprise development users, the limitations imposed are noteworthy. After a certain depth, the software stack is locked from customization, and the controller performs much like a black box. -## First subheading -Use this section to cover important terms and information useful to completing the tutorial or understanding the topic addressed. Don't be afraid to include to other wiki entries that would be useful for what you intend to cover. Notice that there are two \#'s used for subheadings; that's the minimum. Each additional sublevel will have an added \#. It's strongly recommended that you create and work from an outline. +To be more specific, below we will look at the components involved in controlling a DJI drone. -This section covers the basic syntax and some rules of thumb for writing. +![DJI Control Scheme](assets/images/DJI.png) + +The keypoint is: +> **DJI drones *need to read from its own GPS* to satisfy its EKF needs in order to produce proper state estimations for Position and Velocity Controls.** + +DJI drones in general rely heavily on the GPS for controls, and mostly doesn’t work if GPS isn’t connected or enabled. The EKF (Extended Kalman Filter) running inside the DJI drone needs the GPS to be connected and working in order to produce the necessary state estimation which in turn is responsible for producing the ultimate RC commands (Attitude commands). + +This won't be an issue for regular users as mentioned before, but if the project relies on precise control and localisation of the drone beyond 2 meters accuracy, GPS becomes unreliable even when its health is at the max. To tackle this we can take the help of other better localisation sensors like radio beacons or even RTK GPS which usually provides centimeter level accuracy. +(Read more about RTK here) However, the EKF and position/velocity controllers will need to be replaced. + +That’s why for advanced users and researchers, there’s a hacky workaround by swapping out the DJI controller with an open source controller like the PX4. Imagine the customizability under your disposal by merging the best hardware with one of the best customizable controllers. + +This is a growing trend in the research community, with robust and plentiful community support behind the open source PX4 as well as the switch and integration with DJI drones. + + +## DJI flight modes +Below are the flight controller modes for DJI drones. + +### Positioning Mode (P-Mode) +P-Mode is the standard flight mode for the majority of pilots. In this mode, all the sensors on the aircraft are active, GPS and any available vision or infrared sensors. This results in precise hovering and automatic breaking of the aircraft when no signals are given by the remote controller. + +P-Mode requires a strong GPS signal to function and will disconnect if lost. + +### Attitude Mode (ATTI Mode) +ATTI mode will only maintain the altitude of the aircraft and does not use any GPS or visual system data. The aircraft will therefore drift and move with wind, and needs to be manually controlled. Some pilots prefer this mode as it gives near-complete control of the aircraft without interference, but is more dangerous than the P-Mode. + +Besides manual selection, the aircraft will also enter ATTI Mode if GPS signal is lost or if compass interference exists. All pilots should learn to fly in ATTI Mode as it’s likely to happen at some point during a flight, and is critical in avoiding crashes. Try it out in a large open space area with no obstacles first and get used to operating your aircraft in this mode. + +ATTI Mode is available on all aircraft however, it cannot be manually selected on the Mavic Pro range. + +### F-mode +This mode is used for running custom software stack to control the drone. It opens the controller to external interference. + + +## Drone project Tips +-Have a designated pilot for your team. +-Carry more than just one battery. +-Always have more than 2 batteries charged. +-If you can buy an extra drone, do it. Otherwise, buy 3 sets of essential parts. +-Always carry a battery warmer during winter (Can’t stress this enough) +-Add simulation to augment your project and increase productivity. +-Obtain a drone license. +Register your drone. +Before purchasing a drone, consider the Payload as well if you’re going to place sensors and processors on top of it. +Calculate the battery capacity based on the other items placed on the drone. +Charge the battery only using the original charger. +Consider the wind factor before attempting to fly. +Drones won’t operate if the battery temperature is less than a particular temperature (For DJI it’s 15 degree Celsius) +Don’t operate it when there’s an animal nearby. Things can go bad in a very short period. +Fly in an area where you’re licensed to fly. +Calibrate the drone compass every time you fly +If in P mode, make sure the GPS is fully functional. Else the drone will drift out of control. +Make sure you place the drone in the desired orientation to make sure pitching forward actually pitches forward from the pilot’s POV. +If you’re adding weight to the drone, make sure it’s balanced properly. +Make sure it’s waterproof before trying out in rain or areas close to the water body. +Make sure the right propellers are attached to the appropriate ones (CW and CCW) +Make sure to use the offset Function (Trim) if you find the controller is not perfect. +Change from P to ATTI mode when taking manual control during emergencies. -### Basic syntax -A line in between create a separate paragraph. *This is italicized.* **This is bold.** Here is [a link](/). If you want to display the URL, you can do it like this . -> This is a note. Use it to reinforce important points, especially potential show stoppers for your readers. It is also appropriate to use for long quotes from other texts. -#### Bullet points and numbered lists Here are some hints on writing (in no particular order): - Focus on application knowledge. - Write tutorials to achieve a specific outcome. @@ -51,40 +100,6 @@ Entries in the Wiki should follow this format: 5. Further Reading (relevant articles on other sites). 6. References. -#### Code snippets -There's also a lot of support for displaying code. You can do it inline like `this`. You should also use the inline code syntax for `filenames` and `ROS_node_names`. - -Larger chunks of code should use this format: -``` -def recover_msg(msg): - - // Good coders comment their code for others. - - pw = ProtocolWrapper() - - // Explanation. - - if rec_crc != calc_crc: - return None -``` -This would be a good spot further explain you code snippet. Break it down for the user so they understand what is going on. - -#### LaTex Math Support -Here is an example MathJax inline rendering \\( 1/x^{2} \\), and here is a block rendering: -\\[ \frac{1}{n^{2}} \\] - -#### Images and Video -Images and embedded video are supported. - -![Put a relevant caption here](assets/images/Hk47portrait-298x300.jpg) - -{% include video id="8P9geWwi9e0" provider="youtube" %} - -{% include video id="148982525" provider="vimeo" %} - -The video id can be found at the end of the URL. In this case, the URLs were -`https://www.youtube.com/watch?v=8P9geWwi9e0` -& `https://vimeo.com/148982525`. ## Summary Use this space to reinforce key points and to suggest next steps for your readers. From da44a30c5d1a6d63d0b4baee12a8a58586de3b53 Mon Sep 17 00:00:00 2001 From: htqcheng Date: Mon, 6 Apr 2020 13:48:51 -0400 Subject: [PATCH 5/8] Update dji-drone-breakdown-for-technical-projects.md --- ...-drone-breakdown-for-technical-projects.md | 105 +++++++----------- 1 file changed, 38 insertions(+), 67 deletions(-) diff --git a/wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md b/wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md index d08d1ebc..ab5f3277 100644 --- a/wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md +++ b/wiki/common-platforms/dji-drone-breakdown-for-technical-projects.md @@ -4,7 +4,7 @@ published: true --- DJI is one of the best selling drone companies in the world. Considering also the fact that a DJI Matrice M100 costs $3500 and a M210 costs $12000, compared to a couple hundred dollars for most other manufacturers, it is obvious that they have some of the best drones in the market. DJI’s hardware is one of the best if not the best at the writing of this article (2020). -It’s a good choice for many projects, where one would prefer not to build their own drone from scratch, however, it comes with important caveats especially for professional and research projects. +It’s a good choice for many projects where one would prefer not to build their own drone from scratch; however, it comes with important caveats especially for professional and research projects. Below we will look at its main drawback, and then give an introduction to its flight modes as well as general tips for drone projects. ## Controller Drawbacks @@ -12,10 +12,10 @@ DJI drones have one of the best commercially available PID controllers along wit To be more specific, below we will look at the components involved in controlling a DJI drone. -![DJI Control Scheme](assets/images/DJI.png) +![DJI Control Scheme](../../assets/images/DJI.png) The keypoint is: -> **DJI drones *need to read from its own GPS* to satisfy its EKF needs in order to produce proper state estimations for Position and Velocity Controls.** +> DJI drones *need to read from its own GPS* to satisfy its EKF needs in order to produce proper state estimations for Position and Velocity Controls. DJI drones in general rely heavily on the GPS for controls, and mostly doesn’t work if GPS isn’t connected or enabled. The EKF (Extended Kalman Filter) running inside the DJI drone needs the GPS to be connected and working in order to produce the necessary state estimation which in turn is responsible for producing the ultimate RC commands (Attitude commands). @@ -28,7 +28,7 @@ This is a growing trend in the research community, with robust and plentiful com ## DJI flight modes -Below are the flight controller modes for DJI drones. +Below are the flight controller modes for DJI drones. You can also read more [here](https://www.heliguy.com/blog/2017/11/08/dji-intelligent-flight-modes/). ### Positioning Mode (P-Mode) P-Mode is the standard flight mode for the majority of pilots. In this mode, all the sensors on the aircraft are active, GPS and any available vision or infrared sensors. This results in precise hovering and automatic breaking of the aircraft when no signals are given by the remote controller. @@ -47,71 +47,42 @@ This mode is used for running custom software stack to control the drone. It ope ## Drone project Tips --Have a designated pilot for your team. --Carry more than just one battery. --Always have more than 2 batteries charged. --If you can buy an extra drone, do it. Otherwise, buy 3 sets of essential parts. --Always carry a battery warmer during winter (Can’t stress this enough) --Add simulation to augment your project and increase productivity. --Obtain a drone license. -Register your drone. -Before purchasing a drone, consider the Payload as well if you’re going to place sensors and processors on top of it. -Calculate the battery capacity based on the other items placed on the drone. -Charge the battery only using the original charger. -Consider the wind factor before attempting to fly. -Drones won’t operate if the battery temperature is less than a particular temperature (For DJI it’s 15 degree Celsius) -Don’t operate it when there’s an animal nearby. Things can go bad in a very short period. -Fly in an area where you’re licensed to fly. -Calibrate the drone compass every time you fly -If in P mode, make sure the GPS is fully functional. Else the drone will drift out of control. -Make sure you place the drone in the desired orientation to make sure pitching forward actually pitches forward from the pilot’s POV. -If you’re adding weight to the drone, make sure it’s balanced properly. -Make sure it’s waterproof before trying out in rain or areas close to the water body. -Make sure the right propellers are attached to the appropriate ones (CW and CCW) -Make sure to use the offset Function (Trim) if you find the controller is not perfect. -Change from P to ATTI mode when taking manual control during emergencies. - - - - -Here are some hints on writing (in no particular order): -- Focus on application knowledge. - - Write tutorials to achieve a specific outcome. - - Relay theory in an intuitive way (especially if you initially struggled). - - It is likely that others are confused in the same way you were. They will benefit from your perspective. - - You do not need to be an expert to produce useful content. - - Document procedures as you learn them. You or others may refine them later. -- Use a professional tone. - - Be non-partisan. - - Characterize technology and practices in a way that assists the reader to make intelligent decisions. - - When in doubt, use the SVOR (Strengths, Vulnerabilities, Opportunities, and Risks) framework. - - Personal opinions have no place in the Wiki. Do not use "I." Only use "we" when referring to the contributors and editors of the Robotics Knowledgebase. You may "you" when giving instructions in tutorials. -- Use American English (for now). - - We made add support for other languages in the future. -- The Robotics Knowledgebase is still evolving. We are using Jekyll and GitHub Pages in and a novel way and are always looking for contributors' input. - -Entries in the Wiki should follow this format: -1. Excerpt introducing the entry's contents. - - Be sure to specify if it is a tutorial or an article. - - Remember that the first 100 words get used else where. A well written excerpt ensures that your entry gets read. -2. The content of your entry. -3. Summary. -4. See Also Links (relevant articles in the Wiki). -5. Further Reading (relevant articles on other sites). -6. References. +- Have a designated pilot for your team. +- Carry more than just one battery. +- Always have more than 2 batteries charged. +- If you can buy an extra drone, do it. Otherwise, buy 3 sets of essential parts. +- Always carry a battery warmer during winter (Can’t stress this enough) +- Add simulation to augment your project and increase productivity. +- Obtain a drone license. +- Register your drone. +- Before purchasing a drone, consider the Payload as well if you’re going to place sensors and processors on top of it. +- Calculate the battery capacity based on the other items placed on the drone. +- Charge the battery only using the original charger. +- Consider the wind factor before attempting to fly. +- Drones won’t operate if the battery temperature is less than a particular temperature (For DJI it’s 15 degree Celsius) +- Don’t operate it when there’s an animal nearby. Things can go bad in a very short period. +- Fly in an area where you’re licensed to fly. +- Calibrate the drone compass every time you fly +- If in P mode, make sure the GPS is fully functional. Else the drone will drift out of control. +- Make sure you place the drone in the desired orientation to make sure pitching forward actually pitches forward from the pilot’s POV. +- If you’re adding weight to the drone, make sure it’s balanced properly. +- Make sure it’s waterproof before trying out in rain or areas close to the water body. +- Make sure the right propellers are attached to the appropriate ones (CW and CCW) +- Make sure to use the offset Function (Trim) if you find the controller is not perfect. +- Change from P to ATTI mode when taking manual control during emergencies. + +## Safety Tips +Quadcopters are basically flying lawnmowers.They can be dangerous if not operated carefully. +Here are some quadcopter safety precautions to keep in mind: + +- If you’re about to crash into something, turn the throttle down to zero, so you don’t potentially destroy your quadcopter, injure somebody, or injure yourself. +- Keep your fingers away from the propellers when they’re moving. +- Unplug/take out the battery of the quad before doing any work on it. If it turns on accidentally and the propellers start spinning, you might have a tough time doing future flights with missing fingers. +- If you’re a beginner learning to fly indoors, tie the quadcopter down or surround it by a cage. ## Summary -Use this space to reinforce key points and to suggest next steps for your readers. +If you are thinking of using DJI drones for your project, either be sure to stick with their GPS, implement your own EKF and Controller, or augment their drone with a PX4 controller to take advantage of the DJI hardware. Be sure to know the three flight control modes well, and follow general and safety tips for a successful project. ## See Also: -- Links to relevant material within the Robotics Knowledgebase go here. - -## Further Reading -- Links to articles of interest outside the Wiki (that are not references) go here. - -## References -- Links to References go here. -- References should be in alphabetical order. -- References should follow IEEE format. -- If you are referencing experimental results, include it in your published report and link to it here. +- [DJI SDK Introduction](https://roboticsknowledgebase.com/wiki/common-platforms/dji-sdk/) From af97c533fcea45d7601020320711bfbbb32c764a Mon Sep 17 00:00:00 2001 From: htqcheng Date: Mon, 6 Apr 2020 13:55:57 -0400 Subject: [PATCH 6/8] Update navigation.yml --- _data/navigation.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_data/navigation.yml b/_data/navigation.yml index 832d4fb2..f3cfc882 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -33,6 +33,8 @@ wiki: - title: Common Platforms url: /wiki/common-platforms/ children: + - title: DJI Breakdown for Technical Projects + url: /wiki/common-platforms/dji-drone-breakdown-for-technical-projects/ - title: DJI SDK url: /wiki/common-platforms/dji-sdk/ - title: Pixhawk From 99bb7e8753c14688a5e7cc6608ff87685d140e04 Mon Sep 17 00:00:00 2001 From: Quentin Date: Mon, 6 Apr 2020 14:25:05 -0400 Subject: [PATCH 7/8] Flight Simulator Skeleton --- _data/navigation.yml | 2 + .../drone-flight-simulator.md | 102 ++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 wiki/common-platforms/drone-flight-simulator.md diff --git a/_data/navigation.yml b/_data/navigation.yml index f3cfc882..ddf539c1 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -33,6 +33,8 @@ wiki: - title: Common Platforms url: /wiki/common-platforms/ children: + - title: Drone Flight Simulator and Controller Basics + url: /wiki/common-platforms/drone-flight-simulator/ - title: DJI Breakdown for Technical Projects url: /wiki/common-platforms/dji-drone-breakdown-for-technical-projects/ - title: DJI SDK diff --git a/wiki/common-platforms/drone-flight-simulator.md b/wiki/common-platforms/drone-flight-simulator.md new file mode 100644 index 00000000..53bf5921 --- /dev/null +++ b/wiki/common-platforms/drone-flight-simulator.md @@ -0,0 +1,102 @@ +--- +# Jekyll 'Front Matter' goes here. Most are set by default, and should NOT be +# overwritten except in special circumstances. You should set the article's title: +title: Title goes here +# The 'title' is automatically displayed at the top of the page +# and used in other parts of the site. +--- +This template acts as a tutorial on writing articles for the Robotics Knowledgebase. In it we will cover article structure, basic syntax, and other useful hints. Every tutorial and article should start with a proper introduction. + +This goes above the first subheading. The first 100 words are used as an excerpt on the Wiki's Index. No images, HTML, or special formating should be used in this section as it won't be displayed properly. + +If you're writing a tutorial, use this section to specify what the reader will be able to accomplish and the tools you will be using. If you're writing an article, this section should be used to encapsulate the topic covered. Use Wikipedia for inspiration on how to write a proper introduction to a topic. + +In both cases, tell them what you're going to say, use the sections below to say it, then summarize at the end (with suggestions for further study). + +## First subheading +Use this section to cover important terms and information useful to completing the tutorial or understanding the topic addressed. Don't be afraid to include to other wiki entries that would be useful for what you intend to cover. Notice that there are two \#'s used for subheadings; that's the minimum. Each additional sublevel will have an added \#. It's strongly recommended that you create and work from an outline. + +This section covers the basic syntax and some rules of thumb for writing. + +### Basic syntax +A line in between create a separate paragraph. *This is italicized.* **This is bold.** Here is [a link](/). If you want to display the URL, you can do it like this . + +> This is a note. Use it to reinforce important points, especially potential show stoppers for your readers. It is also appropriate to use for long quotes from other texts. + + +#### Bullet points and numbered lists +Here are some hints on writing (in no particular order): +- Focus on application knowledge. + - Write tutorials to achieve a specific outcome. + - Relay theory in an intuitive way (especially if you initially struggled). + - It is likely that others are confused in the same way you were. They will benefit from your perspective. + - You do not need to be an expert to produce useful content. + - Document procedures as you learn them. You or others may refine them later. +- Use a professional tone. + - Be non-partisan. + - Characterize technology and practices in a way that assists the reader to make intelligent decisions. + - When in doubt, use the SVOR (Strengths, Vulnerabilities, Opportunities, and Risks) framework. + - Personal opinions have no place in the Wiki. Do not use "I." Only use "we" when referring to the contributors and editors of the Robotics Knowledgebase. You may "you" when giving instructions in tutorials. +- Use American English (for now). + - We made add support for other languages in the future. +- The Robotics Knowledgebase is still evolving. We are using Jekyll and GitHub Pages in and a novel way and are always looking for contributors' input. + +Entries in the Wiki should follow this format: +1. Excerpt introducing the entry's contents. + - Be sure to specify if it is a tutorial or an article. + - Remember that the first 100 words get used else where. A well written excerpt ensures that your entry gets read. +2. The content of your entry. +3. Summary. +4. See Also Links (relevant articles in the Wiki). +5. Further Reading (relevant articles on other sites). +6. References. + +#### Code snippets +There's also a lot of support for displaying code. You can do it inline like `this`. You should also use the inline code syntax for `filenames` and `ROS_node_names`. + +Larger chunks of code should use this format: +``` +def recover_msg(msg): + + // Good coders comment their code for others. + + pw = ProtocolWrapper() + + // Explanation. + + if rec_crc != calc_crc: + return None +``` +This would be a good spot further explain you code snippet. Break it down for the user so they understand what is going on. + +#### LaTex Math Support +Here is an example MathJax inline rendering \\( 1/x^{2} \\), and here is a block rendering: +\\[ \frac{1}{n^{2}} \\] + +#### Images and Video +Images and embedded video are supported. + +![Put a relevant caption here](assets/images/Hk47portrait-298x300.jpg) + +{% include video id="8P9geWwi9e0" provider="youtube" %} + +{% include video id="148982525" provider="vimeo" %} + +The video id can be found at the end of the URL. In this case, the URLs were +`https://www.youtube.com/watch?v=8P9geWwi9e0` +& `https://vimeo.com/148982525`. + +## Summary +Use this space to reinforce key points and to suggest next steps for your readers. + +## See Also: +- Links to relevant material within the Robotics Knowledgebase go here. + +## Further Reading +- Links to articles of interest outside the Wiki (that are not references) go here. + +## References +- Links to References go here. +- References should be in alphabetical order. +- References should follow IEEE format. +- If you are referencing experimental results, include it in your published report and link to it here. From 3e834e9e23ce13de35c4647c57c6a87d8abb5695 Mon Sep 17 00:00:00 2001 From: Quentin Date: Mon, 6 Apr 2020 15:13:25 -0400 Subject: [PATCH 8/8] Save Flight Simulator Entry for the future. --- _data/navigation.yml | 2 - .../drone-flight-simulator.md | 102 ------------------ 2 files changed, 104 deletions(-) delete mode 100644 wiki/common-platforms/drone-flight-simulator.md diff --git a/_data/navigation.yml b/_data/navigation.yml index ddf539c1..f3cfc882 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -33,8 +33,6 @@ wiki: - title: Common Platforms url: /wiki/common-platforms/ children: - - title: Drone Flight Simulator and Controller Basics - url: /wiki/common-platforms/drone-flight-simulator/ - title: DJI Breakdown for Technical Projects url: /wiki/common-platforms/dji-drone-breakdown-for-technical-projects/ - title: DJI SDK diff --git a/wiki/common-platforms/drone-flight-simulator.md b/wiki/common-platforms/drone-flight-simulator.md deleted file mode 100644 index 53bf5921..00000000 --- a/wiki/common-platforms/drone-flight-simulator.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -# Jekyll 'Front Matter' goes here. Most are set by default, and should NOT be -# overwritten except in special circumstances. You should set the article's title: -title: Title goes here -# The 'title' is automatically displayed at the top of the page -# and used in other parts of the site. ---- -This template acts as a tutorial on writing articles for the Robotics Knowledgebase. In it we will cover article structure, basic syntax, and other useful hints. Every tutorial and article should start with a proper introduction. - -This goes above the first subheading. The first 100 words are used as an excerpt on the Wiki's Index. No images, HTML, or special formating should be used in this section as it won't be displayed properly. - -If you're writing a tutorial, use this section to specify what the reader will be able to accomplish and the tools you will be using. If you're writing an article, this section should be used to encapsulate the topic covered. Use Wikipedia for inspiration on how to write a proper introduction to a topic. - -In both cases, tell them what you're going to say, use the sections below to say it, then summarize at the end (with suggestions for further study). - -## First subheading -Use this section to cover important terms and information useful to completing the tutorial or understanding the topic addressed. Don't be afraid to include to other wiki entries that would be useful for what you intend to cover. Notice that there are two \#'s used for subheadings; that's the minimum. Each additional sublevel will have an added \#. It's strongly recommended that you create and work from an outline. - -This section covers the basic syntax and some rules of thumb for writing. - -### Basic syntax -A line in between create a separate paragraph. *This is italicized.* **This is bold.** Here is [a link](/). If you want to display the URL, you can do it like this . - -> This is a note. Use it to reinforce important points, especially potential show stoppers for your readers. It is also appropriate to use for long quotes from other texts. - - -#### Bullet points and numbered lists -Here are some hints on writing (in no particular order): -- Focus on application knowledge. - - Write tutorials to achieve a specific outcome. - - Relay theory in an intuitive way (especially if you initially struggled). - - It is likely that others are confused in the same way you were. They will benefit from your perspective. - - You do not need to be an expert to produce useful content. - - Document procedures as you learn them. You or others may refine them later. -- Use a professional tone. - - Be non-partisan. - - Characterize technology and practices in a way that assists the reader to make intelligent decisions. - - When in doubt, use the SVOR (Strengths, Vulnerabilities, Opportunities, and Risks) framework. - - Personal opinions have no place in the Wiki. Do not use "I." Only use "we" when referring to the contributors and editors of the Robotics Knowledgebase. You may "you" when giving instructions in tutorials. -- Use American English (for now). - - We made add support for other languages in the future. -- The Robotics Knowledgebase is still evolving. We are using Jekyll and GitHub Pages in and a novel way and are always looking for contributors' input. - -Entries in the Wiki should follow this format: -1. Excerpt introducing the entry's contents. - - Be sure to specify if it is a tutorial or an article. - - Remember that the first 100 words get used else where. A well written excerpt ensures that your entry gets read. -2. The content of your entry. -3. Summary. -4. See Also Links (relevant articles in the Wiki). -5. Further Reading (relevant articles on other sites). -6. References. - -#### Code snippets -There's also a lot of support for displaying code. You can do it inline like `this`. You should also use the inline code syntax for `filenames` and `ROS_node_names`. - -Larger chunks of code should use this format: -``` -def recover_msg(msg): - - // Good coders comment their code for others. - - pw = ProtocolWrapper() - - // Explanation. - - if rec_crc != calc_crc: - return None -``` -This would be a good spot further explain you code snippet. Break it down for the user so they understand what is going on. - -#### LaTex Math Support -Here is an example MathJax inline rendering \\( 1/x^{2} \\), and here is a block rendering: -\\[ \frac{1}{n^{2}} \\] - -#### Images and Video -Images and embedded video are supported. - -![Put a relevant caption here](assets/images/Hk47portrait-298x300.jpg) - -{% include video id="8P9geWwi9e0" provider="youtube" %} - -{% include video id="148982525" provider="vimeo" %} - -The video id can be found at the end of the URL. In this case, the URLs were -`https://www.youtube.com/watch?v=8P9geWwi9e0` -& `https://vimeo.com/148982525`. - -## Summary -Use this space to reinforce key points and to suggest next steps for your readers. - -## See Also: -- Links to relevant material within the Robotics Knowledgebase go here. - -## Further Reading -- Links to articles of interest outside the Wiki (that are not references) go here. - -## References -- Links to References go here. -- References should be in alphabetical order. -- References should follow IEEE format. -- If you are referencing experimental results, include it in your published report and link to it here.