Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sanjar reach manip #17

Draft
wants to merge 13 commits into
base: main
Choose a base branch
from
Draft

Sanjar reach manip #17

wants to merge 13 commits into from

Conversation

SanjarNormuradov
Copy link
Contributor

  • add manipulability tests with different parameters (pod's position, motion planning parameters, rpy perturbations, etc).
  • aurmr_perception/visualization.py is modified to visualize epick-end-effector with suction cup and metal cylinder.
  • aurmr_tasks/src/aurmr_tasks/tahoma.py is modified to created more precise collsion scene for the pod in MoveIt, to account for different pod models, and to compute/execute motion plans for the given target pose/joint_values.
  • robotiq/robotiq_epick_visualization/robotiq_epick_model_macro.xacro is modified to correspond the dimensions (collison objects) of the end-effector from meshes/visual/robotiq_epick_full.stl (which includes a suction cup and a metal cylinder to original epick end-effector). Those dimensions are explicitly defined in xacro files. tahoma_description/robots(or urdf)/pod.xacro is renamed to pod1.xacro (pod with 13x4 small bins).
  • pod2.xacro file is created for the pod with 8x3 large bins.
  • tahoma_description/urdf/tahoma.xacro is modified to explicitly define the dimensions and relative distances of coupling/connector_cover/robotiq_epick_end-effector and to include all of them (visual and collision objects) according to dae/stl files and real measurements. tahoma_moveit_config/config/omply_planning.yaml file has decreased 'longest_valid_segment_fraction' parameter from 0.01 to 0.001 to address thin bin walls (2 mm) in motion planning.
  • tahoma_moveit_config/config/servo.yaml has collsion_check_rate of 200 instead of defalut 50 to avoid collision of the end-effector with bins when pre-grasp poses are very close to the bin's walls or when the robot is too close to the pod.
  • tahoma_moveit_config/config/tahoma.srdf file is refined to exlcude obvious links from collision checking process

artsyminion04 and others added 3 commits August 26, 2022 15:49
…ability/manipulability tests with different parameters (pod's position, motion planning parameters, rpy perturbations, etc). aurmr_perception/visualization.py is modified to visualize epick-end-effector with suction cup and metal cylinder. aurmr_tasks/src/aurmr_tasks/tahoma.py is modified to created more precise collsion scene for the pod in MoveIt, to account for different pod models, and to compute/execute motion plans for the given target pose/joint_values. robotiq/robotiq_epick_visualization/robotiq_epick_model_macro.xacro is modified to correspond the dimensions (collison objects) of the end-effector from meshes/visual/robotiq_epick_full.stl (which includes a suction cup and a metal cylinder to original epick end-effector). Those dimensions are explicitly defined in xacro files. tahoma_description/robots(or urdf)/pod.xacro is renamed to pod1.xacro (pod with 13x4 small bins). pod2.xacro file is created for the pod with 8x3 large bins. tahoma_description/urdf/tahoma.xacro is modified to explicitly define the dimensions and relative distances of coupling/connector_cover/robotiq_epick_end-effector and to include all of them (visual and collision objects) according to dae/stl files and real measurements. tahoma_moveit_config/config/omply_planning.yaml file has decreased 'longest_valid_segment_fraction' parameter from 0.01 to 0.001 to address thin bin walls (2 mm) in motion planning. tahoma_moveit_config/config/servo.yaml has collsion_check_rate of 200 instead of defalut 50 to avoid collision of the end-effector with bins when pre-grasp poses are very close to the bin's walls or when the robot is too close to the pod. tahoma_moveit_config/config/tahoma.srdf file is refined to exlcude obvious links from collision checking process
Moved some data files into config/data directories
Co-Authored-By: Sanjar Normuradov <[email protected]>
Co-Authored-By: Nick Walker <[email protected]>
@nickswalker
Copy link
Contributor

@SanjarNormuradov and I looked at this together today and removed some files from the pull request. The key changes to the moveit configuration and to the robot model are still unclear because the branch needs to be rebased on to the current main. Once that rebase is pushed here, we should run the system with the new planning configuration and robot model to confirm that the performance is as expected.

SanjarNormuradov and others added 10 commits August 17, 2023 13:12
…o) for 2 pods with 4 faces each are implemented/tested

Also, MoveIt collision scene spawner function is implemented
pod_sizes.yaml and end_effector_sizes.yaml files are created and used in tahoma.py
Drop inorder arg: inorder processing is default since melodic
Add a version of the shelf stack macro which supports
different numbers of columns on a row-by-row basis by taking
in a list of column numbers
Likewise with depth
Copy link
Contributor

@nickswalker nickswalker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was able to build the pod models with this version. Thanks! I left some comments about the structure of the xacro

@@ -249,23 +252,18 @@
</xacro:if>
<xacro:unless value="${POD_ID == 1 and i == 0}">
<xacro:property name="bin_width" value="${BIN_WIDTH}"/>
<xacro:property name="NUM_COLUMNS" value="2"/>
<xacro:if value="${POD_ID == 1}">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's odd for this file to have hardcoded behavior specific to particular pods, since anything that requires hard coding likely could've been included in the recipe as a parameter. I pushed a version of the shelf stack macro which takes the number of columns as a list argument for an idea of how that might work.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see from the new pod_sizes.yaml that you've probably already discovered ${xacro.load_yaml ...}

It should be possible to rewrite this file so that it just loads all the parameters from the yaml file based on the passed in IDs.

<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="pod">
<xacro:arg name="pod_id" default="1A"/>
<xacro:arg name="include_flaps" default="true"/>
<xacro:arg name="call_macro" default="false"/>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By convention, xacro files in the robot directory of a package should produce a valid URDF when xacro is invoked on them. Macro definitions are expected to live under /urdf (strange convention, unless you think of them as the source code for the URDF, and the robot/ xacro as the (almost) executable form. So there shouldn't need to be a call_macro arg, it should be the only behavior.

@nickswalker nickswalker marked this pull request as draft August 23, 2023 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants