TurtleBot Control App - TurtleBot Control App With Python

Overview

TURTLEBOT CONTROL APP

animated

INDEX:

Introduction:

This is the final project of 4º Robotic Engineering at University of Alicante for the subject Mobile Robots. Different codes have been developed in Python so that a TurtleBot can do some tasks. This task are:

  • Person following
  • Save/Delete path
  • Execute path
  • Set/Delete home
  • Go home
  • Joystick control

To execute one task or another, an Android app is used. This app connect with the robot and send information using TCP. Code is estructured through a SMACH state machine. When the app send a message to the robot, code check if it is valid and change its state.

Work environments:

Not always real robot can be used, two versions have been created:

  • ROS Noetic simulation
  • Real TurtleBot control

- Simulated environment:

Simulated environment has been coded with Python3 on ROS Noetic. First of all, open Gazebo simulator, in this case, ROS defalut house map is used. On one terminal execute following commands:

$ export TURTLEBOT3_MODEL=waffle
$ roslaunch turtlebot3_gazebo turtlebot3_house.launch

Open new terminal and execute navigation module (is is necessary to have previosly mapped the area):

$ export TURTLEBOT3_MODEL=waffle
$ roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/house.yaml

Note: Both files (.yaml and .pgm) must be on HOME directory.

This will open a rviz window where robot, map and localization point cloud can be seen. Use 2D POSE ESTIMATE to estimate the current position of the robot in the map.

Execute code main.py and open Andorid app. TCP conexion uses port:12343

- Real Environment:

Real environment has been coded using Python2 on ROS Kinetic. TurtleBot inicialization is needed, so this following commands must be launched on different terminals:

$ roslaunch turtlebot_bringup minimal.launch
$ roslaunch turtlebot_bringup hokuyo_ust101x.launch

Open new terminal and execute the navigation module:

$ export TURTLEBOT_3D_SENSOR=astra
$ roslaunch turtlebot_navigation amcl_demo.launch map_file:=$HOME/house.yaml

Note: Both files (.yaml and .pgm) must be on HOME directory.

TurtleBot can't open an rvizwindow so another device is needed. On new device execute setvars.bash, open a new terminal and execute rviz:

$ rosrun rviz rviz

rviz window will be opened. Add modules to show robot, map and point cloud.

Execute code main.py and open Andorid app. TCP conexion uses port:12343

Note: in case of port malfunction, change the port and restart the application.

Video:

Click on the gif to see a video of the project in action:

animated

Credits:

Built by:

  • Adrián Sanchis Reig
  • Rafael Antón Cabrera
  • Andrés Gómez-Caraballo Yélamos
  • Àngel Alepuz Jerez
Owner
Rafanton
Rafanton
Thinky nature dots with python

Thinky Nature Welcome to my rice dotfiles of my ThinkPad X230 You surely will need to change some configs to fit your files and stuff and maybe tweak

Daniel Mironow 26 Dec 02, 2022
The program converts Swiss notes into American notes

Informatik-Programmieren Einleitung: Das Programm rechnet Schweizer Noten in das Amerikanische Noten um. Der Benutzer kann seine Note eingeben und der

2 Dec 16, 2021
A Python package that provides physical constants.

PhysConsts A Python package that provides physical constants. The code is being developed by Marc van der Sluys of the department of Astrophysics at t

Marc van der Sluys 1 Jan 05, 2022
⚙️ Compile, Read and update your .conf file in python

⚙️ Compile, Read and update your .conf file in python

Reece Harris 2 Aug 15, 2022
Annotates sequences with Eggnog-mapper and hhblits against PDB70

Annotating "hypothetical" proteins with the PDB See config/ for configuration information. This workflow takes as input a set of protein sequences. It

1 Apr 05, 2022
Kubernetes-native workflow automation platform for complex, mission-critical data and ML processes at scale. It has been battle-tested at Lyft, Spotify, Freenome, and others and is truly open-source.

Flyte Flyte is a workflow automation platform for complex, mission-critical data, and ML processes at scale Home Page · Quick Start · Documentation ·

Flyte 3k Jan 01, 2023
Simple programming language built on Python.

Serial Another programming language. Built on Python. Building and running program In order to run the program on serial, unfortunately you still need

Aleksey Demchenkov 1 Dec 09, 2021
The Zig programming language, packaged for PyPI

Zig PyPI distribution This repository contains the script used to repackage the releases of the Zig programming language as Python binary wheels. This

Zig Programming Language 100 Nov 04, 2022
Exploiting Linksys WRT54G using a vulnerability I found.

Exploiting Linksys WRT54G Exploit # Install the requirements. pip install -r requirements.txt ROUTER_HOST=192.169.1.1 ROUTER_USERNAME=admin ROUTER_P

Elon Gliksberg 31 May 29, 2022
Google Foobar challenge solutions from my experience and other's on the web.

Google Foobar challenge Google Foobar challenge solutions from my experience and other's on the web. Note: Problems indicated with "Mine" are tested a

Islam Ayman 6 Jan 20, 2022
Battle-Ship - Python-console battle ship

Battle-Ship this SHOULD work in lenux(if i spelled it wrong spam issues till I fix it) the thing that maby wont work is where it clears the screen the

pl608 2 Jan 06, 2022
It's like Forth but in Python

It's like Forth but written in Python. But I don't actually know for sure since I never programmed in Forth, I only heard that it's some sort of stack-based programming language. Porth is also stack-

Tsoding 619 Dec 21, 2022
Animation picker for Audodesk Maya 2017 (or higher)

Dreamwall Picker Animation picker for Audodesk Maya 2017 (or higher) Authors: Lionel Brouyère, Olivier Evers This tool is a fork of Hotbox Designer (L

DreamWall 93 Dec 21, 2022
World's best free and open source ERP.

World's best free and open source ERP.

Frappe 12.5k Jan 07, 2023
An app to automatically take attendance by scanning students' bar coded ID card as they enter the classroom.

Auto Classroom Attendance This application may be run on a PC to automatically scan students' ID card using a generic bar code scanner and output the

1 Nov 10, 2021
Assembly example for CadQuery

Spindle and vacuum attachment This is a model of the vacuum attachment for my Workbee CNC router. There is a mist spray coming from the left hand side

Marcus Boyd 20 Sep 16, 2022
HairCLIP: Design Your Hair by Text and Reference Image

Overview This repository hosts the official PyTorch implementation of the paper: "HairCLIP: Design Your Hair by Text and Reference Image". Our single

322 Dec 30, 2022
Svg-turtle - Use the Python turtle to write SVG files

SaVaGe Turtle Use the Python turtle to write SVG files If you're using the Pytho

Don Kirkby 7 Dec 21, 2022
Um pequeno painel de consulta

Spynel Um pequeno painel com consultas de: IP CEP PLACA CNPJ OBS: caso execute o script pelo termux, recomendo que use o da F-Droid por ser mais atual

Spyware 12 Oct 25, 2022
Simple rofi script to choose player for playerctl to execute its command

rofi-playerctl-switcher simple rofi script to choose player for playerctl to execute its command Usage copy playerSwitch.py and playerctl.sh to ~/.con

2 Jan 03, 2022