training class · session 3: motion control of manipulators southwest research institute 2 . 3...
TRANSCRIPT
![Page 1: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/1.jpg)
ROS-Industrial Basic Developer’s Training Class
Southwest Research Institute
1
![Page 2: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/2.jpg)
Session 3: Motion Control of Manipulators
Southwest Research Institute
2
![Page 3: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/3.jpg)
3
URDF: Unified Robot
Description Format
![Page 4: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/4.jpg)
URDF: Overview
• URDF is an XML-formatted file containing:
– Links : coordinate frames and associated geometry
– Joints : connections between links
• Similar to DH-parameters (but way less painful)
• Can describe entire workspace, not just robots
4
links
joint
also a “link”
![Page 5: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/5.jpg)
URDF: Link
• A Link describes a physical or virtual object – Physical : robot link, workpiece, end-effector, ... – Virtual : TCP, robot base frame, ...
• Each link becomes a TF frame • Can contain visual/collision geometry [optional] <link name=“link_4“>
<visual> <geometry> <mesh filename=“link_4.stl"/> </geometry> <origin xyz="0 0 0" rpy="0 0 0" /> </visual> <collision> <geometry> <cylinder length="0.5" radius="0.1"/> </geometry> <origin xyz="0 0 -0.05" rpy="0 0 0" /> </collision>
</link>
5
URDF Transforms
X/Y/Z Roll/Pitch/Yaw Meters Radians
frame
visual geometry collision
geometry
![Page 6: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/6.jpg)
URDF: Joint
• A Joint connects two Links
– Defines a transform between parent and child frames
• Types: fixed, free, linear, rotary
– Denotes axis of movement (for linear / rotary)
– Contains joint limits on position and velocity
<joint name=“joint_2" type="revolute“>
<parent link=“link_1"/>
<child link=“link_2"/>
<origin xyz=“0.2 0.2 0" rpy="0 0 0"/>
<axis xyz=“0 0 1"/>
<limit lower="-3.14" upper="3.14" velocity="1.0"/>
</joint>
6
link_2
![Page 7: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/7.jpg)
ROS-I Conventions
• Robot in Zero Position
• Place joints on axes
• Keep all frames same orientation
• X-Axis Front, Z-Axis Up
• Unlike DH-Parameters, URDF allows free choice of frame orientation
7
![Page 8: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/8.jpg)
Exercise 3.0 Create a simple urdf
Exercise 3.0
8
world
table
camera_frame
![Page 9: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/9.jpg)
URDF: XACRO
• XACRO is an XML-based “macro language” for building URDFs – <Include> other XACROs, with parameters – Simple expressions: math, substitution
• Used to build complex URDFs – multi-robot workcells – reuse standard URDFs (e.g. robots, tooling)
<xacro:include filename=“myRobot.xacro”/>
<xacro:myRobot prefix=“left_”/>
<xacro:myRobot prefix=“right_”/>
<property name=“offset” value=“1.3”/>
<joint name=“world_to_left" type=“fixed“> <parent link=“world"/> <child link=“left_base_link"/> <origin xyz=“${offset/2} 0 0" rpy="0 0 0"/>
</joint>
9
![Page 10: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/10.jpg)
XACRO -> URDF
• Most ROS tools expect URDFs, not XACRO
• Run the “xacro” command to convert XACRO files to URDF:
• Typically, xacro conversion is triggered by launch files, not executed manually.
10
rosrun xacro xacro robot.xacro > robot.urdf
<param name="robot_description“ command="$(find xacro)/xacro workcell.xacro" />
![Page 11: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/11.jpg)
XACRO: Macros
Define XACRO Macro
<xacro:macro name=“robot” params=“id”>
<joint name=“${id}_joint1”>
...
</xacro>
11
Include and Call
Macro
<xacro:include filename=“robot.xacro”/>
<xacro:robot id:=“left />
<xacro:robot id:=“right” />
robot.xacro
workcell.xacro
![Page 12: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/12.jpg)
URDF Practical Examples
• Let’s take a quick look at the UR5’s URDF:
– In ur_description/urdf/ur5.urdf.xacro
12
![Page 13: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/13.jpg)
Exercise 3.1
Exercise 3.1 Combine simple urdf with ur5 xacro
13
world
table
camera_frame
base_link
![Page 14: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/14.jpg)
14
TF – Transforms in ROS
![Page 15: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/15.jpg)
TF: Overview
• TF is a distributed framework to track coordinate frames
• Each frame is related to at least one other frame
15
![Page 16: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/16.jpg)
TF: Time Sync
• TF tracks frame history
– can be used to find transforms in the past!
– essential for asynchronous / distributed system
16
Transform widget
To TCP?
time
world robot base
robot base TCP
robot base TCP
robot base TCP
camera widget
world camera
camera widget
camera widget
robot base TCP
robot base TCP
![Page 17: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/17.jpg)
TF: c++
• Each node has its own transformListener – listens to all tf messages, calculates relative transforms
– Can try to transform in the past
Can only look as far back as it has been running
17
tf::TransformListener listener;
tf::StampedTransform transform;
listener.lookupTransform(“target”, “source”, ros::Time(), transform);
Parent Frame (“reference”)
Child Frame (“object”)
Result Time
• Note confusing “target/source” naming convention • ros::Time() or ros::Time(0) give latest available transform • ros::Time::now() usually fails
![Page 18: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/18.jpg)
TF: Sources
• A robot_state_publisher provides TF data from a URDF
• Nodes can also publish TF data
– DANGER! TF data can be conflicting
18
base
TCP Robot State
Publisher
TF
TCP Tracker Node
UR
DF
Cam
era
![Page 19: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/19.jpg)
Exercise 3.2 Introduction to TF
Exercise 3.2
19
fake_ar_pub
vision_node
myworkcell_moveit_cfg ur5_driver
descartes_node
TF myworkcell_support
myworkcell_node
Param: base_frame
world->target = world->camera * camera->target
![Page 20: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/20.jpg)
20
Motion Planning in ROS
![Page 21: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/21.jpg)
Motion Planning in ROS
21
![Page 22: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/22.jpg)
Traditional Robot Programming
• Motion Types: limited, but well-defined. One motion task.
• Environment Model: none
• Execution Monitor: application-specific
22
J1 J2
P1 P2
Joint Move
J1 J2
Linear Move P1 P2
User Application Interpolate Execute
Robot Controller
![Page 23: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/23.jpg)
MoveIt Motion Planning
• Motion Types: flexible, goal-driven, with constraints
but minimal control over actual path
• Environment Model: automatic, based on live sensor feedback
• Execution Monitor: detects changes during motion
23
Move Request Start Goal
User Application
Execute
Robot Controller
Planning Filtering
ROS Motion Planning
![Page 24: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/24.jpg)
Motion Planning Components
24
Interactive (rviz plugin)
ROS Actions
C++ API
Motion Planning
Collision Checking
Path Planning
Kinematics
Robot
![Page 25: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/25.jpg)
MoveIt Components
25
Sensor Input
http://moveit.ros.org/wiki/High-level_Overview_Diagram http://moveit.ros.org/wiki/Pipeline_Overview_Diagram
![Page 26: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/26.jpg)
MoveIt Nodes
26 http://moveit.ros.org/documentation/concepts/
![Page 27: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/27.jpg)
MoveIt! / Robot Integration
• A MoveIt! Package...
– includes all required nodes, config, launch files • motion planning, filtering, collision detection, etc.
– is unique to each individual robot model • includes references to URDF robot data
– uses a standard interface to robots • publish trajectory, listen to joint angles
– can (optionally) include workcell geometry • e.g. for collision checking
27
![Page 28: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/28.jpg)
28
HowTo: Set Up a New Robot
(or workcell)
![Page 29: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/29.jpg)
Motivation
For each new robot model...
create a new MoveIt! package
• Kinematics – physical configuration, lengths, etc.
• MoveIt! configuration – plugins, default parameter values
– self-collision testing
– pre-defined poses
• Robot connection – FollowJointTrajectory Action name
29
![Page 30: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/30.jpg)
30
HowTo: Set Up a New Robot
1. Create a URDF 2. Create a MoveIt! Package 3. Update MoveIt! Package for ROS-I 4. Test on ROS-I Simulator 5. Test on “Real” Robot
![Page 31: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/31.jpg)
Create a URDF
• Previously covered URDF basics.
• Here are some tips:
– create from datasheet or use Solidworks Add-In
– double-check joint-offsets for accuracy
– round near-zero offsets (if appropriate)
– use “base_link” and “tool0”
– use simplified collision models
• convex-hull or primitives
31
![Page 32: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/32.jpg)
Verify the URDF
• It is critical to verify that your URDF matches the physical robot:
– each joint moves as expected
– joint-coupling issues are identified
– min/max joint limits
– joint directions (pos/neg)
– correct zero-position, etc.
– check forward kinematics
32
![Page 33: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/33.jpg)
Create a MoveIt! Package
• Use the MoveIt! Setup Assistant
– can create a new package or edit an existing one
33
![Page 34: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/34.jpg)
Update MoveIt! Package
• Setup Assistant generates a generic package
– missing config. data to connect to a specific robot
– ROS-I robots use a standard interface
34
![Page 35: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/35.jpg)
Update MoveIt! Package
• We’ll generate launch files to run both:
– simulated ROS-I robot
– real robot-controller interface
35
Joint_Names,
Points
- Point 1
- Point 2
...
FollowJointTrajectory Action
Joint Trajectory
Action Server
ROS Industrial
MoveIt!
Custom Path
Industrial Robot
Simulator
Motion Interface
State Interface
![Page 36: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/36.jpg)
Exercise 3.3
36
Exercise 3.3: Create a MoveIt! Package
fake_ar_pub
vision_node
myworkcell_moveit_config ur5_driver
descartes_node
myworkcell_support
myworkcell_node
Param: base_frame
![Page 37: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/37.jpg)
37
HowTo: Motion Planning using MoveIt!
1. Motion Planning using RViz
2. Motion Planning using C++
![Page 38: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/38.jpg)
Motion Planning in RViz
Display Options
38
![Page 39: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/39.jpg)
Motion Planning in RViz
Planning Options
39
![Page 40: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/40.jpg)
Exercise 3.4
40
Exercise 3.4: Motion Planning using RVIZ
![Page 41: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/41.jpg)
Review
ROS • URDF
• MoveIt
• Path Planners
• RViz Planning
ROS-Industrial • Robot Drivers
• Path Planners
41
![Page 42: Training Class · Session 3: Motion Control of Manipulators Southwest Research Institute 2 . 3 URDF: Unified Robot Description Format . URDF: Overview •URDF is an XML-formatted](https://reader033.vdocuments.us/reader033/viewer/2022060900/609dde40fe91a57d5c437f32/html5/thumbnails/42.jpg)
Questions?
• ROS-I Architecture
• Setup Assistant
• Robot Launch Files
• RViz Planning
42