예제 #1
0
def run_param_manipulation():
    ros_client = Ros('127.0.0.1', 9090)

    def delete_param_done(_):
        ros_client._test_param_del = True

    def get_param_done(value):
        ros_client._test_param_value = value

        delete_param = Param(ros_client, 'test_param')
        delete_param.delete(delete_param_done)

    def set_param_done(_):
        ros_client._test_param_set = True

        check_param = Param(ros_client, 'test_param')
        check_param.get(get_param_done)

    param = Param(ros_client, 'test_param')
    param.set('test_value', set_param_done)

    def verify():
        assert(ros_client._test_param_set is True)
        assert(ros_client._test_param_value == 'test_value')
        assert(ros_client._test_param_del is True)
        ros_client.terminate()

    ros_client.call_later(1, verify)
    ros_client.run_forever()
예제 #2
0
def run_add_two_ints_service():
    ros_client = Ros('127.0.0.1', 9090)
    service = Service(ros_client, '/test_server', 'rospy_tutorials/AddTwoInts')

    def dispose_server():
        service.unadvertise()
        service.ros.call_later(1, service.ros.terminate)

    def add_two_ints(request, response):
        response['sum'] = request['a'] + request['b']
        if response['sum'] == 42:
            service.ros.call_later(2, dispose_server)

        return True

    def check_sum(result):
        assert (result['sum'] == 42)

    def invoke_service():
        client = Service(ros_client, '/test_server',
                         'rospy_tutorials/AddTwoInts')
        client.call(ServiceRequest({'a': 2, 'b': 40}), check_sum, print)

    service.advertise(add_two_ints)
    ros_client.call_later(1, invoke_service)
    ros_client.run_event_loop()
예제 #3
0
def run_tf_test():
    ros_client = Ros('127.0.0.1', 9090)
    tf_client = TFClient(ros_client, fixed_frame='world')

    def callback(message):
        assert message['translation'] == dict(
            x=0.0, y=0.0, z=0.0), 'Unexpected translation received'
        assert message['rotation'] == dict(
            x=0.0, y=0.0, z=0.0, w=1.0), 'Unexpected rotation received'
        ros_client.terminate()

    tf_client.subscribe(frame_id='/world', callback=callback)

    ros_client.call_later(2, ros_client.terminate)
    ros_client.run_forever()