This package is a guide-trough-example to show how to use the kuka_lwr packages.
Create you robot and environment using the lwr model.
For instance, in the package single_lwr_robot, the robot is a lwr mounted on a box, and the environment is just a ground plane with a sun.
Controllers and joint names are in the config folder. Note that the name space of controllers and the joint names contain the word lwr
, which is the name you gave to the arm when creating the robot here.
NOTE: Other than standard ros-controllers, there are custom controllers that can be found in the lwr_controllers package.
Use the setup assistant to configure a MoveIt! package of your robot.
We already did that in the package single_lwr_moveit. We followed the instructions given in Section 3 here to update the configuration files of MoveIt!.
Note that the name of the controller and joint names must coincide with the name given in the robot package for the controller and joint names.
NOTE: recall that to run a real LWR 4+, you must follow instructions in lwr_hw.
We encourage to have a separated package with your launch file to configure your different uses of your robot, including the network parameters.
We have an example in the package single_lwr_launch. To check which arguments are available use:
roslaunch --ros-args single_lwr_launch single_lwr.launch
Argument autocomplete was available in Groovy, but somehow it skipped Hydro, hence Indigo, but it is comming, see this issue.
a. Just bring your robot on:
roslaunch single_lwr_launch single_lwr.launch
By default, it does not load the MoveIt! configuration. Eventhough, you can open rqt
, and open Plugins->Robot Tools->Joint trajectory controller and move the robot manually with slides.
b. Testing MoveIt! the configuration in simulation:
roslaunch single_lwr_launch single_lwr.launch load_moveit:=true
a. Once everything went well in simulation, you can procede to use the real robot by using:
roslaunch single_lwr_launch single_lwr.launch use_lwr_sim:=false lwr_powered:=true
b. If you wish to use MoveIt!, you can potentially use:
roslaunch single_lwr_launch single_lwr.launch use_lwr_sim:=false lwr_powered:=true load_moveit:=true
If the robot complains a lot about bad communication quality, then just launch the robot with the previous command, and after everything has started, then use:
roslaunch single_lwr_moveit move_group.launch allow_trajectory_execution:=true fake_execution:=false info:=true debug:=false
And that's it! 🤘