Folie 1 Manual Powerball CANOpen Driver

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 57

DownloadFolie 1 Manual Powerball CANOpen Driver
Open PDF In BrowserView PDF
SCHUNK Modular Robotics
ROS Drivers for LWA 4.P und LWA 4.D

Superior Clamping and Gripping

Contents

 Introduction to ROS
 ROS – Technical Details

 ROS Support of SCHUNK components
 Installation and Operation Instructions
 Technical Details CANOpen-Driver
 LWA 4.P (6-DOF Powerball Arm)
 LWA 4.D (7-DOF Dextrous Arm)

Introduction to ROS

Research in robotics
 Reinvention of the Wheel
 Little Commonality
 Short Lifespan
 Inability to Compare Results
 ROS addresses these

ROS – Robot Operating System
• ROS = Robot Operating System

• „ROS is an open-source, meta-operating system for your
robot.“ [ROS-wiki]
• ROS is a “robot framework” [ROS-wiki]

www.ros.org/wiki/ROS/Introduction

ROS – Video
• 5 years of ROS

http://youtu.be/PGaXiLZD2KQ

ROS – Robot Operating System
• What is ROS?
– Provides
•
•
•
•
•

Hardware abstraction
Low-level device control
Communication layer with message-passing between processes
Recursive package management and build system
Runs primarily on Linux but is intended to be cross-platform
compatible to MAC OS X and Windows

– Content
• ROS core build and runtime system
• ROS packages, a collection of robotic algorithms

ROS – Tools

=

+
Plumbing

+
Tools

+
Capabilities

Ecosystem

ROS – Tools

plotting
graph visualization
diagnostics
Simulation/visualization

ROS – Tools Simulation
 Single simulated components
 Simulated sensors and actors, e.g.
 Arm joints, hand
 Cameras, laser scanners
 Model of the whole robot

 Kinematic and dynamic models of
hardware components
 Environment model

http://www.ros.org/wiki/simulator_gazebo

ROS – Tools Bag files
• Format for saving and playing back ROS message data
• Record and replay sensor data for developing and testing
algorithms

http://www.ros.org/wiki/rosbag

ROS – Tools Visualization
•
•
•
•

Robot Model
Sensor data (laser scanner, point cloud)
2D and 3D maps
Markers

http://www.ros.org/wiki/rviz

ROS – Tools transformations library (tf)
• Tree of coordinate systems
• Defined by urdf (Robot
Description Language)
• Transformations between
all coordinate systems
available
• Generated automatically
out of /joint_states topic

http://www.ros.org/wiki/tf

ROS – Capabilities

=

+
Plumbing

+
Tools

+
Capabilities

Ecosystem

ROS – Capabilities
• State of the art algorithms
• Integration of available libraries
• Wide range of capabilities
 Navigation
 Perception
 manipulation

Mobility and
Navigation

Perception
Manipulation

MoveIt!

ROS – Community/Ecosystem

=

+
Plumbing

+
Tools

+
Capabilities

Ecosystem

ROS – Community/Ecosystem
• Fast growing community
• De facto standard for
service robotics

ROS – Technical details

Three levels of ROS concepts
Robot Operating System
Filesystem Level

Computational Graph
Level
Nodes

Packages
(Stacks)

Manifests
Messages
Services

Master
Parameter Server
Topic communication
Service communication

Bags

http://ros.org/wiki/ROS/Concepts

Community Level

Distributions
Repositories
ROS-Wiki
Mailing Lists

Blog

ROS – Filesystem Level
• Packages
– Main unit for organizing software
– Typically one functionality, e.g. localisation or path planning
– Contains: runtime processes (nodes), libraries, datasets, configuration
files, …

• Stacks
– Collection of packages
– Aggregate functionality, e.g. navigation stack
– Releases and versioning

• Stack- and Package- Manifests (*.xml)
– Provide Metadata about a package/stack, e.g. license information and
dependencies to other packages/stacks
http://ros.org/wiki/ROS/Concepts

ROS – Filesystem Level
• Messages types (*.msg)
– Message descriptions, define data structures used for message
communication
– Language independent
Pose2D.msg
TargetPoses.msg
Header header

Float64 x

Std_msgs/String name

Float64 y

Geometry_msgs/Pose2D[] poses

Float64 theta

• Services types (*.srv)
– Service descriptions, define request and response data structures used
for service communication
GetPose.srv
– Language independent
std_msgs/String name
-Geometry_msgs/Pose2D pose

http://ros.org/wiki/msg, http://ros.org/wiki/srv

ROS – Computational Graph Level

ROS – Computational Graph Level
• Nodes
– Processes to perform computation
– Usually many nodes at runtime
– Written by a ROS client library, e.g. roscpp, rospy, …

• Master
– Coordinating processes and communication
– Name registration and lockup

• Messages

Node a
Node b
…

register

• Parameter Server
– Central location for storing data

Master
roscore

Client
Node a

– Nodes communicate by passing messages
http://www.ros.org/wiki/ROS/Technical%20Overview

register

Client
Node b
- - - XML/RPC

ROS – Communication concepts – topics
• Topics (asynchronous streaming)
–
–
–
–

Nodes can publish and subscribe to topics
Multiple publisher and subscriber to one topic
Decoupling between sender and receiver
Works like a “chat room”

Publis
h
topic

- - - XML/RPC
----- TCP/IP or UDP

Node
Client a

Message data
flow
http://www.ros.org/wiki/Topics

Master
roscore
Topic 1
Topic 2
…

Subscrib
e
topic
Node
Client b

ROS – Communication concepts – services
• Services (synchronous communication)
– Request and reply interaction
– Dedicated connection between two nodes
– Works like a “telephone call”
Master
roscore

response

request

Node
Client a
- - - XML/RPC
----- TCP/IP or UDP

http://www.ros.org/wiki/Services

Message data flow

Node
Client b

ROS – Communication concepts – actionlib
• Goal description similar to message and
service definitions
DetectBottle.action
• State-machine running on server and #goal
std_msgs/String drink_name
client
---

#result
Geometry_msgs/Pose3D pose
--#feedback
Int16 status

http://www.ros.org/wiki/actionlib

ROS support of Schunk components

ROS for Schunk components
• Devices supported in ROS
• SDH (Schunk Dextrous Hand, SDH library)
• LWA (Lightweight Arm, M5API)
• Powerball (Powerball arm, CanOpen)

driver
packages

HW

ROS messages and services,
e.g. JointTrajectory

Low-level communication to
hardware,
e.g. CAN, CANOpen, RS232

schunk_modular_robotics
schunk_power_cube
_chain

schunk_sdh

HW

HW

http://www.ros.org/wiki/schunk_modular_robotics

ipa_canopen

HW

SW Architecture
ROS world

ROS components

JointTrajectoryAction

Schunk_modular_robotics

Topic

-

Configuration
max_vel
max_acc

Service
Action

Joint trajectory
controller

Config

Schunk_hardware_config

Joint states

-

Configuration
bus and device
modul ids

Schunk_hardware_config

Velocities
Driver node (schunk_sdh,
schunk_powercube_chain,
ipa_canopen_ros)

Init
Recover

CanOpen Architecture
•
•
•
•

C++ framework
Enables communication with CANopen motor devices
Uses the pcan device driver
Consists of two parts
ipa_canopen

ipa_canopen_core

http://www.ros.org/wiki/ipa_canopen

ipa_canopen_ros

Installation and Operation Instructions

Installation and Operation Instructions
• 3 options of usage:
1.
2.
3.

Use low-level drivers independent of ROS: ipa_canopen_core
Use low-level ROS-drivers: ipa_canopen_ros
Use full ROS package with trajectory controllers: schunk_robots

Installing ROS for Schunk components for Groovy
• Install Ubuntu 12.04
• Install ROS Groovy
http://www.ros.org/wiki/groovy/Installation/Ubuntu
• Download Schunk repositories to your ROS_PACKAGE_PATH
•
•
•
•
•

mkdir <>, e.g. ~/git/schunk_robots
cd <>
rosinstall . https://raw.github.com/ipa320/schunk_robots/groovy_dev/groovy.rosinstall
echo “export ROS_PACKAGE_PATH=<>:$ROS_PACKAGE_PATH” >>~/.bashrc
Source ~/.bashrc

– Install additional dependencies
•

sudo apt-get install ros-groovy-pr2-controllers ros-groovy-arm_navigation ros-groovy-arm-navigation-experimental ros-groovyaudio-common ros-groovy-pr2-power-drivers ros-groovy-pr2-gui

– Build Schunk packages
•
•

rosdep install schunk_robots
rosmake schunk_robots

– Configure your hardware (Example for powerball)
•
•

roscd schunk_hardware_config/powerball/config
Modify canopenmaster.yaml, see slide 49

Installing ROS for Schunk components for Groovy
– Run driver (Example for lwa with M5API)
•

roslaunch schunk_bringup powerball_solo.launch

– Move with dashboard (Example for lwa with M5API)
•

roslaunch schunk_bringup dashboard_powerball.launch

Installation and Operation Instructions

IPA CANopen Installation – ROS package
• To install the IPA CANopen ROS package
- git clone git://gitub.com/ipa320/ipa_canopen.git
- rosmake ipa_canopen_ros

IPA CANopen Installation (without ROS)
• CMake (to manage the build process), in Ubuntu use the command
sudo apt-get install cmake

• Git (to download the sources from github) in Ubuntu use the command
sudo apt-get install git

• A C++ compiler with good support for the C++11 Standard

IPA CANopen Installation (without ROS)
• To install the C++ library independently from ROS
-

git clone git://github.com/ipa320/ipa_canopen.git
cd ipa_canopen/ipa_canopen_core
mkdir build
cd build
cmake ..
make

• To use the two command line tools, change the directory
cd ipa_canopen/ipa_canopen_core/bin

Technical details CANOpen

ipa_canopen_core
• ROS independent library
• Provides three command line tools (in ipa_canopen/ipa_canopen_core/bin)
• Homing (takes two arguments)
– Name of the devicefile
– CANdevice ID of the module
– E.g.
./homing /dev/pcan32 12

• Move device (takes five argumtents)
–
–
–
–
–
–

Name of the devicefile
CAN device ID of the module
Synchronization time
Target velocity in rad/msec
Target acceleration in rad/msec²
E.g.
./move_device /dev/pcan32 12 10 0.05 0.01

• Get Errors(takes two arguments)
– Name of the devicefile
– CANdevice ID of the module
– E.g.
./get_error /dev/pcan32 12

http://www.ros.org/wiki/ipa_canopen_core

ipa_canopen_ros
• Wrapper to control CANopen motor devices in ROS
• Two ways to launch the node
• Direct

rosrun ipa_canopen_ros ipa_canopen
• Via a launchfile, e.g.
roslaunch schunk_bringup powerball_solo.launch

• In order to use the node you need
• A trajectory controller
• A rudimentary robot model (urdf)

– For a list of services, subcribed and published topics and necessary
parameters on the parameter server follow the link below

http://www.ros.org/wiki/ipa_canopen_ros

Moving the Schunk LWA 4.P
(Powerball) arm with schunk_robots

Driving the Schunk LWA 4.P (Powerball) arm
• Make sure you have the following two repositories on your pc
• ipa320/schunk_robots.git
• ipa320/schunk_modular_robotics.git

– If not
- git clone git://github.com/ipa320/schunk_robots.git
- git clone git://github.com/ipa320/schunk_modular_robotics.git

– To launch the CANopen driver together with a trajectory controller
roslaunch schunk_bringup powerball_solo.launch

– To launch the Powerball-arm in Gazebo
roslaunch schunk_bringup_sim powerball.launch

– To move the arm with a graphical command GUI
roslaunch schunk_bringup dashboard_powerball.launch

– To configure the necessary yaml-files: check the next slides

Configuring the Schunk LWA 4.P (Powerball) arm
I
• Change directory

roscd schunk_hardware_config/powerball/config

• Modify canopenmaster.yaml e.g.
devices:
- name: /dev/pcan32
baudrate: 500K
sync_interval: 10
chains: [“arm_controller“]

Configuring the Schunk LWA 4.6 (Powerball) arm II
• Change directory
roscd schunk_hardware_config/powerball/config

• Modify powerball.yaml e.g.
# canopen parameters
can_module: PCAN
can_baudrate: 1000
max_accelerations: [0.8, 0.8, 0.8, 0.8, 0.8, 0.8]
OperationMode: position
joint_names: [“arm_1_joint”, “arm_2_joint”, “arm_3_joint”, “arm_4_joint”, “arm_5_joint”,
“arm_6_joint”]
module_ids: [3, 4, 5, 6, 7, 8]
devices: [“/dev/pcan32”, “/dev/pcan32”, “/dev/pcan32”, “/dev/pcan32”, “/dev/pcan32”,
“/dev/pcan32”]

# trajectory controll parameters
ptp_vel: 0.4 # rad/sec
ptp_acc: 0.1 # rad/sec²
max_error: 0.2 # rad
frequency: 100

Configuring the Schunk LWA 4.6 (Powerball) arm III
• Change directory
roscd schunk_default_config/config

• Modify powerball_joint_configurations.yaml e.g.
joint_names:
["arm_1_joint","arm_2_joint","arm_3_joint","arm_4_joint","arm_5_joint","arm_6_joint"]
# back side positions
home: [[0,0,0,0,0,0]]
folded: [[0.32108866388214263, 0.6484189832579226, 2.06286710514828, 1.2376313006847157, 5.658013215042093, -7.150174321779446e-05]]
wave_left: [[0.321033880484058, 0.49950722659008573, -0.4061025056033145, 0.2370251233291425, 5.300248440143207e-06, 9.462633828505318e-06]]
wave_right: [[0.4741062629069983, -0.7912476227793528, 0.0041526706870680385, 2.4662076334003302e-05, 2.4489075676648042e-05, 8.393716051102729e-06]]
# trajectories
wave_left-wave_right-home: [wave_left,wave_right,home]

Moving the Schunk LWA 4.D
(Dextrous) arm schunk_robots

Driving the Schunk LWA 4.P (Powerball) arm
• Make sure you have the following two repositories on your pc
• ipa320/schunk_robots.git
• ipa320/schunk_modular_robotics.git

– If not
- git clone git://github.com/ipa320/schunk_robots.git
- git clone git://github.com/ipa320/schunk_modular_robotics.git

– To launch the CANopen driver together with a trajectory controller
roslaunch schunk_bringup powerball_solo.launch

– To launch the Powerball-arm in Gazebo
roslaunch schunk_bringup_sim powerball.launch

– To move the arm with a graphical command GUI
roslaunch schunk_bringup dashboard_powerball.launch

– To configure the necessary yaml-files: check the next slides

Configuring the Schunk LWA 4.P (Powerball) arm
I
• Change directory

roscd schunk_hardware_config/powerball/config

• Modify canopenmaster.yaml e.g.
devices:
- name: /dev/pcan32
baudrate: 500K
sync_interval: 10
chains: [“arm_controller“]

Configuring the Schunk LWA 4.6 (Powerball) arm II
• Change directory
roscd schunk_hardware_config/powerball/config

• Modify powerball.yaml e.g.
# canopen parameters
can_module: PCAN
can_baudrate: 1000
max_accelerations: [0.8, 0.8, 0.8, 0.8, 0.8, 0.8]
OperationMode: position
joint_names: [“arm_1_joint”, “arm_2_joint”, “arm_3_joint”, “arm_4_joint”, “arm_5_joint”,
“arm_6_joint”]
module_ids: [3, 4, 5, 6, 7, 8]
devices: [“/dev/pcan32”, “/dev/pcan32”, “/dev/pcan32”, “/dev/pcan32”, “/dev/pcan32”,
“/dev/pcan32”]

# trajectory controll parameters
ptp_vel: 0.4 # rad/sec
ptp_acc: 0.1 # rad/sec²
max_error: 0.2 # rad
frequency: 100

Configuring the Schunk LWA 4.6 (Powerball) arm III
• Change directory
roscd schunk_default_config/config

• Modify powerball_joint_configurations.yaml e.g.
joint_names:
["arm_1_joint","arm_2_joint","arm_3_joint","arm_4_joint","arm_5_joint","arm_6_joint"]
# back side positions
home: [[0,0,0,0,0,0]]
folded: [[0.32108866388214263, 0.6484189832579226, 2.06286710514828, 1.2376313006847157, 5.658013215042093, -7.150174321779446e-05]]
wave_left: [[0.321033880484058, 0.49950722659008573, -0.4061025056033145, 0.2370251233291425, 5.300248440143207e-06, 9.462633828505318e-06]]
wave_right: [[0.4741062629069983, -0.7912476227793528, 0.0041526706870680385, 2.4662076334003302e-05, 2.4489075676648042e-05, 8.393716051102729e-06]]
# trajectories
wave_left-wave_right-home: [wave_left,wave_right,home]

Schunk Demo
Save new positions for the ROS parameter server:
rosrun schunk_demo save_position.py -p 






home
folded
waveright
waveleft

Moving through all the predefined positions:
rosrun schunk_demo demo_arm.py

Moving with the joystick
The joystick node is automatically loaded from the schunk_bringup.

Enable Movement

Move using the
directionals

Select Joint

ROS for Schunk components – command gui
•
•
•
•

Tool to easily move arm or hand
Buttons for initializing and recover
Buttons to move components in joint space
“roslaunch schunk_bringup dashboard_lwa.launch”

http://www.ros.org/wiki/cob_command_gui

ROS for Schunk components – rviz
• Tool to visualize robot model
• “roslaunch schunk_bringup rviz.launch”

http://www.ros.org/wiki/rviz

Thank you for your attention

Contact:
www.schunk-modular-robotics.com
www.ros.org/wiki/schunk_modular_robotics

Christopher Parlitz
Christopher.Parlitz@de.schunk.com

Jens Lehmann, a German goalkeeper legend,
brand ambassador for SCHUNK since 2012

www.schunk.com

www.schunk.com



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : No
Page Count                      : 57
Language                        : en-US
Tagged PDF                      : Yes
Title                           : Folie 1
Author                          : PARLITZ
Create Date                     : 2014:02:07 09:52:23+01:00
Modify Date                     : 2014:02:07 09:52:23+01:00
Producer                        : Microsoft® PowerPoint® 2013
Creator                         : Microsoft® PowerPoint® 2013
EXIF Metadata provided by EXIF.tools

Navigation menu