Skip to main content

An API controller for the e-puck2 from GCtronic for Webots and Python3

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

unifr_api_epuck-1.3.11.tar.gz (39.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

unifr_api_epuck-1.3.11-py3-none-any.whl (39.3 MB view details)

Uploaded Python 3

File details

Details for the file unifr_api_epuck-1.3.11.tar.gz.

File metadata

  • Download URL: unifr_api_epuck-1.3.11.tar.gz
  • Upload date:
  • Size: 39.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for unifr_api_epuck-1.3.11.tar.gz
Algorithm Hash digest
SHA256 f0ed9861cb4bc4c732190d49ceb488cbc714f89dbbd90001ae16215d2fae34f0
MD5 69dcd84c3a4f4357ed7d96c74e33c099
BLAKE2b-256 c22fefd151d4320aadf881dac9ba6587e6eb6dbdb42d529a6b8407d153f2437d

See more details on using hashes here.

File details

Details for the file unifr_api_epuck-1.3.11-py3-none-any.whl.

File metadata

File hashes

Hashes for unifr_api_epuck-1.3.11-py3-none-any.whl
Algorithm Hash digest
SHA256 0ecc06d92c3b0f75e8ded9155be39bd15f519e4110d62c8d6cd0f29b6e9471c5
MD5 5f9c40cf4cbdeef2ca23929fe5d79fc9
BLAKE2b-256 0ebe4b9017201962c56d825c0b857251ba9be3d5fb97109dfc438c5b3410379f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page