-
Notifications
You must be signed in to change notification settings - Fork 1
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
base: main
Are you sure you want to change the base?
Conversation
SanjarNormuradov
commented
Jul 18, 2023
- 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
…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]>
970fe7d
to
60bc1fb
Compare
@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 |
…nto sanjar_reach-manip
…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
There was a problem hiding this 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}"> |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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"/> |
There was a problem hiding this comment.
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.