Group 4: ASD – Sprint 8


Date: 10.10.2019 – 17.10.2019

This week we have been working on multiple sub-systems in order to progress and achieve as much as possible. We made some mechanical changes to improve the drone design, and we have done a lot of testing to ensure that the components are working as expected.

The economical budget has also been updated, since we have ordered a few new components and we made some changes since last time. We have received all of the important components that we were depending on, even though we are still waiting on some screws and battery plugs to arrive. These small components will hopefully arrive by next week.

Economic costs

We have started working on the GUI that controls the drone. So far we have only been communicating with the nodes using a command-line interface, which works fine, but the main purpose of our project is to remotely communicate with the drone using a graphical user interface. An indicator was added to the GUI which indicates which state the gear is in: whether it’s down or up. A few buttons were added as well to control it directly from GUI.

We have progressed with the landing gear of the drone as well. We had some trouble last week with the GPIO pins on the Jetson Nano, as we then decided to use an Arduino to control the landing feet. We had to do some research to accomplish this, in order to implement an Arduino microcontroller as a ROS node and have it communicate with the Nvidia Jetson Nano and the control center. ROSSerial is a library for many embedded platforms which allows your embedded devices to send and receive ROS messages, acting like it’s own node. We decided to migrate to that on the Arduino instead of doing the serial port interface ourselves. Turns out that was a mistake. It worked just fine right after migrating to it, but when extending the code later it stopped working. The link between the Arduino and the computer constantly goes out of sync for some reason, which we could not find a reason for. Sometimes, even this doesn’t work, where the flashed Arduino and the node interfacing with it will be unable to talk to the Arduino over the serial connection. Setting the baud rate correctly on both ends fails to resolve the issue as well.

As a result, the landing gear driver has to be moved back to how it used to be: our own ROS node communicating with the Arduino over our own protocol. This requires some extra work, but we are skilled enough to handle it ourselves and by doing this we have full control of what’s happening and whatnot.

Last week we ensured that the motors and speed controllers are working properly and as expected. This was quite important to accomplish before we could continue to the next step, which is integrating the flight controller. We are using an advanced flight controller developed by DJI, which contains a lot of functionality and has many development possibilities. It took quite some time to get used to the flight controller and to get the firmware up-to-date. The firmware that was installed on the flight controller was very old, so we had to update it in stages a couple of times to the latest version available. We are using a program called Naza-M Assistant Software to control our flight controller, and this is where we will calibrate and monitor our motors as well. The program is quite advanced, so we have spent some time playing with its functionalities to understand how it works. During the next sprint we will have the flight controller fully ready and wired up with the other components, so be prepared for another video demonstration soon.

When it comes to the mechanical part of the project, we have been through a bit of a breakthrough. We have been 3D-printing most of the parts that we need and made a second prototype in woodwork to fix any mistakes we have made in the design. We saw a few issues in regards of making the Jetson Nano fit into the holes in the main body of the drone and could easily fix it in Solidworks as we went on. We also had a little issue with the communication between us, which made the placement of the Arduino Nano a little hard to get right, but we are pretty sure we can fix this with standoffs which makes space for the pins on the Arduino board.

We have redesigned the motor-chassis as well, in order to fit the speed controller below the drone motor. We had to do this since the cables of the motor are pretty short, so we needed the speed controller to be as close to the motor as possible. Therefore we had to make the chassis underneath the motor larger in order to fit the speed controller. We also had a problem when we were trying to figure out how to fit the battery, which is very large and heavy. We solved this by making a second floor which only consist of the battery which is making the drone easy to recharge and also makes it easily accessible to the other components. This second floor would also make it easier for us to place the battery wherever we wanted, and because it is quite heavy, it makes most sense to put the battery in the middle to prevent the drone to become unstable. Apart from that we have been focusing on cutting out unnecessary material to try to make the drone as light as possible.

Redesign of speed controllers

We have made a new prototype of the drone using a lasercutter, as the old prototype model was quite outdated due to the recent iterations of updates and improvements. This prototype includes the new compartment that we made for the battery, as we increased the drone height a little to easily fit the components inside. We will most likely make some more updates during the next couple of sprints, as there is always something we can improve. We are very happy with the design so far and we have made numerous improvements since the initial design of the drone, which shows that we constantly handle and overcome obstacles that come in our way.

Redesign of battery-mount

Most of the hardware-related work is done and we are just making some small tweaks every now and then. As soon as the flight controller is fully integrated and attached to the other components, we can go back to the machine learning implementation and have this up and running during the next couple of weeks. We have spent a fair amount of time getting the components and hardware-related things to work properly, and now we need to ensure that the software corresponds to these components in order to have an autonomous drone. This will be our focus area during the next sprints, as we are getting closer to the deadline of the project.


Leave a Reply