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

Parameterize ada_moveit with end_effector_tool #54

Draft
wants to merge 87 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
d0544a6
Update forque_assembly_joint macro to allow fixed, revolute, and cont…
jjaime2 Nov 7, 2024
7847a68
Add Articulable Fork XACRO and STL
jjaime2 Nov 8, 2024
78bf8d1
Add hardware interface for Dynamixels
jjaime2 Nov 11, 2024
f72a2f8
Rename AFMotor2_to_AFMotorFixture1 to AFMotor2_to_AFMotor1
jjaime2 Nov 11, 2024
65a3f6b
Merge branch 'jjaime2/articulable_fork_description' into jjaime2/dyna…
jjaime2 Nov 11, 2024
04c11b2
Remove lingering comments
jjaime2 Nov 11, 2024
1987de5
Add WIP unit test for Dynamixel hardware interface
jjaime2 Nov 11, 2024
9b17991
Rename hardware interface Dynamixel to DynamixelHardware to match imp…
jjaime2 Nov 12, 2024
c102e12
Format forque.xacro using xmllint
jjaime2 Nov 12, 2024
9d435d9
Rename Articulable Fork links and joints
jjaime2 Nov 12, 2024
6a7a651
Merge branch 'jjaime2/articulable_fork_description' into jjaime2/dyna…
jjaime2 Nov 12, 2024
f25ed9d
Rename port to usb_port
jjaime2 Nov 12, 2024
0c81299
Add default configuration for Articulable Fork joints
jjaime2 Nov 12, 2024
ff042fa
Fix merge
jjaime2 Nov 12, 2024
97fc98a
Fix parameter definitions for usb_port and baud_rate, rename joints
jjaime2 Nov 12, 2024
51b0fd7
Adjust line spacing
jjaime2 Nov 12, 2024
68087b0
Fix mis-named joint to af_joint_2
jjaime2 Nov 12, 2024
2d8ac13
Add ros2_control block for Articulable Fork, and initial positions
jjaime2 Nov 13, 2024
2f9129a
Add Articulable Fork info to SRDF
jjaime2 Nov 13, 2024
e6d962e
Add Articulable Fork mock controllers
jjaime2 Nov 13, 2024
8e0769a
Add af_ros2_control and fix readonly param
jjaime2 Nov 13, 2024
7e876aa
Fix indentation
jjaime2 Nov 13, 2024
3bb0bc9
Fix namespace conflict by renaming ada_hardware::DynamixelHardware to…
jjaime2 Nov 14, 2024
c0072fc
Rename ada_hardware::DynamixelHardware to dynamixel_hardware::Dynamix…
jjaime2 Nov 14, 2024
e7fa968
Merge branch 'jjaime2/dynamixel_hw_interface' into jjaime2/articulabl…
jjaime2 Nov 14, 2024
440b1d2
Fix mis-named namespace
jjaime2 Nov 14, 2024
1ab1440
Merge branch 'jjaime2/dynamixel_hw_interface' into jjaime2/articulabl…
jjaime2 Nov 14, 2024
301926f
Add PickIK kinematics solver for articulable_fork group
jjaime2 Nov 14, 2024
7907726
Add OMPL planner for Articulable Fork
jjaime2 Nov 15, 2024
678d95d
Add af_velocity_controller and af_joint_trajectory_controller, add hy…
jjaime2 Nov 17, 2024
1e243d2
Change mock controllers for AF
jjaime2 Nov 17, 2024
b50e25a
Add planning group for ADA + AF end-to-end control
jjaime2 Nov 18, 2024
bfb28ee
Add spacing
jjaime2 Nov 20, 2024
d3f4391
Add mock jaco_af_controller and jaco_af_cartesian_controller
jjaime2 Nov 20, 2024
f9ec2af
Rename move group all to jaco_af
jjaime2 Nov 20, 2024
2b17d17
Add jaco_af OMPL planning
jjaime2 Nov 20, 2024
926943f
Add jaco_af PickIkPlugin
jjaime2 Nov 24, 2024
3d3c8cd
Change Jaco+AF cartesian controller to damped least squares, Remove o…
jjaime2 Nov 24, 2024
4f2396f
Use Jaco+AF move group for mock servo control
jjaime2 Nov 24, 2024
c414d0e
Add Jaco+AF MoveIt2 controllers, Remove old AF MoveIt2 controllers
jjaime2 Nov 24, 2024
3a98276
Use Jaco+AF move group for real servo control
jjaime2 Nov 24, 2024
d851430
Use Jaco+AF cartesian control for keyboard tele-op
jjaime2 Nov 24, 2024
e537c76
Add AF joints to servo republisher
jjaime2 Nov 24, 2024
eb8d630
Add real Jaco+AF controllers
jjaime2 Nov 24, 2024
8054301
Update to selectively_damped_least_squares
jjaime2 Nov 25, 2024
507a530
Update hybrid_controllers
jjaime2 Nov 25, 2024
260e945
Add hybrid servo yaml file
jjaime2 Nov 27, 2024
fb7b8c5
Add OverPlate configuration
jjaime2 Nov 29, 2024
32b4ddb
Add script to command twists
jjaime2 Nov 29, 2024
1a43bf9
Add OverPlate configuration to initial positions
jjaime2 Nov 29, 2024
a8aea27
Add frame_id argument to ada_twist_teleop
jjaime2 Dec 2, 2024
ebc95f3
TEMP: Set default velocity scaling factor to 1.0
jjaime2 Dec 7, 2024
a402eec
Remove jaco_af controllers, add af controllers
jjaime2 Dec 7, 2024
2fda537
Update MoveIt controllers to use af controllers
jjaime2 Dec 7, 2024
0e5f8bc
Update OMPL planners to use articulable_fork move group
jjaime2 Dec 7, 2024
adcf2a2
Remove af_cartesian_controller
jjaime2 Dec 7, 2024
197dfcc
Revert to using jaco_arm_cartesian_controller for keyboard tele-op
jjaime2 Dec 9, 2024
80c710f
Fix typo in jaco_arm_servo_controller
jjaime2 Dec 9, 2024
477a47d
Remove articulable_fork.launch.py
jjaime2 Dec 9, 2024
1d20fda
Revert "Format forque.xacro using xmllint"
jjaime2 Dec 12, 2024
6efbe95
Add end_effector_tool configuration, remove use_forque configuration
jjaime2 Dec 12, 2024
1ac9d62
Conditionally modify fork URDF based on end_effector_tool
jjaime2 Dec 12, 2024
f463f1f
Collapse XACRO elements
jjaime2 Dec 12, 2024
b0a0e67
More formatting
jjaime2 Dec 12, 2024
1ef30d9
Rename forkTine_to_forque to af_forque_joint
jjaime2 Dec 12, 2024
652aad9
Merge branch 'jjaime2/articulable_fork_description' into jjaime2/dyna…
jjaime2 Dec 12, 2024
cc90416
Formatting
jjaime2 Dec 12, 2024
2c3f00c
Add end_effector_tool configuration for ada_hardware.launch.py
jjaime2 Dec 12, 2024
45be0b4
Merge branch 'jjaime2/dynamixel_hw_interface' into jjaime2/articulabl…
jjaime2 Dec 12, 2024
4d3b048
Cleanup
jjaime2 Dec 12, 2024
062356b
Add configuration for end_effector_tool
jjaime2 Dec 13, 2024
5e961d8
Decouple ADAs description into a macro that is explicitly instantiate…
jjaime2 Dec 14, 2024
3ba9ae2
Merge branch 'jjaime2/articulable_fork_description' into jjaime2/arti…
jjaime2 Dec 14, 2024
ed730e0
Use updated ada macro
jjaime2 Dec 14, 2024
01c6fbe
Merge branch 'jjaime2/articulable_fork_description' into jjaime2/dyna…
jjaime2 Dec 14, 2024
c7a815f
Use updated ada macro
jjaime2 Dec 14, 2024
b6821e2
Update launch files to enable end_effector_tool parameterization
jjaime2 Dec 15, 2024
0fae939
Rename jaco_af move group to ada
jjaime2 Dec 16, 2024
e2b14e8
Merge branch 'main' into jjaime2/articulable_fork_description
jjaime2 Dec 18, 2024
9c4ac8c
Run pre-commit
jjaime2 Dec 18, 2024
0967dad
Remove actuator, transmission, and gazebo configurations
jjaime2 Dec 18, 2024
765ff3f
Merge branch 'jjaime2/articulable_fork_description' into jjaime2/dyna…
jjaime2 Dec 18, 2024
a25f7aa
Run pre-commit
jjaime2 Dec 18, 2024
aed616d
Fix typo in dynamixel_hardware.hpp
jjaime2 Dec 18, 2024
e0e18c9
Merge branch 'jjaime2/dynamixel_hw_interface' into jjaime2/articulabl…
jjaime2 Dec 18, 2024
69d0976
Disable collision between af_link_base and forkHandle
jjaime2 Dec 18, 2024
ef1592b
Run pre-commit
jjaime2 Dec 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions ada_description/launch/view_ada.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,23 +60,24 @@ def generate_launch_description():
declared_arguments.append(
DeclareLaunchArgument(
"description_file",
default_value="ada.xacro",
default_value="ada_standalone.xacro",
description="URDF/XACRO description file with the robot.",
)
)
declared_arguments.append(
DeclareLaunchArgument(
"use_forque",
default_value="false",
description="If the forque apparatus is being used.",
"end_effector_tool",
default_value="none",
description="The end-effector tool being used: 'none', 'fork', 'articulable_fork'",
choices=["none", "fork", "articulable_fork"],
)
)

# Initialize Arguments
# General arguments
description_package = LaunchConfiguration("description_package")
description_file = LaunchConfiguration("description_file")
use_forque = LaunchConfiguration("use_forque")
end_effector_tool = LaunchConfiguration("end_effector_tool")

robot_description_content = Command(
[
Expand All @@ -86,8 +87,8 @@ def generate_launch_description():
[FindPackageShare(description_package), "urdf", description_file]
),
" ",
"use_forque:=",
use_forque,
"end_effector_tool:=",
end_effector_tool,
]
)
robot_description = {
Expand Down
Binary file added ada_description/meshes/forque/AFStabilizer.stl
Binary file not shown.
Binary file added ada_description/meshes/forque/XC-430_idle.stl
Binary file not shown.
Binary file added ada_description/meshes/forque/fr12-h103.stl
Binary file not shown.
Binary file added ada_description/meshes/forque/fr12-s101.stl
Binary file not shown.
Binary file not shown.
24 changes: 24 additions & 0 deletions ada_description/rviz/view_robot.rviz
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,30 @@ Visualization Manager:
Expand Joint Details: false
Expand Link Details: false
Expand Tree: false
af_link_base:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
af_link_1:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
af_motor_fixture_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
af_link_2:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
af_ft_adapter_link:
Alpha: 1
Show Axes: false
Show Trail: false
FT:
Alpha: 1
Show Axes: false
Expand Down
100 changes: 49 additions & 51 deletions ada_description/urdf/ada.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -12,65 +12,63 @@
xmlns:rendering="http://playerstage.sourceforge.net/gazebo/xmlschema/#rendering"
xmlns:renderable="http://playerstage.sourceforge.net/gazebo/xmlschema/#renderable"
xmlns:physics="http://playerstage.sourceforge.net/gazebo/xmlschema/#physics"
xmlns:xacro="http://www.ros.org/wiki/xacro" name="ada">
xmlns:xacro="http://www.ros.org/wiki/xacro">

<xacro:include filename="$(find ada_description)/urdf/forque/forque.xacro"/>
<xacro:include filename="$(find ada_description)/urdf/camera/camera.xacro"/>
<xacro:include filename="$(find ada_description)/urdf/j2n6s200.xacro"/>
<xacro:macro name="ada" params="base_parent end_effector_tool">
<xacro:include filename="$(find ada_description)/urdf/forque/forque.xacro"/>
<xacro:include filename="$(find ada_description)/urdf/camera/camera.xacro"/>
<xacro:include filename="$(find ada_description)/urdf/j2n6s200.xacro"/>

<xacro:arg name="use_forque" default="true"/>

<link name="root"/>

<link name="root_tilt"/>
<joint name="robot_tilt" type="revolute">
<origin xyz="0 0 0" rpy="0 0 0" />
<child link="root_tilt" />
<parent link="root" />
<axis xyz="-1 0 0"/>
<!-- effort copied from j2n6s200 joint 2, velocity is max velocity the wheelchair can tilt,
lower and upper limits generously encompass the range of the wheelchair's tilt-->
<limit effort="80" velocity="0.15" lower="${-J_PI}" upper="${J_PI}"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>
<link name="root_tilt"/>
<joint name="robot_tilt" type="revolute">
<origin xyz="0 0 0" rpy="0 0 0" />
<child link="root_tilt" />
<parent link="${base_parent}" />
<axis xyz="-1 0 0"/>
<!-- effort copied from j2n6s200 joint 2, velocity is max velocity the wheelchair can tilt,
lower and upper limits generously encompass the range of the wheelchair's tilt-->
<limit effort="80" velocity="0.15" lower="${-J_PI}" upper="${J_PI}"/>
<dynamics damping="0.0" friction="0.0"/>
</joint>

<xacro:property name="robot_root" value="root_tilt" />
<xacro:property name="robot_root" value="root_tilt" />

<xacro:j2n6s200 base_parent="${robot_root}"/>
<xacro:j2n6s200 base_parent="${robot_root}"/>

<xacro:camera_assembly base_parent="j2n6s200_link_6" base_xyz="0.0165 0 0.0011" base_rpy="${3*J_PI/2} 0 ${3*J_PI/2}"/>
<xacro:camera_assembly base_parent="j2n6s200_link_6" base_xyz="0.0165 0 0.0011" base_rpy="${3*J_PI/2} 0 ${3*J_PI/2}"/>

<!-- Hard-coded Extrinsics -->
<link name="camera_link" />
<joint name="extrinsics" type="fixed">
<origin xyz="0.0194 -0.01606 0.029014" rpy="0.17234 -1.56127 2.96967" />
<parent link="cameraMount" />
<child link="camera_link" />
</joint>
<!-- Copy Realsense in case of simulation -->
<!--
<link name="camera_color_optical_frame" />
<joint name="optical_republish" type="fixed">
<origin xyz="0.000 -0.015 0.000" rpy="-1.564 0.000 -1.573" />
<parent link="camera_link" />
<child link="camera_color_optical_frame" />
</joint>
-->
<!-- Hard-coded Extrinsics -->
<link name="camera_link" />
<joint name="extrinsics" type="fixed">
<origin xyz="0.0194 -0.01606 0.029014" rpy="0.17234 -1.56127 2.96967" />
<parent link="cameraMount" />
<child link="camera_link" />
</joint>
<!-- Copy Realsense in case of simulation -->
<!--
<link name="camera_color_optical_frame" />
<joint name="optical_republish" type="fixed">
<origin xyz="0.000 -0.015 0.000" rpy="-1.564 0.000 -1.573" />
<parent link="camera_link" />
<child link="camera_color_optical_frame" />
</joint>
-->

<xacro:forque_assembly_link link_name="FTArmMount" link_mesh="2024_01_18_FTArmMount" mass="0.03783" cog="0.010957 -0.019223 -0.03777">
<inertia ixx="0.000018817" iyy="0.00001119989" iyz="-0.00000120296" izz="0.000026883" ixy="-0.0000003327" ixz="-0.000000092476"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="FTArmMount_to_arm" parent="j2n6s200_link_6" child="FTArmMount" joint_origin_xyz="0.0065 -0.011 -0.0075" joint_origin_rpy="${J_PI/2} 0 ${J_PI/2}"/>
<xacro:forque_assembly_link link_name="FTArmMount" link_mesh="2024_01_18_FTArmMount" mass="0.03783" cog="0.010957 -0.019223 -0.03777">
<inertia ixx="0.000018817" iyy="0.00001119989" iyz="-0.00000120296" izz="0.000026883" ixy="-0.0000003327" ixz="-0.000000092476"/>
</xacro:forque_assembly_link>
<xacro:forque_assembly_joint joint_name="FTArmMount_to_arm" type="fixed" parent="j2n6s200_link_6" child="FTArmMount" joint_axis_xyz="0 0 1" joint_origin_xyz="0.0065 -0.011 -0.0075" joint_origin_rpy="${J_PI/2} 0 ${J_PI/2}" fixed="true"/>

<xacro:if value="$(arg use_forque)">
<xacro:forque_assembly base_parent="FTArmMount"/>
<xacro:unless value="${end_effector_tool == 'none'}">
<xacro:forque_assembly base_parent="FTArmMount" end_effector_tool="${end_effector_tool}"/>

<link name="FTSensor" />
<joint name="EE_to_FTSensor" type="fixed">
<child link="FTSensor"/>
<parent link="j2n6s200_end_effector"/>
<origin rpy="0 0 0" xyz="0.0 0.0 0.092"/>
</joint>
</xacro:if>
<link name="FTSensor" />
<joint name="EE_to_FTSensor" type="fixed">
<child link="FTSensor"/>
<parent link="j2n6s200_end_effector"/>
<origin rpy="0 0 0" xyz="0.0 0.0 0.092"/>
</joint>
</xacro:unless>
</xacro:macro>

</robot>
26 changes: 26 additions & 0 deletions ada_description/urdf/ada_standalone.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0"?>
<robot xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:gazebo="http://playerstage.sourceforge.net/gazebo/xmlschema/#gz"
xmlns:model="http://playerstage.sourceforge.net/gazebo/xmlschema/#model"
xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
xmlns:body="http://playerstage.sourceforge.net/gazebo/xmlschema/#body"
xmlns:geom="http://playerstage.sourceforge.net/gazebo/xmlschema/#geom"
xmlns:joint="http://playerstage.sourceforge.net/gazebo/xmlschema/#joint"
xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
xmlns:rendering="http://playerstage.sourceforge.net/gazebo/xmlschema/#rendering"
xmlns:renderable="http://playerstage.sourceforge.net/gazebo/xmlschema/#renderable"
xmlns:physics="http://playerstage.sourceforge.net/gazebo/xmlschema/#physics"
xmlns:xacro="http://www.ros.org/wiki/xacro"
name="ada">

<xacro:arg name="end_effector_tool" default="fork" />

<xacro:include filename="$(find ada_description)/urdf/ada.xacro" />

<link name="root"/>
<xacro:property name="root" value="root" />
<xacro:property name="end_effector_tool" value="$(arg end_effector_tool)" />
<xacro:ada base_parent="${root}" end_effector_tool="${end_effector_tool}" />

</robot>
Loading
Loading