===== V-REP ===== V-REP allows the use of ROS through a dedicated interface,%% %%''RosInterface'', which is part of the%% %%V-REP API framework. By duplicating the C/C++ ROS API, V-REP can act as a ROS node and enables communication via ROS topics. In order to do this, the interface has to be installed. ===== Installation ===== **Note:**%% %%To proceed,%% %%__ROS__%% %%and the%% %%__marty_msgs__%% %%package%% %%//must//%% %%be installed. To install the interface, please follow%% %%//Coppellia’s//%% %%''RosInterface''%% %%installation instructions located in%% %%`/$VREP_ROOT/programming/ros_packages`. Before compiling the interface, you have to tell V-REP that you will be using custom messages. This is relatively easy to do and can be done by adding the desired messages to the%% %%''messages.txt''%% %%file located in the%% %%''meta''%% %%folder of your%% %%''RosInterface''%% %%folder,%% %%**//prior//**%% %%to compiling the interface. In our case: marty_msgs/ServoMsg marty_msgs/ServoMsgArray marty_msgs/Accelerometer ===== Entering Simulation Mode ===== Now that the interface has been installed, the%% %%''ros_marty''%% %%package has to be set to simulation mode. Two files have to be edited:%% %%''config.cfg''%% %%and%% %%''marty.launch''. Let’s do%% %%''config.cfg''%% %%first. This file is located within%% %%''../ros_marty/cfg''%% %%and, thankfully, the change to be made is simple. Set the%% %%''false''%% %%variable to%% %%''true'': simulated: false # Whether Marty is being simulated Next, let’s edit%% %%''marty.launch''. This file is located in the%% %%''launch''%% %%folder of your%% %%''ros_marty''%% %%package. Again, the change is relatively simple, set the%% %%''false''%% %%variable to%% %%''true'': Now, instead of using a “real-time” clock, it will use the simulator’s timing system. This is important as V-REP can be sped up or slowed down. Initialising Assuming your%% %%installation%% %%went well, Marty should now be able to ROS around in simulation! **//Note://**%% %%in order for the interface to be loaded correctly, a%% %%''roscore''%% %%**//must//**%% %%be running somewhere, preferably one on your machine set to a localhost. Before we get started, let’s first check everything installed as planned. From a terminal, navigate to your V-REP root folder and run%% %%''vrep.sh''. This will launch V-REP but also show the status of the plugins that are being loaded within the terminal. If the interface installation was successful, V-REP will detect the plugin and will output%% %%''Plugin 'RosInterface': load succeeded''%% %%to the terminal. Now, in the top left corner click%% %%''File/Open Scene...''%% %%and from the list open%% %%''rosInterfaceTopicPublisherAndSubscriber.ttt''. This is the ROS demo as provided by V-REP and is designed to show the operation of a simple Publisher/Subscriber setup. Feel free to examine the source code if you wish. Next, click the Play button located on the toolbar. Your vision sensor should start sweeping the scene and display two video feeds, one that is being published and one that is being received, as shown below. {{https://content.robotical.io/static/media/vrep-guide/vrep_ros_test.png?800|ROS Demo}} ===== Marty the (Simulated) Robot ===== **//Note://**%% %%the%% %%''ros_marty''%% %%stack must be executed and set to simulation mode before running V-REP for Marty to ROS around. Before we start, execute the stack by entering the following in a terminal: roslaunch ros_marty startup.launch This%% %%**must**%% %%be running in order to do anything with Marty in simulation. Let’s open a new scene (''File/New Scene'') and see what Marty can do. Within the%% %%''Model browser'', under%% %%''robots'', click%% %%''mobile''. This will list V-REP’s selection of mobile robots. Now, on the bottom left, scroll down and drag Marty on to the scene. {{https://content.robotical.io/static/media/vrep-guide/marty_drop.png?800|Drag and drop}} Now, click Play. Go ahead and open up a new terminal and enter%% %%''rostopic list''. A list of Marty’s visible topics should be shown. As a final test, we can try running a demo script: $ rosrun ros_marty servo_test This should continously move Marty’s arms and eyes, like so: {{https://content.robotical.io/static/media/vrep-guide/marty_vrep.gif|Happy Marty}} Congrats, Marty is now officially ROSing around! **//Tip://**%% %%use Tab autocompletion to save time and errors typing long ROS commands in the terminal.