Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
Getting Started with a Doosan Robot
Description: This tutorial guides about Doosan Robot in ROSKeywords: Doosan Robot, m0609, m0617, m1013, m1509, co-bot
Tutorial Level: INTERMEDIATE
Contents
Prerequisites
In order to complete this tutorial, you should have access to the following:
A computer with ROS installed (>= Kinetic)
doosan_robot package
The following tutorial is a tutorial on M-Series robots. Before you start, you will need a Ubuntu PC or virtual machine that matches the version of ROS you want to use. This tutorial assumes that you have completed the ROS installation according to the ROS Wiki.
The default IP of the Doosan robot controller is 192.168.127.100. The IP bandwidth of your PC and controller must match. After connecting to the router port on the controller, perform a ping test to make sure it is connected correctly.
If you want to use it in a virtual machine, change the network settings of the virtual machine to a bridge adapter.
Overview
The doosan_robot metapackage communicates with the hardware through an Ethernet connection. Users can move or monitor real robots using services, topics, or Python-like Doosan Robot Launguage(DRL) in the ROS environment.
The doosan_robot package supports an emulator mode that operates independently of the Virtual / Real mode that is linked to the controller, to run when the robot controller is not actually present. For emulator mode, see the following steps.
Steps
Required Software
Required Software package installation required. The list of dependency packages used by doosan_robot is described on this site.
Hardware Configuration
Virtual/Real
You need to configure the Ethernet communication for Virtual / Real Mode to work with the actual controller. Doosan Robot supports Ethernet communication using the built-in router of the controller. The default IP for the controller is 192.168.127.100. Controller IP can be modified in Teach Pendant. To modify the network, refer to [Figure 1].
[Figure 1]Network Configuration in Teach Pendant
Robot Controller has static IP. Adjust the network bandwidth of your PC and controller. For example, if the controller IP is 192.168.127.100 (default), it is recommended to change the IP of the user PC to 192.168.137.50.
The router built into the robot is ZIO_ROUTER, so please refer to this site for details on network configuration.
Perform a ping test to verify that the network is properly connected. Use the terminal to do the following command :
ping <ROBOT_IP>
<ROBOT_IP> means IP of robot controller. If the connection is correct, a response will be received. If no response is received, the operation associated with the controller can not be performed.
Emulator
The "doosan_robot" supports an independently operated emulator mode for driving when the robot controller is not actually present. Virtual controllers for independent operation are located in the /doosan-robot/common/bi/DRCF/ directory. Depending on your environment, run DRCF32 for 32-bit and DRCF64 for 64-bit with root-permission The command to execute DRCF is as follows.
./DRCF64 <port> or ./DRCF32 <port>
<port> is the port number on which DRCF is running. Actual robot controller uses port 12345, so if you use real robot controller and emulator, please pay attention to the port. Figure 2 shows the DRCF activated.
[Figure 2]Run DRCF
Execute Rviz for modeling the robot
This step describes how to run dsr_description. dsr_description shows the Doosan robot to rviz using robot modeling file (.dae) and urdf.xacro file. Since only the model is displayed on the screen, if dsr_description is executed only, it can not be linked with the controller. The dsr_description package can be run with the following commands:
roslaunch dsr_description m1013.launch ###
In the same way, models of m0609, m0617, and m1509 are also available
Connecting the controller
The dsr_control package is a module that links the controller and the ROS. There are also various services built in. For more information, please visit dsr_control/src/dsr_hw_interface.cpp. The dsr_launcher package contains various launcher files. For more information on files, see doosan-robot / dsr_launcher / launch. dsr_launcher was created for two simulators, rviz and gazebo. The _rviz_gazebo.launch file is a sample file that runs both simulators simultaneously.
The single_launch file is an example of controlling a single robot. The launch file contains the following arguments:
ns # NAMESPACE / default : dsr01 host # ROBOT_IP / default : 192.168.127.100 port # ROBOT_PORT / default : 12345 mode # ROBOT_MODE / default : virtual model # ROBOT_MODEL / default : m1013 color # ROBOT_COLOR / default : white gripper # GRIPPER / default : none mobile # MOBILE_ROBOT / default : none
The emulator only supports the Virtual environment. When using the emulator, it may not work when using Real mode.
The doosan_robot package contains a reference to the robotiq_2f gripper and husky mobile. You can link Doosan Robot and Robotiq Grippers with the following command:
roslaunch dsr_launcher single_robot_rviz.launch gripper:=robotiq_2f
You can use the service or the dsr_example sample package to run gripper. See the individual steps for the service and the dsr_example package. husky mobile is built into the doosan_robot package. Like gripper, you can run it with the following command:
roslaunch dsr_launcher single_robot_rviz.launch mobile:=husky
"color" is an argument for robot color. It is set to white by default and can be changed to blue. Pay attention to the argument.
The multi_launch file is an example of controlling multiple robots. Although there is no maximum limit, N controllers (or emulators) are required to move N robots because they must match 1: 1 with the controller. When using a real controller, each controller must have a different IP, and the port is fixed at 12345. If you are using an emulator, each emulator controller must have a local IP (127.0.0.1) and have a different port number. The command to use multi-node is as follows.
roslaunch dsr_launcher multi_robot_rviz.launch
If you want to check the movement of the multi-node, run the following command.
rosrun dsr_example_py multi_robot.py
Robot operation using service and example file
Examples
The dsr_example package contains example files written in cpp and py. The example file execution command is as follows.
rosrun dsr_example_py <example_file>
Services
The doosan_robot supports various services using a useful API; DRFL. Service is declared in dsr_control/src/dsr_hw_interface.cpp. Check the .srv file in dsr_msgs / srv for the parameters for the service. You can use the rosservice command to retrieve the desired service at any time. Information about the services included in doosan_robot can be found at here.
MoveIt!
The moveit_config_ (model) package contains the moveit configuration file for the M-Series robots. For more information on Moveit, see moveit.
moveit - rviz execution command:
roslaunch moveit_config_m1013 m1013.launch
This command does not work with the controller, but you can check the motion planning.
To interlock with the real controller, execute the following command:
roslaunch dsr_control dsr_moveit.launch host:=192.168.127.100 model:=m1013
You can use MoveIt to perform motion planning and see actual robot behavior.
When using a real robot, sometimes the robot can move in an unexpected path. Press the Emergency Stop button on the teach pendant when an unexpected situation occurs. The Emergency Stop button means the red button located at the upper right of the Teach Pendant.