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,
THE SIMULATION
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
MORSE 1.0 is slated for release in February 2013, with various improvements and newer features.
ACKNOWLEDGEMENTS
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).
No comments:
Post a Comment