Merge pull request #125 from elephantrobotics/280-ros-pump-camera

280 ros pump camera
This commit is contained in:
wangWking 2023-11-08 15:00:33 +08:00 committed by GitHub
commit d298cfea4d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
42 changed files with 3776 additions and 79 deletions

View file

@ -32,6 +32,7 @@ catkin_install_python(PROGRAMS
scripts/simple_gui.py scripts/simple_gui.py
scripts/follow_display_gripper.py scripts/follow_display_gripper.py
scripts/slider_control_gripper.py scripts/slider_control_gripper.py
scripts/listen_real_gripper.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
) )

View file

@ -8,9 +8,10 @@ Panels:
- /Status1 - /Status1
- /RobotModel1 - /RobotModel1
- /TF1 - /TF1
- /Marker1 - /TF1/Frames1
- /TF1/Tree1
Splitter Ratio: 0.5 Splitter Ratio: 0.5
Tree Height: 657 Tree Height: 609
- Class: rviz/Selection - Class: rviz/Selection
Name: Selection Name: Selection
- Class: rviz/Tool Properties - Class: rviz/Tool Properties
@ -246,7 +247,7 @@ Visualization Manager:
Views: Views:
Current: Current:
Class: rviz/Orbit Class: rviz/Orbit
Distance: 1.2028908729553223 Distance: 1.1026314496994019
Enable Stereo Rendering: Enable Stereo Rendering:
Stereo Eye Separation: 0.05999999865889549 Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1 Stereo Focal Distance: 1
@ -262,17 +263,17 @@ Visualization Manager:
Invert Z Axis: false Invert Z Axis: false
Name: Current View Name: Current View
Near Clip Distance: 0.009999999776482582 Near Clip Distance: 0.009999999776482582
Pitch: 0.32539835572242737 Pitch: 0.7153984904289246
Target Frame: <Fixed Frame> Target Frame: <Fixed Frame>
Yaw: 3.0853891372680664 Yaw: 3.8853836059570312
Saved: ~ Saved: ~
Window Geometry: Window Geometry:
Displays: Displays:
collapsed: false collapsed: false
Height: 954 Height: 906
Hide Left Dock: false Hide Left Dock: false
Hide Right Dock: false Hide Right Dock: false
QMainWindow State: 000000ff00000000fd00000004000000000000016a0000031cfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d0000031c000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c0000026100000001000001c20000031cfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d0000031c000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007380000003efc0100000002fb0000000800540069006d0065010000000000000738000003bc00fffffffb0000000800540069006d00650100000000000004500000000000000000000004000000031c00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 QMainWindow State: 000000ff00000000fd00000004000000000000016a000002ecfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000002ec000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c0000026100000001000001c2000002ecfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000002ec000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007380000003efc0100000002fb0000000800540069006d0065010000000000000738000003bc00fffffffb0000000800540069006d0065010000000000000450000000000000000000000400000002ec00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection: Selection:
collapsed: false collapsed: false
Time: Time:

View file

@ -20,6 +20,10 @@
<arg name="port" value="$(arg port)" /> <arg name="port" value="$(arg port)" />
<arg name="baud" value="$(arg baud)" /> <arg name="baud" value="$(arg baud)" />
</include> </include>
<node name="real_listener" pkg="mycobot_280" type="listen_real.py" /> <!-- <node name="real_listener_gripper" pkg="mycobot_280" type="listen_real_gripper.py" /> -->
<node name="real_listener_gripper" pkg="mycobot_280" type="listen_real_gripper.py" output="screen">
<param name="port" value="$(arg port)" />
<param name="baud" value="$(arg baud)" />
</node>
<node name="simple_gui" pkg="mycobot_280" type="simple_gui.py" /> <node name="simple_gui" pkg="mycobot_280" type="simple_gui.py" />
</launch> </launch>

View file

@ -0,0 +1,23 @@
<launch>
<!-- Select connecting device and serial port ,选择连接设备及串口-->
<arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" />
<arg name="model" default="$(find mycobot_description)/urdf/mycobot/mycobot_with_pump.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot.rviz" />
<arg name="gui" default="false" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF ,将值合并到TF-->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
<include file="$(find mycobot_communication)/launch/communication_service.launch">
<arg name="port" value="$(arg port)" />
<arg name="baud" value="$(arg baud)" />
</include>
<node name="real_listener" pkg="mycobot_280" type="listen_real.py" />
<node name="simple_gui" pkg="mycobot_280" type="simple_gui.py" />
</launch>

View file

@ -0,0 +1,25 @@
<launch>
<!-- <arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" /> -->
<!-- Load file model ,加载文件模型-->
<arg name="model" default="$(find mycobot_description)/urdf/mycobot/mycobot_with_camera_flange.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF将值合并到TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<!-- <param name="use_gui" value="$(arg gui)" /> -->
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Open control script -->
<!-- <node name="control_slider" pkg="mycobot_280" type="slider_control.py">
<param name="port" type="string" value="$(arg port)" />
<param name="baud" type="int" value="$(arg baud)" />
</node> -->
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -0,0 +1,24 @@
<launch>
<!-- <arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" /> -->
<!-- Load file model ,加载文件模型-->
<arg name="model" default="$(find mycobot_description)/urdf/mycobot/mycobot_with_pump.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF将值合并到TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<!-- <param name="use_gui" value="$(arg gui)" /> -->
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Open control script -->
<!-- <node name="control_slider" pkg="mycobot_280" type="slider_control.py">
<param name="port" type="string" value="$(arg port)" />
<param name="baud" type="int" value="$(arg baud)" />
</node> -->
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -21,5 +21,9 @@
<arg name="baud" value="$(arg baud)" /> <arg name="baud" value="$(arg baud)" />
</include> </include>
<!-- listen and pub the real angles ,监听并发布真实角度--> <!-- listen and pub the real angles ,监听并发布真实角度-->
<node name="real_listener" pkg="mycobot_280" type="listen_real.py" /> <!-- <node name="real_listener_gripper" pkg="mycobot_280" type="listen_real_gripper.py" /> -->
<node name="real_listener_gripper" pkg="mycobot_280" type="listen_real_gripper.py" output="screen">
<param name="port" value="$(arg port)" />
<param name="baud" value="$(arg baud)" />
</node>
</launch> </launch>

View file

@ -0,0 +1,23 @@
<launch>
<!-- Select connecting device and serial port ,选择连接设备及串口-->
<arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" />
<arg name="model" default="$(find mycobot_description)/urdf/mycobot/mycobot_with_pump.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot.rviz" />
<arg name="gui" default="false" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF 将值合并到TF-->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
<include file="$(find mycobot_communication)/launch/communication_service.launch">
<arg name="port" value="$(arg port)" />
<arg name="baud" value="$(arg baud)" />
</include>
<!-- listen and pub the real angles ,监听并发布真实角度-->
<node name="real_listener" pkg="mycobot_280" type="listen_real.py" />
</launch>

View file

@ -1,5 +1,5 @@
<launch> <launch>
<arg name="model" default="$(find mycobot_description)/urdf/mycobot/mycobot_with_vision.urdf"/> <arg name="model" default="$(find mycobot_description)/urdf/mycobot/mycobot_urdf.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot.rviz" /> <arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot.rviz" />
<arg name="gui" default="true" /> <arg name="gui" default="true" />

View file

@ -0,0 +1,25 @@
<launch>
<!-- <arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" /> -->
<!-- Load file model ,加载文件模型-->
<arg name="model" default="$(find mycobot_description)/urdf/mycobot/mycobot_with_camera_flange.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF将值合并到TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<!-- <param name="use_gui" value="$(arg gui)" /> -->
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Open control script -->
<!-- <node name="control_slider" pkg="mycobot_280" type="slider_control.py">
<param name="port" type="string" value="$(arg port)" />
<param name="baud" type="int" value="$(arg baud)" />
</node> -->
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -0,0 +1,16 @@
<launch>
<arg name="model" default="$(find mycobot_description)/urdf/mycobot/mycobot_with_gripper_parallel.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
<param name="use_gui" value="$(arg gui)" />
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -0,0 +1,25 @@
<launch>
<!-- <arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" /> -->
<!-- Load file model ,加载文件模型-->
<arg name="model" default="$(find mycobot_description)/urdf/mycobot/mycobot_with_pump.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280)/config/mycobot.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF将值合并到TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<!-- <param name="use_gui" value="$(arg gui)" /> -->
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Open control script -->
<!-- <node name="control_slider" pkg="mycobot_280" type="slider_control.py">
<param name="port" type="string" value="$(arg port)" />
<param name="baud" type="int" value="$(arg baud)" />
</node> -->
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

0
mycobot_280/mycobot_280/scripts/detect_marker.py Normal file → Executable file
View file

0
mycobot_280/mycobot_280/scripts/follow_and_pump.py Normal file → Executable file
View file

0
mycobot_280/mycobot_280/scripts/follow_display.py Normal file → Executable file
View file

View file

0
mycobot_280/mycobot_280/scripts/following_marker.py Normal file → Executable file
View file

View file

@ -0,0 +1,132 @@
#!/usr/bin/env python3
# encoding:utf-8
# license removed for brevity
from distutils.log import error
import time
import math
import os
import fcntl
import rospy
from sensor_msgs.msg import JointState
from std_msgs.msg import Header
from mycobot_communication.srv import GetAngles
from pymycobot.mycobot import MyCobot
from rospy import ServiceException
mc = None
# Avoid serial port conflicts and need to be locked
def acquire(lock_file):
open_mode = os.O_RDWR | os.O_CREAT | os.O_TRUNC
fd = os.open(lock_file, open_mode)
pid = os.getpid()
lock_file_fd = None
timeout = 50.0
start_time = current_time = time.time()
while current_time < start_time + timeout:
try:
# The LOCK_EX means that only one process can hold the lock
# The LOCK_NB means that the fcntl.flock() is not blocking
# and we are able to implement termination of while loop,
# when timeout is reached.
fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
except (IOError, OSError):
pass
else:
lock_file_fd = fd
break
# print('pid waiting for lock:%d'% pid)
time.sleep(1.0)
current_time = time.time()
if lock_file_fd is None:
os.close(fd)
return lock_file_fd
def release(lock_file_fd):
# Do not remove the lockfile:
fcntl.flock(lock_file_fd, fcntl.LOCK_UN)
os.close(lock_file_fd)
return None
def talker():
rospy.loginfo("start ...")
rospy.init_node("real_listener_gripper", anonymous=True)
pub = rospy.Publisher("joint_states", JointState, queue_size=10)
port = rospy.get_param("~port", "/dev/ttyUSB0")
baud = rospy.get_param("~baud", 115200)
mc = MyCobot(port, baud)
rate = rospy.Rate(30) # 30hz
# pub joint state发布关节状态
joint_state_send = JointState()
joint_state_send.header = Header()
joint_state_send.name = [
"joint2_to_joint1",
"joint3_to_joint2",
"joint4_to_joint3",
"joint5_to_joint4",
"joint6_to_joint5",
"joint6output_to_joint6",
"gripper_controller",
]
joint_state_send.velocity = [0]
joint_state_send.effort = []
# waiting util server `get_joint_angles` enable.等待'get_joint_angles'服务启用
rospy.loginfo("wait service")
rospy.wait_for_service("get_joint_angles")
while True:
try:
func = rospy.ServiceProxy("get_joint_angles", GetAngles)
break
except ServiceException as e:
# pass
# print(f'error:{e}')
print("--------------error",e)
# rospy.loginfo("start loop ...")
while not rospy.is_shutdown():
# get real angles from server.从服务器获得真实的角度。
res = func()
if res.joint_1 == res.joint_2 == res.joint_3 == 0.0:
continue
if mc:
lock = acquire("/tmp/mycobot_lock")
gripper_value = mc.get_gripper_value()
release(lock)
if gripper_value != -1:
gripper_value = -0.78 + round(gripper_value / 117.0, 2)
# print(gripper_value)
radians_list = [
res.joint_1 * (math.pi / 180),
res.joint_2 * (math.pi / 180),
res.joint_3 * (math.pi / 180),
res.joint_4 * (math.pi / 180),
res.joint_5 * (math.pi / 180),
res.joint_6 * (math.pi / 180),
]
radians_list.append(gripper_value)
# rospy.loginfo("res: {}".format(radians_list))
# publish angles.发布角度
joint_state_send.header.stamp = rospy.Time.now()
joint_state_send.position = radians_list
pub.publish(joint_state_send)
rate.sleep()
if __name__ == "__main__":
try:
talker()
except rospy.ROSInterruptException:
pass

31
mycobot_280/mycobot_280/scripts/simple_gui.py Normal file → Executable file
View file

@ -4,7 +4,7 @@ try:
import tkinter as tk import tkinter as tk
except ImportError: except ImportError:
import Tkinter as tk import Tkinter as tk
from mycobot_communication.srv import GetCoords, SetCoords, GetAngles, SetAngles, GripperStatus from mycobot_communication.srv import GetCoords, SetCoords, GetAngles, SetAngles, GripperStatus, PumpStatus
import rospy import rospy
import time import time
from rospy import ServiceException from rospy import ServiceException
@ -36,7 +36,7 @@ class Window:
# 计算 Tk 根窗口的 x 和 y 坐标 # 计算 Tk 根窗口的 x 和 y 坐标
x = int((self.ws / 2) - 190) x = int((self.ws / 2) - 190)
y = int((self.hs / 2) - 250) y = int((self.hs / 2) - 250)
self.win.geometry("430x400+{}+{}".format(x, y)) self.win.geometry("440x440+{}+{}".format(x, y))
# layout,布局 # layout,布局
self.set_layout() self.set_layout()
# input section,输入部分 # input section,输入部分
@ -56,12 +56,19 @@ class Window:
# Gripper switch button,夹爪开关按钮 # Gripper switch button,夹爪开关按钮
tk.Button(self.frmLB, text="夹爪(开)", command=self.gripper_open, width=5).grid( tk.Button(self.frmLB, text="夹爪(开)", command=self.gripper_open, width=5).grid(
row=1, column=0, sticky="w", padx=3, pady=50 row=1, column=0, sticky="w", padx=3, pady=20
) )
tk.Button(self.frmLB, text="夹爪(关)", command=self.gripper_close, width=5).grid( tk.Button(self.frmLB, text="夹爪(关)", command=self.gripper_close, width=5).grid(
row=1, column=1, sticky="w", padx=3, pady=2 row=1, column=1, sticky="w", padx=3, pady=2
) )
tk.Button(self.frmLB, text=" 吸泵(开)", command=self.pump_open, width=5).grid(
row=2, column=0, sticky="w", padx=3, pady=20
)
tk.Button(self.frmLB, text="吸泵(关)", command=self.pump_close, width=5).grid(
row=2, column=1, sticky="w", padx=3, pady=2
)
def connect_ser(self): def connect_ser(self):
rospy.init_node("simple_gui", anonymous=True, disable_signals=True) rospy.init_node("simple_gui", anonymous=True, disable_signals=True)
@ -70,6 +77,7 @@ class Window:
rospy.wait_for_service("get_joint_coords") rospy.wait_for_service("get_joint_coords")
rospy.wait_for_service("set_joint_coords") rospy.wait_for_service("set_joint_coords")
rospy.wait_for_service("switch_gripper_status") rospy.wait_for_service("switch_gripper_status")
rospy.wait_for_service("switch_pump_status")
try: try:
self.get_coords = rospy.ServiceProxy("get_joint_coords", GetCoords) self.get_coords = rospy.ServiceProxy("get_joint_coords", GetCoords)
self.set_coords = rospy.ServiceProxy("set_joint_coords", SetCoords) self.set_coords = rospy.ServiceProxy("set_joint_coords", SetCoords)
@ -78,6 +86,9 @@ class Window:
self.switch_gripper = rospy.ServiceProxy( self.switch_gripper = rospy.ServiceProxy(
"switch_gripper_status", GripperStatus "switch_gripper_status", GripperStatus
) )
self.switch_pump = rospy.ServiceProxy(
"switch_pump_status", PumpStatus
)
except: except:
print("start error ...") print("start error ...")
exit(1) exit(1)
@ -373,6 +384,20 @@ class Window:
except ServiceException: except ServiceException:
pass pass
def pump_open(self):
try:
self.switch_pump(True,2, 5)
except ServiceException:
# Probably because the method has no return value, the service throws an unhandled error
# 可能由于该方法没有返回值,服务抛出无法处理的错误
pass
def pump_close(self):
try:
self.switch_pump(False, 2, 5)
except ServiceException:
pass
def get_coord_input(self): def get_coord_input(self):
# Get the data input by coord and send it to the robotic arm # Get the data input by coord and send it to the robotic arm
# 获取 coord 输入的数据,发送给机械臂 # 获取 coord 输入的数据,发送给机械臂

0
mycobot_280/mycobot_280/scripts/slider_control.py Normal file → Executable file
View file

View file

@ -30,7 +30,7 @@ def callback(data):
mc.send_radians(data_list[:6], 80) mc.send_radians(data_list[:6], 80)
gripper_value = int(abs(-0.7-data_list[6])* 117) gripper_value = int(abs(-0.7-data_list[6])* 117)
print("gripper_value:%s"%gripper_value) print("gripper_value:%s"%gripper_value)
mc.set_gripper_value(gripper_value, 80) mc.set_gripper_value(gripper_value, 80, 1)
def listener(): def listener():

13
mycobot_280/mycobot_280/scripts/teleop_keyboard.py Normal file → Executable file
View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from __future__ import print_function from __future__ import print_function
from mycobot_communication.srv import GetCoords, SetCoords, GetAngles, SetAngles, GripperStatus from mycobot_communication.srv import GetCoords, SetCoords, GetAngles, SetAngles, GripperStatus, PumpStatus
import rospy import rospy
import sys import sys
import select import select
@ -28,6 +28,10 @@ Gripper control:
g - open g - open
h - close h - close
Pump control:
b - open
m - close
Other: Other:
1 - Go to init pose 1 - Go to init pose
2 - Go to home pose 2 - Go to home pose
@ -68,6 +72,7 @@ def teleop_keyboard():
rospy.wait_for_service("get_joint_coords") rospy.wait_for_service("get_joint_coords")
rospy.wait_for_service("set_joint_coords") rospy.wait_for_service("set_joint_coords")
rospy.wait_for_service("switch_gripper_status") rospy.wait_for_service("switch_gripper_status")
rospy.wait_for_service("switch_pump_status")
print("service ready.") print("service ready.")
try: try:
get_coords = rospy.ServiceProxy("get_joint_coords", GetCoords) get_coords = rospy.ServiceProxy("get_joint_coords", GetCoords)
@ -76,6 +81,8 @@ def teleop_keyboard():
set_angles = rospy.ServiceProxy("set_joint_angles", SetAngles) set_angles = rospy.ServiceProxy("set_joint_angles", SetAngles)
switch_gripper = rospy.ServiceProxy( switch_gripper = rospy.ServiceProxy(
"switch_gripper_status", GripperStatus) "switch_gripper_status", GripperStatus)
switch_pump = rospy.ServiceProxy(
"switch_pump_status", PumpStatus)
except: except:
print("start error ...") print("start error ...")
exit(1) exit(1)
@ -145,6 +152,10 @@ def teleop_keyboard():
switch_gripper(True) switch_gripper(True)
elif key in ["h", "H"]: elif key in ["h", "H"]:
switch_gripper(False) switch_gripper(False)
elif key in ["b", "B"]:
switch_pump(True, 2, 5)
elif key in ["m", "M"]:
switch_pump(False, 2, 5)
elif key == "1": elif key == "1":
rsp = set_angles(*init_pose) rsp = set_angles(*init_pose)
elif key in "2": elif key in "2":

View file

@ -9,7 +9,7 @@ Panels:
- /RobotModel1 - /RobotModel1
- /TF1 - /TF1
Splitter Ratio: 0.5 Splitter Ratio: 0.5
Tree Height: 642 Tree Height: 609
- Class: rviz/Selection - Class: rviz/Selection
Name: Selection Name: Selection
- Class: rviz/Tool Properties - Class: rviz/Tool Properties
@ -18,17 +18,18 @@ Panels:
- /2D Nav Goal1 - /2D Nav Goal1
- /Publish Point1 - /Publish Point1
Name: Tool Properties Name: Tool Properties
Splitter Ratio: 0.588679016 Splitter Ratio: 0.5886790156364441
- Class: rviz/Views - Class: rviz/Views
Expanded: Expanded:
- /Current View1 - /Current View1
Name: Views Name: Views
Splitter Ratio: 0.5 Splitter Ratio: 0.5
- Class: rviz/Time - Class: rviz/Time
Experimental: false
Name: Time Name: Time
SyncMode: 0 SyncMode: 0
SyncSource: "" SyncSource: ""
Preferences:
PromptSaveOnExit: true
Toolbars: Toolbars:
toolButtonStyle: 2 toolButtonStyle: 2
Visualization Manager: Visualization Manager:
@ -40,7 +41,7 @@ Visualization Manager:
Color: 160; 160; 164 Color: 160; 160; 164
Enabled: true Enabled: true
Line Style: Line Style:
Line Width: 0.0299999993 Line Width: 0.029999999329447746
Value: Lines Value: Lines
Name: Grid Name: Grid
Normal Cell Count: 0 Normal Cell Count: 0
@ -62,6 +63,16 @@ Visualization Manager:
Expand Link Details: false Expand Link Details: false
Expand Tree: false Expand Tree: false
Link Tree Style: Links in Alphabetic Order Link Tree Style: Links in Alphabetic Order
camera_flange:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
g_base:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
joint1: joint1:
Alpha: 1 Alpha: 1
Show Axes: false Show Axes: false
@ -105,9 +116,15 @@ Visualization Manager:
Visual Enabled: true Visual Enabled: true
- Class: rviz/TF - Class: rviz/TF
Enabled: true Enabled: true
Filter (blacklist): ""
Filter (whitelist): ""
Frame Timeout: 15 Frame Timeout: 15
Frames: Frames:
All Enabled: true All Enabled: true
camera_flange:
Value: true
g_base:
Value: true
joint1: joint1:
Value: true Value: true
joint2: joint2:
@ -122,20 +139,23 @@ Visualization Manager:
Value: true Value: true
joint6_flange: joint6_flange:
Value: true Value: true
Marker Scale: 0.300000012 Marker Alpha: 1
Marker Scale: 0.10000000149011612
Name: TF Name: TF
Show Arrows: true Show Arrows: true
Show Axes: true Show Axes: true
Show Names: true Show Names: true
Tree: Tree:
joint1: g_base:
joint2: joint1:
joint3: joint2:
joint4: joint3:
joint5: joint4:
joint6: joint5:
joint6_flange: joint6:
{} joint6_flange:
camera_flange:
{}
Update Interval: 0 Update Interval: 0
Value: true Value: true
Enabled: true Enabled: true
@ -153,7 +173,10 @@ Visualization Manager:
- Class: rviz/FocusCamera - Class: rviz/FocusCamera
- Class: rviz/Measure - Class: rviz/Measure
- Class: rviz/SetInitialPose - Class: rviz/SetInitialPose
Theta std deviation: 0.2617993950843811
Topic: /initialpose Topic: /initialpose
X std deviation: 0.5
Y std deviation: 0.5
- Class: rviz/SetGoal - Class: rviz/SetGoal
Topic: /move_base_simple/goal Topic: /move_base_simple/goal
- Class: rviz/PublishPoint - Class: rviz/PublishPoint
@ -163,33 +186,33 @@ Visualization Manager:
Views: Views:
Current: Current:
Class: rviz/Orbit Class: rviz/Orbit
Distance: 1.20289087 Distance: 1.0585439205169678
Enable Stereo Rendering: Enable Stereo Rendering:
Stereo Eye Separation: 0.0599999987 Stereo Eye Separation: 0.05999999865889549
Stereo Focal Distance: 1 Stereo Focal Distance: 1
Swap Stereo Eyes: false Swap Stereo Eyes: false
Value: false Value: false
Field of View: 0.7853981852531433
Focal Point: Focal Point:
X: -0.0706475973 X: -0.07064759731292725
Y: -0.0814988762 Y: -0.0814988762140274
Z: 0.107583851 Z: 0.10758385062217712
Focal Shape Fixed Size: true Focal Shape Fixed Size: true
Focal Shape Size: 0.0500000007 Focal Shape Size: 0.05000000074505806
Invert Z Axis: false Invert Z Axis: false
Name: Current View Name: Current View
Near Clip Distance: 0.00999999978 Near Clip Distance: 0.009999999776482582
Pitch: 0.085398227 Pitch: 0.48539817333221436
Target Frame: <Fixed Frame> Target Frame: <Fixed Frame>
Value: Orbit (rviz) Yaw: 4.103571891784668
Yaw: 3.08857274
Saved: ~ Saved: ~
Window Geometry: Window Geometry:
Displays: Displays:
collapsed: false collapsed: false
Height: 923 Height: 906
Hide Left Dock: false Hide Left Dock: false
Hide Right Dock: false Hide Right Dock: false
QMainWindow State: 000000ff00000000fd00000004000000000000016a00000311fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006100fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000002800000311000000d700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000022f00000311fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000002800000311000000ad00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073b0000003efc0100000002fb0000000800540069006d006501000000000000073b0000030000fffffffb0000000800540069006d00650100000000000004500000000000000000000003960000031100000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 QMainWindow State: 000000ff00000000fd00000004000000000000016a000002ecfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000002ec000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000018c000002ecfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000002ec000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007380000003efc0100000002fb0000000800540069006d0065010000000000000738000003bc00fffffffb0000000800540069006d0065010000000000000450000000000000000000000436000002ec00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Selection: Selection:
collapsed: false collapsed: false
Time: Time:
@ -198,6 +221,6 @@ Window Geometry:
collapsed: false collapsed: false
Views: Views:
collapsed: false collapsed: false
Width: 1851 Width: 1848
X: 65 X: 72
Y: 24 Y: 27

View file

@ -0,0 +1,25 @@
<launch>
<!-- <arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" /> -->
<!-- Load file model ,加载文件模型-->
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_pi/mycobot_with_camera_flange.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280pi)/config/mycobot.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF将值合并到TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<!-- <param name="use_gui" value="$(arg gui)" /> -->
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Open control script -->
<!-- <node name="control_slider" pkg="mycobot_280" type="slider_control.py">
<param name="port" type="string" value="$(arg port)" />
<param name="baud" type="int" value="$(arg baud)" />
</node> -->
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -0,0 +1,24 @@
<launch>
<!-- <arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" /> -->
<!-- Load file model ,加载文件模型-->
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_pi/mycobot_with_pump.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280pi)/config/mycobot.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF将值合并到TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<!-- <param name="use_gui" value="$(arg gui)" /> -->
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Open control script -->
<!-- <node name="control_slider" pkg="mycobot_280" type="slider_control.py">
<param name="port" type="string" value="$(arg port)" />
<param name="baud" type="int" value="$(arg baud)" />
</node> -->
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -0,0 +1,25 @@
<launch>
<!-- <arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" /> -->
<!-- Load file model ,加载文件模型-->
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_pi/mycobot_with_camera_flange.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280pi)/config/mycobot.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF将值合并到TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<!-- <param name="use_gui" value="$(arg gui)" /> -->
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Open control script -->
<!-- <node name="control_slider" pkg="mycobot_280" type="slider_control.py">
<param name="port" type="string" value="$(arg port)" />
<param name="baud" type="int" value="$(arg baud)" />
</node> -->
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -0,0 +1,25 @@
<launch>
<!-- <arg name="port" default="/dev/ttyUSB0" />
<arg name="baud" default="115200" /> -->
<!-- Load file model ,加载文件模型-->
<arg name="model" default="$(find mycobot_description)/urdf/mycobot_pi/mycobot_with_pump.urdf"/>
<arg name="rvizconfig" default="$(find mycobot_280pi)/config/mycobot.rviz" />
<arg name="gui" default="true" />
<param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)" />
<!-- Combinejoin values to TF将值合并到TF -->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui">
<!-- <param name="use_gui" value="$(arg gui)" /> -->
<!-- <rosparam param="source_list" subst_value="true">["joint_states"]</rosparam> -->
</node>
<!-- Open control script -->
<!-- <node name="control_slider" pkg="mycobot_280" type="slider_control.py">
<param name="port" type="string" value="$(arg port)" />
<param name="baud" type="int" value="$(arg baud)" />
</node> -->
<!-- Show in Rviz 显示在Rviz-->
<node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" />
</launch>

View file

@ -145,11 +145,11 @@ def toggle_pump(req):
if mc: if mc:
lock = acquire("/tmp/mycobot_lock") lock = acquire("/tmp/mycobot_lock")
if req.Status: if req.Status:
mc.set_basic_output(req.Pin1, 0) mc.set_basic_output(2, 0)
mc.set_basic_output(req.Pin2, 0) mc.set_basic_output(5, 0)
else: else:
mc.set_basic_output(req.Pin1, 1) mc.set_basic_output(2, 1)
mc.set_basic_output(req.Pin2, 1) mc.set_basic_output(5, 1)
release(lock) release(lock)

File diff suppressed because one or more lines are too long

View file

@ -4,6 +4,21 @@
<xacro:property name="width" value=".2" /> <xacro:property name="width" value=".2" />
<link name="g_base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</collision>
</link>
<link name="joint1"> <link name="joint1">
<visual> <visual>
<geometry> <geometry>
@ -125,7 +140,13 @@
</link> </link>
<joint name="g_base_to_joint1" type="fixed">
<axis xyz="0 0 0"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="g_base"/>
<child link="joint1"/>
<origin xyz= "0 0 0" rpy = "0 0 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute"> <joint name="joint2_to_joint1" type="revolute">

View file

@ -0,0 +1,222 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter" >
<xacro:property name="width" value=".2" />
<link name="g_base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</collision>
</link>
<link name="joint1">
<visual>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/mycobot/joint1.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 -1.5708"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/mycobot/joint1.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 -1.5708"/>
</collision>
</link>
<link name="joint2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/joint2.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/joint2.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
</collision>
</link>
<link name="joint3">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/joint3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/joint3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
</collision>
</link>
<link name="joint4">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint4.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint4.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
</collision>
</link>
<link name="joint5">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint5.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03356 " rpy = " -1.5708 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint5.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03356 " rpy = " -1.5708 0 0"/>
</collision>
</link>
<link name="joint6">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint6.dae"/>
</geometry>
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint6.dae"/>
</geometry>
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint6_flange">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint7.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint7.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="camera_flange">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/camera_flange.dae"/>
</geometry>
<origin xyz = "0.024 -0.008 0.0 " rpy = " 0 3.14159 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/camera_flange.dae"/>
</geometry>
<origin xyz = "0.024 -0.008 0.0 " rpy = " 0 3.14159 0"/>
</collision>
</link>
<joint name="g_base_to_joint1" type="fixed">
<axis xyz="0 0 0"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="g_base"/>
<child link="joint1"/>
<origin xyz= "0 0 0" rpy = "0 0 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint1"/>
<child link="joint2"/>
<origin xyz= "0 0 0.13156" rpy = "0 0 0"/>
</joint>
<joint name="joint3_to_joint2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint2"/>
<child link="joint3"/>
<origin xyz= "0 0 0" rpy = "0 1.5708 -1.5708"/>
</joint>
<joint name="joint4_to_joint3" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint3"/>
<child link="joint4"/>
<origin xyz= " -0.1104 0 0 " rpy = "0 0 0"/>
</joint>
<joint name="joint5_to_joint4" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint4"/>
<child link="joint5"/>
<origin xyz= "-0.096 0 0.06462" rpy = "0 0 -1.5708"/>
</joint>
<joint name="joint6_to_joint5" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint5"/>
<child link="joint6"/>
<origin xyz= "0 -0.07318 0" rpy = "1.5708 -1.5708 0"/>
</joint>
<joint name="joint6output_to_joint6" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.05" upper = "3.05" velocity = "0"/>
<parent link="joint6"/>
<child link="joint6_flange"/>
<origin xyz= "0 0.0456 0" rpy = "-1.5708 0 0"/>
</joint>
<joint name="joint6output_to_camera_flange" type="fixed">
<!-- <axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/> -->
<parent link="joint6_flange"/>
<child link="camera_flange"/>
<!-- <origin xyz= "0 0.0 0" rpy = "-1.5708 0 0"/> -->
<origin xyz= "0 0 0.01" rpy = "1.579 0 0"/>
</joint>
</robot>

View file

@ -0,0 +1,250 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter" >
<xacro:property name="width" value=".2" />
<link name="g_base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</collision>
</link>
<link name="pump_box">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/pump_box.dae"/>
</geometry>
<origin xyz = "0.0 -0.15 -0.0" rpy = "1.5708 3.14159 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/pump_box.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</collision>
</link>
<link name="joint1">
<visual>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/mycobot/joint1.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 -1.5708"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/mycobot/joint1.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 -1.5708"/>
</collision>
</link>
<link name="joint2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/joint2.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/joint2.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
</collision>
</link>
<link name="joint3">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/joint3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/joint3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
</collision>
</link>
<link name="joint4">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint4.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint4.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
</collision>
</link>
<link name="joint5">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint5.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03356 " rpy = " -1.5708 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint5.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03356 " rpy = " -1.5708 0 0"/>
</collision>
</link>
<link name="joint6">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint6.dae"/>
</geometry>
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint6.dae"/>
</geometry>
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint6_flange">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint7.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot/joint7.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="pump_head">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/pump_head.dae"/>
</geometry>
<origin xyz = "0.0 -0.008 0.0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot/pump_head.dae"/>
</geometry>
<origin xyz = "0.0 -0.008 0.0 " rpy = " 0 0 0"/>
</collision>
</link>
<joint name="g_base_to_joint1" type="fixed">
<axis xyz="0 0 0"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="g_base"/>
<child link="joint1"/>
<origin xyz= "0 0 0" rpy = "0 0 0"/>
</joint>
<joint name="g_base_to_pump_box" type="fixed">
<axis xyz="0 0 0"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="g_base"/>
<child link="pump_box"/>
<origin xyz= "0 0 0" rpy = "0 0 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint1"/>
<child link="joint2"/>
<origin xyz= "0 0 0.13156" rpy = "0 0 0"/>
</joint>
<joint name="joint3_to_joint2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint2"/>
<child link="joint3"/>
<origin xyz= "0 0 0" rpy = "0 1.5708 -1.5708"/>
</joint>
<joint name="joint4_to_joint3" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint3"/>
<child link="joint4"/>
<origin xyz= " -0.1104 0 0 " rpy = "0 0 0"/>
</joint>
<joint name="joint5_to_joint4" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint4"/>
<child link="joint5"/>
<origin xyz= "-0.096 0 0.06462" rpy = "0 0 -1.5708"/>
</joint>
<joint name="joint6_to_joint5" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-2.879793" upper = "2.879793" velocity = "0"/>
<parent link="joint5"/>
<child link="joint6"/>
<origin xyz= "0 -0.07318 0" rpy = "1.5708 -1.5708 0"/>
</joint>
<joint name="joint6output_to_joint6" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.05" upper = "3.05" velocity = "0"/>
<parent link="joint6"/>
<child link="joint6_flange"/>
<origin xyz= "0 0.0456 0" rpy = "-1.5708 0 0"/>
</joint>
<joint name="joint6output_to_pump_head" type="fixed">
<!-- <axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/> -->
<parent link="joint6_flange"/>
<child link="pump_head"/>
<!-- <origin xyz= "0 0.0 0" rpy = "-1.5708 0 0"/> -->
<origin xyz= "0 0 0.01" rpy = "1.579 0 0"/>
</joint>
</robot>

View file

@ -1,29 +0,0 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="mycobot_ai" >
<xacro:property name="width" value=".2" />
<xacro:include filename="$(find mycobot_description)/urdf/mycobot/mycobot_urdf.urdf" />
<link name="env">
<visual>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/mycobot/suit_env.dae"/>
</geometry>
<origin xyz = "0 0 -0.02 " rpy = "1.5708 0 -1.5708"/>
</visual>
</link>
<joint name="vision_joint" type="fixed">
<axis xyz="0 0 0"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint1"/>
<child link="env"/>
<origin xyz= "0 0 0" rpy = "0 0 0"/>
</joint>
</robot>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -4,6 +4,21 @@
<xacro:property name="width" value=".2" /> <xacro:property name="width" value=".2" />
<link name="g_base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</collision>
</link>
<link name="joint1"> <link name="joint1">
<visual> <visual>
<geometry> <geometry>
@ -128,10 +143,16 @@
</link> </link>
<joint name="g_base_to_joint1" type="fixed">
<axis xyz="0 0 0"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="g_base"/>
<child link="joint1"/>
<origin xyz= "0 0 0" rpy = "0 0 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute">
<joint name="joint2_to_joint1" type="revolute">
<axis xyz="0 0 1"/> <axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/> <limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint1"/> <parent link="joint1"/>

View file

@ -0,0 +1,234 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter" >
<xacro:property name="width" value=".2" />
<link name="g_base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</collision>
</link>
<link name="joint1">
<visual>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint1_pi.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint1_pi.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint2.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint2.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
</collision>
</link>
<link name="joint3">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
</collision>
</link>
<link name="joint4">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint4.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint4.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
</collision>
</link>
<link name="joint5">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint5.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03356 " rpy = " 0 -1.5708 1.5708"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint5.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03356 " rpy = " 0 -1.5708 1.5708"/>
</collision>
</link>
<link name="joint6">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint6.dae"/>
</geometry>
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint6.dae"/>
</geometry>
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint6_flange">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint7.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint7.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="camera_flange">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/camera_flange.dae"/>
</geometry>
<origin xyz = "0.024 -0.008 0.0 " rpy = " 0 3.14159 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/camera_flange.dae"/>
</geometry>
<origin xyz = "0.024 -0.008 0.0 " rpy = " 0 3.14159 0"/>
</collision>
</link>
<joint name="g_base_to_joint1" type="fixed">
<axis xyz="0 0 0"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="g_base"/>
<child link="joint1"/>
<origin xyz= "0 0 0" rpy = "0 0 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint1"/>
<child link="joint2"/>
<origin xyz= "0 0 0.13956" rpy = "0 0 0"/>
</joint>
<joint name="joint3_to_joint2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint2"/>
<child link="joint3"/>
<origin xyz= "0 0 -0.001" rpy = "0 1.5708 -1.5708"/>
</joint>
<joint name="joint4_to_joint3" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint3"/>
<child link="joint4"/>
<origin xyz= " -0.1104 0 0 " rpy = "0 0 0"/>
</joint>
<joint name="joint5_to_joint4" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint4"/>
<child link="joint5"/>
<origin xyz= "-0.096 0 0.06462" rpy = "0 0 -1.5708"/>
</joint>
<joint name="joint6_to_joint5" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint5"/>
<child link="joint6"/>
<origin xyz= "0 -0.07318 0" rpy = "1.5708 -1.5708 0"/>
</joint>
<joint name="joint6output_to_joint6" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint6"/>
<child link="joint6_flange"/>
<origin xyz= "0 0.0456 0" rpy = "-1.5708 0 0"/>
</joint>
<joint name="joint6output_to_camera_flange" type="fixed">
<!-- <axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/> -->
<parent link="joint6_flange"/>
<child link="camera_flange"/>
<!-- <origin xyz= "0 0.0 0" rpy = "-1.5708 0 0"/> -->
<origin xyz= "0 0 0.01" rpy = "1.579 0 0"/>
</joint>
</robot>

View file

@ -0,0 +1,259 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="firefighter" >
<xacro:property name="width" value=".2" />
<link name="g_base">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/G_base.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</collision>
</link>
<link name="pump_box">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/pump_box.dae"/>
</geometry>
<origin xyz = "0.0 -0.15 -0.0" rpy = "1.5708 3.14159 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/pump_box.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03" rpy = "0 0 1.5708"/>
</collision>
</link>
<link name="joint1">
<visual>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint1_pi.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 1.5708 3.14159-->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint1_pi.dae"/>
</geometry>
<origin xyz = "0.0 0 0 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint2">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint2.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint2.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.06096 " rpy = " 0 0 -1.5708"/>
</collision>
</link>
<link name="joint3">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint3.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03256 " rpy = " 0 -1.5708 0"/>
</collision>
</link>
<link name="joint4">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint4.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint4.dae"/>
</geometry>
<origin xyz = "0.0 0 0.03056 " rpy = " 0 -1.5708 0"/>
</collision>
</link>
<link name="joint5">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint5.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03356 " rpy = " 0 -1.5708 1.5708"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint5.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.03356 " rpy = " 0 -1.5708 1.5708"/>
</collision>
</link>
<link name="joint6">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint6.dae"/>
</geometry>
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint6.dae"/>
</geometry>
<origin xyz = "0 0.00 -0.038 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="joint6_flange">
<visual>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint7.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<!--- 0.0 0 -0.04 -->
<mesh filename="package://mycobot_description/urdf/mycobot_pi/joint7.dae"/>
</geometry>
<origin xyz = "0.0 0 -0.012 " rpy = " 0 0 0"/>
</collision>
</link>
<link name="pump_head">
<visual>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/pump_head.dae"/>
</geometry>
<origin xyz = "0.0 -0.008 0.0 " rpy = " 0 0 0"/>
</visual>
<collision>
<geometry>
<mesh filename="package://mycobot_description/urdf/mycobot_pi/pump_head.dae"/>
</geometry>
<origin xyz = "0.0 -0.008 0.0 " rpy = " 0 0 0"/>
</collision>
</link>
<joint name="g_base_to_joint1" type="fixed">
<axis xyz="0 0 0"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="g_base"/>
<child link="joint1"/>
<origin xyz= "0 0 0" rpy = "0 0 0"/>
</joint>
<joint name="g_base_to_pump_box" type="fixed">
<axis xyz="0 0 0"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="g_base"/>
<child link="pump_box"/>
<origin xyz= "0 0 0" rpy = "0 0 0"/>
</joint>
<joint name="joint2_to_joint1" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint1"/>
<child link="joint2"/>
<origin xyz= "0 0 0.13956" rpy = "0 0 0"/>
</joint>
<joint name="joint3_to_joint2" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint2"/>
<child link="joint3"/>
<origin xyz= "0 0 -0.001" rpy = "0 1.5708 -1.5708"/>
</joint>
<joint name="joint4_to_joint3" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint3"/>
<child link="joint4"/>
<origin xyz= " -0.1104 0 0 " rpy = "0 0 0"/>
</joint>
<joint name="joint5_to_joint4" type="revolute">
<axis xyz=" 0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint4"/>
<child link="joint5"/>
<origin xyz= "-0.096 0 0.06462" rpy = "0 0 -1.5708"/>
</joint>
<joint name="joint6_to_joint5" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint5"/>
<child link="joint6"/>
<origin xyz= "0 -0.07318 0" rpy = "1.5708 -1.5708 0"/>
</joint>
<joint name="joint6output_to_joint6" type="revolute">
<axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/>
<parent link="joint6"/>
<child link="joint6_flange"/>
<origin xyz= "0 0.0456 0" rpy = "-1.5708 0 0"/>
</joint>
<joint name="joint6output_to_pump_head" type="fixed">
<!-- <axis xyz="0 0 1"/>
<limit effort = "1000.0" lower = "-3.14" upper = "3.14159" velocity = "0"/> -->
<parent link="joint6_flange"/>
<child link="pump_head"/>
<!-- <origin xyz= "0 0.0 0" rpy = "-1.5708 0 0"/> -->
<origin xyz= "0 0 0.01" rpy = "1.579 0 0"/>
</joint>
</robot>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long