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(), o.mrptserializedobservation().end());
20 
21  mrpt::serialization::CSerializable::Ptr obj;
22  mrpt::serialization::OctetVectorToObject(data, obj);
23 
24  mrpt::obs::CObservation::Ptr obs = std::dynamic_pointer_cast<mrpt::obs::CObservation>(obj);
25  ASSERT_(obs);
26 
27  std::cout << "sensor callback: " << obs->asString() << "\n";
28 }
29 
30 int main(int argc, char** argv)
31 {
32  try
33  {
34  mvsim::Client client("mvsim-subscriber-example");
35  client.setVerbosityLevel(mrpt::system::LVL_DEBUG);
36 
37  client.connect();
38 
39  client.subscribeTopic<mvsim_msgs::TimeStampedPose>("/r1/pose", myPoseCallback);
40 
41  client.subscribeTopic<mvsim_msgs::GenericObservation>("/r1/laser1", mySensorCallback);
42 
43  std::this_thread::sleep_for(std::chrono::seconds(5));
44 
45  return 0;
46  }
47  catch (const std::exception& e)
48  {
49  std::cerr << mrpt::exception_to_str(e);
50  return 1;
51  }
52 }
Client.h
call-shutdown.client
client
Definition: call-shutdown.py:26
mvsim::Client
Definition: Client.h:48
main
int main(int argc, char **argv)
Definition: mvsim-subscriber-example.cpp:30
myPoseCallback
void myPoseCallback(const mvsim_msgs::TimeStampedPose &p)
Definition: mvsim-subscriber-example.cpp:11
mySensorCallback
void mySensorCallback(const mvsim_msgs::GenericObservation &o)
Definition: mvsim-subscriber-example.cpp:16


mvsim
Author(s):
autogenerated on Wed May 28 2025 02:13:08