![In Progress](https://badge.waffle.io/CentroEPiaggio/kuka-lwr.svg?label=in progress&title=in%20progress) ![In Review](https://badge.waffle.io/CentroEPiaggio/kuka-lwr.svg?label=in review&title=in%20review)
You need help? Press F1 for FAQs, issue your question, or
The main packages are:
ros_controllers
would be ok, but some controllers are specific for the a 7-dof arm).kuka_lwr
packages.
single_lwr_robot
description.For an example using two LWR 4+ arms and two Pisa/IIT SoftHands, see the Vito robot.
The package lwr_hw contains the abstraction that allows to make the most of the new ros control framework. To create an instance of the arm you need to call the function void LWRHW::create(std::string name, std::string urdf_string)
, where name
MUST match the name you give to the xacro instance in the URDF and the urdf_string
is any robot description containing one single instance of the lwr called as name
(note that, several lwr can exist in urdf_string
if they are called differently).
The abstraction is enforced with three pure virtual functions:
virtual bool init() = 0;
virtual void read(ros::Time time, ros::Duration period) = 0;
virtual void write(ros::Time time, ros::Duration period) = 0;
Adding an interface boils down to inherit from the LWRHW class, implement these three function according to your final platform, and creating either a node or a plugin that uses your new class. This way you can use all your planning and controllers setup in any final real or simulated robot.
Examples of final interface class implementations are found for the Kuka FRI, Stanford FRI library and a Gazebo simulation. The corresponding nodes and plugin are found here, here, and here.
lwr_hw/krl/ros_control.src
and the corresponding .dat
on the robot. You need to provide your user name with real time priority and memlock limits higher than the default ones. You can do it permanently like this:
sudo nano /etc/security/limits.conf
and add these lines:
YOUR_USERNAME hard rtprio 95
YOUR_USERNAME soft rtprio 95
YOUR_USERNAME hard memlock unlimited
YOUR_USERNAME soft memlock unlimited
sudo nano /etc/pam.d/common-session
and add session required pam_limits.so
ulimit -r -l
gives you the values set above.