In [1]:
import rospy
from std_msgs.msg import Float32, Float64, String, Header
from sensor_msgs.msg import JointState
from __future__ import print_function
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
In [2]:
rospy.init_node("Control")
In [3]:
pub1_control=rospy.Publisher("/rail1_control", JointState, queue_size=10)
pub2_control=rospy.Publisher("/rail2_control", JointState, queue_size=10)
sub1_state = rospy.Subscriber("rail1_state", JointState)
sub2_state = rospy.Subscriber("rail2_state", JointState)
In [4]:
@interact_manual(position=widgets.FloatSlider(description="Tor 1 position",
min=100,
max=1900,
step=1,
value=1000,
continuous_update=False),
velocity=widgets.FloatSlider(description="Velocity",
min=1,
max=300,
step=1,
value=100,
continuous_update=False),
acceleration=widgets.FloatSlider(description="Acceleration",
min=1,
max=300,
step=1,
value=100,
continuous_update=False),
) #you could also go 0-2000
def send_position_1(position,velocity,acceleration):
control1 = JointState()
control1.header = Header()
control1.header.stamp = rospy.Time.now()
control1.name = ["c_1"]
control1.position = [position]
control1.velocity = [velocity]
control1.effort = [acceleration]
pub1_control.publish(control1)
@interact_manual(position=widgets.FloatSlider(description="Tor 2 position",
min=100,
max=1900,
step=1,
value=1000,
continuous_update=False),
velocity=widgets.FloatSlider(description="Velocity",
min=1,
max=300,
step=1,
value=100,
continuous_update=False),
acceleration=widgets.FloatSlider(description="Acceleration",
min=1,
max=300,
step=1,
value=100,
continuous_update=False),
) #you could also go 0-2000
def send_position_2(position,velocity,acceleration):
control2 = JointState()
control2.header = Header()
control2.header.stamp = rospy.Time.now()
control2.name = ["c_2"]
control2.position = [position]
control2.velocity = [velocity]
control2.effort = [acceleration]
pub2_control.publish(control2)
In [ ]:
In [ ]:
from ipywidgets import Button
from IPython.display import display
stop_button=Button(description='Stop', button_style='danger')
def please_stop(what):
print("no")
stop_button.on_click(please_stop)
display(stop_button)
In [ ]:
stop_button=Button(description='Stop', button_style='danger')
In [ ]:
send_position(1500)
In [ ]:
pos_2 = 1200
vel_2 = 100
accel_2 = 100
control2 = JointState()
control2.header = Header()
control2.header.stamp = rospy.Time.now()
control2.name = ["c_2"]
control2.position = [pos_2]
control2.velocity = [vel_2]
control2.effort = [accel_2]
pub2_control.publish(control2)
In [ ]:
pos_1 = 1000
vel_1 = 100
accel_1 = 75
pos_2 = 1000
vel_2 = 150
accel_2 = 50
control1 = JointState()
control1.header = Header()
control1.header.stamp = rospy.Time.now()
control1.name = ["c_1"]
control1.position = [pos_1]
control1.velocity = [vel_1]
control1.effort = [accel_1]
control2 = JointState()
control2.header = Header()
control2.header.stamp = rospy.Time.now()
control2.name = ["c_2"]
control2.position = [pos_2]
control2.velocity = [vel_2]
control2.effort = [accel_2]
pub1_control.publish(control1)
pub2_control.publish(control2)
In [ ]:
from __future__ import print_function
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
In [ ]:
@interact(x=True, y=1.0)
def g(x, y):
return (x, y)
In [ ]: