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.
Configuring 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 /home/user/simulation_ws
.
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 ~/simulation_ws/src
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 simulation_ws
workspace.
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 open_manipulator_gazebo
Press 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:
Testing it!
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
Conclusion
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!
Cheers!
0 Comments