I tested Add, Delete, Save annotation.
In generally, users will use (Add, Save) or (Delete, Save).
But, if they try to do Add, Delete, Save, then error occurred. The process order is important.
The error process is as below.
Add the annotation in local
Delete it before save
Save
Error!
-client side log
[INFO] [WallTime: 1413267033.555703] Getting annotations for world 'yujin_rnd' and additional filter criteria
[INFO] [WallTime: 1413267033.556072] Waiting for 'get_annotations' service...
[INFO] [WallTime: 1413267033.560666] 1 annotations found
[INFO] [WallTime: 1413267033.560908] Waiting for 'get_annotations_data' service...
[INFO] [WallTime: 1413267033.562119] Loading data for the 1 retrieved annotations
[INFO] [WallTime: 1413267033.565488] 1 annotations data retrieved
[INFO] [WallTime: 1413267033.602085] Getting annotations for world 'yujin_rnd' and additional filter criteria
[INFO] [WallTime: 1413267033.602375] Waiting for 'get_annotations' service...
[INFO] [WallTime: 1413267033.610449] 7 annotations found
[INFO] [WallTime: 1413267033.610711] Waiting for 'get_annotations_data' service...
[INFO] [WallTime: 1413267033.613240] Loading data for the 7 retrieved annotations
[INFO] [WallTime: 1413267033.622606] 7 annotations data retrieved
[INFO] [WallTime: 1413267043.796533] Requesting server to save annotations
[INFO] [WallTime: 1413267043.797099] Waiting for 'save_annotations_data' service...
[INFO] [WallTime: 1413267043.798274] Requesting server to save annotations
[INFO] [WallTime: 1413267043.829639] Waiting for 'delete_annotations' service...
[INFO] [WallTime: 1413267043.831550] Requesting server to delete 1 deemed annotations
Traceback (most recent call last):
File "/home/dwlee/work/rocon_office/src/rocon_qt_gui/rocon_qt_library/src/rocon_qt_library/widgets/map_annotation.py", line 178, in _save_annotation
success, message = self._callback['save_annotation']()
File "/home/dwlee/work/rocon_office/src/rocon_qt_gui/rocon_qt_library/src/rocon_qt_library/interfaces/map_annotation_interface.py", line 235, in save_annotations
self.ac_handler_others.save()
File "/home/dwlee/work/rocon_office/src/world_canvas_libs/world_canvas_client_py/src/world_canvas_client/annotation_collection.py", line 501, in save
response = del_anns_srv(self._annots_to_delete)
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 435, in __call__
return self.call(*args, **kwds)
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 515, in call
responses = transport.receive_once()
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_base.py", line 695, in receive_once
p.read_messages(b, msg_queue, sock)
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 353, in read_messages
self._read_ok_byte(b, sock)
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 336, in _read_ok_byte
raise ServiceException("service [%s] responded with an error: %s"%(self.resolved_name, str))
rospy.service.ServiceException: service [/software/world_canvas/delete_annotations] responded with an error: error processing request: 'DeleteAnnotationsRequest' object has no attribute 'annotation_ids'
server side log
[ERROR] [WallTime: 1413267043.834273] Error processing request: 'DeleteAnnotationsRequest' object has no attribute 'annotation_ids'
['Traceback (most recent call last):\n', ' File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 623, in _handle_request\n response = convert_return_to_response(self.handler(request), self.response_class)\n', ' File "/home/dwlee/work/rocon_office/src/world_canvas/world_canvas_server/src/annotations_server.py", line 299, in deleteAnnotations\n % (removed, len(request.annotation_ids)))\n', "AttributeError: 'DeleteAnnotationsRequest' object has no attribute 'annotation_ids'\n"]
I tested Add, Delete, Save annotation. In generally, users will use (Add, Save) or (Delete, Save). But, if they try to do Add, Delete, Save, then error occurred. The process order is important.
The error process is as below.
-client side log