Telerobotics - The Penultimate Crescendo
Siddhant Shrivastava
August 14, 2015
Filed under “GSoC”
Hi! As the hard-deadline date for the Google Summer of Code program draws to a close, I can feel the palpable tension that is shared by my mentors and fellow students at the Italian Mars Society and the Python Software Foundation.
All-Hands Meeting
We at the Italian Mars Society had the third all-hands meeting last evening (13th August). The almost two-hour Skype Conference call discussed a gamut of topics in-depth. Some of these were-
Software Testing guidelines
Ezio described the various ways of Unit Testing in different applications like rover movements, bodytracking, etc. In my case I had been checking for setup prerequisites and establishing the serializability of the ROS system before other modules could start up. That way the it is successfully ensured that all the required distributed systems are up and running before they are used. Integration Testing is crucial in the ERAS application where things like Telerobotics, Bodytracking, and the EUROPA Planner all blend together seamlessly. I’ve integrated Telerobotics and Bodytracking which can be observed in this commit.
Telerobotics
Telerobotics in its current state is more precise than ever. This video demonstrates this fact -
The YouTube link for the video is this.
I improved upon the previous integration with Bodytracking and handled the possible exceptions that may occur. The results have been stunning. I used the updated version of Vito’s bodytracker which can detect closed hands. Since the sensor refresh-rate has been reduced to 30 times per second, the Telerobotics module has much smoother movements. Here is a snapshot of the Bodytracking application running in a Windows Virtual Machine -
EUROPA Planner and Navigation Integration
Shridhar has been working on the Planner which outputs Cartesian coordinates in the format (x,y)
to which the rover must navigate. I am using the AMCL
navigation algorithm for known maps in addition to the actionlib
server of ROS to facilitate this integration. The challenge here is to resolve between the Cartesian coordinates of EUROPA
and that of ROS
. This should be hopefully complete in the next couple of days.
AMADEE15 mission
Yuval described that the the recently concluded mission was a huge success which focused on the following frontiers-
- GPS integration with Blender
- Photogrammetry to reproduce Blender scenes for Virtual EVAs.
- Unity3D and Oculus Integration
- AoudaX realtime software
- Generic ERAS Data Logger
- Husky navigation
Franco explained in brief about the Neuro-vestibular and Husky Scientific experiments.
Other things
Final efforts with Docker - After a lot of success, I have just one gripe with Docker. Running the Gazebo simulator, rviz
(ROS visualizer), and the Telerobotics module requires THREE terminals.Working with ROS as a master inherently requires access to a lot of terminals for logging, echoing topic messages, starting programs, etc. The current ways to achieve multiple terminals and Qt applications in Docker are at best makeshift workarounds. To handle a graphics-heavy application like Telerobotics, we require a Graphical Environment. Docker is great for providing a common service framework but not so good at graphical applications like ROS. That’s why I have been unable to get Docker working with the graphical aspects of ROS.
Documentation
In the final leg of the program, it is vital to go all-guns-blazing with the documentation of the software work that the students do. This is to ensure future development, maintainability, and clarity of thought. I recently added instructions in the Documentation directory - telerobotics/doc/
to replicate my setup. This can be found in my current commit.
I am ensuring that my mentors would be able to replicate my setup and give feedback very soon. The last week of GSoC is quite frenzied with the action to produce a consistent wrap-up of the project. The next post will officially be the last post of my GSoC 2015 experience. In reality, of course, I would keep working on the project and keep blogging :)
Till then, ciao.