[Documentation] [TitleIndex] [WordIndex

<erupter> http://answers.ros.org/question/58691/sharing-a-matrixgraph-maybe-with-the-parameter-server/
<erupter> tea time /away
<jbohren> ah interesting
<erupter> https://www.youtube.com/watch?v=khZealVe0Ic
<erupter> here is a live video of our platform
<erupter> since we do a lot of research involving graphs, it would be nice to be able to share graphs and their properties via ros
<jbohren> I've been looking at more easily storing and accessing more complex types on the parameter server
<jbohren> with yaml you could put arbitrary structures and arrays onto the parameter server, but then it's a pain to pull it out in c++
<jbohren> I've been using this to get arrays from parameters (among other things): https://github.com/jhu-lcsr/terse_roscpp/blob/master/include/terse_roscpp/param.h
<jbohren> it would be interesting to add support for matrix types, too
<jbohren> maybe you could have it stuff data into an eigen3 matrix
<jbohren> for the adjacency graph stuff, it really sounds like you want to use a distributed architecture like TF, but with your own data semantics (:
* erupter is mulling jbohren's words
<erupter> what do you mean when you say TF is a distributed architecture?
<jbohren> because TF shares data peer-to-peer, the data flows over ros topics and is buffered locally
<jbohren> there's no central location where TF data is stored
<jbohren> as opposed to the parameter server, which requires XmlRpc communication with the ros master
<erupter> I'm not that well educated into the mechanism of ROS (my bad): when you create topics and nodes subscribe, don't you have messages going back and forth with the master?
<jbohren> nope, the master is only used for ip/port resolution and establishing connections
<erupter> how does the message replication when multiple nodes from different machines subscribe to a same topic?
<erupter> you mean the publisher automatically multicasts to the subscribing nodes?
<jbohren> nope, it's a publish-subscribe model established over 1-to-1 TCP or UDP sockets
<erupter> how is the time seeded and synched?
<jbohren> so there's one socket per pair of nodes on a given topic
<jbohren> which time?
<erupter> rostime
<jbohren> rostime is just a wrapper that normally uses the system time calls, unless you publish to the /clock topic, in which case it uses that time signal
<erupter> ok this is getting important
<jbohren> http://wiki/Clock
<jbohren> haha
<jbohren> yeah
<erupter> no really
<jbohren> no, I know
<erupter> we are using multiple machines with wifi, so delay lag and jitter get really sensible
<erupter> and I have to come up with some verifiable numbers
<jbohren> well calling the ros time functions is just a pass-through to the system clock
<erupter> knowing this is already wonderful
<jbohren> the assumption is that you're using NTP to synchronize those
<erupter> now I just need to find a way to get NTP data in my programs...
<erupter> data -> delay, offset, jitter
<jbohren> http://wiki/pr2_computer_monitor#ntp_monitor.py
<erupter> I have NTP seeding on my network, only with ntpd or something else
<erupter> ntpdate never worked
<erupter> each machine has its own daemon feeding off the server, which is the only one connected to the internet
<jbohren> but ntpdate should just be used to query the clock
<jbohren> ntpdate -q
<erupter> no servers can be used. exiting
<jbohren> hmm
<jbohren> yeah, if you're running the ntp daemon, you'll need to use ntpq -p I'm not sure if there's a c api
<erupter> asked on the ntp ml, hope to receive an answer
<jbohren> probably wouldn't be to hard to run ntpq -p with popen in the same way they run ntpdate: https://kforge.ros.org/pr2robot/hg/file/653def0c202a/pr2_computer_monitor/scripts/ntp_monitor.py
<jbohren> line 82

2024-12-07 14:43