def talker(): rospy.init_node("setpoint_sender") # Initialise robot pose pub = rospy.Publisher("/fishing_y_axis/setpoint", MotorControlSetpoint, queue_size=1) time.sleep(1) setpoint = 2 counter = 0 rate = rospy.Rate(10) # 10hz while not rospy.is_shutdown(): msg = MotorControlSetpoint() msg.timestamp = rospy.get_rostime() msg.node_name = "fishing_y_axis" msg.mode = MotorControlSetpoint.MODE_CONTROL_POSITION msg.position = setpoint + 8 rospy.loginfo("Sending setpoint") pub.publish(msg) rate.sleep() counter += 1 if counter == 5: setpoint = -setpoint counter = 0
def talker(): pub = rospy.Publisher('/goldorak/' + node_name + '/setpoint', MotorControlSetpoint, queue_size=10) rospy.init_node('setpoint_sender', anonymous=True) rate = rospy.Rate(frequency) i = 0 msg = MotorControlSetpoint() while not rospy.is_shutdown(): msg.node_name = node_name msg.mode = MotorControlSetpoint.MODE_CONTROL_TORQUE if i > frequency: msg.position = 0 msg.velocity = 0 msg.torque = 20 if i > 2 * frequency: i = 0 msg.position = 0 msg.velocity = 0 msg.torque = -20 i += 1 pub.publish(msg) rate.sleep()
def move(x, duration=0.5, rate=10): global right_wheel_pos, left_wheel_pos, right_wheel_pub, left_wheel_pub, right_wheel_radius, left_wheel_radius, right_wheel_direction, left_wheel_direction, external_to_internal_wheelbase_encoder_direction right_wheel_msg = MotorControlSetpoint() left_wheel_msg = MotorControlSetpoint() right_wheel_msg.node_name = 'right_wheel' right_wheel_msg.mode = MotorControlSetpoint.MODE_CONTROL_POSITION left_wheel_msg.node_name = 'left_wheel' left_wheel_msg.mode = MotorControlSetpoint.MODE_CONTROL_POSITION right_wheel_msg.position = right_wheel_pos left_wheel_msg.position = left_wheel_pos right_increment = (external_to_internal_wheelbase_encoder_direction * right_wheel_direction * x / right_wheel_radius) / (duration * rate) left_increment = (external_to_internal_wheelbase_encoder_direction * left_wheel_direction * x / left_wheel_radius) / (duration * rate) rate_ = rospy.Rate(rate) for i in range(int(duration * rate)): current_time = rospy.get_rostime() right_wheel_msg.timestamp = current_time right_wheel_msg.position += right_increment left_wheel_msg.timestamp = current_time left_wheel_msg.position += left_increment right_wheel_pub.publish(right_wheel_msg) left_wheel_pub.publish(left_wheel_msg) rate_.sleep()
def move_speed(speed, duration, rate=10): global right_wheel_pub, left_wheel_pub, right_wheel_radius, left_wheel_radius, right_wheel_direction, left_wheel_direction, external_to_internal_wheelbase_encoder_direction right_speed = external_to_internal_wheelbase_encoder_direction * right_wheel_direction * speed / right_wheel_radius left_speed = external_to_internal_wheelbase_encoder_direction * left_wheel_direction * speed / left_wheel_radius right_wheel_msg = MotorControlSetpoint() left_wheel_msg = MotorControlSetpoint() right_wheel_msg.node_name = 'right_wheel' right_wheel_msg.mode = MotorControlSetpoint.MODE_CONTROL_VELOCITY left_wheel_msg.node_name = 'left_wheel' left_wheel_msg.mode = MotorControlSetpoint.MODE_CONTROL_VELOCITY rate_ = rospy.Rate(rate) for i in range(int(duration * rate)): current_time = rospy.get_rostime() right_wheel_msg.timestamp = current_time right_wheel_msg.velocity = right_speed left_wheel_msg.timestamp = current_time left_wheel_msg.velocity = left_speed right_wheel_pub.publish(right_wheel_msg) left_wheel_pub.publish(left_wheel_msg) rate_.sleep()
def talker(): args = parse_arguments() pub = rospy.Publisher('/goldorak/' + node_name + '/setpoint', MotorControlSetpoint, queue_size=10) rospy.init_node('setpoint_sender', anonymous=True) rate = rospy.Rate(frequency) msg = MotorControlSetpoint() while not rospy.is_shutdown(): msg.node_name = node_name if args.position: msg.mode = MotorControlSetpoint.MODE_CONTROL_POSITION msg.position = args.position elif args.velocity: msg.mode = MotorControlSetpoint.MODE_CONTROL_VELOCITY msg.velocity = args.velocity elif args.torque: msg.mode = MotorControlSetpoint.MODE_CONTROL_TORQUE msg.torque = args.torque pub.publish(msg) rate.sleep()
def talker(): rospy.init_node('setpoint_sender') # Initialise robot pose pub = rospy.Publisher('/fishing_y_axis/setpoint', MotorControlSetpoint, queue_size=1) time.sleep(1) setpoint = 2 counter = 0 rate = rospy.Rate(10) # 10hz while not rospy.is_shutdown(): msg = MotorControlSetpoint() msg.timestamp = rospy.get_rostime() msg.node_name = 'fishing_y_axis' msg.mode = MotorControlSetpoint.MODE_CONTROL_POSITION msg.position = setpoint + 8 rospy.loginfo('Sending setpoint') pub.publish(msg) rate.sleep() counter += 1 if counter == 5: setpoint = - setpoint counter = 0
def end_of_game_cb(self, event): rospy.loginfo("End of game") rospy.loginfo("Cancelling move_base actions") self.abort_navigation_pub.publish(GoalID()) # Opens umbrella rospy.loginfo("Opening umbrella") rate = rospy.Rate(10) # 10hz for i in range(50): msg = MotorControlSetpoint( node_name="umbrella", voltage=12, mode=MotorControlSetpoint.MODE_CONTROL_VOLTAGE) self.umbrella_pub.publish(msg) rate.sleep() msg = MotorControlSetpoint( node_name="umbrella", voltage=0, mode=MotorControlSetpoint.MODE_CONTROL_VOLTAGE) self.umbrella_pub.publish(msg) rospy.loginfo("Umbrella openend")