shashankvkt / ros_gui

A ROS based Graphic User Interface to collectively control a multi-agent robotic system

Home Page:http://robotics.iiit.ac.in/people/harsha.turlapati/DCMR/icra17.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ros_gui

This repository is a ROS based Graphic User Interface to control a multi-agent robotic system. The project has been developed with reference to the idea of Detachable Modular Robot capable of Cooperative Climbing and Multi Agent Exploration which can be refered from the following link

http://robotics.iiit.ac.in/people/harsha.turlapati/DCMR/icra17.html

In this project we used RaspberryPi 3 model, on 4 different robots each identified by a different namespace. The RPis (Client) and the laptop (Server) were connected on a common wireless network.

The following are the steps in order to install and execute this package

  1. Install ROS-indigo 2.Create a catkin workspace

  2. In the src folder type the following command

    git clone https://github.com/shashankvkt/ros_gui.git

4.compile your paackage by typing the following command in your catkin_ws directory.

catkin_make  

5.Open a new terminal and type

roscore

6.Open another terminal and type the following command

rqt --standalone rqt_mypkg

7.The following picture appears on the screen showing the GUI

screenshot from 2017-02-19 13 20 03

8.Since the project involves a multi agent robot system, it becomes essential to be able to control the robots individually as well as control all of them at once.
It majorly involves the use of 2 checkboxes, namely
a.command all robots
b.command indiv robots

9.When the "Command all robots" check box is selected as depicted in the picture below, the directional commands of forward, backward, ;eft, right, servo and screwing controls are given to all the robots simultaneously.

screenshot from 2017-02-19 13_27_07

10.Individual robots can be controlled by selecting the "command individual robots" checkbo and then selecting the robot number on which the directional commands are expected to execute. The following is an example of using the checkbox.

screenshot from 2017-02-19 13_46_39

11.When a particular check box is selected or when a particular command is given from the GUI (say forward), the corresponding command is given in the form of a ROS parameter. The value of the ROS parameter determines TRUE/FALSE value of that particular motion which can be changed in the "my_widget.py" file.

12.For the robot to execute a command selected from the GUI, follow the following steps:

a.When you start roscore on the server side, Copy the following command in your client (Rpi) directory:

ROS_MASTER_URI=http://< >

b.Copy the following file into your client (Rpi) directory:

motor_move.py

c.To execute the code, execute the following command:

python motor_move.py

d.Now control different icons on the GUI, to see it's respective motion being executed by the robot.

13.DISCLAIMER: The above code contains QtWidget library which works smooothly with ROS-indigo. However for higher ROS versions Widget class is defined in QtWidgets rather then QtGui, so changes have to be made accordingly.

About

A ROS based Graphic User Interface to collectively control a multi-agent robotic system

http://robotics.iiit.ac.in/people/harsha.turlapati/DCMR/icra17.html


Languages

Language:Python 70.6%Language:CMake 29.4%