The Half-Life of Telerobotics
Siddhant Shrivastava
June 24, 2015
Filed under “GSoC”
Hi all! If you’ve been following my previous posts, you’d have known that the Telerobotics module has been simmering for a couple of weeks. I’m happy to announce that it is almost complete and would hopefully be integrated with Vito’s Bodytracking module.
The last week (week four and five) were the busiest weeks of GSoC for me.
Learning Experience
- I learnt A LOT about Python Software Development
- Different types of software architectures,
- The development process of Python by one of the members of the Italian Mars Society who has been the reason I’m able to write more Pythonic code - Ezio Melotti
- PyTango Development
- ipython and how helpful it can be for Tango applications
- Message queues - Both ROS and Tango utilize ZeroMQ - which makes integration of ROS and Tango much scalable
- SIFT in Python - I will be working with my mentor Fabio Nigi on this very soon
- Making my own stereo camera
Deliverables
- A ROS node which collects information from all interesting topics from the Husky robot. This can be found here
- A Tango Server which integrates with ROS to provide diagnostic information from the robot (Battery Status, Temperature Levels, Current Draw, Voltate, Error Conditions )
- A simulated version of the Tango server for the Planning and Scheduling application that Shridhar is working on. These can be accessed here
- Soft Real-time network streaming FFMPEG server and Blender Client for a single camera video stream. This can be found here
Under heavy Development
- Integration of Bodytracking with Telerobotics. The following message format has been decided upon by the mentors and students:
# Attribute definitions for various diagnostic messages
moves = attribute(label="Linear and angular displacement", dtype = (float,),
display_level = DispLevel.EXPERT,
access = AttrWriteType.READ,
unit = "(meters, radians)",
fget="getMoves", polling_period = POLLING,
max_dim_x = 2, max_dim_y = 1,
doc="An attribute for Linear and angular displacements")
Vito’s Bodytracker would publish events in the form of Tango events. The associated data would be a float tuple of dimensions 2,1 (2 columns, 1 row). Such a tuple, like (3.4, 1.2) would specify a relative linear and angular displacement of the astronaut. My Telerobotics module would subscribe to this Tango event and transform this data to a Twist message that the Husky can understand.
- Extension of Camera Streaming to a dual camera setup. I am extending the streaming capabilty for a stereo camera.
Mid-term evaluations start tomorrow! Eagerly looking forward to them. It has been an eventful and productive half summer of code. I hope the next half is even more exciting and challenging as the one that passed.
Ciao