Skip to content

Commit

Permalink
Squashed 'src/moveit_pro_mobile_manipulation/' content from commit e5…
Browse files Browse the repository at this point in the history
…367b7

git-subtree-dir: src/moveit_pro_mobile_manipulation
git-subtree-split: e5367b79e08113218f72804beda69ebe94a2b175
  • Loading branch information
MikeWrock committed Nov 1, 2024
0 parents commit 3ca0158
Show file tree
Hide file tree
Showing 78 changed files with 7,187 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# moveit_pro_mobile_manipulation
36 changes: 36 additions & 0 deletions mobile_manipulation_config/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
cmake_minimum_required(VERSION 3.22)
project(mobile_manipulation_config)

find_package(ament_cmake REQUIRED)
find_package(picknik_accessories REQUIRED)



# Install all XML files in directory
set(PICKNIK_ACCESSORIES_SHARE_DIR
"${CMAKE_INSTALL_PREFIX}/../picknik_accessories/share/picknik_accessories/mujoco_assets/"
)
# Destination directory
set(DEST_DIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/description/")

install(DIRECTORY "${PICKNIK_ACCESSORIES_SHARE_DIR}"
DESTINATION "${DEST_DIR}"
FILES_MATCHING PATTERN "*")

install(
DIRECTORY
config
description
launch
objectives
waypoints
DESTINATION
share/${PROJECT_NAME}
)

if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()

ament_package()
25 changes: 25 additions & 0 deletions mobile_manipulation_config/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
5 changes: 5 additions & 0 deletions mobile_manipulation_config/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# mobile_manipulation_config

A MoveIt Pro MuJoCo simulation of a UR5 arm on a mobile Ridgeback base.

For detailed documentation see: [MoveIt Pro Documentation](https://docs.picknik.ai/)
83 changes: 83 additions & 0 deletions mobile_manipulation_config/config/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
#
# This contains information for a unique instance of a robot.
#

# Name of the package to specialize
based_on_package: "picknik_ur_mobile_config"
hardware:
# Parameters used to configure the robot description through XACRO.
# A URDF and SRDF are both required.
# [Required]
robot_description:
urdf:
package: "mobile_manipulation_config"
path: "description/picknik_ur.xacro"
srdf:
package: "picknik_ur_mobile_config"
path: "config/moveit/picknik_ur.srdf"
urdf_params:
- joint_limits_parameters_file:
package: "picknik_ur_mobile_config"
path: "config/moveit/joint_limits.yaml"

moveit_params:
servo:
package: "picknik_ur_mobile_config"
path: "config/moveit/ur_servo.yaml"
joint_limits:
package: "picknik_ur_mobile_config"
path: "config/moveit/joint_limits.yaml"
servo_joint_limits:
package: "picknik_ur_mobile_config"
path: "config/moveit/hard_joint_limits.yaml"

# Configuration for loading behaviors and objectives.
# [Required]
objectives:
# List of plugins for loading custom behaviors.
# [Required]
behavior_loader_plugins:
# This plugin will load the core MoveIt Pro Behaviors.
# Add additional plugin loaders as needed.
core:
- "moveit_studio::behaviors::CoreBehaviorsLoader"
- "moveit_studio::behaviors::MTCCoreBehaviorsLoader"
- "moveit_studio::behaviors::ServoBehaviorsLoader"
- "moveit_studio::behaviors::VisionBehaviorsLoader"
# Specify source folder for objectives
# [Required]
objective_library_paths:
sim_objectives:
package_name: "mobile_manipulation_config"
relative_path: "objectives"
# Specify the location of the saved waypoints file.
# [Required]
waypoints_file:
package_name: "mobile_manipulation_config"
relative_path: "waypoints/ur_waypoints.yaml"


# Configuration for launching ros2_control processes.
# [Required, if using ros2_control]
ros2_control:
config:
package: "picknik_ur_mobile_config"
path: "config/control/picknik_ur.ros2_control.yaml"
# MoveIt Pro will load and activate these controllers at start up to ensure they are available.
# If not specified, it is up to the user to ensure the appropriate controllers are active and available
# for running the application.
# [Optional, default=[]]
controllers_active_at_startup:
- "force_torque_sensor_broadcaster"
- "robotiq_gripper_controller"
- "joint_state_broadcaster"
- "servo_controller"
# Load but do not start these controllers so they can be activated later if needed.
controllers_inactive_at_startup:
- "joint_trajectory_controller"
# Any controllers here will not be spawned by MoveIt Pro.
# [Optional, default=[]]
controllers_not_managed: []
# Optionally configure remapping rules to let multiple controllers receive commands on the same topic.
# [Optional, default=[]]
controller_shared_topics: []
26 changes: 26 additions & 0 deletions mobile_manipulation_config/description/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Copyright 2018 ROS Industrial Consortium

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
104 changes: 104 additions & 0 deletions mobile_manipulation_config/description/picknik_ur.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://wiki.ros.org/xacro" name="$(arg name)">
<!-- parameters -->
<xacro:arg name="use_fake_hardware" default="false"/>
<xacro:arg name="external_camera" default="false"/>
<xacro:arg name="has_tool_changer" default="true"/>
<xacro:arg name="use_pinch_links" default="true"/>
<xacro:arg name="generate_ros2_control_tag" default="false"/>
<xacro:arg name="name" default=""/>
<xacro:arg name="joint_limits_parameters_file" default=""/>
<xacro:arg name="kinematics_parameters_file" default=""/>
<xacro:arg name="physical_parameters_file" default=""/>
<xacro:arg name="visual_parameters_file" default=""/>
<xacro:arg name="headless_mode" default="false"/>
<xacro:arg name="robot_ip" default="0.0.0.0"/>
<xacro:arg name="use_tool_communication" default="false"/>
<xacro:arg name="tool_voltage" default="0"/>
<xacro:arg name="tool_device_name" default="/dev/ttyUSB0"/>
<xacro:arg name="initial_positions_file" default="$(find picknik_ur_base_config)/config/initial_positions.yaml"/>

<!-- Import UR and environment macros -->
<xacro:include filename="$(find picknik_ur_base_config)/description/picknik_ur_macro.xacro"/>
<xacro:include filename="$(find mobile_manipulation_config)/description/picknik_ur_attachments_macro.xacro"/>
<xacro:include filename="$(find mobile_manipulation_config)/description/picknik_ur_mujoco_ros2_control.xacro"/>
<xacro:include filename="$(find ridgeback_description)/urdf/ridgeback.urdf.xacro"/>


<link name="world"/>

<!-- Gripper and UR adapter and realsense camera -->
<xacro:picknik_ur_attachments parent="tool0" child="grasp_link" has_tool_changer="$(arg has_tool_changer)"/>

<!-- Ridgeback -->
<xacro:ridgeback parent="ridgeback_base_link"/>

<joint name="airfoil_joint" type="fixed">
<parent link="world"/>
<child link="airfoil"/>
<origin xyz="4.5 0 0.5" rpy="0.0 0.0 1.5707"/>
</joint>

<link name="airfoil">
<visual>
<geometry>
<mesh filename="package://mobile_manipulation_config/description/assets/airfoil.stl"/>
</geometry>
<material name="grey">
<color rgba="0.4 0.4 0.4 1.0"/>
</material>
</visual>
<collision>
<geometry>
<mesh filename="package://mobile_manipulation_config/description/assets/airfoil.stl"/>
</geometry>
</collision>
</link>

<joint name="rotational_yaw_joint" type="revolute">
<axis xyz="0 0 1"/>
<parent link="world"/>
<child link="virual_rail_link_1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<limit effort="150.0" lower="-3.141592653589793" upper="3.141592653589793" velocity="0.5235987755982988"/>
<dynamics damping="0" friction="0"/>
</joint>

<link name="virual_rail_link_1"/>

<joint name="linear_x_joint" type="prismatic">
<axis xyz="1 0 0"/>
<parent link="virual_rail_link_1" />
<child link="virual_rail_link_2" />
<origin xyz="0 0 0" rpy="0 0 0" />
<limit effort="1000.0" lower="-5.0" upper="5.0" velocity="0.175" acceleration="10.0"/>
<dynamics damping="20.0" friction="500.0" />
</joint>

<link name="virual_rail_link_2"/>

<joint name="linear_y_joint" type="prismatic">
<axis xyz="0 1 0"/>
<parent link="virual_rail_link_2" />
<child link="ridgeback_base_link" />
<origin xyz="0 0 0" rpy="0 0 0" />
<limit effort="1000.0" lower="-5.0" upper="5.0" velocity="0.175" acceleration="10.0"/>
<dynamics damping="20.0" friction="500.0" />
</joint>

<!-- Robot: contains robot description from the world frame to the tool frame -->
<xacro:picknik_ur parent="ur_linear_rail_base" child="tool0" initial_positions_file="$(arg initial_positions_file)" generate_ros2_control_tag="$(arg generate_ros2_control_tag)" >
<!-- Guesstimates below -->
<origin xyz="0 0.0 0.0" rpy="0 0 0" />
</xacro:picknik_ur>

<joint name="ur_ridgeback_mount" type="fixed">
<axis xyz="0 1 0"/>
<parent link="mid_mount" />
<child link="ur_linear_rail_base" />
<origin xyz="0 0 0" rpy="0 0 0" />
</joint>

<!-- MuJoCo Hardware interface -->
<xacro:picknik_ur_mujoco_ros2_control />
</robot>
Loading

0 comments on commit 3ca0158

Please sign in to comment.