doosan_robot repository

Repository Summary

Checkout URI https://github.com/doosan-robotics/doosan-robot.git
VCS Type git
VCS Version melodic-devel
Last Updated 2020-09-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Doosan Robotics

license - apache 2.0 License support level: community

overview

Doosan ROS Video

build

Doosan Robot ROS Package is implemented at ROS-melodic.
### We recoomand the /home/<user_home>/catkin_ws/src
cd ~/catkin_ws/src
git clone -b melodic-devel --single-branch https://github.com/doosan-robotics/doosan-robot
rosdep install --from-paths doosan-robot --ignore-src --rosdistro melodic -r -y
cd ~/catkin_ws
catkin_make
source ./devel/setup.bash

package list

sudo apt-get install ros-melodic-rqt* ros-melodic-moveit* ros-melodic-industrial-core ros-melodic-gazebo-ros-control ros-melodic-joint-state-controller ros-melodic-effort-controllers ros-melodic-position-controllers ros-melodic-ros-controllers ros-melodic-ros-control ros-melodic-serial ros-melodic-joint-state-publisher-gui

usage

Operation Mode

Virtual Mode

If you are driveing without a real robot, use virtual mode
When ROS launches in virtual mode, the emulator(DRCF) runs automatically.

(DRCF) location: doosan-robot/common/bin/ DRCF

roslaunch dsr_launcher single_robot_gazebo.launch mode:=virtual

One emulator is required for each robot

Real Mode

Use real mode to drive a real robot
The default IP of the robot controller is 192.168.127.100 and the port is 12345.

roslaunch dsr_launcher single_robot_gazebo.launch mode:=real host:=192.168.127.100 port:=12345


dsr_description

roslaunch dsr_description m0609.launch    
roslaunch dsr_description m1013.launch color:=blue # Change Color
roslaunch dsr_description m1509.launch gripper:=robotiq_2f # insert robotiq gripper
roslaunch dsr_description m0617.launch color:=blue gripper:=robotiq_2f # change color & insert robotiq gripper
roslaunch dsr_description a0509.launch 

$ roslaunch dsr_description m1013.launch

$ roslaunch dsr_description m0617.launch color:=blue gripper:=robotiq_2f


dsr_moveit_config

arguments

color:= ROBOT_COLOR defalut = white

roslaunch moveit_config_m0609 m0609.launch
roslaunch moveit_config_m0617 m0617.launch
roslaunch moveit_config_m1013 m1013.launch color:=blue
roslaunch moveit_config_m1509 m1509.launch
roslaunch moveit_config_a0509 a0509.launch


dsr_control (default model:= m1013, default mode:= virtual)

arguments

host := ROBOT_IP defalut = 192.168.127.100
port := ROBOT_PORT default = 12345
mode := OPERATION MODE defalut = virtual
model := ROBOT_MODEL defalut = m1013
color := ROBOT_COLOR defalut = white
gripper := USE_GRIPPER defalut = none
mobile := USE_MOBILE defalut = none

dsr_control + dsr_moveit_config

roslaunch dsr_control dsr_moveit.launch
roslaunch dsr_control dsr_moveit.launch model:=m0609 mode:=virtual
roslaunch dsr_control dsr_moveit.launch model:=m0617 mode:=virtual
roslaunch dsr_control dsr_moveit.launch model:=m1013 mode:=virtual
roslaunch dsr_control dsr_moveit.launch model:=m1509 mode:=virtual
roslaunch dsr_control dsr_moveit.launch model:=a0509 mode:=virtual
How to use MoveIt Commander
You can run Moveit with CLI commands through the moveit commander package.
You can install the "moveit_commander" package using below command.
sudo apt-get install ros-melodic-moveit-commander
MoveitCommander usage example
roslaunch dsr_control dsr_moveit.launch model:=m1013
In another terminal 
ROS_NAMESPACE=/dsr01m1013 rosrun moveit_commander moveit_commander_cmdline.py robot_description:=/dsr01m1013/robot_description   
moveit commander CLI is executed.
> use arm 
> goal0 = [0 0 0 0 0 0]        # save the home position to variable "goal0"
> goal1 = [0 0 1.57 0 1.57 0]  # save the target position to varialbe "goal1" / radian
> go goal1                     # plan & excute (the robot is going to move target position)
> go goal0                     # paln & excute (the robot is going to move home position)

dsr_launcher

If you don`t have real doosan controller, you must execute emulator before run dsr_launcer.

arguments

host:= ROBOT_IP defalut = 192.168.127.100 ##Emulator IP = 127.0.0.1
port:= ROBOT_PORT default = 12345
mode:= OPERATION MODE defalut = virtual
model:= ROBOT_MODEL defalut = m1013
color:= ROBOT_COLOR defalut = white
gripper:= USE_GRIPPER defalut = none
mobile:= USE_MOBILE defalut = none

roslaunch dsr_launcher single_robot_rviz.launch host:=127.0.0.1 port:=12345 mode:=virtual model:=m1013 color:=blue gripper:=none mobile:=none
roslaunch dsr_launcher single_robot_gazebo.launch host:=192.168.127.100
roslaunch dsr_launcher single_robot_rviz_gazebo.launch gripper:=robotiq_2f mobile:=husky
roslaunch dsr_launcher multi_robot_rviz.launch
roslaunch dsr_launcher multi_robot_gazebo.launch model:=m0609
roslaunch dsr_launcher multi_robot_rviz_gazebo.launch

dsr_example

single robot
<launch>
  - single robot in rviz : 
  roslaunch dsr_launcher single_robot_rviz.launch model:=m1013 color:=white
  - single robot in gazebo : 
  roslaunch dsr_launcher single_robot_gazebo.launch model:=m1013 color:=blue
  - single robot in rviz + gazebo : 
  roslaunch dsr_launcher single_robot_rviz_gazebo.launch model:=m1013 color:=white
<run application node>
  rosrun dsr_example_py single_robot_simple.py dsr01 m1013
<ex>
  roslaunch dsr_launcher single_robot_rviz_gazebo.launch model:=m1013 color:=white
  rosrun dsr_example_py single_robot_simple.py

$ roslaunch dsr_launcher single_robot_rviz_gazebo.launch

$ rosrun dsr_example_py single_robot_simple.py

multi robot
<launch>
  - multi robot in rviz : 
  roslaunch dsr_launcher multi_robot_rviz.launch
  - multi robot in gazebo : 
  roslaunch dsr_launcher multi_robot_gazebo.launch
  - multi robot in rviz + gazebo : 
  roslaunch dsr_launcher multi_robot_rviz_gazebo.launch
<run application node>
  rosrun dsr_example_py multi_robot_simple.py
<ex>
    roslaunch dsr_launcher multi_robot_rviz_gazebo.launch
    rosrun dsr_example_py multi_robot.py  

$ roslaunch dsr_launcher multi_robot_rviz_gazebo.launch

$ rosrun dsr_example_py multi_robot.py

robot + gripper

insert argument gripper:=robotiq_2f
- single robot + gripper

roslaunch dsr_launcher single_robot_rviz.launch gripper:=robotiq_2f

<run application node>
  rosrun dsr_example_py pick_and_place.py

  • Serial Test(Loopback)
rosrun serial_example_node serial_example_node ttyUSB0 115200
rostopic echo /serial_read
rostopic pub /serial_write std_msgs/String 'data: 100'

gazebo+rviz+virtual

roslaunch dsr_launcher single_robot_rviz_gazebo.launch
rosrun dsr_example_py single_robot_simple.py
  <include file="$(find dsr_gazebo)/launch/dsr_base.launch">
    <arg name="ns" value="dsr01"/> # Robot ID
    <arg name="model" value="m1013"/> # Robot Model
    <arg name="host" value="192.168.127.100"/> # Robot IP
    <arg name="port" value="12345"/> # Robot Port
    <arg name="mode" value="virtual"/> # Robot Controller Mode 
    # Position & Posture in Gazebo
    <arg name="x" value="2"/>
    <arg name="y" value="-4"/>
    <arg name="yaw" value="0.7"/>
  </include>
  <include file="$(find dsr_gazebo)/launch/dsr_base.launch">
    <arg name="ns" value="dsr02"/> # Secondary Robot ID
    <arg name="model" value="m1013"/> # Secondary Robot Model
    <arg name="host" value="192.168.127.102"/> # Secondary Robot IP
    <arg name="port" value="12346"/> # Robot Port
    <arg name="mode" value="virtual"/> # Secondary Robot Controller Mode
    # Secondary Position & Posture in Gazebo
    <arg name="x" value="2"/>
    <arg name="y" value="-4"/>
    <arg name="yaw" value="0.7"/>
  </include>

Run multi-robot by command line

roslaunch dsr_launcher test.launch
rostopic pub /dsr01m1013/joint_position_controller/command std_msgs/Float64MultiArray "layout:
  dim:
  - label: ''
    size: 0
    stride: 0
    data_offset: 0
data: [10, 10, 40, 10, 60, 10]"

Service Call

rosservice call /dsr/set_joint_move "jointAngle: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
jointVelocity: [50.0, 0.0, 0.0, 0.0, 0.0, 0.0]
jointAcceleration: [50.0, 0.0, 0.0, 0.0, 0.0, 0.0]
radius: 0.0"


manuals

Manual(Kor)

Manual(Eng)

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/doosan-robotics/doosan-robot.git
VCS Type git
VCS Version master
Last Updated 2020-11-13
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

README

Doosan Robotics

license - apache 2.0 License support level: community

overview

Doosan ROS Video

build

Doosan Robot ROS Package is implemented at ROS-Kinetic.
### We recoomand the /home/<user_home>/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/doosan-robotics/doosan-robot
rosdep install --from-paths doosan-robot --ignore-src --rosdistro kinetic -r -y
cd ~/catkin_ws
catkin_make
source ./devel/setup.bash

package list

sudo apt-get install ros-kinetic-rqt* ros-kinetic-moveit* ros-kinetic-industrial-core ros-kinetic-gazebo-ros-control ros-kinetic-joint-state-controller ros-kinetic-effort-controllers ros-kinetic-position-controllers ros-kinetic-ros-controllers ros-kinetic-ros-control ros-kinetic-serial

packages for mobile robot

sudo apt-get install ros-kinetic-lms1xx ros-kinetic-interactive-marker-twist-server ros-kinetic-twist-mux ros-kinetic-imu-tools ros-kinetic-controller-manager ros-kinetic-robot-localization

usage

Operation Mode

Virtual Mode

If you are driveing without a real robot, use virtual mode
When ROS launches in virtual mode, the emulator(DRCF) runs automatically.

(DRCF) location: doosan-robot/common/bin/ DRCF

roslaunch dsr_launcher single_robot_gazebo.launch mode:=virtual

One emulator is required for each robot

Real Mode

Use real mode to drive a real robot
The default IP of the robot controller is 192.168.127.100 and the port is 12345.

roslaunch dsr_launcher single_robot_gazebo.launch mode:=real host:=192.168.127.100 port:=12345


dsr_description

roslaunch dsr_description m0609.launch    
roslaunch dsr_description m1013.launch color:=blue # Change Color
roslaunch dsr_description m1509.launch gripper:=robotiq_2f # insert robotiq gripper
roslaunch dsr_description m0617.launch color:=blue gripper:=robotiq_2f # change color & insert robotiq gripper
roslaunch dsr_description a0509.launch 

$ roslaunch dsr_description m1013.launch

$ roslaunch dsr_description m0617.launch color:=blue gripper:=robotiq_2f


dsr_moveit_config

arguments

color:= ROBOT_COLOR defalut = white

roslaunch moveit_config_m0609 m0609.launch
roslaunch moveit_config_m0617 m0617.launch
roslaunch moveit_config_m1013 m1013.launch color:=blue
roslaunch moveit_config_m1509 m1509.launch
roslaunch moveit_config_a0509 a0509.launch


dsr_control (default model:= m1013, default mode:= virtual)

arguments

host := ROBOT_IP defalut = 192.168.127.100
port := ROBOT_PORT default = 12345
mode := OPERATION MODE defalut = virtual
model := ROBOT_MODEL defalut = m1013
color := ROBOT_COLOR defalut = white
gripper := USE_GRIPPER defalut = none
mobile := USE_MOBILE defalut = none

dsr_control + dsr_moveit_config

roslaunch dsr_control dsr_moveit.launch
roslaunch dsr_control dsr_moveit.launch model:=m0609 mode:=virtual
roslaunch dsr_control dsr_moveit.launch model:=m0617 mode:=virtual
roslaunch dsr_control dsr_moveit.launch model:=m1013 mode:=virtual
roslaunch dsr_control dsr_moveit.launch model:=m1509 mode:=virtual
roslaunch dsr_control dsr_moveit.launch model:=a0509 mode:=virtual
How to use MoveIt Commander
You can run Moveit with CLI commands through the moveit commander package.
You can install the "moveit_commander" package using below command.
sudo apt-get install ros-kinetic-moveit-commander
MoveitCommander usage example
roslaunch dsr_control dsr_moveit.launch model:=m1013
In another terminal 
ROS_NAMESPACE=/dsr01m1013 rosrun moveit_commander moveit_commander_cmdline.py robot_description:=/dsr01m1013/robot_description   
moveit commander CLI is executed.
> use arm 
> goal0 = [0 0 0 0 0 0]        # save the home position to variable "goal0"
> goal1 = [0 0 1.57 0 1.57 0]  # save the target position to varialbe "goal1" / radian
> go goal1                     # plan & excute (the robot is going to move target position)
> go goal0                     # paln & excute (the robot is going to move home position)

dsr_launcher

If you don`t have real doosan controller, you must execute emulator before run dsr_launcer.

arguments

host:= ROBOT_IP defalut = 192.168.127.100 ##Emulator IP = 127.0.0.1
port:= ROBOT_PORT default = 12345
mode:= OPERATION MODE defalut = virtual
model:= ROBOT_MODEL defalut = m1013
color:= ROBOT_COLOR defalut = white
gripper:= USE_GRIPPER defalut = none
mobile:= USE_MOBILE defalut = none

roslaunch dsr_launcher single_robot_rviz.launch host:=127.0.0.1 port:=12345 mode:=virtual model:=m1013 color:=blue gripper:=none mobile:=none
roslaunch dsr_launcher single_robot_gazebo.launch host:=192.168.127.100
roslaunch dsr_launcher single_robot_rviz_gazebo.launch gripper:=robotiq_2f mobile:=husky
roslaunch dsr_launcher multi_robot_rviz.launch
roslaunch dsr_launcher multi_robot_gazebo.launch model:=m0609
roslaunch dsr_launcher multi_robot_rviz_gazebo.launch

dsr_example

single robot
<launch>
  - single robot in rviz : 
  roslaunch dsr_launcher single_robot_rviz.launch model:=m1013 color:=white
  - single robot in gazebo : 
  roslaunch dsr_launcher single_robot_gazebo.launch model:=m1013 color:=blue
  - single robot in rviz + gazebo : 
  roslaunch dsr_launcher single_robot_rviz_gazebo.launch model:=m1013 color:=white
<run application node>
  rosrun dsr_example_py single_robot_simple.py dsr01 m1013
<ex>
  roslaunch dsr_launcher single_robot_rviz_gazebo.launch model:=m1013 color:=white
  rosrun dsr_example_py single_robot_simple.py

$ roslaunch dsr_launcher single_robot_rviz_gazebo.launch

$ rosrun dsr_example_py single_robot_simple.py

multi robot
<launch>
  - multi robot in rviz : 
  roslaunch dsr_launcher multi_robot_rviz.launch
  - multi robot in gazebo : 
  roslaunch dsr_launcher multi_robot_gazebo.launch
  - multi robot in rviz + gazebo : 
  roslaunch dsr_launcher multi_robot_rviz_gazebo.launch
<run application node>
  rosrun dsr_example_py multi_robot_simple.py
<ex>
    roslaunch dsr_launcher multi_robot_rviz_gazebo.launch
    rosrun dsr_example_py multi_robot.py  

$ roslaunch dsr_launcher multi_robot_rviz_gazebo.launch

$ rosrun dsr_example_py multi_robot.py

robot + gripper

insert argument gripper:=robotiq_2f
- single robot + gripper

roslaunch dsr_launcher single_robot_rviz.launch gripper:=robotiq_2f

<run application node>
  rosrun dsr_example_py pick_and_place.py

  • Serial Test(Loopback)
rosrun serial_example_node serial_example_node ttyUSB0 115200
rostopic echo /serial_read
rostopic pub /serial_write std_msgs/String 'data: 100'

robot + mobile

insert argument mobile:=husky - single robot on mobile

roslaunch dsr_launcher single_robot_rviz.launch mobile:=husky

<run application node>
  rosrun dsr_example_py single_robot_mobile.py

$ roslaunch dsr_launcher single_robot_rviz mobile:=husky color:=blue

  • multi robot on mobile
roslaunch dsr_launcher multi_robot_rviz.launch mobile:=husky

<run application node>
  rosrun dsr_example_py multi_robot_mobile.py  

$ roslaunch dsr_launcher multi_robot_rviz mobile:=husky

gazebo+rviz+virtual

roslaunch dsr_launcher single_robot_rviz_gazebo.launch
rosrun dsr_example_py single_robot_simple.py
  <include file="$(find dsr_gazebo)/launch/dsr_base.launch">
    <arg name="ns" value="dsr01"/> # Robot ID
    <arg name="model" value="m1013"/> # Robot Model
    <arg name="host" value="192.168.127.100"/> # Robot IP
    <arg name="port" value="12345"/> # Robot Port
    <arg name="mode" value="virtual"/> # Robot Controller Mode 
    # Position & Posture in Gazebo
    <arg name="x" value="2"/>
    <arg name="y" value="-4"/>
    <arg name="yaw" value="0.7"/>
  </include>
  <include file="$(find dsr_gazebo)/launch/dsr_base.launch">
    <arg name="ns" value="dsr02"/> # Secondary Robot ID
    <arg name="model" value="m1013"/> # Secondary Robot Model
    <arg name="host" value="192.168.127.102"/> # Secondary Robot IP
    <arg name="port" value="12346"/> # Robot Port
    <arg name="mode" value="virtual"/> # Secondary Robot Controller Mode
    # Secondary Position & Posture in Gazebo
    <arg name="x" value="2"/>
    <arg name="y" value="-4"/>
    <arg name="yaw" value="0.7"/>
  </include>

Run multi-robot by command line

roslaunch dsr_launcher test.launch
rostopic pub /dsr01m1013/joint_position_controller/command std_msgs/Float64MultiArray "layout:
  dim:
  - label: ''
    size: 0
    stride: 0
    data_offset: 0
data: [10, 10, 40, 10, 60, 10]"

Service Call

rosservice call /dsr/set_joint_move "jointAngle: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
jointVelocity: [50.0, 0.0, 0.0, 0.0, 0.0, 0.0]
jointAcceleration: [50.0, 0.0, 0.0, 0.0, 0.0, 0.0]
radius: 0.0"


manuals

Manual(Kor)

Manual(Eng)

demo

Doosan-Robots In Gazebo

Doosan-Robots & Mobile in Rviz

CONTRIBUTING

No CONTRIBUTING.md found.