Giter VIP home page Giter VIP logo

doosan-robot's Introduction

license - apache 2.0 License support level: community

Precautions

Features not currently supported

Robotiq description cannot be called on gazebo simulation.
Mobile (Husky) simulation not available
Does not support the use of multi robots (only supports single robots)

overview

Doosan ROS Video

Doosan ROS Online Lecture(Kor)
Doosan ROS Online Lecture(Eng)

build

Doosan Robot ROS Package is implemented at ROS-Noetic.
### We recommand 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 noetic -r -y

##### Serial Package source build
### Noetic distro does not support serial package, so you have to install it manually.
cd ~/catkin_ws/src
git clone https://github.com/wjwwood/serial.git

cd ~/catkin_ws
catkin_make
source ./devel/setup.bash

package list

sudo apt-get install ros-noetic-rqt* ros-noetic-moveit* ros-noetic-gazebo-ros-control ros-noetic-joint-state-controller ros-noetic-effort-controllers ros-noetic-position-controllers ros-noetic-ros-controllers ros-noetic-ros-control ros-noetic-joint-state-publisher-gui ros-noetic-joint-state-publisher

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 <white / blue> 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 = 127.0.0.1 port := ROBOT_PORT default = 12345
mode := OPERATION MODE <virtual / real> defalut = virtual
model := ROBOT_MODEL <m0609 / 0617 / m1013 / m1509 / a0509 / a0912 / h2017 / h2515> defalut = m1013
color := ROBOT_COLOR <white / blue> defalut = white
gripper := USE_GRIPPER <none / robotiq_2f> defalut = none
mobile := USE_MOBILE <none / husky> defalut = none

dsr_moveit

roslaunch dsr_launcher dsr_moveit.launch
roslaunch dsr_launcher dsr_moveit.launch model:=m0609 mode:=virtual
roslaunch dsr_launcher dsr_moveit.launch model:=m0617 mode:=virtual
roslaunch dsr_launcher dsr_moveit.launch model:=m1013 mode:=virtual
roslaunch dsr_launcher dsr_moveit.launch model:=m1509 mode:=virtual
roslaunch dsr_launcher dsr_moveit.launch model:=a0509 mode:=virtual

dsr_moveit + gazebo

roslaunch dsr_launcher dsr_moveit_gazebo.launch
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-noetic-moveit-commander
MoveitCommander usage example
roslaunch dsr_launcher 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 = 127.0.0.1 ##controller IP = 192.168.127.100 port:= ROBOT_PORT default = 12345
mode:= OPERATION MODE <virtual / real> defalut = virtual
model:= ROBOT_MODEL <m0609 / m0617 / m1013 / m1509 / a0509> defalut = m1013
color:= ROBOT_COLOR <white / blue> defalut = white
gripper:= USE_GRIPPER <none / robotiq_2f> defalut = none
mobile:= USE_MOBILE <none / husky> 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

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

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_simple.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>

Service Call

rosservice call /dsr01m1013/motion/move_joint "pos: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
vel: 0.0
acc: 0.0
time: 0.0
radius: 0.0
mode: 0
blendType: 0
syncType: 0"

manuals

Manual(Kor)

Manual(Eng)

doosan-robot's People

Contributors

doosan-robotics avatar woawo1213 avatar gavanderhoorn avatar steinmn avatar jinhyuk-gong avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.