Before summer started I left Andruino as a work in progress. I was able to achieve active communication between my phone and the microcontroller but the system was very distinct from RoCo and not easy to use at all. This quarter my focus will be on improving the Android app and making it more integrated with the RoCo interface allowing the user to modify the app and the functionalities of the robot at will.

The following is my project proposal for this quarter:

Project Proposal: Android RoCo Integration

Big Picture:

The goal that this research path is attempting to achieve is to help introduce robots and automated systems to a larger number of people who may not have the resources or technical expertise necessary to build commonly complex and expensive robots. Robotics is a growing field and I genuinely believe that robots will be central to people’s lives in the future. Be it by replacing monotonous and repetitive jobs, by providing assistance to people in need of aid or by operating in dangerous environments, robots are going to drastically change our way of life. Currently the design and operation of robots is limited to research labs and big companies because the average person doesn’t have the equipment or the knowledge necessary. In order to solve this problem it is then necessary to make the design and production of robots both cheaper and simpler. My work will focus on the latter, by making it easier for people to produce and operate their robots by creating an uncomplicated environment implementing a modular design system. There is a lot of interest in the general population for the possibility to create their own robots and if given the means it is very possible that people will be attracted by the possibilities that they open up.

Specific Project Scope:

In order to create autonomous robots, it is necessary to add sensors such as accelerometers, gyroscopes, cameras, etc. that allow the robot to sense its environment and react accordingly. It is often difficult for the average person to know what sensors he should get, where they should get them from and how they need to be connected and implemented. One thing that a lot of people have though is a smartphone. Modern smartphones come with multiple sensors. My Samsung Galaxy S7 edge for example has an accelerometer, a gyroscope, a microphone, and two cameras as well as communication modules such as Wi-Fi and Bluetooth transmitters. It would be much easier for people to be able to just plug in their phone into the robot and have the phone provide all the necessary sensing devices for the robot. This would remove the need for the user to buy third party components which can be expensive, incompatible or hard to use, significantly simplifying the design process. To do this, I built an android app that allows a smartphone to interface with a microcontroller and send data collected from its sensors to generate an appropriate response on the microcontroller. My goal this quarter is to make the app easier to use and more closely integrated with the RoCo interface by adding smartphone components to RoCo and by making it possible to generate different versions of the app depending on the user’s needs.

Background:

There haven’t been too many project that allow users to easily modify the code and mechanical parts of their robot while also integrating it with a phone. There are some commercial products, like Romo, that have pre-built apps and chassis but do not leave any room for creativity to the user. I was able to find examples of personal projects that people have created that integrate a phone with a microcontroller. One example would be the smartphone robot by cotsbots which uses a phone’s sensors to allow a robot built with a premade, purchasable chassis to perform actions such as following a specific color. Another robot called MobBob integrates a very complicated mechanical system that allows the robot to walk. Both are good examples that show the potential that this kind of phone-robot integration has but both require the user to have very specialized knowledge to design. The goal of Andruino is to make the process more accessible and expensive but those two robots could be a good starting point to gain a better understanding of the system. In order to complete this project, it is necessary to have a good understanding of what components robots generally need to work, and how they can be controlled with microcontrollers. It is also necessary to learn more about serial communication, and how it can be used to connect an Android phone to a microcontroller. During the spring quarter I followed a guide on how to connect an android phone to an Arduino microcontroller and added functionalities to make the phone send data from its sensors as well as voice control. Currently there aren’t that many projects that feature the phone itself becoming a part of a robot but there is a lot of information on how to access and incorporate a lot of android features. Since all I need to be able to do is to send strings of information to the microcontroller, I need to learn how to get the information itself, which is well documented.

Goals, Deliverable, tasks:

The goal that I will be trying to achieve is to create an android app with modular features that can be customized and generated on RoCo or on a setup screen on the app itself to suit the user’s needs without cluttering the user interface and sending superfluous information to the microcontroller. This will enable the user to create an autonomous robot without needing to do research on sensors, furthering simplifying the design process. As a test of the successful completion of the project, it would be best to have a person without much experience in robotics and electronics be able to design an autonomous robot using RoCo that uses an Android phone’s sensors proving that the main goal of this research path was achieved or at least closer to be achieved.

In order to complete this project I will need to do the following tasks:

  • Learn more about RoCo and how to create new components, how to add components to the electrical and mechanical interface, and how to generate files and code with RoCo.
  • Learn more about Android programming such as:
    • How to create an app with multiple pages
    • How to add interface components while the app is running
    • How to dynamically change the user interface and position of objects within a page
  • Learn more about creating structures out of paper to create a chassis that can be used to house the electrical components and the phone
  • Use the new tools to create a robot that uses a phone’s functionalities

Timetable:

Week 2-3:

  • Goal: Complete two wheeled robot and have a functional prototype
  • Deliverable: Paper two wheeled robot able to carry a phone around and respond to voice commands
  • Tasks:
    • Print and assemble two wheeled robot
    • Find space to mount phone holder
    • Improve andruino code and microcontroller code

Week 4-5:

  • Goal: Learn more about phone robots, RoCo, android and user interface coding.
  • Deliverable: An android app made of modular blocks that can be added or removed from a settings menu (only from a UI perspective) and robot made from the guide in cotsbots website.
  • Tasks:
    • Read RoCo documentation
    • Try to fix RoCo issues to get more acquainted with the system
    • Do Android tutorials to get more familiar with android coding
  • Look into the code for the cotsbots robot and MobBob to learn more about past examples

Week 6-8:

  • Goal: Work on changing the Andruino App and RoCo to add new functionalities
  • Deliverable: working Android app with modular features
  • Tasks:
    • Work on Andruino code

Week 9-10:

  • Goal: Create working robots using the new system
  • Deliverable: Working robots and demos build using RoCo and new android app
  • Tasks:
    • Designing and building new robots.

Next Post Previous Post