Giter VIP home page Giter VIP logo

tiago_arm_effort_controller's Introduction

Tiago_arm_effort_controller

This project consists of a ROS plugin to deploy on a TIAGo (from pal-robotics) in order to control its arm in Pose and Effort (following the Dual Control Law described in "Modeling, Identification and Control of Robots, Ed. by W Khalil and E Dombre) using a force controller.

Bellow, you will find the basic steps to work with this plugin. For setting this package up and for more informations refer to the wiki !

๐Ÿ’ก For all commands below, the name of the catkin workspace is tiago_ws and the name of the robot tiago-155c. Adjust to your needs.

in Simulation

โš ๏ธ The simulation is not accurate !

Terminal 1๏ธโƒฃ:

cd ~/tiago_ws
catkin build
source devel/setup.bash
roslaunch tiago_gazebo tiago_gazebo.launch robot:=steel

Terminal 2๏ธโƒฃ:

cd ~/tiago_ws
source devel/setup.bash
rosservice call /controller_manager/switch_controller "start_controllers:
- ''
stop_controllers:
- 'arm_controller'
strictness: 0" 
roslaunch tiago_arm_effort_controller tiago_arm_effort_controller.launch robot:=tiago end_effector:=pal-gripper simulation:=true

on the TIAGo

๐Ÿ’ป pal@development:

cd ~/tiago_ws
catkin build
rosrun pal_deploy deploy.py tiago-155c

๐Ÿค– pal@tiago-155c:

๐Ÿ’ก to connect to the TIAGo's terminal:

ssh pal@tiago-155c
pal_restart_deployer
rosservice call /controller_manager/switch_controller "start_controllers:
- ''
stop_controllers:
- 'arm_controller'
strictness: 0" 
roslaunch tiago_arm_effort_controller tiago_arm_effort_controller.launch robot:=tiago end_effector:=pal-gripper

tiago_arm_effort_controller's People

Contributors

marcotoulouse3 avatar waillyam23 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

tiago_arm_effort_controller's Issues

Build issue - Eigenpy

On pal development computer, to use the library pinocchio, a second eigenpy librairy has been installed:

//the base eigenpy to work with pal's robot environment, cannot remove
ros-melodic-eigenpy/bionic,now 2.5.0-1bionic.20200827.013457 amd64 [installed]

//the eigenpy wanted by pinocchio
robotpkg-py27-eigenpy/bionic,now 2.7.6 amd64 [installed]

When trying to build the package that uses pinocchio, it returns an error relating to the version of eigenpy as it tries to use the wrong eigenpy:

CMake Error at /usr/share/cmake-3.19/Modules/CMakeFindDependencyMacro.cmake:47 (find_package):
  Could not find a configuration file for package "eigenpy" that is
  compatible with requested version "2.6.2".

  The following configuration files were considered but not accepted:

    /opt/ros/melodic/share/eigenpy/cmake/eigenpyConfig.cmake, version: 2.5.0

Call Stack (most recent call first):
  /opt/ros/melodic/share/cmake/pinocchio/pinocchioConfig.cmake:155 (find_dependency)
  CMakeLists.txt:19 (find_package)

In the CMakeLists, the directory of the good eigenpy has already been included.

Code issue - RNEA

Find why Pinocchio give slightly wrong values compared to RBDL. Horizontal placements of the arm breaks the gravity compensation (pinocchio::rnea()) with Pinocchio, but not with RBDL.

Pinocchio:

const Eigen::VectorXd &tau = pinocchio::rnea(reduced_model_, data, q_act_, q_zero_, q_zero_);

RBDL:

RigidBodyDynamics::InverseDynamics(rbdl_model_, q_act_, q_zero_, q_zero_, tau_cmd_);

leads: the differences can either be found in the model or in the data (which RBDL does not have)

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.