Only released in EOL distros:
Package Summary
ROS Wrapper for the KUKA youBot Driver
- Maintainer status: maintained
- Maintainer: Russell Toris <rctoris AT wpi DOT edu>
- Author: Sebastian Blumenthal <blumenthal AT locomotec DOT com>
- License: LGPL 2.1 or BSD
- Bug / feature tracker: https://github.com/WPI-RAIL/youbot_oodl/issues
- Source: git https://github.com/WPI-RAIL/youbot_oodl.git (branch: groovy-devel)
Contents
About
This package provides a ROS wrapper for the Kuka youBot drivers. It includes a joint state publisher and a node called youbot_oodl which publishes to several topics and provides several services for communication with the youBot.
This package has been renamed to youbot_common.
Note that this documentation is not yet complete. Any areas with a question mark (?) are suspicious.
Nodes
youbot_oodl
youbot_oodl is a ROS wrapper for the Kuka youBot drivers. It publishes to several topics and provides several services for communication with the youBot. It can initialize the base and one or two arms for communication, then send messages relaying the state of the arms and odometry data. It can receive velocity commands for the base and arms, and position commands for the arms.Subscribed Topics
arm_1/arm_controller/follow_joint_trajectory/goal (control_msgs/FollowJointTrajectoryActionGoal)- The goal position, velocity, and acceleration for all joints in the move_group for the next step in the trajectory.
- Position setpoint for each arm joint.
- Velocity setpoints for each arm joint.
- Desired velocity for the base
- Gripper position setpoint.
- Stops the joint trajectory following action with the given GoalID.
Published Topics
arm_1/arm_controller/follow_joint_trajectory/result (control_msgs/FollowJointTrajectoryActionResult)- The end status of a follow joint trajectory action, providing the move_group id and the trajectory result as successful or a failure
- Transform publisher.
- Odometry information. This estimates the robot's current position and orientation in the world relative to its initial position.
- ?- Something to do with diagnostics
- ?- Something to do with how far along a follow joint trajectory action is.
- The state of each joint.
- The state of the power board.
- The status of the arm controller in relation to its follow-joint-trajectory actions. It consistently outputs the move_group id of the trajectory command and the result text of that trajectory.
Services
base/switchOnMotors (std_srvs/Empty)- Switch on the base motors.
- Switch off the base motors.
- Switch on the arm motors.
- Switch off the arm motors.
- ?- Calibrate the arm. All arm joints return to home position and encoders are zeroed.
- Disconnect from the drivers and then reconnect, attempting to keep the current odometry data. This service is called automatically if the etherCAT connection dies.
- Prints out the various loggers with their respective logging levels.
- Sets the specified logger to the specified level. For example, rosservice call /youbot_oodl/set_logger_level ros DEBUG will allow ROS_DEBUG messages to appear in the terminal
Parameters
youBotHasBase (bool, default: true)- Whether the robot has a base.
- Whether the robot has any arms.
- The frequency at which the driver should update, in Hz.
- Whether the trajectory action server should be enabled.
- The Postion gain for trajectory following.
- The Velocity gain for trajectory following.
- The name of the base.
- The name of arm 1.
- The name of arm 2.
Installation
youbot_driver
Before installing the package, you must first ensure that youbot_driver is installed, and the environment variable YOUBOT_CONFIG_FOLDER_LOCATION is correctly set to point to the config folder as described in youbot_driver#Installation.
Debian
To install the debian package, do
sudo apt-get install ros-groovy-youbot-oodl
The debian installation will set the capabilities of the executable by itself, so it will be ready to run immediately after installation.
From Source
To install from source, get the package from the git repository in the typical way. First, create a folder for the package within the src folder of your catkin workspace. cd to the folder, then do
git init git pull http://github.com/WPI-RAIL/youbot_oodl.git
Go to the root of your catkin workspace and make it.
catkin_make
Then, go to the lib folder containing the youbot_oodl node and set its capabilities so that it will be able to communicate with ethercat.
cd devel/lib/youbot_oodl sudo setcap cap_net_raw+ep youbot_oodl
You must do this every time you build a new youbot_oodl executable. Otherwise it will give you the following error:
[FATAL] [1370895928.057925761]: No socket connection on eth1 Execute as root [ERROR] [1370895928.058248099]: Base "youbot-base" could not be initialized. [ INFO] [1370895928.058573512]: Configuration file path: ,,,,,,/ros-groovy/src/youbot_driver/config/ [FATAL] [1370895928.059439557]: No socket connection on eth1 Execute as root [ERROR] [1370895928.059770701]: Arm "youbot-manipulator" could not be initialized. [ INFO] [1370895928.059985361]: System has 0 initialized arm(s). [ WARN] [1370895928.060813883]: No socket connection on eth1 Execute as root
You will see a similar error if youbot_driver is configured with the wrong ethernet port. If that is the case, it will not say Execute as root. To fix this, go into youbot-ethercat.cfg in the config folder and change EthernetDevice to eth0 or eth1.
Using this Package
Open a terminal on the youBot, either through the OS on the youBot, or by ssh-ing into it. Before running youbot_oodl, make sure the base and arm are on and the arm is in the home configuration. There are notches on each joint to show the home position. When the notch on each side of the joint lines up, that joint is in the correct position. To run youbot_oodl, launch it like so:
roslaunch youbot_oodl youbot_oodl.launch
If all goes well, it should say Base is initialized. and System has 1 initialized arm(s)., among various other things.
There is also a launch file for a robot_state_publisher. This will publish the joint states of the arm. This is useful for visualizing the robot in rviz.
roslaunch youbot_oodl youbot_joint_state_publisher.launch
|
|
|