PyQt5 GUI

This is the first week of coding period, so I started with designing UI for the web-templates. I began by making a simple PyQt5 GUI for a pick-and-place exercise.

PyQt5 is a comprehensive set of Python bindings for Qt v5. It is implemented as more than 35 extension modules and enables Python to be used as an alternative application development language to C++ on all supported platforms including iOS and Android.

Since the pick and place exercise necessitates heavy use of Gazebo and Rviz, I positioned their displays side by side so that users would not experience difficulty scrolling or changing tabs. The basic design of a GUI is seen in the figure below.

Since Robotics Academy has shifted to web-templates, we will no longer be working on PyQt5 GUIs and will instead focus on improving the web-templates of current exercises.

Adding cards for pick and place exercise

To include a new exercise, one needs to add the folder with the exercise contents in exercises/static/exercises following the file name conventions. Then, create the entry in db.sqlite3. A simple way to do this is by using the Django admin page:

  1. Run python3.8 manage.py runserver.
  2. Access http://127.0.0.1:8000/admin/ on a browser and log in with “user” and “pass”.
  3. Click on “add exercise” and fill the fields: exercise id (folder name), name (name to display), state, language and description (description to display). Save and exit.
  4. Commit db.sqlite3 changes.

User Interface for pick and place exercise

I began working on the exercise’s User Interface after generating a card for pick and place. In this exercise, we have two options: we may use a Rviz display or we can abstract all of Rviz’s functions and develop an Industrial Robot Teleoperator that just provides the functionality required by the exercise, such as forward and inverse kinematics. We intend to use Rviz because other exercises may require it.

The pick and place exercise is depicted in the image below. Rviz, on the other hand, has yet to be exposed on a VNC display. Following a discussion with my mentors, we agreed to make this a higher priority and get it up and running within the next week.

Update the current work on docker hub

Meet 1

Minutes of the meet:

  • Create a docker image, upload it on docker hub, and mention the details in week 1 blog.
  • Incorporate Gazebo in the current template
  • Incorporate Rviz in the current template
  • Notify once blog is updated on the slack channel