Giter Club home page Giter Club logo

roboticsacademy's Introduction

JdeRobot-Academy: Learn Robotics and Computer Vision

Introduction

JdeRobot-Academy is an open source collection of exercises to learn robotics in a practical way. Gazebo simulator is the main tool required, as ROS. The students program their solutions in Python language. Each exercise is composed of :

  1. Gazebo configuration files,
  2. A ROS node that hosts the student's code,
  3. A file with instructions, hints, etc..
  4. The student solution itself.

1, 2, and 3 are already provided, the student has to develop her code on a separate file which already has a template. The student may use there an existing simple Python API to access to sensor readings and actuator commands_ (HAL API) and she may use an existing simple Python API for Graphical User Interface and debugging_ (GUI API). To develop her solution the student has to edit that template file and add her code, using her favorite text editor.

For execution the student launches Gazebo with certain configuration file (specifying the robot and the simulated scenario for that exercise) and launches the ROS node hosting her code. On that code lies the intelligence of the robot to solve the exercise. For instance, check the recent solution of one degree student here for the local navigation exercise:

http://jderobot.org/store/jmplaza/uploads/jderobot-academy/vff-f1.png

There are exercises about drone programming, about computer vision, about mobile robots, about autonomous cars, etc.. In the JdeRobotFoundation we are improving the quality of the existing exercises and creating a few exercises more. We are also working in a webserver to code and run the exercises from the web browser but that is a ongoing project yet.

Installation Guide

Software Infraestructure: Ubuntu/Debian

The programming environment is composed of the (a) Gazebo simulator, (b) ROS middleware and (c) the Academy package. All this software is open source so there are alternative ways to install all of them directly from the source code. Currently we use Gazebo-7.4.0, ROS Kinetic and JdeRobot-Academy (2018-06-06) releases. Follow the next steps to have the environment up and running, ready to use.

Installation

Step One: Install ROS framework

Add the lastest ROS sources:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
Step Two: Add the lastest Gazebo sources:

Add the lastest Gazebo sources:

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable lsb_release -cs main" > /etc/apt/sources.list.d/gazebo-stable.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 67170598AF249743
Step Three: Install the packages

Install the packages

sudo apt-get install ros-kinetic-desktop-full
sudo apt-get install gazebo7
sudo apt install jderobot-gazebo-assets

Install the JdeRobot-Academy software

Once you have JdeRobot installed in your system, you can download and install the Academy software. To do so, you must:

 git clone https://github.com/JdeRobot/Academy.git

On the directory of each exercise you will find particular directions to launch the simulated scenario and the academic node where you should write your code.

Software Infraestructure: Windows(x64)

The programming environment is composed of the (a) Docker with Gazebo simulator, (b) JdeRobot middleware for Python and (c) the TeachingRobotics package. All this software is open source so there are alternative ways to install all of them directly from the source code. Currently we use Gazebo-7.4.0, JdeRobot-5.4.1 and TeachingRobotics-0.1.0 releases. JdeRobot Docker includes the Gazebo plugins, models and configuration files to simulate the robot used in the exercises. Follow the next four steps to have the environment up and running, ready to use.

Installation

Open CMD or powershell and upgrade pip
python -m pip install --upgrade pip
Install depencencies:
pip3 install numpy zeroc-ice
pip3 install pyqt5
pip3 install opencv-python
Install JdeRobot Python:
pip3 install http://jderobot.org/store/aitormf/uploads/windows/JdeRobot-0.1.0-py3-none-any.whl
Download the Academy software

With git Shell clone the repository as in Linux and run the exercices with CMD o powershell

git clone https://github.com/jderobot/academy.git

Note: Github repositories are located in Documents\GitHub

Run Exercises

Open Kinematics of Docker and push "Docker cli".

Run the docker passing the world to use (the first time docker image is downloaded):

docker run -tiP --rm -p 7681:7681 jderobot/jderobot world [world_name]

With CMD or PowerShell go to practice directory in Academy and run it:

python [practice_file][config_file]

You can watch a video demonstration.

roboticsacademy's People

Contributors

abcdefga avatar aitormf avatar almartinflorido avatar cawadall avatar chanfr avatar crodriguezgarci avatar dattadebrup avatar eperdices avatar fqez avatar igarag avatar jmplaza avatar jmvega avatar kareem-emad avatar kibotics avatar kurshakuz avatar pankhurivanjani avatar pmvera avatar reysam93 avatar rperezgonz avatar varhub avatar vmartinezf avatar

Watchers

 avatar

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.