mvsim-subscriber-example.cpp
Go to the documentation of this file.
1 
2 #include <mrpt/obs/CObservation2DRangeScan.h>
3 #include <mvsim/Comms/Client.h>
4 #include <mvsim/mvsim-msgs/GenericObservation.pb.h>
5 #include <mvsim/mvsim-msgs/TimeStampedPose.pb.h>
6 
7 #include <chrono>
8 #include <iostream>
9 #include <thread>
10 
11 void myPoseCallback(const mvsim_msgs::TimeStampedPose& p)
12 {
13  std::cout << "topic callback: " << p.DebugString() << std::endl;
14 }
15 
16 void mySensorCallback(const mvsim_msgs::GenericObservation& o)
17 {
18  const std::vector<uint8_t> data(
19  o.mrptserializedobservation().begin(),
20  o.mrptserializedobservation().end());
21 
22  mrpt::serialization::CSerializable::Ptr obj;
23  mrpt::serialization::OctetVectorToObject(data, obj);
24 
25  mrpt::obs::CObservation::Ptr obs =
26  std::dynamic_pointer_cast<mrpt::obs::CObservation>(obj);
27  ASSERT_(obs);
28 
29  std::cout << "sensor callback: " << obs->asString() << "\n";
30 }
31 
32 int main(int argc, char** argv)
33 {
34  try
35  {
36  mvsim::Client client("mvsim-subscriber-example");
37  client.setVerbosityLevel(mrpt::system::LVL_DEBUG);
38 
39  client.connect();
40 
41  client.subscribeTopic<mvsim_msgs::TimeStampedPose>(
42  "/r1/pose", myPoseCallback);
43 
44  client.subscribeTopic<mvsim_msgs::GenericObservation>(
45  "/r1/laser1", mySensorCallback);
46 
47  std::this_thread::sleep_for(std::chrono::seconds(5));
48 
49  return 0;
50  }
51  catch (const std::exception& e)
52  {
53  std::cerr << mrpt::exception_to_str(e);
54  return 1;
55  }
56 }
void subscribeTopic(const std::string &topicName, const std::function< void(const MSG_T &)> &callback)
Definition: Client.h:207
int main(int argc, char **argv)
void mySensorCallback(const mvsim_msgs::GenericObservation &o)
void myPoseCallback(const mvsim_msgs::TimeStampedPose &p)


mvsim
Author(s):
autogenerated on Tue Jul 4 2023 03:08:21