Giter Site home page Giter Site logo

android-application-to-robot-control's Introduction

Overview

Android application to wireless robot control. The application is built in Python based on the kivy library. It allows you to control a mobile robot built specifically for this project. The application consists of the main menu, selection of control, manual control, control by draw a route for robot and a window for displaying the robot's speed and direction.

Robot

Application build

The easiest way is to install the file my_app.apk.

If you want to change something in the code, you have to build the application again. The buildozer tool is used for this. Instruction on how to use the buildozer tool is available at this link Buildozer. Use "Installing Buildozer with target Python 3" section. If you want to use Python 2 you have to delete "python3crystax" from requirements in buildozer.spec file

When building the application, replace the generated buildozer.spec file with the one from this repository. If you don't do this, the application will not work correctly.

To build the application use the Cython version == 0.25.2. It may not work with newer versions.

How to use

First, run app_server.py on RaspberryPi. The console displays the address where the server listens for connections.

In mobile appplication after pressing the WI-Fi logo, it is possible to connect to the server that is on the robot. After the correct connection, the tick icon will appear. In the MANUAL CONTROL tab, you can set the speed of the robot, the direction of movement, turn on the indicator and change the robot's turn by rotating the phone. In the AUTO CONTROL tab you can draw a route that the robot has to drive. In the DATABASE tab, after clicking on the database icon, the speed and direction of the robot will be drawn.

Images

Image 1 Image 2 Image 3 Image 4 Image 5

Requirements

To build app

  • Kivy - Library for development of applications
  • Kivy-Garden - Project to centralize addons for Kivy maintained by users
  • PyGame - Library for making multimedia applications like games built on top of the SDL library
  • Pillow - Imaging Library
  • Plyer - Library for accessing features of your hardware / platforms
  • Pyjnius - Library for accessing Java classes
  • Cython - Optimising static compiler for both the Python programming language and the extended Cython programming language

To run server on RaspberryPi

  • RPi.GPIO - Package provides a class to control the GPIO on a Raspberry Pi
  • netifaces - Library to get the address(es) of the machine’s network interfaces from Python
  • Numpy - Package for scientific computing

Author

android-application-to-robot-control's People

Contributors

przemoo16 avatar

android-application-to-robot-control's Issues

ROS application

I am trying to develop my own GUI for ROS (Robot Operating System). As ROS also supports python language, then I was thinking to build the GUI with python and kivy on top of it just as the code you provided here. Unfortunately ROS has it's own environment and setup's as it has to be invoked as a through catkin, with setup.py and CMakeLists. Do you have any suggestion/recommendation on how to use the code for ROS implementation?

I tried to invoke the code through ROS environment (using catkin_create_pkg), but it fails to run (rosrun node_name main.py), although the building was successful using catkin_make.
I am using ubuntu 18.04 with ROS melodic, and a waffle turtlebot3 connected through raspbi 3 B+.
Another issue after running through the ROS environment might be the connection. As in ROS, the environment is set up on the back-end code so each device can communicate each other whereas in the code, it utilize AF_INET where it connects on a 'peer to peer' method with values determined in GlobalShared.py.
I would appreciate if you have any insights through my issues.
Thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.