ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

ipa-hsd's profile - activity

2023-03-30 05:20:15 -0500 received badge  Famous Question (source)
2022-10-19 02:35:43 -0500 commented answer Any Examples of URDF/MoveIt for Parallel Robots?

The package has been deleted / is not accessible anymore. Any reason?

2022-07-10 20:13:52 -0500 received badge  Nice Question (source)
2022-06-28 07:50:20 -0500 commented answer Calculating inertial matrix for Gazebo

Thanks for the script! Do you mind adding a LICENSE file to the repo?

2022-05-10 10:19:54 -0500 commented answer buildfarm fails for noetic with KeyError: libcurlpp-dev

https://github.com/ros/rosdistro/pull/33130 https://github.com/ros-infrastructure/ros_buildfarm_config/pull/218

2022-05-10 02:59:17 -0500 commented answer buildfarm fails for noetic with KeyError: libcurlpp-dev

to clarify, I need to add the package pf_driver in https://github.com/ros-infrastructure/ros_buildfarm_config/blob/produ

2022-05-10 02:57:56 -0500 commented answer buildfarm fails for noetic with KeyError: libcurlpp-dev

to clarify, I need to add the package pf_driver in https://github.com/ros-infrastructure/ros_buildfarm_config/blob/produ

2022-05-10 02:57:40 -0500 commented answer buildfarm fails for noetic with KeyError: libcurlpp-dev

to clarify, I need to add the package pf_driver in https://github.com/ros-infrastructure/ros_buildfarm_config/blob/produ

2022-05-10 02:20:38 -0500 marked best answer buildfarm fails for noetic with KeyError: libcurlpp-dev

We are trying to release the packages in pf_lidar_ros_driver for melodic and noetic. We have been able to release for melodic successfully in the past and even the latest job was successful. However the job for noetic failed with the error:

Looking for the '.dsc' file of package 'ros-noetic-pf-driver' with version '1.2.0-1'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 297, in __getitem__
    rawpkg = self._cache[key]
KeyError: 'libcurlpp-dev'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/ros_buildfarm/scripts/release/create_binarydeb_task_generator.py", line 216, in <module>
    main()
  File "/tmp/ros_buildfarm/scripts/release/create_binarydeb_task_generator.py", line 92, in main
    apt_cache, debian_pkg_names)
  File "/tmp/ros_buildfarm/ros_buildfarm/common.py", line 175, in get_binary_package_versions
    pkg = apt_cache[debian_pkg_name]
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 299, in __getitem__
    raise KeyError('The cache has no package named %r' % key)
KeyError: "The cache has no package named 'libcurlpp-dev'"
Build step 'Execute shell' marked build as failure

Since libcurlpp-dev is not a ROS package and is present in rosdistro, I am wondering what went wrong in case of noetic.

Edit 1: Among all the builds, looks like it fails only for debian buster.

2022-05-10 02:19:45 -0500 commented answer buildfarm fails for noetic with KeyError: libcurlpp-dev

Yes agreed with your recent edit

2022-05-10 02:18:46 -0500 commented answer buildfarm fails for noetic with KeyError: libcurlpp-dev

That was my initial thought. But with my "edit 1", I realized it seems to be a problem with debian buster specifically.

2022-05-10 02:15:20 -0500 commented answer buildfarm fails for noetic with KeyError: libcurlpp-dev

Yes we did use the keyword curlpp-dev. But for debian and ubuntu it gets resolved to libcurlpp-dev

2022-05-10 02:15:03 -0500 commented answer buildfarm fails for noetic with KeyError: libcurlpp-dev

Yes we did use the keyword curlpp-dev. But for debian and ubuntu it gets resolved to libcurlcpp-dev

2022-05-10 02:14:13 -0500 commented answer buildfarm fails for noetic with KeyError: libcurlpp-dev

Yes we did use the keyword curlcpp-dev. But for debian and ubuntu it gets resolved to libcurlcpp-dev

2022-05-10 02:08:18 -0500 edited question buildfarm fails for noetic with KeyError: libcurlpp-dev

buildfarm fails for noetic with KeyError: libcurlpp-dev We are trying to release the packages in pf_lidar_ros_driver for

2022-05-10 02:00:00 -0500 asked a question buildfarm fails for noetic with KeyError: libcurlpp-dev

buildfarm fails for noetic with KeyError: libcurlpp-dev We are trying to release the packages in pf_lidar_ros_driver for

2020-11-25 05:01:07 -0500 received badge  Teacher (source)
2020-09-14 12:36:48 -0500 marked best answer transform pose in tf2

Ubuntu 18.04
ROS2 Eloquent (installed by binaries)

I am trying to transform a PoseStamped in the target frame in python.

Below would how my code look like:

import tf2_geometry_msgs
from geometry_msgs.msg import PoseStamped
.
.
.
target_pose_s = self.tf_buffer.transform(self.pose_s, target_frame)

In this case, I get module not found error:

ModuleNotFoundError: No module named 'tf2_geometry_msgs'

I think it is looking for the tf2_geometry_msgs.py file, which is not installed for ROS2 on my system. But I can see this for melodic.

/opt/ros/melodic/lib/python2.7/dist-packages/tf2_geometry_msgs/tf2_geometry_msgs.py

(it exists in the eloquent branch though)

In this issue, which was addressed in this PR the setup.py was said to be "unused". Also here is marked that Python support doesn't exist yet, though catkin_python_setup() shouldn't be needed for ROS2 anymore?

If I comment out tf2_geometry_msgs, I get the error

tf2_ros.buffer_interface.TypeException: Type <class 'geometry_msgs.msg._pose_stamped.PoseStamped'> if not loaded or supported

What am I missing here? Or is it that transform(PoseStamped, "target_frame") function not supported yet in Python?

2020-09-10 13:45:57 -0500 answered a question rosrun rosprolog rosprolog knowrob_common

The latest version of the repo does not have knowrob_common package as compared to previous versions. The tutorials on h

2020-08-31 04:20:15 -0500 received badge  Famous Question (source)
2020-08-31 04:20:15 -0500 received badge  Notable Question (source)
2020-06-14 13:48:35 -0500 commented answer [ros2] Multithreaded Executors and parameters

this link is actual implementation of MultiThreadedExecutor. I think it should be https://github.com/ros2/examples/blob/

2020-05-19 05:06:48 -0500 received badge  Famous Question (source)
2020-04-13 05:42:32 -0500 received badge  Famous Question (source)
2020-03-26 06:38:35 -0500 received badge  Notable Question (source)
2020-02-28 05:43:32 -0500 received badge  Popular Question (source)
2020-02-13 09:22:50 -0500 received badge  Associate Editor (source)
2020-02-13 09:22:50 -0500 edited question transform pose in tf2

transform pose in tf2 Ubuntu 18.04 ROS2 Eloquent (installed by binaries) I am trying to transform a PoseStamped in t

2020-02-13 09:20:08 -0500 asked a question transform pose in tf2

transform pose in tf2 Ubuntu 18.04 ROS2 Eloquent (installed by binaries) I am trying to transform a PoseStamped in t

2019-10-21 03:01:12 -0500 commented question How do you command robot joint position in rviz?

Do you intend to use MoveIt! for your robot? With MoveIt, you can not only solve IKs, but plan and execute complex traje

2019-10-21 02:55:13 -0500 commented question How do you command robot joint position in rviz?

Do you intend to use MoveIt! for your robot? With MoveIt, you can not only solve IKs, but plan and execute complex traje

2019-10-15 05:25:24 -0500 received badge  Famous Question (source)
2019-07-01 07:46:33 -0500 marked best answer Calculating inertial matrix for Gazebo

I am having issues following the tutorial to calculate the inertial matrix for my gripper. This is the behaviour I see. I am able to successfully create a config package with PR2 gripper, so I am pretty sure it is because of the inertial matrix.

In Meshlab, following are the values I get at no-scale:

Mesh Bounding Box Size 0.164416 0.063248 0.077500
Mesh Bounding Box Diag 0.192456 
Mesh Volume is 0.000214
Mesh Surface is 0.089074
Thin shell barycenter -0.040913 -0.000254 0.039031
Center of Mass is -0.041006 -0.000043 0.037458
Inertia Tensor is :
| 0.000000 -0.000000 0.000000 |
| -0.000000 0.000001 0.000000 |
| 0.000000 0.000000 0.000000 |
Principal axes are :
| 0.938629 0.011849 0.344725 |
| 0.004914 0.998849 -0.047710 |
| -0.344893 0.046476 0.937491 |
axis momenta are :
| 0.000000 0.000001 0.000001 |

For a scale of 100, following are the values I get :

Mesh Bounding Box Size 16.441637 6.324847 7.750000
Mesh Bounding Box Diag 19.245613 
Mesh Volume is 214.333633
Mesh Surface is 890.744385
Thin shell barycenter -4.091284 -0.025389 3.903062
Center of Mass is -4.100575 -0.004325 3.745764
Inertia Tensor is :
| 1597.194946 -17.950985 1307.758423 |
| -17.950985 5213.373047 9.511752 |
| 1307.758423 9.511752 4675.780273 |
Principal axes are :
| 0.938629 0.011848 0.344725 |
| 0.004914 0.998849 -0.047710 |
| -0.344893 0.046475 0.937491 |
axis momenta are :
| 1116.573364 5213.602539 5156.172363 |

How do I use these values? I didn't quite understand the scaling part of the tutorial. Also, ideally, shouldn't the simulation work when I consider the gripper to be almost weightless?

<inertial>
  <mass value="0.001" />
  <inertia ixx="0.001" ixy="0"  ixz="0"
           iyy="0.001" iyz="0"
           izz="0.001" />
</inertial>

A unity matrix or the above value as well gives the same behaviour as in the video.

Edit 1:

I have tested the macro mentioned by @Stefan Kohlbrecher. Also, I divided the inertia matrix given by Meshlab by volume which gives me :

<inertial>
    <mass value="1.0" />
    <origin xyz="-0.041006 -0.000043 0.037458" />
    <inertia ixx="0.000746353" ixy="0"  ixz="0"
               iyy="0.002436156" iyz="0"
               izz="0.002184945" />
</inertial>

Still I observe the same behaviour. Does Gazebo need the inertia matrix wrt origin or wrt center of mass?

Edit 2:

@MarioSelvaggio 's solution seems to work perfectly fine. The arm is stable and I am also able to plan and execute trajectories. But the solution only works when in my final urdf file I translate the gripper :

<joint name="gripper_joint" type="fixed">
    <parent link="ur5_arm_ee_link" />
    <child link = "gripper" />
    <origin xyz="0.04100575 0.00004325 -0.03745764" rpy="0.0 4.71 3.14" />
</joint>

Observe that the sign of origin xyz has been inverted. Here's how it looks: http://i.imgur.com/7hE8OdD.png For rest of the cases, the simulation remains unstable ... (more)

2019-06-19 16:03:02 -0500 received badge  Notable Question (source)
2019-06-19 16:03:02 -0500 received badge  Popular Question (source)
2019-05-20 02:18:13 -0500 marked best answer Kinematic chain for Husky + UR5

After spending time with MoveIt!, I am trying to integrate ur5 with husky.

<joint name="husky_ur5_joint" type="fixed">
  <parent link="base_link" />
  <child link = "ur5_arm_base_link" />
  <origin xyz="0.205 0.0 0.6" rpy="0.0 0.0 3.142" />
</joint>

This is how I am combining both of them in the URDF. While using the MoveIt setup assistant, I selected the kinematic chain starting from ur5_arm_base_link to ur5_arm_ee_link. This can be seen in the SRDF file :

<group name="manipulator">
    <chain base_link="ur5_arm_base_link" tip_link="ur5_arm_ee_link" />
</group>

But when I am moving the manipulator group P2P, I have to give the target pose in base_link and not in ur5_arm_base_link. I want to eliminate the errors induced while calculating the transformations between the two, so I want the target pose to be in ur5_arm_base_link. Why is the kinematic chain being considered starting from base_link and how can I eliminate that?

2019-05-20 01:52:44 -0500 marked best answer Controller aborts trajectory goal with GOAL_TOLERANCE_VIOLATION after execution

I am simulating denso arm in Gazebo 2 on Indigo.

denso_control.yaml

vs087:
  joint_state_controller:
    type: joint_state_controller/JointStateController
    publish_rate: 125

  arm_controller:
    type: "position_controllers/JointTrajectoryController"
    joints:
      - joint_1
      - joint_2
      - joint_3
      - joint_4
      - joint_5
      - joint_6

    constraints:
      goal_time: 0.6
      stopped_velocity_tolerance: 0.05
      joint_1: {trajectory: 0.1, goal: 0.1}
      joint_2: {trajectory: 0.1, goal: 0.1}
      joint_3: {trajectory: 0.1, goal: 0.1}
      joint_4: {trajectory: 0.1, goal: 0.1}
      joint_5: {trajectory: 0.1, goal: 0.1}
      joint_6: {trajectory: 0.1, goal: 0.1}
    stop_trajectory_duration: 0.5
    state_publish_rate:  125
    action_monitor_rate: 10

I am setting the following parameters while initializing my move_group:

group.set_planner_id("RRTConnectkConfigDefault")
group.set_goal_tolerance(0.1)
group.set_num_planning_attempts(10)
group.set_planning_time(5.0)
group.set_max_velocity_scaling_factor(1.0)
group.set_max_acceleration_scaling_factor(1.0)

After executing a reachable target (whether named or pose target), the controller throws an error:

[ WARN] [1508768453.519348029, 51.904000000]: Dropping first 1 trajectory point(s) out of 10, as they occur before the current time.
First valid point will be reached in 0.208s.
[ WARN] [1508768455.123441445, 53.504000000]: Controller vs087/arm_controller failed with error code GOAL_TOLERANCE_VIOLATED
[ WARN] [1508768455.123507438, 53.504000000]: Controller handle vs087/arm_controller reports status ABORTED

This is the output of rostopic echo /vs087/arm_controller/state which seems to be within the set goal tolerance (even though joint 2 has much higher error than the others, which is always the case)

error: 
  positions: [-1.760044554544038e-09, -0.001160522929334995, -9.655529709107213e-10, 1.208886324377545e-09, 3.4927438719023485e-10, 3.33908012351003e-10]
  velocities: [-1.7600773791239206e-06, -1.1605230596161191, -9.655595170077191e-07, 1.209310674844269e-06, 3.492708007257761e-07, 3.342539573532484e-07]

Sometimes I also get an error:

Controller is taking too long to execute trajectory (the expected upper bound for the trajectory execution was 1.2 seconds). Stopping trajectory.

I am able to plan and execute in RViz most of times. What am I missing here? I think I have set the nexessary parameters according to previous similar issues.

I am able to plan and execute in RViz most of the times for random positions

2019-04-15 07:23:34 -0500 edited question ImportError: cannot import name 'pyparsing_common'

ImportError: cannot import name 'pyparsing_common' I am using Ubuntu 16.04 and built ROS2 crystal by source. I was able

2019-04-15 06:54:23 -0500 edited question ImportError: cannot import name 'pyparsing_common'

ImportError: cannot import name 'pyparsing_common' I am using Ubuntu 16.04 and built ROS2 crystal by source. I was able

2019-04-15 06:53:31 -0500 asked a question ImportError: cannot import name 'pyparsing_common'

ImportError: cannot import name 'pyparsing_common' I am using Ubuntu 16.04 and built ROS2 crystal by source. I was able

2019-03-01 16:32:03 -0500 marked best answer Ignore yaw of object for pick and place

I am working on a pick and place application where I have to pick a dodecahedron with a vacuum gripper. The camera gives the object pose with respect to the bin it is in. I want to avoid rotating the 6th joint while grasping the object. As long as the object's top is flat, I can ignore the z-rotation. But this is not always the case, since there's a pile of objects.

I have few ideas how to do this:

  1. Plan only for 5 joints for the 6-axis robot. In this case, the last joint would be excluded from the plan. But I am not sure if this can be done in the code. The only way I know is to specify the kinematic chain group in SRDF. But I do not want this. Is there any way the tool tip can be specified in the code?
  2. A hack would be that after moveit plans the trajectory, I loop through the trajectory and replace the 6th joint values with its current value. But I would like to avoid this, since it doesn't seem to be the best way.
  3. Probably I can give constraints for the 6th joint with a very low tolerance. But Python (I need to use SMACH, hence python) doesn't have the function to set joint constraints in its interface.
  4. Nullify the z-axis rotation from the quaternion. Quaternions being so complicated, I can't wrap my head around how to do this. As long as the object lies flat, I can convert the quaternion to eulers, set yaw=0 and convert it back to quaternion. This doesn't work well when the object's top surface is inclined though. Just to mention it again, the object's pose is in the bin's frame.

Any more ideas or a way to do one of the above are welcome. Thanks!

2019-02-22 09:31:01 -0500 commented question Cannot import module control_msgs

Were you able to compile https://github.com/nzlz/control_msgs? I had to add unique_identifier_msgs as a dependency.

2018-11-13 00:41:47 -0500 received badge  Famous Question (source)
2018-09-24 07:30:32 -0500 received badge  Popular Question (source)
2018-09-21 02:27:08 -0500 asked a question Change default path for moveit setup assistant template

Change default path for moveit setup assistant template Currently I see that the path of template for the setup assistan

2018-09-19 14:35:05 -0500 marked best answer Spawning a cube in gazebo

I tried to spawn a cube in gazebo with the following URDF.

<robot name="simple_box">
  <link name="my_box">
    <inertial>
      <origin xyz="2 0 0" />
      <mass value="1.0" />
      <inertia  ixx="1.0" ixy="0.0"  ixz="0.0"  iyy="100.0"  iyz="0.0"  izz="1.0" />
    </inertial>
    <visual>
      <origin xyz="0.7 0 0.56"/>
      <geometry>
        <box size="0.02 0.02 0.02" />
      </geometry>
    </visual>
    <collision>
      <origin xyz="0.7 0 0.56"/>
      <geometry>
        <box size="0.02 0.02 0.02" />
      </geometry>
    </collision>
  </link>
  <gazebo reference="my_box">
    <material>Gazebo/Blue</material>
  </gazebo>
</robot>

with the following entry in my launch file :

<!-- spawn a cube for pick and place -->
<node name="spawn_cube" pkg="gazebo_ros" type="spawn_model" args="-file $(find ur5_pnp)/urdf/object.urdf -urdf -model cube" />

But I see some strange behavior of the cube as it never stops moving. https://youtu.be/HPc2xJXtPhc

I am guessing it has something to do with inertia / mass?