Kabir's Posts (11)

Sort by
Developer

With all the talk of integrating drones into civilian airspace, there is need for better safety and GPS-agnostic navigation methods - visual navigation and obstacle avoidance is paramount to integrating drones (micro-aerial-vehicles, MAVs) into our cities and elsewhere, because external navigation aids cannot be relied on in every situation, and neither can pilot experience.

Visual navigation is the solution to these challenges, and we present an aerial robot designed from scratch and ground up to meet these requirements. We demonstrate several facets of the system, including visual-inertial SLAM for state estimation, dense realtime volumetric mapping, obstacle avoidance and continuous path-planning.

In search of better extensibility, and better fitness for the research goals I had pitted myself towards, I started working as a part of the open-source PX4 Autopilot development community in 2013. Aware of the limitations in the field, I started Artemis, my research project on visual navigation for aerial vehicles in 2014. Today, I'm happy to present our intermediary (and satisfying!) results.

At its very core, Project Artemis is a research project which aims to provide improved navigation solutions for UAVs.

Screenshot-from-2016-03-18-071002.png?width=973

All of the Artemis MAVs follow the same basic, distributed  system architecture. There is a high-level onboard computer, and a low-level embedded flight controller, typically a PX4 autopilot board, or similar derivative. The middleware of choice on the high-level companion computer is ROS (Robot Operating System) and the PX4 Middleware on the deeply embedded controller.


Software

Visual Navigation

Multiple cameras provide proprioceptive information about the environment, used for mapping and localisation. Forward stereo cameras are used to compute depth images in realtime.

disparity

All cameras are synchronised in time with respect to each other, and to the IMU (Inertial Measurement Unit) of the flight controller. Depth images are inserted into a volumetric mapping framework based on an Octree representation, and a 3D map of the environment is built incrementally onboard the vehicle.

3689686568?profile=original

We also use a SLAM (Simultaneous Localisation and Mapping) technique on our robot. The system continuously constructs a sparse map of the environment which is optimised in the background. Visual SLAM is globally consistent, and centimetre-level accurate unlike GPS, and works both indoors and outdoors. Tight fusion with time-synchronised inertial measurements greatly increases robustness and accuracy.

mapping

State Estimation

image.09Q5DY

The system is designed to navigate using all available sensors in the environment, which includes both GPS and vision outdoors and pure vision indoors. Since sensor availability is not guaranteed, a modular sensor fusion approach using a hybrid Kalman filter with fault detection is used to maintain a robust state estimate. Motivation to use all the information from all the sensors is that even if a particular subset or module were to fail, the overall system performance would not be compromised.

Obstacle Avoidance

The global volumetric map is used to continuously compute a collision-free trajectory for the vehicle. In operator-assist mode, the motion planner only intervenes if the operator’s high-level position commands could lead to a possible collision. In autonomous modes, the planner computes optimal trajectories based on a next-best-view analysis in order to optimise 3D reconstruction. The planner sends its commands to the minimum-snap trajectory controller running on the low-level flight controller, which computes motor outputs.

It is important to point out that this can be achieved *today* with open-source systems, albeit with some perseverance and experience. Better documentation on how to achieve a relatively close reproduction of our results is underway. It will be made available soon via the UASys website (http://www.uasys.io/research) and the PX4 Autopilot developer wiki (http://dev.px4.io)

Our open-sourced portions of the software stack are available here : www.github.com/ProjectArtemis

I will also be presenting a talk on Project Artemis and our software stack at Embedded Linux Conference at San Diego, CA. Please attend if you'd like to get an in-depth view into the system's workings! The presentation will aim to accelerate the introduction to the current state of the aerial vehicle market, and the several limitations that it faces due to limited technological breakthroughs in terms of consumer systems. Newcomers and existing developers / system integrators will get a chance to understand these limitations, and what embedded Linux systems can do for the field, including but not limited to visual (GPS-denied) navigation, mapping, obstacle avoidance and high-definition video streaming. The talk also aims to encourage the current open-source development communities, and how they can contribute better to improving the current state-of-the-art, be it with cross-middleware interoperability, modular and reusable software design or inexpensive and extensible hardware design.

Slides are available here : http://events.linuxfoundation.org/sites/events/files/slides/artemis_elc16_final.pdf

Learn more about my session at http://sched.co/6DAs and register to attend at http://bit.ly/1ZuUtiu

3689686609?profile=original

3689686489?profile=original

Stay updated! -
Wesite : http://www.uasys.io
GitHub : https://www.github.com/mhkabir
Instagram : https://www.instagram.com/uasys/
Twitter : https://twitter.com/UASysOfficial
Facebook : https://www.facebook.com/UASys

Cheers,

Kabir

Read more…
Developer

DSC_7054.jpg

Been some time since I've posted anything, since I've been working on this really big dream project of mine, a quadcopter which can fly for around 60 mins , provide a HD video downlink and have a really powerful flight controller.

I had to consider many things to acheive my goal, especially :

The Copter :

Long flight times meant I needed to have a lightweight copter with large props and low kV motors. EndOfDay's thread (http://www.rcgroups.com/forums/showthread.php?t=1880665) was a wealth of information and I took the time to go through each and every page to gather knowledge.

I decided on this setup :

  • MultiStar 4108 - 380kV motors 
  • 16x5.5 props
  • AfroESC 12A
  • 17000mAh 4S5P NCR18650B battery pack
  • ~1900g AUW

IMG_6124.jpg

IMG_6122.jpg

The Lynxpilot Hybrid FC :

Next came the flight controller. I had been experimenting for many days with a pcDuino , a 1GHz board with an ARM SoC which fitted great with my purposes. But with it came the problems of running timing-intensive operations on Linux. Due to the non-realtime nature of Linux this was especially problematic. To work around this I patched the 'linux-sunxi' kernel sources with a RT-PREEMPT patch and got the realtime kernel running on my board. This took a long time since the kernel sources were hardly documented and also obsolete to some extent.

IMG_6111.jpg

Testing some code with an old APM

The software running on the board was my next consideration , since I couldn't decide whether to port AP_HAL over to it or write my very own. In the end I decided to write my own. Now, I already had a spare APM 2.5 and i thought, why not use it as a slave for a robust autopilot system. I went ahead on this angle and ended up with running the computationally intensive algorithms (EKF , etc.) on the pcDuino while using the APM to get raw sensor data and R/C inputs and shoot it over a UART to the pcDuino. I was inspired by El Gallinazo's work (http://gallinazo.flightgear.org/) to do this.

IMG_6129.jpg

Onboard integration

I had decided to use the APM for controlling the ESCs too, but I got some AfroESCs which are awesome and allow me to use i2c to control the motors. I ported a firmware patch (https://github.com/balrog-kun/tgy) to the latest version of SimonK which allows me to use the ESCs to get motor RPM feedback back to the flight controller allowing for major improvements in stability. My code is yet to implement this as of now as I still haven't tested the firmware on the Afros (ordered some from HK). I presently use a very limited set of Mavlink parameters for telemetry, but will expand this in the future. Telemetry will be run via the same radio as below - the Rocket M5

High-Definition FPV :

My third and last wish for my project was to have a high definition digital video downlink as I was really frustrated with the low-quality analog we use presently.

I've been successful in streaming low-latency video over my wifi network using a crappy webcam using the pcDuino, so I decided to expand the same system for the downlink as it had worked well for me. I have decided to go with the following equipment for the downlink as seen in this post : http://diydrones.com/profiles/blog/show?id=705844%3ABlogPost%3A1433488

3689583561?profile=original

  • 2 x Ubiquiti Rocket M5's - Air side one will be decased and carrying 2x cloverleaf antennas [lighter that a Bullet with a heavy N-Type connector at 85 grams]
  • 1 x Logitech C920 webcam - has hardware H.264 encoding which means the pcDuino can just route packets without any computation required for encoding the video stream 

Present Status:

Presently I have finished my custom frame which allows for large props and mostly unobstructed camera views. The motors and ESCs are on their way from HobbyKing. I am yet to buy the 20 NCR18650B cells required for making the battery pack.

Flight control software is very very beta, more work needs to be done. It can stabilize a quad , altitude hold and position hold (with inertial data !! ) presently. I had a simple hover test with my SFC quad , and basics seem to be OK. I learnt a lot from the ArduCopter code and am slowly implementing features into my own. PIDs will need to be tuned to suit my large quad , but that comes later. A simple command-line interface allows me to change params. I had started off with Python , but switched to C++ as I could reuse lots of code and use the Eigen library. The EKF should give exceptionally good performance.

The HD FPV part has been on pause due to lack of funds , since I'm a 16 year old student doing this with saved up pocket money, and really don't have the funds for buying the Rockets + Webcam. The software setup required to stream HD-quality video over UDP is ready, but I cannot proceed without hardware.

How YOU can help :

I've been saving up for this for a long time and most of my funds have gone on the copter itself. I would really be grateful if people would support my project with some small contribution as that could mean I can go ahead with the whole system. If you have any parts or stuff which you can spare, it would be a great help. I cannot go ahead at this stage without some sponsors / contributors. I am willing to work in exchange for help.

I still need to get the Rocket M5s , the Logitech c920 and the 20x NCR18650b cells . It would be great if anyone could help out on these angles. This is going to be my last project before college (university for those of you in other parts of the world) so I'd really like it to be successful.

The work done till now wouldn't have been possible without :

Wayne - Long time supporter and friend.

Chris - Gave me my first APM which I'm using here.

Jani - Helped me with the GPS , MinimOSD , etc. 

Mr. Mohtashim (www.tutorialspoint.com) - Huge supporter, has helped with a lot of hardware

Mr. Steve Taylor - Donated frame arms and some electronics.

RCBazaar.com - Helped me with some hardware like radios , etc.

Faheem Adam (www.adamengineering.co.za) - Helped with a nice donation

You can PM me or write to me at mhkabir98@gmail.com for information or if you'd like to help out. ;)

In the future if I'm successful with this, I may sell complete HD FPV kits which would be just plug and play so that anyone could take advantage of present-day systems and taking the 'guess' out of it at the same time. The LynxPilot flight controller though a baby presently, could grow up and become a contender in the world of high-performance autopilots.

Please follow my blog : cpvrc.wordpress.com for updates or keep checking back here at DIYD :)

Thanks for reading!!!

Kabir

Read more…
Developer

FPV at (my) St. Xaviers School on my MultiWii quad



A short video I made using my MultiWii quad flying at my school today morning :) I'm 15, so any opinions are appreciated. Please watch in HD for best effect. Hope you enjoy!!!!!! Shot on a windy day,before a storm so I had fight with the controls a bit.


Setup :

  • DIY frame with alu arms (TBS Disco style)
  • Self-made Multiwii controller
  • MultiStar  30A Opto ESCs
  • 950kV Turnigy motors
  • 10x 4.5 props
  • 3S 4500mah LiPo
  • HackHD camera
  • 400mW 5.8Ghz FPV Tx
  • Turnigy 9x with monitor


Please give your opinions Cheesy I fried my APM 2.5 due to freak BEC failure hence my move towards MultiWii temporarily. If anyone has a spare APM, and is willing to help me out, please let me know. 

Read more…
Developer

Ardustation MegaUSB project - Developers help needed

1B.jpg?width=400

I got hold of a Arduino Mega ADK clone , which has a MAX 3421E USB host interface hardwired on the board. Due to some recent code changes, I can now use it with the USB Host Shield library. I have been successful in interfacing Logitech joystick to it and am getting readings on the joystick axes :)

With the arrival of ardustation-ii and ardustation-mega, integration of joystick control using the Mavlink R/C override function could be easily accomplished and easy control like a R/C controller could be achieved without lugging a laptop around.

Presently, the example HID joystick code that comes with the USB Host shield library gives hexadecimal numbers with changes to the joystick axes. I'd like to combine this with Ardustation and a 3DR radio for a small GCS with joystick control.

I am not that good a coder, so I need some developers like Tridge to help me out. I have all the hardware, and just need help in coding. I could help in troubleshooting all code on my side with the H/W. Alternatively you can just buy a USB host shield(cumbersome) and attach it to a Arduino. I checked out Mavlink page and the Mission Planner development wiki, but not much info on the R/C override.

I only need a Xbee 'air' adapter and a 12x6 LCD (not available in India)or a GLCD for the full ardustation setup for testing. If anybody has any old/extra, please PM me.

If you want to help/support this project and think you would be benefited by it, just leave a comment below with your opinion :)

Kabir

Read more…
Developer

IMG_5633.JPG?dl=1&width=500

Hi Guys,

A small project I have been working on. Its a cheap quad-copter frame made out of 6mm plywood and fiberglass. I was thinking of how to make a quad for as cheap as possible, when I thought of wood. I already had a 3mm fiberglass sheet, so I drew out the center plate and sent it to get machined.

Next I drew out some arms on some scrap plywood and sent that to get machined. All in all, machining cost was $0.06. Collected the machined parts the next day and assembled within an hour. Added a landing skid from a helicopter and mounted a Freeduino Mega ADK. 

IMG_5631.JPG?dl=1&width=450

I'll use the Mega as a Flight Controller. A new FreeIMU 0.4.3 board form Fabio should be on its way soon. Planning on running ArduPiratesNG on the Mega - this is gonna be the cheapest platform capable of running Arducopter probably!

If you notice, my Mega is an ADK, which has a USB host capable of communication with Android devices. Thus I have the choice to add looooooots of features later.

IMG_5639.JPG?dl=1&width=450

Motor/Props/ESCs not thought of as of yet, so need your opinions here. Battery will be a 3S 2200mAh 30C Turnigy battery unless anyone here provides me with other options*hint*

IMG_5629.JPG?dl=1&width=450

There seems to be minor arm-flex, expected with plywood, but the wood itself is good (no filler material in between sheets). Tell me what you think about this. If you guys like it, I'll do a post on RCGroups as well.

I am a 14 year old 'kid' so any advice is welcome (stuff like "give the kid a prize!" is also welcome!)

Additional Pics:

IMG_5641.JPG?dl=1&width=450

IMG_5642.JPG?dl=1&width=450

IMG_5643.JPG?dl=1&width=450

Kabir

Read more…
Developer

Good Glider Platform for APM-- NEED ADVICE

zephyrarf-main.jpg?width=500

UPDATE : I have discarded the Zephyr V70 option due to input from you guys . I am now torn between these :

----------------------------------------------------------------------------------------------------------------------------

Hi Guys,

I had been checking out the Zephyr v70 V-Tail Glider as an APM platform, but am not sure if all the GPS and telemetry, most importantly the APM 1 board with Oilpan will fit in it.

I am planning on running it on a 3S 2200mAh LiPo, so I get some extra space there, but the APM seems awfully large and if it fits, it will be a tight fit with the R/C Rx.

If someone has the Zephyr, it being such a popular glider, I would like to know their opinion.

Another question - does the current ArduPlane code support V-Tail mixing? Its probably there, but needs to be enabled in the code manually???

Product Page: http://www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=22703

Kabir

Read more…
Developer

FreePilot Pre-Maiden Status

IMG_5625.JPG?dl=1

Hi Guys,

Its been some time since I gave any public updates to you people (contributors have got weeklies) on the status of the FreePilot project. Now as the project nears completion, I am posting photos and the current status for you people to comment on , advise, criticize , etc. I have run into some issues, most of which have been solved, but still need some help on the others.

Status:

  • All body work finished except canopy.
  • Everything bench tested.
  • Some ESC issues (summarized below)
  • XBee joystick control perfected.
  • Latest ArduPlane 2.5 (with modifications) loaded.
  • Battery and voltage sensor connected to APM on-bench.
  • Airelons tested to breaking point (still works perfectly)
  • Custom control rods attached (flexible plastic)
  • On the inside, spruce spars in original design replaced with fiberglass.
  • Everything else to get it flying.

To Do and Issues:

  • Make the canopy (almost finished)
  • Fix ESC heating issues: The 20A JDrones ESC is overheating on bench, without the motor running and just APM drawing from the BEC. My battery is a 11.1v 25C 2200mAh Turnigy pack, which should be suited for the ESC, but it still heats up, even after adding a beefy heat-sink on top. The MOSFETs on the bottom cannot be touched after a minute. I think I need a beefier ESC.

Photos:

IMG_5604.JPG?dl=1&width=450

Heat-sinked ESC (which still gets too hot)

IMG_5606.JPG?dl=1&width=450

 

Just-arrived Turnigy LiPo recessed in the body

IMG_5611.JPG?dl=1&width=450

APM, GPS and Xbee recessed in the body

IMG_5601.JPG?dl=1&width=450

Servo connected to right aileron using my 'specialized' push rods

IMG_5597.JPG?dl=1&width=450

Top View without Canopy

Let me know what you guys think, whether it will it fly or not, etc. 

If you want a photo-log of the entire project, its down below :

Parts Arrived (courtesy of Martin)

Electronics Assembled

Airframe 1

Airframe 2

Battery and Charger (courtesy of Sandesh)

Pre-Maiden

If anyone is interested in contributing towards the advancement of FreePilot please PM me!

This project would not have been possible without the generous contribution of :

  • Sandesh (for batteries and charger)
  • Martin (for APM, servos, Xbees, Motor, ESC and more)
  • Crasher (ESC and motors pledged)
  • Jaron (for airframe design which I have modified to suit my needs)
Read more…
Developer

[Idea] PiStation : A RaspberryPi based GCS

300px-RaspberryPi.jpg

Hi Guys,

I had been planning on designing an Arduino Mega based GCS for my new UAV running on an APM 1 donated by Martin (from BuildYourOwnDrone). A while back, I had discovered the ARM-based RaspberryPi and for $25, I had something more powerful and capable than a Mega, not to mention its other functionalites. I began to think of designing a Raspberry Pi based GCS as a replacement for the laptop I have to lug around.

It could have a seven-inch touchscreeen, an Xbee / 3DR Radio connected via USB / directly to the Pi's 3.3v UART. I primarily use an Extreme 3D Pro joystick for flying, so the Pi makes sense as it has a direct USB port (see below) for connecting the joystick, eliminating the laptop.

raspi_blue_white.png

Some work would have to be done to port over Mission Planner to run natively on Linux and use the hardware UART for telemetry(or we could use a USB hub to multiplex the Xbee and joystick). Another advantage is that we can run the Pi off a Lipo and put the entire GCS into a tablet-sized box for easy use!

At the moment I do not have the adequate funds to get a Pi, and it will have to wait till December, but just sharing my idea so that interested people can give more ideas and generally get work started.

Materials needed for a PiStation (list may be missing some items):

  • 1x Raspberry Pi  
  • 1x XtreamBee Adaptor / 3DR (USB FTDI or direct UART connection)
  • 1x Xbee PRO / 3DR Radio (Assuming you already have one on the drone for telemetry)
  • 1x LiPo pack
  • 1x 7-inch display with a touchscreen overlay
  • A waterproof housing for packing everything into

Thats about it. May have missed some things, I'll add to the list if I remember. please comment on what your opinion is. Healthy criticism is welcome!

Kabir

Read more…
Developer

a3088719-168-Intermezzo-100-A-Front.jpg?width=500

(Image linked form Rc Groups)

 

Hi Guys,

This is my second blog post on my project to design a drone from scratch. The previous post did its work and served its purpose for crowdsourcing the required electronics. Martin(Distributor)of Build Your Own Drone gifted me a whole lot of parts i.e a full APM 1 setup and Motors,Props and XBees and it is with these parts I started building the drone.

Airframe:

I had chosen to go with a KlineFogleman airfoil design, and found Jaron's RCgroups blog. For the time being, my aircraft will be a clone of his Intermezzo 100. Since Jaron has been kind enough to provide the DXF files for laser cutting, I had hoped that would get it lasercut locally.

Unfortunately, I haven't been able to find any laser cutters here in Kolkata and am hoping that someone who has a CNC and a supply of Depron,plywood etc. will be able to lasercut the template and send it to me(to India). I know that its a bit of a steep request, but its the only way. If you have a CNC and access to Depron and plywood,etc. please help me!

Electronics:

The current electronics are a stock APM setup, with the exeption of R/C electronics as I will be controlling it using a joystick and XBees.

Read more…
Developer

New: Air Pro Ion HD Video Camera for FPV

ION Air Pro WiFi

I found this HD camera on the net today, and it seems to be the perfect alternative to the GoPro, as it is lighter and has a smaller size, which could be important in terms of micro-quads, etc..

Its smaller than the GoPro HD Hero, at 4 inches long and half inches across and weighing in at 4.5 oz, it is a  truly ultralight HD videocam with the added bonus that it looks the part of "Eye in The Sky"

There are outputs for HD video, so just hook it up to a FPV transmitter and you are good to go! MicroSD cards are supported and you can record videos directly, even without an FPV setup. Beneath the bubble-shape front of the camera there is a 170-degree wide-angle lens which can capture video along with 5-megapixel HD stills.

The on-board battery is clamed to be good to upto 4 hours of 1080p recording, and it can be connected via USB to a computer to download the photos or charge the battery.

Another version, with WiFi,is also capable of steaming video to your iDevice/ Android device ,while the iPhone/Android phone,etc. acts as a controller for the camera. (Think PhoneDrone with this camera!!!)

At $230, without any accessories, I think its a pretty good deal as it is extremely light and small, with is infact a big deciding factor for me, as I design micro-quads only.

More details at their website, and be sure to check out the other models as well!!

Air Pro ION

Read more…
Developer

freepilot.png

 

I want to share my journey of designing a drone in India, start to finish, hopefully for cheap and mainly built from recycled items to keep the costs down.

I started this project as a free-time project, but I would like to carry it on as a mainstream project with help from you guys.

My aim is to keep the costs down as I am only 13 years old and its a bit difficult for me to spend a lot of money on shipping,etc.

Plans:

Read more…