P340 ROS适配兼容pymycobot新类名ultraArmP340

This commit is contained in:
wangWking 2025-03-14 11:37:02 +08:00
parent bae4995d9a
commit 637ce5627f
5 changed files with 93 additions and 13 deletions

View file

@ -13,8 +13,20 @@ import time
import rospy
from sensor_msgs.msg import JointState
from pymycobot.ultraArm import ultraArm
import math
import pymycobot
from packaging import version
# min low version require
MAX_REQUIRE_VERSION = '3.5.3'
current_verison = pymycobot.__version__
print('current pymycobot library version: {}'.format(current_verison))
if version.parse(current_verison) > version.parse(MAX_REQUIRE_VERSION):
from pymycobot.ultraArmP340 import ultraArmP340
class_name = 'new'
else:
from pymycobot.ultraArm import ultraArm
class_name = 'old'
print("Note: This class is no longer maintained since v3.6.0, please refer to the project documentation: https://github.com/elephantrobotics/pymycobot/blob/main/README.md")
ua = None
@ -27,7 +39,7 @@ def callback(data):
radians_to_angles = round(math.degrees(value), 2)
data_list.append(radians_to_angles)
rospy.loginfo(rospy.get_caller_id() + "%s", data_list)
# rospy.loginfo(rospy.get_caller_id() + "%s", data_list)
ua.set_angles(data_list, 25)
@ -35,14 +47,18 @@ def listener():
global ua
rospy.init_node("control_slider", anonymous=True)
rospy.Subscriber("joint_states", JointState, callback)
port = rospy.get_param("~port", "/dev/ttyUSB0") # Select connected device. 选择连接设备
baud = rospy.get_param("~baud", 115200)
print(port, baud)
ua = ultraArm(port, baud)
if class_name == 'old':
ua = ultraArm(port, baud)
else:
ua = ultraArmP340(port, baud)
ua.power_on()
ua.go_zero()
rospy.Subscriber("joint_states", JointState, callback)
# spin() simply keeps python from exiting until this node is stopped
# spin() 只是阻止python退出直到该节点停止
print("spin ...")

View file

@ -3,7 +3,20 @@
import time
import rospy
from ultraarm_communication.srv import *
from pymycobot.ultraArm import ultraArm
import pymycobot
from packaging import version
# min low version require
MAX_REQUIRE_VERSION = '3.5.3'
current_verison = pymycobot.__version__
print('current pymycobot library version: {}'.format(current_verison))
if version.parse(current_verison) > version.parse(MAX_REQUIRE_VERSION):
from pymycobot.ultraArmP340 import ultraArmP340
class_name = 'new'
else:
from pymycobot.ultraArm import ultraArm
class_name = 'old'
print("Note: This class is no longer maintained since v3.6.0, please refer to the project documentation: https://github.com/elephantrobotics/pymycobot/blob/main/README.md")
ua = None
@ -15,7 +28,10 @@ def create_handle():
port = rospy.get_param("~port")
baud = rospy.get_param("~baud")
rospy.loginfo("%s,%s" % (port, baud))
ua = ultraArm(port, baud)
if class_name == 'old':
ua = ultraArm(port, baud)
else:
ua = ultraArmP340(port, baud)
# Power on the robotic arm
ua.power_on()

View file

@ -7,7 +7,6 @@ import signal
import threading
import rospy
from pymycobot.ultraArm import ultraArm
from ultraarm_communication.msg import(
ultraArmAngles,
@ -17,6 +16,19 @@ from ultraarm_communication.msg import(
ultraArmGripperStatus,
ultraArmPumpStatus,
)
import pymycobot
from packaging import version
# min low version require
MAX_REQUIRE_VERSION = '3.5.3'
current_verison = pymycobot.__version__
print('current pymycobot library version: {}'.format(current_verison))
if version.parse(current_verison) > version.parse(MAX_REQUIRE_VERSION):
from pymycobot.ultraArmP340 import ultraArmP340
class_name = 'new'
else:
from pymycobot.ultraArm import ultraArm
class_name = 'old'
print("Note: This class is no longer maintained since v3.6.0, please refer to the project documentation: https://github.com/elephantrobotics/pymycobot/blob/main/README.md")
class Watcher:
@ -72,7 +84,10 @@ class ultraArmTopics(object):
port = rospy.get_param("~port", "/dev/ttyUSB0")
baud = rospy.get_param("~baud", 115200)
rospy.loginfo("%s,%s" % (port, baud))
self.ua = ultraArm(port, baud)
if class_name == 'old':
self.ua = ultraArm(port, baud)
else:
self.ua = ultraArmP340(port, baud)
self.ua.go_zero()
self.lock = threading.Lock()

View file

@ -16,7 +16,20 @@ from ultraarm_communication.msg import (
ultraArmGripperStatus,
ultraArmPumpStatus,
)
from pymycobot.ultraArm import ultraArm
import pymycobot
from packaging import version
# min low version require
MAX_REQUIRE_VERSION = '3.5.3'
current_verison = pymycobot.__version__
print('current pymycobot library version: {}'.format(current_verison))
if version.parse(current_verison) > version.parse(MAX_REQUIRE_VERSION):
from pymycobot.ultraArmP340 import ultraArmP340
class_name = 'new'
else:
from pymycobot.ultraArm import ultraArm
class_name = 'old'
print("Note: This class is no longer maintained since v3.6.0, please refer to the project documentation: https://github.com/elephantrobotics/pymycobot/blob/main/README.md")
class Watcher:
@ -73,7 +86,10 @@ class ultraArmTopics(object):
port = rospy.get_param("~port", "/dev/ttyUSB0")
baud = rospy.get_param("~baud", 115200)
rospy.loginfo("%s,%s" % (port, baud))
self.ua = ultraArm(port,baud)
if class_name == 'old':
self.ua = ultraArm(port,baud)
else:
self.ua = ultraArmP340(port ,baud)
self.ua.go_zero()
self.lock = threading.Lock()

View file

@ -2,7 +2,20 @@
import math
import rospy
from sensor_msgs.msg import JointState
from pymycobot.ultraArm import ultraArm
import pymycobot
from packaging import version
# min low version require
MAX_REQUIRE_VERSION = '3.5.3'
current_verison = pymycobot.__version__
print('current pymycobot library version: {}'.format(current_verison))
if version.parse(current_verison) > version.parse(MAX_REQUIRE_VERSION):
from pymycobot.ultraArmP340 import ultraArmP340
class_name = 'new'
else:
from pymycobot.ultraArm import ultraArm
class_name = 'old'
print("Note: This class is no longer maintained since v3.6.0, please refer to the project documentation: https://github.com/elephantrobotics/pymycobot/blob/main/README.md")
ua = None
@ -24,13 +37,17 @@ def listener():
global ua
rospy.init_node("control_slider", anonymous=True)
rospy.Subscriber("joint_states", JointState, callback)
port = rospy.get_param("~port", "/dev/ttyUSB0") # Select connected device. 选择连接设备
baud = rospy.get_param("~baud", 115200)
print(port, baud)
ua = ultraArm(port, baud)
if class_name == 'old':
ua = ultraArm(port, baud)
else:
ua = ultraArmP340(port, baud)
ua.power_on()
ua.go_zero()
rospy.Subscriber("joint_states", JointState, callback)
# spin() simply keeps python from exiting until this node is stopped
# spin() 只是阻止python退出直到该节点停止