Tango-ing with ROS- Week 2!
Siddhant Shrivastava
June 08, 2015
Filed under “GSoC”
Hi! This one is about my second week of the Google Summer of Code 2015 program. It was a busy long week two with some crucial design decisions to be implemented and new things to learn. It was also a hectic week of reading how to write better Python code (Fluent Python - O'Reilly Publishers
, maintaining Python2 and Python3 compatibility, etc) After finalizing on the architecture last week (shown below), it was time to work on implementing it -
Evidently from the diagram, there are two distributed systems involved - both significantly complicated. These are -
- Tango Controls
- ROS (Robot Operating System)
The challenge here is to create an event-triggered Tango Device which serves as both a client and a server. This Tango device listens for new events on the Tango bus, and sends data to it when need be. In addition, this is also interfaced with ROS in that the required Tango events for ROS are processed by the device and published to the appropriate TangoROS
topic when required. It also subscribes to ROSTango
topic to listen to any incoming updates from the robot.
Some use-cases for this are as follows -
- The Bodytracking server pushes the location/orientation data on the bus.
- The TangoROS Device subscribes to the events of the Bodytracking data on the Tango bus.
- When an event is triggered, the device processes the data into ROS-compatible messages (
location
andorientation
are transformed intolinear velocity
andangular velocity
) - The ROS Commander node (which is subscribed to the
ROSTango
topic) - The ROS Commander node continuously monitors the robot for different measurements (sensor readings, battery status, navigation feedback, etc). The important signals are published to the
ROSTango bus
.
This is my first time working with the powerful Tango-Controls system. It is used by -
- Italian Mars Society
- The very large solar array network (SAK)
- Synchotrons and Particle Accelerators around Europe
I’ll discuss how I work with Tango and ROS in my next blog post.
The Italian Mars Society had an All-hands Skype meeting on 8th June, 2015 where all the GSoC students and mentors discussed project status, software architecture document feedback, roadblocks, hardware needs, collaboration, field tests etc.
Things that were discussed and to be done-
- Docker Image for ROS setup (very important)
- Battery status Tango server
- ROS Tango Client
- ROS Tango server for certain use cases
- Tango events
- Timestamp based Transformation of parameters in a time-series data
- Set up the Minoru 3D camera and the Oculus Rift device
This is a week where I’d like most of these things to fall in place. GSoC is turning out to be exciting and challenging! Til the next post. Over to week three.
Ciao!