User Tools

Site Tools


vega_darwin

This is an old revision of the document!


How to Implement Master Slave Control between Darwin OP's

Author: Fausto Vega Email: vegaf1@unlv.nevada.edu
Edited By: Norberto Torres-Reyes Email: torresre@unlv.nevada.edu
Date: Last modified on <04/01/19>
Keywords: Darwin OP , C++/C Programming, Master-Slave


The objective of the tutorial is to implement Master-Slave control between two Darwin OP units. This means that by manually moving the joints of one Darwin OP, one can control the other robot through a common network. Solving this partially or completely is important because it allows for a robust and interactive way to control a robot. This tutorial shows you how to implement this type of control on one arm of the Darwin OP and how to run the program. It takes approximately 30 minutes to complete.

Motivation and Audience

This tutorial's motivation is to teach how to create a Master Slave system between two Darwin OP robots. Readers of this tutorial assumes the reader has the following background and interests:

* Understand C++ Programming basics
* Perhaps also know how to use the Linux command prompt
* Perhaps additional background needed may include Darwin OP basics
* This tutorial may also attract readers who are interested in teleoperation and humanoids

The rest of this tutorial is presented as follows:

Other Tutorials

For a background on the Darwin OP basics and a more in depth explanation of network programming refer to the following tutorials:

Source Code

The following folders contain the code used to implement this type of control. It is based off a client server model also know as network programming. In this model, there is a client which connects to the other platform, and the server which makes the request for information from the client. This will allow the two computers inside the Darwin OP’s to communicate over a network. In this case, instead of sending a text message from computer to computer as the original program does, we modified the code to send Dynamixel position values from one platform to the other.

Instructions

This section gives step-by-step instructions along with commands to run the Master-Slave program. Steps 1 and 2 are for users who want to implement on their own robot, DASL users running the demo can skip to Step 3. Designate one robot as the server and one as the client. Both will have their own code.

Step 1: Download the source code

Download the server folder on one Darwin OP and the client folder on the other Darwin OP

Step 2: Make the code

Proceed to the network programming folder through a Linux terminal(ctrl alt t) on each robot with the following command:

Client Robot Statement:

   cd Desktop/darwin_client/Linux/project/network_programming

Then make the code with the following command:

   sudo make

The password for both Darwin's is 111111

Repeat the same process on the server robot.

Server Robot Statement:

   cd Desktop/darwin_server/Linux/project/network_programming
   sudo make

Step 3: Checking the Network

Once the program is built, make sure that both robots are connected to the same network. If running the demo at DASL, both robots must be connected to DASL Warehouse 2.

Step 4: Run your Program

Run the server program first by accessing the command prompt, then enter the following command (the prompt will ask for the password):

   sudo su
   killall demo

Next, press the reset button on the Darwin OP.
Then, navigate to the network programming folder (as shown above) and running the following command:

   ./server 5000

The 5000 is the port we are using to communicate.

Run the client robot by accessing the command prompt, then enter the following command (the prompt will ask for the password):

   sudo su
   killall demo

Next, press the reset button on the Darwin OP.
Then, navigate to the network folder (as shown above) and running the following command:

   ./client 192.168.50.75 5000

This command specifies the IP address of the server robot and the port number. If this command is not working, check the IP address of the server Darwin with the following command:

   ifconfig

Then insert it for the IP address (192.168.50.75) in the command above.

Step 5: Checking the Network

Once the robot is in walk ready position, the torque on the right arm will turn off after 5 seconds, so make sure to hold the arm. Once the torque is off, move the arm to different positions. One will notice that the same positions will be copied on the robot acting as a server.

Step 6: Checking the Network

To exit out of the program, press control C in the command prompt

Demonstration

In this demonstration, I successfully compiled and execute the program described above

Final Words

This tutorial's objective was to implement Master-Slave control on two Darwin OP platforms. The source code was provided as well as how to run the program. Once the concepts were conveyed the reader could teleoperate one robot with the joints of another.

Speculating future work derived from this tutorial, includes implementing this control to all the degrees of freedom, and creating an exoskeleton as the Master. In the big picture, the problem of basic Master-Slave teleoperation can be solved with this tutorial.

For questions, clarifications, etc, Email: vegaf1@unlv.nevada.edu

Telerobotics Annotated Bibliography

Author: Jean Vaz, Fausto Vega and Yu Hang Email: chagasva@unlv.nevada.edu
Date: Last modified on 04/04/19
Keywords: Teleoperation, Exoskeleton, Human-machine Interface.

Papers

Annotated References

1. The capio active upper body exoskeleton and its application for teleoperation
Publisher: 13th Symposium on Advanced Space Technologies in Robotics and Automation, 2015. Keywords: Humanoids, telerobotics, tele-operation, virtual reality

Hasunuma, H., Kobayashi, M., Moriyama, H., Itoko, T., Yanagihara, Y., Ueno, T., Ohya, K., & Yokoil, K. (2002). A tele-operated humanoid robot drives a lift truck. In 2002 IEEE International Conference on Robotics and Automation (ICRA). Washington D.C, USA: IEEE RAS. doi:10.1109/ROBOT.2002.1013566

This paper describes using a active dual-arm upper body exoskeleton for the teleoperation of an humanoid robot. The authors present a solution for the kinematics and dynamics in real-time for the Capio exoskeleton in order to control the robot AILA. From this presentation, the paper concludes that the Capio exoskeleton was successful integrated into the virtual environment CAVE.

From the state-of-the-art, the paper identifies challenges with haptic devices. The paper addresses these challenges by introducing Capio exoskeleton which is a wearable bakc back with 8 DOF per arm. The results of this approach are novel, showing that a humanoid robot can be used to operate construction machinery, as well as many other devices, giving them flexibility over traditional single-purpose automation.

The paper presents the following theoretical principles: tele-operation parameters & input/output. Little discussion was provided on the humanoid robot principles, however these were provided in some of the cited works.

From the principles and results, the paper concludes that the having the Capio Exoskeleton teleoperating the humanoid robot AILA in ISS mockup is viable, with the following improvements: (1) Improved in manipulation, such as turn switches ; (2) Improved simulations with the simulated lunar mission such as recharging the robots battery at the lander module and submitting the robots status to the ground control; and (3) Improved visual feedback, by having the POV of the robot and the CAD real-time simulation.

I liked this paper because: (1) it presents fundamental work toward utilizing a exoskeleton to manipulate AILA robot; (2) it utilized two types of system integration “CAD model” for the kinematics and “exoskeleton” for toque/force feedback; and (3) it provided comprehensive experimental results for the tele-operation by showing external torques on the Capio exoskeleton transferred from AILA upper arm rotation. However, I lit bit of more explanation on the fundamental kinematics of their CAD mode could have been extremely helpful to the reader.

Three things I learned from this paper were: (1) the basics of design, control and software features for tele-operation; (2) the interaction between the wearable exoskeleton and the physical platform; and (3) safety features implemented in the system to avoid any major damage.

2. Cooperative human-robot control based on Fitts' law
Publisher: Humanoids 2016
Keywords: Fitt's Law, Teleoperation, Haptics

Petric, T., Goljat, R., & Babic, J. (2016). Cooperative human-robot control based on Fitts' law. In 2016 IEEE-RAS 16th International Conference on Humanoid Robots. Cancun, Mexico: IEEE-RAS. doi:10.1109/HUMANOIDS.2016.7803299

This paper describes a human operator working together with a haptic robot to control an object on a screen. The authors present theory of Fitt's law, the control algorithm, and experimental results of the cooperative control. From this presentation, the paper concludes that their control algorithm adapted properly, and quickly, demonstrating efficient cooperation with the human operator, and follows Fitt's Law.

From the state-of-the-art, the paper identifies challenges in a human cooperating with a robot without slowing the human down. The paper addresses these challenges by creating a control algorithm that allows the movement to be faster. The results of this approach are verified through the experiment, and novel due to the direct cooperation between the robot and the human.

The paper presents the following theoretical principles: (1) Fitt's Law for HCI; (2) Parameter tuning for each individual model; and (3) the control algorithm used to move the robot, using Dynamic Movement Primitives.

The principles are explained well. For example the equations given show the correct and thorough application of Fitt's Law and Dynamic Movement Primitives application of the principles.

From the principles and results, the paper concludes: (1) the control algorithm learns very quickly, even adapting within the first trial; (2) the models of the human and the robot converge after a few trials; (3) the models of all subject converge within standard deviation; and (4) all models adhere to Fitt's Law, demonstrating validity.

I liked this paper because: (1) it demonstrated the use of Fitt's Law in order to control a robot; (2) it utilized haptics in order for a robot and a human to cooperate on a manipulation task; and (3) extensive data was provided for all subjects, and the data demonstrated a positive adherence to the principles provided. I would have liked to see better explanation of the setup that physically linked the human operator and the haptic robot.

Three things I learned from this paper were: (1) how to utilize Fitt's Law for control and learning of cooperative manipulation; (2) how to utilize Dynamic Movement Primitives to calculate the trajectory and path of a robot; and (3) how to utilize haptics in order to increase cooperative control of a system.

3. Internet-Based Remote Teleoperation
Publisher: IEEE Conference on Robotics and Automation (ICRA) (1998)
Keywords: Teleoperation, Internet, network

Brady, K., & Tarn, T. (1998). Internet-based remote teleoperation. Belgium: IEEE. doi:10.1109/ROBOT.1998.676261

This paper describes utilizing the Internet to teleoperate robots over long-distance connections, by utilizing a predictive model of the robot and a state-space model for the delay. The authors present theory and experimental results. From this presentation, the paper concludes that the model of the robot is sufficient to deal with the delay in high-latency teleoperation.

From the state-of-the-art, the paper identifies challenges in in setting up network for communication, as they are specialized. The paper addresses these challenges by utilizing the Internet as the network for communication. The results of this approach are valid and novel.

The paper presents the following theoretical principles: (1) State space formulation of the delay; and (2) Time delay estimation.

The principles are explained well, and in detail. For example the equations for the state space formulation show the correct application of the principles.

From the principles and results, the paper concludes: (1) The predictive model is useful for unexpected circumstances during control; (2) the state space formulation works well under high-latency; and (3) .

I liked this paper because: (1) It utilized the Internet, a readily available resource, to control the robot; (2) It dealt with high-latency communications by switching from time delay to a state space model; and (3) It utilized a predictive model that accurately guided the operator throughout the heavily delayed control. However, I would have liked to see picture of their predictive model, and how it compared to the delayed image displayed on screen.

Three things I learned from this paper were: (1) How to estimate the time delay in a system; (2) How to utilize a state space model for high-latency control; and (3) How to keep effectively the human-in-the-loop, even with an autonomous and delayed system.

vega_darwin.1554487620.txt.gz · Last modified: 2019/04/05 11:07 by jeanvaz