davidfrisch / UNIFR_API_EPUCK

unifr_api_epuck is a simple API wrapper that lets you control a real or simulated e-puck robot. https://unifr-api-epuck.readthedocs.io/en/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

First Steps

Welcome to the UNIFR API e-puck's documentation.

unifr_api_epuck is a simple API wrapper that lets you control a real or simulated e-puck robot. Please find below the instructions to get started with the API for Python3.

Submitted by: David Roman Frischer

Object detection section by: Vincent Carrel

Supervisor: Dr. Julien Nembrini

documentation : https://unifr-api-epuck.readthedocs.io/en/latest/

Requirements

  • Python3.x on your computer.
  • Webots or a real e-puck.

How To Start

With Real Robots

  1. How to install the package from your terminal.

    $ pip install unifr_api_epuck
  2. How to implement
    • To import the package:
    from unifr_api_epuck import wrapper
    • To create an instance of the robot:
    #Put the IP address of your robot.
    MY_IP = '192.168.43.125'
    r = wrapper.get_robot(MY_IP)
    • To control the robot by calling its actions:
    r.init_sensors() #initiates the sensors
    r.set_speed(-2, 2) #makes it turn around itself
    
    #infinite loop
    while r.go_on():
        prox_values = r.get_prox() #gets the values of the proximity sensors
        print(prox_values)
    
    r.clean_up() #makes a reset
  3. To run the file

    $ python3 my_controller_file.py

With Webots

  1. How to install the package from your terminal.
    $ pip install unifr_api_epuck
  2. How to implement your Python controller
    • To import the wrapper from the package:
    from unifr_api_epuck import wrapper
    • To create an instance of the robot:
    r = wrapper.get_robot()
    • To control the robot by calling its actions:
    r.init_sensors() #initiates the sensors
    r.set_speed(-2, 2) #makes it turn around itself
    
    #infinite loop
    while r.go_on():
        prox_values = r.get_prox() #gets the values of the proximity sensors
        print(prox_values)
    
    r.clean_up() #makes a reset
  3. To run the file:

    • ⏯ press play on Webots

Simple Example Code

Q: What does it do ?
A: The robot goes forward at a speed of 2 and prints its proximitiy sensor values.
from unifr_api_epuck import wrapper

ip_addr = '192.168.43.125'
r = wrapper.get_robot(ip_addr)

r.set_speed(2)        #sets the speed of the wheels
r.init_sensors()      #initiates the proximity sensor

#infinite loop
while r.go_on():
    print(r.get_prox()) #prints the proximity sensor values on the terminal

    #inserts some more code here to control your robot

r.clean_up()

Graphic User Interface

  • A GUI is available in the package. To start it, please run the following command:
$ python3 -m unifr_api_epuck -g

Sources

Wifi Protocol between Robot <--> computer

https://www.gctronic.com/doc/index.php?title=e-puck2_PC_side_development#WiFi_2

http://projects.gctronic.com/epuck2/complete.py

https://github.com/nembrinj/epuckAPI/tree/master

Webots
https://www.cyberbotics.com/doc/reference/nodes-and-api-functions
Multiprocess

https://docs.python.org/3/library/multiprocessing.html#multiprocessing.managers.SyncManager

https://stackoverflow.com/questions/2545961/how-to-synchronize-a-python-dict-with-multiprocessing

Socket errors
https://docs.python.org/3/library/exceptions.html#OSError
Pi-Puck

https://pi-puck.readthedocs.io/en/latest/

https://github.com/yorkrobotlab/pi-puck

https://github.com/gctronic/Pi-puck

UNIFR logo

Human-IST logo

About

unifr_api_epuck is a simple API wrapper that lets you control a real or simulated e-puck robot. https://unifr-api-epuck.readthedocs.io/en/latest/

License:GNU General Public License v3.0


Languages

Language:Python 97.3%Language:JavaScript 1.7%Language:Jupyter Notebook 0.8%Language:CSS 0.1%Language:HTML 0.1%Language:Makefile 0.0%