--- /dev/null
+cmake_minimum_required(VERSION 3.8)
+project(plier_description)
+
+if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ add_compile_options(-Wall -Wextra -Wpedantic)
+endif()
+
+# find dependencies
+find_package(ament_cmake REQUIRED)
+# uncomment the following section in order to fill in
+# further dependencies manually.
+# find_package(<dependency> REQUIRED)
+
+install(DIRECTORY config launch meshes urdf
+ DESTINATION share/${PROJECT_NAME}
+)
+
+if(BUILD_TESTING)
+ find_package(ament_lint_auto REQUIRED)
+ # the following line skips the linter which checks for copyrights
+ # uncomment the line when a copyright and license is not present in all source files
+ #set(ament_cmake_copyright_FOUND TRUE)
+ # the following line skips cpplint (only works in a git repo)
+ # uncomment the line when this package is not in a git repo
+ #set(ament_cmake_cpplint_FOUND TRUE)
+ ament_lint_auto_find_test_dependencies()
+endif()
+
+ament_package()
--- /dev/null
+Panels:
+ - Class: rviz_common/Displays
+ Help Height: 78
+ Name: Displays
+ Property Tree Widget:
+ Expanded:
+ - /Global Options1
+ - /Status1
+ - /RobotModel1
+ - /RobotModel1/Status1
+ Splitter Ratio: 0.5
+ Tree Height: 549
+ - Class: rviz_common/Selection
+ Name: Selection
+ - Class: rviz_common/Tool Properties
+ Expanded:
+ - /2D Goal Pose1
+ - /Publish Point1
+ Name: Tool Properties
+ Splitter Ratio: 0.5886790156364441
+ - Class: rviz_common/Views
+ Expanded:
+ - /Current View1
+ Name: Views
+ Splitter Ratio: 0.5
+ - Class: rviz_common/Time
+ Experimental: false
+ Name: Time
+ SyncMode: 0
+ SyncSource: ""
+Visualization Manager:
+ Class: ""
+ Displays:
+ - Alpha: 0.5
+ Cell Size: 1
+ Class: rviz_default_plugins/Grid
+ Color: 160; 160; 164
+ Enabled: true
+ Line Style:
+ Line Width: 0.029999999329447746
+ Value: Lines
+ Name: Grid
+ Normal Cell Count: 0
+ Offset:
+ X: 0
+ Y: 0
+ Z: 0
+ Plane: XY
+ Plane Cell Count: 10
+ Reference Frame: <Fixed Frame>
+ Value: true
+ - Alpha: 1
+ Class: rviz_default_plugins/RobotModel
+ Collision Enabled: false
+ Description File: ""
+ Description Source: Topic
+ Description Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /robot_description
+ Enabled: true
+ Links:
+ All Links Enabled: true
+ Expand Joint Details: false
+ Expand Link Details: false
+ Expand Tree: false
+ Link Tree Style: Links in Alphabetic Order
+ base_link:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ link1:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ link2:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Value: true
+ plier_origin:
+ Alpha: 1
+ Show Axes: false
+ Show Trail: false
+ Name: RobotModel
+ TF Prefix: ""
+ Update Interval: 0
+ Value: true
+ Visual Enabled: true
+ Enabled: true
+ Global Options:
+ Background Color: 48; 48; 48
+ Fixed Frame: map
+ Frame Rate: 30
+ Name: root
+ Tools:
+ - Class: rviz_default_plugins/Interact
+ Hide Inactive Objects: true
+ - Class: rviz_default_plugins/MoveCamera
+ - Class: rviz_default_plugins/Select
+ - Class: rviz_default_plugins/FocusCamera
+ - Class: rviz_default_plugins/Measure
+ Line color: 128; 128; 0
+ - Class: rviz_default_plugins/SetInitialPose
+ Covariance x: 0.25
+ Covariance y: 0.25
+ Covariance yaw: 0.06853891909122467
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /initialpose
+ - Class: rviz_default_plugins/SetGoal
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /goal_pose
+ - Class: rviz_default_plugins/PublishPoint
+ Single click: true
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /clicked_point
+ Transformation:
+ Current:
+ Class: rviz_default_plugins/TF
+ Value: true
+ Views:
+ Current:
+ Class: rviz_default_plugins/Orbit
+ Distance: 1.2215003967285156
+ Enable Stereo Rendering:
+ Stereo Eye Separation: 0.05999999865889549
+ Stereo Focal Distance: 1
+ Swap Stereo Eyes: false
+ Value: false
+ Focal Point:
+ X: 0
+ Y: 0
+ Z: 0
+ Focal Shape Fixed Size: true
+ Focal Shape Size: 0.05000000074505806
+ Invert Z Axis: false
+ Name: Current View
+ Near Clip Distance: 0.009999999776482582
+ Pitch: 0.785398006439209
+ Target Frame: <Fixed Frame>
+ Value: Orbit (rviz)
+ Yaw: 0.785398006439209
+ Saved: ~
+Window Geometry:
+ Displays:
+ collapsed: false
+ Height: 846
+ Hide Left Dock: false
+ Hide Right Dock: false
+ QMainWindow State: 000000ff00000000fd000000040000000000000156000002b0fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000002b0000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000025600fffffffb0000000800540069006d006501000000000000045000000000000000000000023f000002b000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+ Selection:
+ collapsed: false
+ Time:
+ collapsed: false
+ Tool Properties:
+ collapsed: false
+ Views:
+ collapsed: false
+ Width: 1200
+ X: 60
+ Y: 60
+++ /dev/null
-<launch>\r
- <arg name="model" />\r
- <arg name="gui" default="False" />\r
- <param\r
- name="robot_description"\r
- textfile="$(find plier_description)/urdf/plier.urdf" />\r
- <param name="use_gui" value="$(arg gui)" />\r
- <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />\r
- <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />\r
- <node name="rviz" pkg="rviz" type="rviz" args="-d $(find plier_description)/urdf.rviz" />\r
-</launch>
\ No newline at end of file
--- /dev/null
+<!--******************************************************************************
+ Plier Description
+ RViz Launch File
+ Copyright (C) 2014, 2021 Walter Fetter Lages <w.fetter@ieee.org>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Geneal Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*******************************************************************************-->
+\r
+<launch>\r
+ <arg name="gui" default="false"/>
+\r
+ <node pkg="tf2_ros" exec="static_transform_publisher" name="plier_origin_publisher" args="0 0 0 0 0 0 1 map plier_origin"/>
+ <node if="$(var gui)" name="joint_state_publisher" pkg="joint_state_publisher_gui" exec="joint_state_publisher_gui"/>
+ <include file="$(find-pkg-share plier_description)/launch/plier.launch.xml"/>
+ <node name="rviz" pkg="rviz2" exec="rviz2" args="-d $(find-pkg-share plier_description)/config/display.rviz"/>\r
+</launch>\r
+++ /dev/null
-<launch>\r
- <include file="$(find gazebo_worlds)/launch/empty_world.launch" />\r
- <node name="tf_footprint_base" pkg="tf" type="static_transform_publisher" args="0 0 0 0 0 0 base_link base_footprint 40" />\r
- <node name="spawn_model" pkg="gazebo" type="spawn_model" args="-file $(find plier)/urdf/plier.urdf -urdf -model plier" output="screen" />\r
- <include file="$(find pr2_controller_manager)/controller_manager.launch" />\r
- <node name="fake_joint_calibration" pkg="rostopic" type="rostopic" args="pub /calibrated std_msgs/Bool true" />\r
-</launch>
\ No newline at end of file
--- /dev/null
+<!--******************************************************************************
+ Plier Description
+ Gazebo Launch File
+ Copyright (C) 2014, 2021 Walter Fetter Lages <w.fetter@ieee.org>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Geneal Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*******************************************************************************-->
+
+<launch>
+ <arg name="pause" default="true"/>
+ <arg name="gui" default="true"/>
+ <arg name="use_sim_time" default="true"/>
+
+ <include file="$(find-pkg-share gazebo_ros)/launch/gazebo.launch.py">
+ <arg name="pause" value="$(var pause)"/>
+ <arg name="gui" value="$(var gui)"/>
+ <arg name="use_sim_time" value="$(var use_sim_time)"/>
+ <arg name="world" value="worlds/empty_sky.world" />
+ </include>
+
+ <include file="$(find-pkg-share plier_description)/launch/plier.launch.xml">
+ <arg name="use_sim_time" value="$(var use_sim_time)"/>
+ </include>
+
+ <node name="plier_spawner" pkg="gazebo_ros" exec="spawn_entity.py" args="-topic robot_description -entity plier" />
+</launch>
+++ /dev/null
-<launch>
- <param name="robot_description" textfile="$(find plier_description)/urdf/plier.urdf" />
- <node name="spawn_wam_object" pkg="gazebo" type="spawn_model" args="-urdf -param robot_description -model plier" respawn="false" output="screen" />
-</launch>
--- /dev/null
+<!--******************************************************************************
+ Plier Description
+ Plier Launch File
+ Copyright (C) 2014, 2021 Walter Fetter Lages <w.fetter@ieee.org>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Geneal Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*******************************************************************************-->
+
+<launch>
+ <arg name="use_sim_time" default="false"/>
+
+ <node name="robot_state_publisher" pkg="robot_state_publisher" exec="robot_state_publisher">
+ <param name="robot_description" value="$(command 'xacro $(find-pkg-share plier_description)/urdf/plier.urdf')" type="str"/>
+ <param name="use_sim_time" value="$(var use_sim_time)"/>
+ </node>
+</launch>
+++ /dev/null
-<launch>
- <!-- Start Gazebo -->
- <include file="$(find gazebo_worlds)/launch/empty_world.launch"/>
-
- <include file="$(find plier_description)/launch/plier.launch"/>
-</launch>
+++ /dev/null
-<package>\r
- <description brief="plier_description">plier_description</description>\r
- <depend package="gazebo" />\r
- <author>Walter Fetter Lags</author>\r
- <license>BSD</license>\r
-</package>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
+<package format="3">
+ <name>plier_description</name>
+ <version>2.0.0</version>
+ <description>Laparoscopic plier description</description>
+ <maintainer email="fetter@ece.ufrgs.br">Walter Fetter Lages</maintainer>
+ <license>GPLv3</license>
+
+ <buildtool_depend>ament_cmake</buildtool_depend>
+
+ <test_depend>ament_lint_auto</test_depend>
+ <test_depend>ament_lint_common</test_depend>
+
+ <export>
+ <build_type>ament_cmake</build_type>
+ <gazebo_ros gazebo_model_path="${prefix}/.."/>
+ </export>
+</package>
+<?xml version="1.0"?>\r
<robot name="plier">\r
\r
- <link name="base_link">\r
+ <link name="plier_origin"/>\r
+ \r
+ <joint name="plier_origin_joint" type="fixed">\r
+ <parent link="plier_origin"/>\r
+ <child link="base_link"/>\r
+ </joint>\r
\r
+ <link name="base_link">\r
<inertial>\r
<origin xyz="-2.9946E-09 2.3647E-09 0.038028" rpy="0 0 0" />\r
<mass value="0.065887" />\r
</link>\r
\r
<link name="link1">\r
-\r
<inertial>\r
<origin xyz="0.00018812 -0.011115 0.0015573" rpy="0 0 0" />\r
<mass value="0.00011808" />\r
<mesh filename="package://plier_description/meshes/link1.stl" />\r
</geometry>\r
</collision>\r
-\r
</link>\r
\r
- <joint name="joint1" type="revolute">\r
+ <joint name="mimic_joint" type="revolute">\r
<origin xyz="-0.00125 0.00098997 0.3459" rpy="-1.5708 -6.123E-17 -1.5708" />\r
<parent link="base_link" />\r
<child link="link1" />\r
<axis xyz="0 0 1" />\r
- <limit lower="-0.05" upper="0.05" effort="0.31" velocity="0.25" />\r
+ <limit lower="-0.05" upper="0.0" effort="0.31" velocity="0.25" />\r
+ <mimic joint="joint" multiplier="-1.0" offset="0.0"/>\r
</joint>\r
\r
<link name="link2">\r
<mesh filename="package://plier_description/meshes/link2.stl" />\r
</geometry>\r
</collision>\r
-\r
</link>\r
\r
- <joint name="joint2" type="revolute">\r
+ <joint name="joint" type="revolute">\r
<origin xyz="0.00025 -0.00098997 0.3459" rpy="-1.5708 -6.123E-17 -1.5708" />\r
<parent link="base_link" />\r
<child link="link2" />\r
<axis xyz="0 0 1" />\r
- <limit lower="-0.05" upper="0.05" effort="0.31" velocity="0.25" />\r
+ <limit lower="0.0" upper="0.05" effort="0.31" velocity="0.25" />\r
+ \r
</joint>\r
\r
<gazebo reference="base_link">