Connect to the real robot - LCAS/RBT1001 GitHub Wiki
In this workshop you are going to use a real manipulator and control it with your implemented code.
0. Setup - NOTE: Slightly different than usual!
If you are cloning for the first time:
If you are on a Windows PC the following two additional steps are required:
- Open a terminal(e.g., window's powershell), type
git config --global core.autocrlf false
and press Enter - Make sure docker is running by launching the docker desktop application
Then:
- Open a terminal (e.g., window's powershell)
- Execute the following command:
git clone -b tiago https://github.com/LCAS/RBT1001.git
If you already have a local copy:
- Open a terminal (e.g., window's powershell)
- Locate and move to the RBT1001 folder on your system; e.g.
cd /home/computing/RBT1001
- Pull the latest changes:
git pull
- Checkout the tiago branch
git checkout tiago
lcas-ros2-teaching-tiago-viz
.
Open VSCode and when it asks for the selection of the devcontainer to build select https://github.com/LCAS/RBT1001/wiki/Setup-your-workstation#2-open-the-ros2-container)
Now you can launch the VNC window as usual (1. TIAGo - mobile manipulator
The robot has a mobile base allowing it to navigate in an environment, an arm for manipulation tasks and various human-robot interaction capabilities.
The arm is 7 DOF, with the last 3 joints part of a spherical wrist.
See some examples from University of Lincoln Robotics Competition Team with TIAGo Robot:
Open the robot control interface
- Check that the setup step above has terminated and the webcontainer is up and running.
- Open all the intruction pages for this workshop in multiple tabs in your browser now, you will not have internet connection anymore after the next step.
- Disconnect the ethernet cable of your PC and insert it in an available port in the eth switch connected to the robot.
- Open a new browser tab, and type the following address: http://tiago-89c.network.uni:8080.
- Browse the various panels (left sidebar) but don't press any other button if not explicitly requested by the instructions or the lecturer!!.
This interface enables you to monitor the state of the robot and perform diagnostic tasks.
Move the robot joints
The control panel allow you to view in real-time the state of the joints of the robot and to move them singularly.
- Open the "Control Joint" tab from the left sidebar
- Notice how the head joints move due to the "Alive" default behaviour
- Try changing the joint angles of the last the joints (!!alternate between your colleagues and do not send commands at the same time!!)
The internal joint controller checks that the joint limits of the command sent are respected and checks for self-collisions but not for collisions with obstacles. If the command sent violates any limit or collision constraints it is not executed.
Execute a scripted trajectory
- Open the "Movements" tab.
- One at a time launch "Wave" command.
- One at a time launch the "Home" command to send the arm to the starting position.
These scripted trajectories are simply defined as sequences of joint states positions:
home:
joints: [torso_lift_joint, arm_1_joint,
arm_2_joint, arm_3_joint, arm_4_joint, arm_5_joint,
arm_6_joint, arm_7_joint]
positions: [0.25, 0.20, 0.35, -0.20, 1.94, -1.57, 1.37, 0.0,
0.18, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0,
0.15, 0.20, -1.34, -0.20, 1.94, -1.57, 1.37, 0.0]
times_from_start: [0.5, 4.0, 7.0]
meta:
name: Home
usage: demo
description: 'Go home'
wave:
joints: [arm_1_joint,
arm_2_joint, arm_3_joint, arm_4_joint,
arm_5_joint, arm_6_joint, arm_7_joint]
positions: [0.09, -0.679638896132783, -3.1087325315620733, 2.0882339360702575, -1.1201172410014792, -0.031008601325809293, -2.0,
0.09, -0.7354151774072313, -2.939624246421942, 1.8341256735249563, -1.1201355028397157, -0.031008601325809293, -2.0,
0.09, -0.7231278283145929, -2.9385504456273295, 2.18, -1.1201355028397157, -0.031008601325809293, -2.04,
0.09, -0.7354151774072313, -2.939624246421942, 1.8341256735249563, -1.1201355028397157, -0.031008601325809293, -2.0]
times_from_start: [0.0, 1.0, 2.0, 3.0]
meta:
name: Wave
usage: demo
description: 'wave'