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
Nag0mi ctf problem 2021 writeup

Nag0mi ctf problem 2021 writeup

3 Apr 04, 2022
Pre-1.0 door/chest sound injector for Minecraft

doorjector Pre-1.0 door/chest sound injector for Minecraft. While the game is running, doorjector hotswaps the new sounds for the old right before the

Sam 1 Nov 20, 2021
🤖🧭Creates google-like navigation menu using python-telegram-bot wrapper

python telegram bot menu pagination Makes a google style pagination line for a list of items. In other words it builds a menu for navigation if you ha

Sergey Smirnov 9 Nov 27, 2022
Telegram bot to upload media to telegra.ph

Telegraph @StarkTelegraphBot A star ⭐ from you means a lot to us ! Telegram bot to upload media to telegra.ph Usage Deploy to Heroku Tap on above butt

Stark Bots 24 Dec 29, 2022
python DroneCAN code generation, interface and utilities

UAVCAN v0 stack in Python Python implementation of the UAVCAN v0 protocol stack. UAVCAN is a lightweight protocol designed for reliable communication

DroneCAN 11 Dec 12, 2022
Use `forge` and `cast` commands in Python scripts

foundrycli.py ( 🔥 , 🐍 ) foundrycli.py is a Python library I've made for personal use; now open source. It lets you access forge and cast CLIs from P

Zero Ekkusu 17 Jul 17, 2022
A fluid medium for storing, relating, and surfacing thoughts.

Conceptarium A fluid medium for storing, relating, and surfacing thoughts. Read more... Instructions The conceptarium takes up about 1GB RAM when runn

115 Dec 19, 2022
Bad Apple printed out on the console with Python!

bad-apple Bad Apple printed out on the console with Python! Preface A word of disclaimer, while the final code is somewhat original, this project is a

CalvinLoke 186 Dec 01, 2022
Arknights gacha simulation written in Python

Welcome to arknights-gacha repository This is my shameless attempt of simulating Arknights gacha. Current supported banner types (with potential bugs)

Swyrin 3 May 07, 2022
Shutdown Time - A pretty much useless application that allows you to shut your computer down in x time with a GUI.

A pretty much useless application that allows you to shut your computer down in x time with a GUI. Should eventually support Windows (all versions), Linux (v2.0+), MacOS (probably with Linux, idk)

1 Nov 08, 2022
Generating rent availability info from Effort rent

Rent-info Generating rent availability info from Effort rent Pre-Installation Latest version of python Pip module json, os, requests, datetime, time i

Laixuan 1 Oct 20, 2021
OWASP Foundation Web Respository

WWWGrep OWASP Foundation Web Respository Author: Mark Deen & Aditi Mohan Introduction WWWGrep is a rapid search “grepping” mechanism that examines HTM

OWASP 34 Jun 15, 2022
This is a calculator of strike price distance for options.

Calculator-of-strike-price-distance-for-options This is a calculator of strike price distance for options. Options are a type of derivative. One strat

André Luís Lopes da Silva 4 Dec 30, 2022
Wordle is fun, so let's ruin it with computers.

ruin-wordle Wordle is fun, so let's ruin it with computers. Metrics This repository assesses two metrics about each algorithm: Success: how many of th

Charles Tapley Hoyt 11 Feb 11, 2022
Release for Improved Denoising Diffusion Probabilistic Models

improved-diffusion This is the codebase for Improved Denoising Diffusion Probabilistic Models. Usage This section of the README walks through how to t

OpenAI 1.2k Dec 30, 2022
Github dorking tool

gh-dork Supply a list of dorks and, optionally, one of the following: a user (-u) a file with a list of users (-uf) an organization (-org) a file with

Molly White 119 Dec 21, 2022
Poetry plugin to bundle projects into various formats

Poetry bundle plugin This package is a plugin that allows the bundling of Poetry projects into various formats. Installation The easiest way to instal

Poetry 54 Jan 02, 2023
Skull shaped MOSFET cells for the Efabless's 130nm process

SkullFET Skull shaped MOSFET cells for the Efabless's 130nm process List of cells Inverter Copyright (C) 2021 Uri Shaked

Wokwi 3 Dec 14, 2022
Python Function to manage users via SCIM

Python Function to manage users via SCIM This script helps you to manage your v2 users. You can add and delete users or groups, add users to groups an

4 Oct 11, 2022
Web interface for browsing, search and filtering recent arxiv submissions

Web interface for browsing, search and filtering recent arxiv submissions

Andrej 4.8k Jan 08, 2023