Skip to content

xuyuan-han/DigitalTwin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 中文(简体)

Robot Path Planning and Obstacle Avoidance Based on Digital Twin Systems and ROS

1. Introduction

This project uses a digital twin system as a model, with real industrial robotic arms and workstations as verification tools. Through path planning and collision prevention algorithms in the virtual system, the industrial robotic arm is guided to complete the workpiece gripping operation. In this project, ROS and MoveIt! are used for the path planning and collision prevention of the robotic arm, controlling the seven-axis movement of the industrial robotic arm. OPCUA is used to establish communication between the virtual robotic arm and the physical robotic arm. Students participating in the project need to have some knowledge of Linux and the basics of C++ and Python programming.

2. Environment Dependencies

  • Ubuntu 18.04
  • ROS Melodic
  • Moveit!
  • OPCUA

3. Software Architecture

.
├── Documents                 // Some documents
├── LICENSE                   // MIT open source license
├── manage.md                 // Git workflow document
├── Model                     // Arm model storage
│   ├── Model_URDF_SLDASM     // kuka robotic arm SolidWorks model
│   └── Archive               // Model Archive
├── README.en.md
├── README.md
├── ws_kuka_v1                // ROS project workspace (version1 - robotic arm model does not include bottom prismatic pair - 6-axis)
│   └── src                   // Robotic arm path planning package source code
│       ├── CMakeLists.txt
│       ├── kuka_moveit       // Using MoveIt! to drive the kuka robotic arm package
│       ├── kuka_urdf         // Define the kuka robotic arm urdf package
│       └── ros_opcua_communication    // opcua communication package
└── ws_kuka_v2                // ROS project workspace (version2 - robotic arm model does not include bottom prismatic pair - 7-axis)
    └── src                   // Robotic arm path planning package source code
        ├── CMakeLists.txt
        ├── kuka_moveit       // Using MoveIt! to drive the kuka robotic arm package
        ├── kuka_urdf         // Define the kuka robotic arm urdf package
        └── ros_opcua_communication    // opcua communication package

4. Usage

Running Robotic Arm Path Planning

$ roscore
$ cd ws_kuka_v2
$ catkin_make
$ source ./devel/setup.bash                             // If using zsh, run `$ source ./devel/setup.zsh`
$ roslaunch kuka_moveit demo.launch                     // Running rviz simulation of the robotic arm model
$ roslaunch kuka_moveit moveKuka.launch   // Run robotic arm control program, including adding environment obstacles stl, adding target gripping object, and robotic arm path planning and navigation

OPCUA Communication Setup

$ roslaunch ros_opcua_impl_python_opcua rosopcua.launch  // Run ros_opcua_communication
$ opcua-client  // Run opcua-client client
  • Enter opc.tcp://localhost:21554 in the address bar of the communication interface in the terminal, click the connection button on the right to establish communication
  • Right-click on ROS->Objects->ROS_Actions->move_group->move_group_send_goal in the terminal, select call, you can enter the target coordinates to achieve communication
$ rqu_graph   // Use `rqu_graph` graph to check the communication status

5. Screenshots of the Results

Scene1 before box grabbing Scene1 after box grabbing Scene2 after box grabbing Scene3 before cylinder grabbing Scene3 after cylinder grabbing Scene3 after putting down the cylinder

6. Project Video (in Chinese)

Robot Path Planning and Obstacle Avoidance Based on Digital Twin Systems and ROS

7. Contribution

Contributors Email
Zhongzhu Deng [email protected]
Xuyuan Han [email protected]
Feng Yang [email protected]
Hanxi Jiang [email protected]
Haonan Zang [email protected]
Xing Zhou [email protected]

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages