GithubHelp home page GithubHelp logo

pal-robotics / tiago_robot Goto Github PK

View Code? Open in Web Editor NEW
34.0 14.0 30.0 11.74 MB

Home Page: http://wiki.ros.org/Robots/TIAGo

License: Apache License 2.0

CMake 4.34% EmberScript 36.24% Python 59.42%
end-effector human-robot-interaction mobile-manipulator mobile-navigation robotics robots ros ros-melodic teleoperation whole-body-control

tiago_robot's Introduction

TIAGo robot

This package contains the description, controllers and bringup for all possible TIAGo configurations (end effectors, force torque sensors..).

To make maintenance easier, the tiago.urdf.xacro takes arguments that specify whether the robot has an arm or not, the end effector type, force torque sensor, laser model and many other parameters.

The other configuration files that differ between robot configurations are generated from template files.

The templates are written using empy and have the extension .em.

To regenerate a group of files, you must execute ros2 run tiago_bringup regen_em_file.py EM_FILE_NAME from the directory where the .em file is.

tiago_robot's People

Contributors

adriaroig avatar ainairisarri avatar aledf avatar artivis avatar awesomebytes avatar bmagyar avatar cesc-folch avatar doterkuile avatar hilario avatar jmguerreroh avatar jordan-palacios avatar jordi-pages avatar lucamarchionni avatar noel215 avatar saikishor avatar thomaspeyrucain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tiago_robot's Issues

urdf joint config doesn't make sense

Hi, I am trying to get the gripper_grasp_frame pose in gazebo. However, gazebo will automatically merge fixed links to be a whole object, which makes gripper grasp link not accessible in gazebo model. The pose I can get is the arm_7_link, so I tried to get the grasp link pose by manually transform the pose from arm 7 link to grasp link. To do this, I need to get the D-H parameter for this transformation. I looked into your urdf file and found the following setting for one of the joints:

<origin xyz="0.12 0 0" rpy="0 0 0" />

However, I don't think the setting showed above is correct, given that the relative pose the gripper_link and the grasp link is visualized as follows:

rviz_screenshot_2018_06_07-03_36_01

Is it a mistake or I miss something there? By the way, is there any easier way to get information I need?
Thanks!

Starting a Real TiaGo Robot

Dear Pal Team,

first of all, thanks for the great job!

While the gazebo simulation is working fine, there are still some problems when working with the real TiaGo robot.
My real TiaGo is not working properly and I have installed Ubuntu 16 and ROS kinetic on its on-board PC. My goal is to start the TiaGo bot and all its sensors and actuators for navigation. However, when running

roslaunch tiago_bringup tiago_bringup.launch 

this error appears:

  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 589, in _include_tag
    inc_filename = self.resolve_args(tag.attributes['file'].value, context)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 183, in resolve_args
    return substitution_args.resolve_args(args, context=context.resolve_dict, resolve_anon=self.resolve_anon)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 370, in resolve_args
    resolved = _resolve_args(resolved, context, resolve_anon, commands)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 383, in _resolve_args
    resolved = commands[command](resolved, a, args, context)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 151, in _find
    source_path_to_packages=source_path_to_packages)
  File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 197, in _find_executable
    full_path = _get_executable_path(rp.get_path(args[0]), path)
  File "/usr/lib/python2.7/dist-packages/rospkg/rospack.py", line 207, in get_path
    raise ResourceNotFound(name, ros_paths=self._ros_paths)
ResourceNotFound: pal_local_joint_control
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/home/pal/code/catkin_ws/src
ROS path [2]=/opt/ros/kinetic/share

I cannot find the package pal_local_joint_control anywhere and in one of your answers, you have mentioned that it is an internal package of yours. Will it be released anytime soon? What other alternative is there to start the real TiaGo motors and sensors? Is there any documentation online to setup and start a real TiaGo robot?

In case you ask: the natively deployed OS (with Ubuntu 14.04.) is not working properly, it doesnt broadcast a network to connect to and also no laserscan and odom is published. The laser scan launch files seem corrupted when trying to start them manually. Teleoperation is working fine though and the robots head and arms are moving, the lights on the side are on and I can teleoperate the robot. However, everything else seem broken, which is why I decided to install Ubuntu from scratch and run the packages manually.

Thank you!

Tiago robot self-rotate in gazebo

I'm encountering an issue recently that the tiago robot rotate by itself slightly in gazebo simulation.

Reproducing process:

  • start simulation, and rotate tiago by a certain degree, and then stop tiago movement

Then tiago start self-rotating backwards slightly.

There's some same issues can be found here (one answer are using tiago too):

I've tried all the answers above, but still couldn't solve the issue.

Adding a camera in the end effector

Hi,
i'm triying to add a camera in the end effector of the robot because i want to do a visual servoing. Tiago robot already has a camera in his head but it is not useful in my case.
So, i've had a look on the urdf files and a I saw that a camera is added on the head.urdf.xacro. Hence, I comment that call to the xacro xtion_pro_live because I don't need this camera. In order to add the camera in the end_effector.urdf.xacro I add the call to xacro xtion_pro_live. Then, when I launch my simulation, I can see the camera on rviz but I can't see it in Gazebo simulator. Also, the end_effector_camera is publishing in xtion/rgb/image_raw but the image is what the camera sees in rviz. Besides, it is something publishing in the topic too, because I can see the image of the Tiago's head camera.
If someone know who to add a camera in the end_effector, not in the head, please I really aprecciate your help.
Thanks.

Missing rosdep definition in installation of Tiago Simulation

Hi,
I once had a working setup of Ros with Tiago working on it but recently, I had to reinstall it and I keep having the same issue over and over even reinstalling everything.

On the tutorial : http://wiki.ros.org/Robots/TIAGo/Tutorials/Installation/TiagoSimulation
At the line : rosdep install --from-paths src --ignore-src --rosdistro kinetic --skip-keys="opencv2 opencv2-nonfree pal_laser_filters speed_limit sensor_to_cloud hokuyo_node libdw-dev python-graphitesend-pip python-statsd pal_filters pal_vo_server pal_usb_utils", I keep getting the following message :

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
pmb2_rgbd_sensors: Cannot locate rosdep definition for [pal_pcl]
pmb2_2dnav: Cannot locate rosdep definition for [pal_karto]

I tried to compile but it also fails. Do you have an idea from where ithe problem might come from ?

doubt about Astra S location in URDF

We seem to be experiencing some offset of Astra S xtion_rgb_frame compared to real hardware

  • seems to be 2 cm on each axis

In particular, should xtion_orbbec_aux_joint_frame and link be set to (0,0,0)?

<!-- frame of camera origin provided by Orbbec, need this intermediate frame for backwards compatibility with xtion_pro_live
to reuse same camera origin -->
<joint name="${name}_orbbec_aux_joint" type="fixed">
<!-- Assuming we have 0.0908 0.08 0.0 from default camera_position, and rotated -90 deg on x.-->
<!-- Pending confirmation from Orbbec about the position of the frames, going with old defaults-->
<!-- <origin xyz="0.0107 0.008 0.015" rpy="0 0 0" />-->
<origin xyz="0 0 0" rpy="0 0 0" />
<parent link="${name}_link" />
<child link="${name}_orbbec_aux_joint_frame"/>
</joint>

Should data extracted from tf2 tree for TIAGo Astra S camera, in particular xtion_rgb_optical_frame, under which both depth and rgb data is published, reflect reality?

ros2_control: Param file does not contain parameters for joint_state_broadcaster

I'm trying to launch Tiago with the Humble debians, but I see errors like this for every controller:

tiago_behavior_demos-sim-1  | [spawner-9] [INFO] [1680183611.891801604] [spawner_arm_controller]: Set controller type to "joint_trajectory_controller/JointTrajectoryController" for arm_controller
tiago_behavior_demos-sim-1  | [gzserver-1] [INFO] [1680183611.893191959] [controller_manager]: Loading controller 'arm_controller'
tiago_behavior_demos-sim-1  | [gzserver-1] [INFO] [1680183611.920356180] [controller_manager]: Setting use_sim_time=True for arm_controller to match controller manager (see ros2_control#325 for details)
tiago_behavior_demos-sim-1  | [spawner-9] [INFO] [1680183611.944682539] [spawner_arm_controller]: Loaded arm_controller
tiago_behavior_demos-sim-1  | [spawner-9] Traceback (most recent call last):
tiago_behavior_demos-sim-1  | [spawner-9]   File "/opt/ros/humble/lib/controller_manager/spawner", line 33, in <module>
tiago_behavior_demos-sim-1  | [spawner-9]     sys.exit(load_entry_point('controller-manager==2.24.1', 'console_scripts', 'spawner')())
tiago_behavior_demos-sim-1  | [spawner-9]   File "/opt/ros/humble/local/lib/python3.10/dist-packages/controller_manager/spawner.py", line 212, in main
tiago_behavior_demos-sim-1  | [spawner-9]     load_parameter_file(node=node, node_name=prefixed_controller_name, parameter_file=param_file,
tiago_behavior_demos-sim-1  | [spawner-9]   File "/opt/ros/humble/lib/python3.10/site-packages/ros2param/api/__init__.py", line 149, in load_parameter_file
tiago_behavior_demos-sim-1  | [spawner-9]     raise RuntimeError('Param file does not contain parameters for {}, '
tiago_behavior_demos-sim-1  | [spawner-9] RuntimeError: Param file does not contain parameters for arm_controller,  only for nodes: dict_keys(['/arm_controller'])

I think the config file it refers to is here: https://github.com/pal-robotics/tiago_robot/blob/humble-devel/tiago_controller_configuration/config/head_controller.yaml

Error: /move_base Range sensor layer can't transform from map to base_sonar_01

We are encountering a problem with our robot Tiago. We have the following errors:

10:18:10:364    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176290.212631
10:18:09:168    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176289.011473
10:18:08:064    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176287.879702
10:18:06:630    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176286.447712
10:18:05:564    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176285.431382
10:18:04:365    /move_base    Range sensor layer can't transform from odom to base_sonar_01_link at 1713176284.219819
10:18:03:364    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176283.218585
10:18:02:165    /move_base    Range sensor layer can't transform from odom to base_sonar_01_link at 1713176282.011889
10:18:01:165    /move_base    Range sensor layer can't transform from odom to base_sonar_01_link at 1713176281.010118
10:18:00:165    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176280.008849
10:17:59:099    /move_base    Range sensor layer can't transform from odom to base_sonar_01_link at 1713176278.902425
10:17:56:164    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176276.010399
10:17:55:163    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176275.009291
10:17:54:163    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176274.008252
10:17:52:965    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176272.805622
10:17:51:965    /move_base    Range sensor layer can't transform from map to base_sonar_01_link at 1713176271.804663

Is this error affecting the functionality of Tiago? What steps can be taken to resolve this issue?
Any assistance or guidance on resolving this error would be greatly appreciated.

install DESTINATION /

The following line


is making a catkin_make install failing because it tries to access the root of the system.

In our packaging system this is also failing.

It is probably making sense on the real robot but for simulation, CI or local deployment this seems to be a problem.

Would it be ok to add a cmake variable to disable this install ? For you to have no change it would be set to a default value performing the install.

[spawn_model-4] process has died

Now I am using a docker (that has pytorch and cuda inside : pytorch/pytorch:1.8.1-cuda10.2-cudnn7-devel ) because we need to use GPU , then i install tiago package inside that docker. In general docker build and rocker run docker container complete.

Inside docker container
When I run roslaunch a simulation roslaunch tiago_gazebo tiago_gazebo.launch public_sim:=true robot:=steel
Gazebo ran but without tiago model inside, on the terminal there is a error like fail when load URDF model. More detail about error here:

[spawn_model-4] process has died [pid 673, exit code 1, cmd /tiago_public_ws/src/gazebo_ros_pkgs/gazebo_ros/scripts/spawn_model -urdf -param robot_description -x 0.0 -y 0.0 -z 0.0 -R 0.0 -P 0.0 -Y 0.0 -model tiago __name:=spawn_model __log:=/root/.ros/log/c92a57de-ea5d-11eb-b926-0242ac110002/spawn_model-4.log].
log file: /root/.ros/log/c92a57de-ea5d-11eb-b926-0242ac110002/spawn_model-4*.log

Can you have any suggestion for me? to fix the issue.

Or suggest me other way to make dockerfile that can use GPU ( cuda, Pytorch ). I tried to use tiago docker (docker base on osrf/ros:melodic-desktop-full-bionic ) it work good with tiago package but it doesn't have cuda and pytorch inside. Can anyone suggest me install cuda inside tiago docker?
Many thanks
Dat

How to create urdf from xacro - missing meshes

Hi,

SPEC:

  • Ubuntu 22
  • ROS2 humble

I have started exploring the project but am stuck on converting xacro to urdf (I want to use it in a simulator other than gazebo).

  1. I have cloned and built the repository (assume that colcon build --symlink-install)
  2. Try to convert xacro (xacro robots/tiago.urdf.xacro > tiago.urdf)

There are missing meshes in the whole package://pmb2_description/meshes/base/base.stl I have no directory base under meshes.
Can I generate these files or how should I get them?

It would be highly appreciated if you can replay asap, thanks :)

Best,
Adam Krawczyk

Missing pal_motion_loader package in simulation (ROS Noetic, kinetic-devel branch)

After following the installation guide for ROS Noetic, we tried to launch the robot in simulation via:

roslaunch tiago_gazebo tiago_gazebo.launch public_sim:=true end_effector:=pal-gripper

It throws a runtime error related to a missing pal_motion_loader package (simulation starts, but the planner doesn't, and the tuck_arm node gets stuck). It does work on a previous installation on the sources we downloaded back in September 2023. To sum up:

  • Simulation works at old version 2.3.13 (after applying 238e7ea).
  • Simulation breaks at current version 2.3.17.
  • Cause: now the planner requires an additional pal_motion_loader that is not installed alongside other repos via rosinstall (diff).

On a side note, during the catkin build phase, there are a few CMake errors caused by find_package(REQUIRED). It is necessary to install them manually via apt install ros-noetic-<package>. I presume the rosinstall script is incomplete.

Error loading config file with no-arm selection

Running tiago_gazebo, with no-arm parameter:

ros2 launch tiago_gazebo tiago_gazebo.launch.py arm:=no-arm

The path is not correctly generated:

[WARNING] [launch_ros.actions.node]: Parameter file path is not a file: ~/ros2_ws/install/tiago_bringup/share/tiago_bringup/config/motions/tiago_motions_no-arm_pal-gripper_schunk-ft.yaml

The files provided are:

  • tiago_motions_no-arm.yaml
  • tiago_motions_no-end-effector_schunk-ft.yaml
  • tiago_motions_no-end-effector.yaml
  • tiago_motions_pal-gripper_schunk-ft.yaml
  • tiago_motions_pal-gripper.yaml
  • tiago_motions_pal-hey5_schunk-ft.yaml
  • tiago_motions_pal-hey5.yaml
  • tiago_motions.yaml.em

Fixing the error as (#21):

if (arm == 'no-arm'):
        motions_file = 'tiago_motions_no-arm.yaml'

Then another error appears:

[play_motion2_node-11] [ERROR] [1687948338.550539793] [play_motion2]: Service /controller_manager/list_controllers not available.
[play_motion2_node-11] [ERROR] [1687948338.550716131] [play_motion2]: There are no active JointTrajectory controllers available

[play_motion2_node-11] [ERROR] [1687948356.631965118] [play_motion2]: Joint 'arm_1_joint' is not claimed by any active controller
[play_motion2_node-11] [ERROR] [1687948356.632317282] [play_motion2]: Joint 'arm_2_joint' is not claimed by any active controller
[play_motion2_node-11] [ERROR] [1687948356.632548396] [play_motion2]: Joint 'arm_3_joint' is not claimed by any active controller
[play_motion2_node-11] [ERROR] [1687948356.632615411] [play_motion2]: Joint 'arm_4_joint' is not claimed by any active controller
[play_motion2_node-11] [ERROR] [1687948356.632656069] [play_motion2]: Joint 'arm_5_joint' is not claimed by any active controller
[play_motion2_node-11] [ERROR] [1687948356.632693787] [play_motion2]: Joint 'arm_6_joint' is not claimed by any active controller
[play_motion2_node-11] [ERROR] [1687948356.632718715] [play_motion2]: Joint 'arm_7_joint' is not claimed by any active controller

Thank you! :)

Tiago Robot shutting down at 20% loading with a click sound from the base

Hello, I am facing perhaps an electrical problem, not software. I came here hoping someone faced the same thing before.

We have a Tiago robot in the uni lab, it has not been powered up lately for quite some time. I wanted to power it up after charging for almost 1 hour, but it always reaches the loading percentage of 20% on the small screen near the power button, and I hear a click sound coming from the base, then everything goes down.

After this I have to lock the keyhole (turn the key CCW) and then unlock it again (turn the key CW) to get the power button to work again, then it all repeats.

Did anyone face the same thing or can point me to what to do? BTW I am charging it directly from the charger as the user manual recommends for powered down robots.

I can provide a link to a video file showing the problem happen in realtime if it helps.

Thank you in advance!

Sincerely.

Missing inertia values in xacro files

In two xacro files 'arm.urdf.xacro' and 'ftsensor.urdf.xacro', some of the inertia matrices are zero-ed out.

<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />

<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />

<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0" />

So, upon generating urdfs with these files, some links have zero inertia values (For instance, for a tiago_dual it affects the links: arm_left_tool_link , wrist_left_ft_link, wrist_left_ft_tool_link, arm_right_tool_link, wrist_right_ft_link, wrist_right_ft_tool_link)

Can these values be updated to the true inertia values?

Why this is an issue?:
I'm trying to load the Tiago urdf model in PyBullet and, if zero, PyBullet will load very large inertia values by default. This breaks the PyBullet physics simulation.

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.