I installed MORSE 0.6 and linked it up with ROS on Ubuntu 12.04 and it was fun to try out simulations of PR2 and ATRVs. I was interested in simulating a 2 robot system where one robot was guided by ROS nodes while the other was controlled by MORSE. This article is a brief on how I got that working !
THE kb_control CODE
Koushik and I have been tying to use kbhit() function to model teleoperation in ROS, however lack of a conio.h in gcc made us channel our efforts differently (fcntl.h), and develop our codes.
SETTING IT UP IN MORSE
Instead of a single ATRV, I put in 2 ATRVs in my simulation, Castor and Pollux. Castor controlled by ROS nodes while Pollux was by MORSE keyboard. In the Python script (two_atrv.py) it was easy to 'connect up' Castor to ROS and Pollux to MORSE;
To link up ROS nodes with MORSE, remapping of the launch file (kb_control_morse.launch) is done,
The remapping is done by checking the rxgraph and enabling publisher/subscriber connectivity to ensure the interconnectivity of all the nodes. A working rxgraph for this simulation is as shown,
Download the kb_control package from https://github.com/Arkapravo/kb_control and install it, rosmake kb_control
Place the file kb_control/morse/two_atrv.py at /opt/ros/morse/share/morse/examples/scenarii/
Start an instance of the master
Start the morse simulation, cd /opt/ros/morse/share/morse/examples/scenarii/ && morse run two_atrv
Start the kb_node, roslaunch kb_control kb_control_morse.launch
Now you should be able to control Castor with ROS and Pollux with MORSE.Click on the blender screen, the arrow keys will move Pollux around.Click on the kb_control terminal window, the arrow keys will move Castor around.
MORSE 1.0 is slated for release in February 2013, with various improvements and newer features.
I am thankful to the morse-user mailing list (morse-users at laas dot fr) particularly, Florian Lier (flier at techfak dot uni-bielefeld dot de), Michael Karg (kargm at in dot tum dot de) and Séverin Lemaignan (severin dot lemaignan at laas dot fr). I am also thankful to my friend Vasileios Lahanas (vasileios dot lahanas at hotmail dot com) for his suggestions regarding kbhit() function.
The codes discussed here can be found at, https://github.com/Arkapravo/kb_control, any issues with the simulation then feel free to write to us, Arkapravo Bhaumik (arkapravobhaumik at gmail dot com) and Koushik Kabiraj (koushik dot atti at gmail dot com).