Hello ROS Developers!
In this post we are going to setup the simulation of the robot OpenMANIPULATOR-X from Robotis company. All the steps were based on their official documents
Let’s start creating a new ROSJect, we are going to use
Ubuntu 18.04 + ROS2 Eloquent, which is also a
ROS 1 Melodic environment.
First we are going to configure our environment for the simulation. Let’s change the
$ROS_PACKAGE_PATH in order to avoid the public simulations available in ROSDS.
Let’s recompile the
simulation_ws on the folder
user:~$ cd ~/simulation_ws user:~/simulation_ws$ rm -rf build devel user:~/simulation_ws$ source /opt/ros/melodic/setup.bash user:~/simulation_ws$ catkin_make user:~/simulation_ws$ source devel/setup.bash
And then recompile
catkin_ws as well.
user:~$ cd ~/catkin_ws user:~/catkin_ws$ rm -rf build devel user:~/catkin_ws$ source ~/simulation_ws/devel/setup.bash user:~/catkin_ws$ catkin_make
We are ready to download the simulation.
Downloading and compiling Open Manipulator X
Let’s clone the necessary repositories to our workspace, inside
user:~$ cd ~/simulation_ws/src user:~/simulation_ws/src$ git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git user:~/simulation_ws/src$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench.git user:~/simulation_ws/src$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs.git user:~/simulation_ws/src$ git clone https://github.com/ROBOTIS-GIT/open_manipulator.git user:~/simulation_ws/src$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git user:~/simulation_ws/src$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_simulations.git user:~/simulation_ws/src$ git clone https://github.com/ROBOTIS-GIT/robotis_manipulator.git
After that, get one folder up and re-compile the
user:~/simulation_ws/src$ cd .. user:~/simulation_ws$ catkin_make
You must be ready to launch the simulation at this point!
Launching the simulation
Let’s go on the ROSDS way of launching simulations. Open the simulation menu and press
Choose launch file..
Choose the file
open_manipulator_gazebo.launch from the package
Start simulation and the web gazebo client must open the simulation:
Great! Let’s play with it a little bit!
Controllers and GUI Operator
With the simulation ready, let’s start two other programs using the shell.
In a first web shell, shell 1, launch the controllers for gazebo simulator. At this moment, we are telling ROS it’s not a real robot, but a simulated one:
user:~$ roslaunch open_manipulator_controller open_manipulator_controller.launch use_platform:=false
In another shell, shell 2, open the graphical interface for controlling the robot:
user:~$ roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch
Your environment should be more or less like below:
Now, let’s send some commands to the robot. Check the GIF below. The actions are:
- Play the simulation
- Start the timer inside the GUI
- Enable actuator inside the GUI
- Send the commands: open and close the gripper
- Send Home pose
- Send Init pose
- Send Custom pose
In a few steps we achieved to have the simulation and a demo working!
Don’t forget to check the official documentation of the robot: http://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/#overview
If you miss any of the steps, you can have a copy of the ROSJect generated for this post, click here!
Please, leave your comments and share it if you like this kind of post!
See you in the next one!