- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi all,
I apologize in advance if this is a real ROS beginner's question...
I believe I've properly configured a remote machine to use the Euclid as ROS master. I can 'rostopic list' just fine, and I can 'rostopic echo' topics that have generic messages.
For example:
- 'rostopic echo /rosout' works fine.
- running 'rostopic pub /test_topic std_msgs/Bool true' on the Euclid, and
'rostopic echo /test_topic' on the remote machine also works fine.
What I can't echo are any of the Euclid specific topics:
/cpu_info /hardware_status /nodes_status /usb_status /wifi_status
jay@Jay-MacBookPro:~$ rostopic echo /cpu_info
ERROR: Cannot load message class for [system_monitor/CpuStatus]. Are your messages built?
jay@Jay-MacBookPro:~$ rostopic echo /nodes_status
ERROR: Cannot load message class for [configuration_node/NodesStatus]. Are your messages built?
jay@Jay-MacBookPro:~$ rostopic echo /usb_status
ERROR: Cannot load message class for [system_monitor/USBStatus]. Are your messages built?
jay@Jay-MacBookPro:~$ rostopic echo /wifi_status
ERROR: Cannot load message class for [system_monitor/WifiStatus]. Are your messages built?
Digging around online seems to point to these messages types not being published properly (?). Or, maybe I still don't have something configured properly between the two machines?
I'm sure someone will know right away what I'm doing wrong... Any help would be appreciated :-)
Thanks,
Jay
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jay,
Can you check to see if your euclid is publishing these topics at all? Try using "rostopic hz " to check the rate of data in that topic.
I believe that you might have the msg type missing from your remote machine. In that case I think you can get them with "sudo apt-get install ros-kinetic-system-monitor ros-kinetic-configuration-node"
Let me know if this works.
Meitav
Intel Euclid Development Team
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Meitav,
Yes, the Euclid is publishing the messages.
You're correct, the remote machine is missing the two packages you mentioned. What repository should I be using to obtain those packages? They look like they're Intel Euclid specific and don't indicate where to find them (via apt-cache policy). My remote machine can't find them with the standard repositories (including deb http://packages.ros.org/ros/ubuntu http://packages.ros.org/ros/ubuntu xenial main).
(on the Euclid)
'dpkg -s ros-kinetic-system-monitor'
Package: ros-kinetic-system-monitor
Status: install ok installed
Priority: extra
Section: misc
Maintainer: Intel Euclid Support <</span>mailto:euclid.support@intel.com euclid.support@intel.com>
Architecture: amd64
Source: ros-kinetic-system-monitor
Version: 1.0.1
Depends: ros-kinetic-message-runtime, ros-kinetic-roscpp, ros-kinetic-rospy, ros-kinetic-std-msgs
Description: Euclid system_monitor package
'apt-cache policy ros-kinetic-system-monitor'
ros-kinetic-system-monitor:
Installed: 1.0.1
Candidate: 1.0.1
Version table:
*** 1.0.1 100
100 /var/lib/dpkg/status
Thanks,
Jay
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jay,
While I'm not sure if this is the best method, a good workaround would be to copy the packages from the Euclid (located at "/usr/share/ubuntu/scripts/oem-config.d/data/ros/") and install the ones you need (mainly ros-kinetic-system-monitor and ros-kinetic-configuration-node).
Doing this enabled me to echo these 4 topics on my remote machine without a problem.
Let me know if this works for you.
Meitav
Intel Euclid Development Team
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Meitav,
Interesting... my Euclid doesn't have the /data/ros directory:
euclid@EUCLID_71C5:/usr/share/ubuntu/scripts/oem-config.d$ ls
custom early late
But, following your thought process, I came up with another solution.
On my remote machine:
- I created a new catkin workspace (I called it euclid_ws)
- I then cloned euclid_configuration_node and euclic_system_monitor into that workspace from the Euclid GitHub (https://github.com/IntelEuclid Intel® Euclid™ · GitHub )
- sourced the euclid_ws/devel/setup.bash
Now my remote machine can understand the messages.
Certainly in this case this method works. I could see other cases where it wouldn't be desirable to rebuild an entire package just to create the message definitions. This is where my ROS inexperience shows - maybe there's a proper way to just build messages from a package?
My general problem is solved. Would love to get pointers on better ways to do this.
Thanks,
Jay
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Jay,
I'm glad you found the solution.
As far as I know there really isn't a proper way to do it normally, other than building some package that has those msg types, so making a solution for less experienced users such as an installation script will probably be handy. That's a good idea!
I will add this to our development backlog. Maybe something along the lines of having a remote machine sdk for Euclid.
Meitav
Intel Euclid Development Team
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Meitav,
Sounds like a lightweight package just with message definitions (plus other exposed service definition?) would be helpful.
I'm sure this won't be a high priority :-) Your team must have more critical things in the development backlog.
Thanks again for talking through the problem.
--Jay
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page