mirror of
https://github.com/elephantrobotics/mycobot_ros.git
synced 2026-07-05 19:47:04 +00:00
68 lines
1.6 KiB
Python
Executable file
68 lines
1.6 KiB
Python
Executable file
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
from socket import *
|
||
import math
|
||
import sys
|
||
import time
|
||
from multiprocessing import Lock
|
||
|
||
import rospy
|
||
from sensor_msgs.msg import JointState
|
||
|
||
from pymycobot.elephantrobot import ElephantRobot
|
||
|
||
global mc
|
||
|
||
old_list = []
|
||
|
||
|
||
def callback(data):
|
||
"""callback function,回调函数"""
|
||
satrt_time=time.time()
|
||
global old_list
|
||
# rospy.loginfo(rospy.get_caller_id() + "%s", data.position)
|
||
print("position:", data.position)
|
||
data_list = []
|
||
for index, value in enumerate(data.position):
|
||
value = value * 180 / math.pi
|
||
data_list.append(value)
|
||
print ("data", data_list)
|
||
|
||
if not old_list:
|
||
old_list = data_list
|
||
mc.write_angles(data_list, 1999)
|
||
elif old_list != data_list:
|
||
old_list = data_list
|
||
# if mc.check_running():
|
||
# mc.task_stop()
|
||
# time.sleep(0.05)
|
||
|
||
mc.write_angles(data_list, 1999)
|
||
|
||
end_time=time.time()
|
||
print('loop_time:',end_time-satrt_time)
|
||
|
||
def listener():
|
||
global mc
|
||
rospy.init_node("control_slider", anonymous=True)
|
||
|
||
ip = rospy.get_param("~ip", "192.168.1.159")
|
||
print (ip)
|
||
mc = ElephantRobot(ip, 5001)
|
||
# START CLIENT,启动客户端
|
||
res = mc.start_client()
|
||
if res != "":
|
||
sys.exit(1)
|
||
|
||
mc.set_speed(90)
|
||
|
||
rospy.Subscriber("joint_states", JointState, callback)
|
||
|
||
# spin() simply keeps python from exiting until this node is stopped
|
||
# spin()只是阻止python退出,直到该节点停止
|
||
print ("sping ...")
|
||
rospy.spin()
|
||
|
||
|
||
if __name__ == "__main__":
|
||
listener()
|