import time

from roslibpy import Message
from roslibpy import Topic

from compas_fab.backends import RosClient

client = RosClient()
talker = Topic(client, '/chatter', 'std_msgs/String')


def start_talking():
    while client.is_connected:
        talker.publish(Message({'data': 'Hello RobArch World!'}))
        print('Sending message...')
        time.sleep(1)

    talker.unadvertise()


client.on_ready(start_talking)
client.run_forever()
Exemplo n.º 2
0
    print('Starting UR joint state publisher...')
    print('Press CTRL+C to abort')
    print(
        'NOTE: if CTRL+C does not abort cleanly, set the env variable to FOR_DISABLE_CONSOLE_CTRL_HANDLER=1'
    )

    print('ROS Nodes status:')
    client = RosClient(host=args.ros_host, port=int(args.ros_port))

    print(' [ ] ROS Topics', end='\r')
    joint_states_topic = roslibpy.Topic(client, '/ur_joint_states',
                                        'sensor_msgs/JointState')
    joint_states_topic.advertise()

    client.on_ready(
        functools.partial(joint_states_publisher,
                          topic=joint_states_topic,
                          frequency=args.frequency))
    print(' [X] ROS Topics')

    print('Ready!')

    client.run_forever()

    print('ROS Nodes status:')
    print(' [ ] ROS Topics disconnection', end='\r')
    joint_states_topic.unadvertise()
    print(' [X] ROS Topics disconnection')
    time.sleep(1)

    print('Disconnected')
Exemplo n.º 3
0
    print('ROS Nodes status:')
    print(' [ ] ROS Services', end='\r')
    client = RosClient(host=args.ros_host, port=int(args.ros_port))
    storage_service = roslibpy.Service(client, '/store_assembly_task',
                                       'workshop_tum_msgs/AssemblyTask')
    storage_service.advertise(storage_handler)

    execute_service = roslibpy.Service(client, '/execute_assembly_task',
                                       'workshop_tum_msgs/AssemblyTask')
    execute_service.advertise(functools.partial(execution_handler, ur=ur))
    print(' [X] ROS Services')

    client.on_ready(
        functools.partial(joint_states_received,
                          ur=ur,
                          ros=client,
                          frequency=args.frequency))

    print('Ready!')

    client.run_forever()

    print('ROS Nodes status:')
    print(' [ ] ROS Services disconnection', end='\r')
    storage_service.unadvertise()
    execute_service.unadvertise()
    print(' [X] ROS Services disconnection')
    time.sleep(1)

    print('Disconnected')
Exemplo n.º 4
0
    talker = Topic(client, '/messages', 'std_msgs/String')
    talker.advertise()

    listener = Topic(client, '/messages', 'std_msgs/String')
    listener.subscribe(receive_message)

    while client.is_connected:
        text = get_input()
        if text == 'q': break
        send_message(talker, text)

    client.terminate()


def receive_message(message):
    data = json.loads(message['data'])
    if data['name'] != name:
        print('\r[{}]: {}\r'.format(
            data['name'],
            data['text'].ljust(80),
        ))
        print('> {}'.format(get_current_buffer()), end='', flush=True)


def send_message(talker, message):
    talker.publish({'data': json.dumps(dict(text=message, name=name))})


client.on_ready(start_chat)
client.run_forever()
import time

from roslibpy import Message
from roslibpy import Topic

from compas_fab.backends import RosClient

client = RosClient()
listener = Topic(client, '/chatter', 'std_msgs/String')


def start_listening():
    listener.subscribe(receive_message)


def receive_message(message):
    print('Heard talking: ' + message['data'])


client.on_ready(start_listening)
client.run_forever()
from roslibpy import Topic
from compas_fab.backends import RosClient


def receive_message(message):
    print(message)


if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser(description='Joint states publisher')
    parser.add_argument('-r',
                        '--ros-host',
                        help='ROS host',
                        default='localhost')
    parser.add_argument('-p', '--ros-port', help='ROS port', default=9090)
    args = parser.parse_args()

    client = RosClient(host=args.ros_host, port=int(args.ros_port))

    # Subscribe to joint state updates
    listener = Topic(client, '/ur_joint_states', 'sensor_msgs/JointState')
    listener.subscribe(receive_message)

    # Start connection
    client.on_ready(lambda: print('[OK] Connected to ROS: \n'))
    client.run_forever()

    client.terminate()