Folie 1 Manual Powerball CANOpen Driver
User Manual:
Open the PDF directly: View PDF
.
Page Count: 57
| Download | |
| Open PDF In Browser | View 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® 2013EXIF Metadata provided by EXIF.tools