diff --git a/ultraArm/ultraarm/scripts/slider_control.py b/ultraArm/ultraarm/scripts/slider_control.py index 504c990..0d9953f 100755 --- a/ultraArm/ultraarm/scripts/slider_control.py +++ b/ultraArm/ultraarm/scripts/slider_control.py @@ -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 ...") diff --git a/ultraArm/ultraarm_communication/scripts/ultraArm_services.py b/ultraArm/ultraarm_communication/scripts/ultraArm_services.py index cd50beb..d993285 100755 --- a/ultraArm/ultraarm_communication/scripts/ultraArm_services.py +++ b/ultraArm/ultraarm_communication/scripts/ultraArm_services.py @@ -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() diff --git a/ultraArm/ultraarm_communication/scripts/ultraArm_topics.py b/ultraArm/ultraarm_communication/scripts/ultraArm_topics.py index aeed934..6d09265 100755 --- a/ultraArm/ultraarm_communication/scripts/ultraArm_topics.py +++ b/ultraArm/ultraarm_communication/scripts/ultraArm_topics.py @@ -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() diff --git a/ultraArm/ultraarm_communication/scripts/ultraArm_topics_seeed.py b/ultraArm/ultraarm_communication/scripts/ultraArm_topics_seeed.py index 7c13c00..cb4e787 100755 --- a/ultraArm/ultraarm_communication/scripts/ultraArm_topics_seeed.py +++ b/ultraArm/ultraarm_communication/scripts/ultraArm_topics_seeed.py @@ -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() diff --git a/ultraArm/ultraarm_moveit/scripts/sync_plan.py b/ultraArm/ultraarm_moveit/scripts/sync_plan.py index 70026f4..e4fff59 100644 --- a/ultraArm/ultraarm_moveit/scripts/sync_plan.py +++ b/ultraArm/ultraarm_moveit/scripts/sync_plan.py @@ -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退出,直到该节点停止