[Rock-dev] Envire environment zum Versenden vereinfachen
Stefan Haase
stefan.haase at dfki.de
Mon Dec 17 20:25:00 CET 2012
Hi Jakob.
I did like you told or at least as I think you told (see below) and it
seems to work (no Pointcloud in my visualization-module anymore), but on
the second look I realize that it didn't do anything (see a little bit more
below).
Btw.: event.a.get() is an EnvironmentItem and Pointcloud is an
EnvironmentItem.. so dont we actually perform an downcast here?
The filter:
/**
* Event filter to exclude the pointcloud from serialization.
*/
class EventFilterExcludePointcloud : public envire::EventFilter {
public:
bool filter(envire::Event const& event) {
try {
envire::Pointcloud* pointcloud =
dynamic_cast<envire::Pointcloud*>(event.a.get());
if(pointcloud != NULL) {
LOG_INFO("Removes event %s", event.id_a.c_str());
return false;
}
} catch (std::exception& e) {
LOG_ERROR("Exception using EventFilterExcludePointcloud:
%s", e.what());
return false;
}
return true;
}
};
Add it to the emitter:
mEmitter = new envire::OrocosEmitter(_envire_environment_out);
mEmitter->setFilter(&mFilterPointcloud);
mEmitter->useContextUpdates(&mEnv);
mEmitter->useEventQueue( true );
mEmitter->attach(&mEnv);
Actually this removes the pointcloud (or at least I do not see it anymore):
*With pointcloud:*
update hook:
envire::OrocosEmitter emitter(&mEnv, _envire_environment_out);
emitter.setTime(base::Time::now());
emitter.flush();
*Without pointcloud:*
configureHook:
mEmitter = new envire::OrocosEmitter(_envire_environment_out);
mEmitter->useContextUpdates(&mEnv);
mEmitter->attach(&mEnv);
updateHook:
mEmitter->setTime(base::Time::now());
mEmitter->flush();
Irritated greetings,
Stefan
Am 17. Dezember 2012 15:54 schrieb Jakob Schwendner <
jakob.schwendner at dfki.de>:
> What you can do in order to prevent certain data from being serialized is
> to set-up an event filter.
> http://rock-robotics.org/**stable/api/slam/envire/**
> classenvire_1_1EventHandler.**html<http://rock-robotics.org/stable/api/slam/envire/classenvire_1_1EventHandler.html>
>
> you need to subclass from EventFilter and implement the handle method.
> Now all you need to do is return false for any events containing the
> environment item of type pointcloud data.
>
> I am using this in the visualization of the eslam module.
>
> cheers,
>
> Jakob
>
>
> On 12/17/2012 03:43 PM, Stefan Haase wrote:
>
>> Hi Jakob,
>>
>> ich habe eine Gesamtumgebung (envire::Environment mEnv;), in der ich
>> permanent neue Punkte zur Punktwolke hinzufüge, um mir daraus eine
>> Traversability-Map zu erzeugen.
>>
>> Zwecks externer Visualisierung muss ich jetzt aber die Umgebung
>> verschicken und da ich sonst Probleme mit der Größe bekomme, würde ich
>> gerne zuvor die Pointcloud entfernen. Gibt es einen einfachen Weg dies zu
>> tun?
>>
>> Ich habe schon versucht, nur die MLS und die Traversability Map an eine
>> zweite Umgebung anzuheften, die Pointclouds vor dem Versenden der Umgebung
>> zu entfernen (detach) und nachträglich wieder hinzuzufügen und noch ein
>> paar andere Sachen, hat leider alles zu Abstürzen geführt.
>>
>> Daher noch einmal die Frage: Gibt es eine einfache Methode, die Umgebung
>> ohne die Punktwolke zu senden bzw. sie von der Serialisierung
>> auszuschließen?
>>
>> Viele Grüße,
>> Stefan
>>
>
>
--
Dipl.-Inf. Stefan Haase
Space Robotics and Animation
Standort Bremen:
DFKI GmbH
Robotics Innovation Center
Robert-Hooke-Straße 5
28359 Bremen, Germany
Phone: +49 (0)421 178 45-4108
Fax: +49 (0)421 178 45-4150
E-Mail: Stefan.Haase at dfki.de
Weitere Informationen: http://www.dfki.de/robotik
-----------------------------------------------------------------------
Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
(Vorsitzender) Dr. Walter Olthoff
Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
Amtsgericht Kaiserslautern, HRB 2313
Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
USt-Id.Nr.: DE 148646973
Steuernummer: 19/673/0060/3
-----------------------------------------------------------------------
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: http://www.dfki.de/pipermail/rock-dev/attachments/20121217/5ec9364a/attachment.htm
More information about the Rock-dev
mailing list