Feeding Pose Data into ROS on Raspberry Pi
This page provides detailed descriptions on how to feed sensor pose data into the Raspberry Pi. Multiple methods are described although one method is considered.
The first step is to install the vrpn_client_ros package to access the pose data streamed from the motion capture computer (Motive software) and then sending it to the raspberry pi.
Working Method
This can be done by setting up an Ubuntu Linux environment. Ubuntu has ROS packages prebuilt therefore building the vrpn ROS driver is straight forward. The pose data can be transferred to the raspberry Pi through a ROS network. I used the Clover virtual machine environment on my laptop, however it can be setup on the motion capture system computer running Motive as well. The installation and setup process for this environment is listed:
The configuration and setup process is further discussed.
Some downfalls with TCP:
There are many ways to ship data around a network, and each has advantages and disadvantages, depending largely on the application. TCP is widely used because it provides a simple, reliable communication stream. TCP packets always arrive in order, and lost packets are resent until they arrive. While great for wired Ethernet networks, these features become bugs when the underlying network is a lossy WiFi or cell modem connection. In this situation, UDP is more appropriate. When multiple subscribers are grouped on a single subnet, it may be most efficient for the publisher to communicate with all of them simultaneously via UDP broadcast.
A block diagram of the entire transmission setup can be seen:


Additional Considerations
During the debugging stages of this project I was considering a wide range of software topologies. The first one involved installing the VRPN ROS driver on the raspberry Pi where intuitively would be the most efficient way to transfer the pose data from motive to the raspberry Pi. The thought process and issues are discussed:
This could be done by giving the raspberry Pi internet access using an ethernet cable and WIFI router or reconfiguring the raspberry pi to use an external network with internet rather then its own. Before doing this, extra ROS packages and dependencies would need to be built for this ROS driver because the raspberry Pi Operating System (OS) does not have these packages prebuilt and only core packages are provided through the Clover Pi image listed here. The package dependencies are listed:
vrpn
where the only one not contained in the Clover Pi image is the vrpn. If the vrpn ROS driver was successfully setup, the next steps would be configuring the motion capture system to stream data while connected to the raspberry Pi.
Next remapping the topic either through a launch file or topic_tools which is another ROS package that would require dependencies set up. Due to the architecture of the Rasperian OS, these packages may not be possible to build. If one could set the raspberry Pi up with an Ubuntu server then the architecture issues may be avoided.
Last updated