├── docs └── source │ ├── tools │ └── krl-tool.rst │ ├── _static │ ├── cnrs.png │ ├── distcc.png │ ├── frames.png │ ├── gazebo.png │ ├── isir.png │ ├── logo.png │ ├── upmc.png │ ├── cart_opt.png │ ├── deployer.png │ ├── example1.png │ ├── example2.png │ ├── gzserver.png │ ├── move_it.png │ ├── sorbonne.png │ ├── cart_opt2.png │ ├── dot_service.png │ ├── gazebo-lwr.png │ ├── kdev-build.png │ ├── kdev-editor.png │ ├── kdev-import.png │ ├── kuka-main.png │ ├── main_launch.png │ ├── orocos-logo.png │ ├── run_example.png │ ├── catkin-build.png │ ├── rosorg-logo1.png │ ├── run_example2.png │ ├── test-rtt-lwr.png │ ├── favicon │ │ ├── favicon.ico │ │ ├── apple-icon.png │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── ms-icon-70x70.png │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── apple-icon-precomposed.png │ │ ├── browserconfig.xml │ │ └── manifest.json │ ├── kdev-import-end.png │ ├── kdev-import-root.png │ ├── kdev-import-cmake.png │ ├── kdev-import-finish.png │ └── rosdep-gazebo2-error.png │ ├── adv-tutos │ ├── orocos-corba.rst │ ├── gz-sync-conman.rst │ ├── gz-sync-fbs.rst │ ├── ccache-distcc.rst │ └── bicompil.rst │ ├── tutos │ ├── moveit-tuto.rst │ ├── build-docs.rst │ ├── update-pkgs.rst │ ├── kdev-tuto.rst │ ├── controller-tuto.rst │ └── getting-started.rst │ ├── index.rst │ ├── rtpc │ ├── orocos-xenomai.rst │ └── rtnet3.rst │ └── install │ ├── test-install.rst │ ├── install-18.04-melodic.rst │ └── install-16.04-kinetic.rst ├── lwr_moveit_config ├── launch │ ├── lwr_moveit_sensor_manager.launch.xml │ ├── planning_pipeline.launch.xml │ ├── fake_moveit_controller_manager.launch.xml │ ├── warehouse.launch │ ├── default_warehouse_db.launch │ ├── setup_assistant.launch │ ├── warehouse_settings.launch.xml │ ├── joystick_control.launch │ ├── sensor_manager.launch.xml │ ├── moveit_rviz.launch │ ├── run_benchmark_ompl.launch │ ├── ompl_planning_pipeline.launch.xml │ ├── lwr_moveit_controller_manager.launch.xml │ ├── trajectory_execution.launch.xml │ ├── lwr_gazebo_sim_moveit_controller_manager.launch.xml │ ├── planning_context.launch │ ├── lwr.launch │ ├── moveit_planning_execution.launch │ ├── demo.launch │ ├── run.launch │ └── move_group.launch ├── scripts │ └── run.ops ├── config │ ├── fake_controllers.yaml │ ├── controllers.yaml │ ├── controllers_no_orocos.yaml │ ├── kinematics.yaml │ ├── joint_limits.yaml │ ├── controllers_params.launch │ └── ompl_planning.yaml ├── .setup_assistant ├── CMakeLists.txt └── package.xml ├── lwr_description ├── meshes │ ├── hook │ │ └── hook.stl │ ├── lwr │ │ ├── link0.stl │ │ ├── link1.stl │ │ ├── link2.stl │ │ ├── link3.stl │ │ ├── link4.stl │ │ ├── link5.stl │ │ ├── link6.stl │ │ ├── link7.stl │ │ ├── link0_c.stl │ │ ├── link0_c2.stl │ │ ├── link1_c.stl │ │ ├── link1_c2.stl │ │ ├── link2_c.stl │ │ ├── link2_c2.stl │ │ ├── link3_c.stl │ │ ├── link3_c2.stl │ │ ├── link4_c.stl │ │ ├── link4_c2.stl │ │ ├── link5_c.stl │ │ ├── link5_c2.stl │ │ ├── link6_c.stl │ │ ├── link6_c2.stl │ │ ├── link7_c.stl │ │ ├── link7_c2.stl │ │ └── link0.dae │ ├── handle │ │ ├── handle.stl │ │ └── handle_collision.stl │ ├── laser │ │ └── laser.stl │ ├── table │ │ ├── table.stl │ │ └── table_collision.stl │ ├── weight │ │ ├── weight.stl │ │ └── weight_c.stl │ ├── lwr_orig │ │ ├── link0.stl │ │ ├── link1.stl │ │ ├── link2.stl │ │ ├── link3.stl │ │ ├── link4.stl │ │ ├── link5.stl │ │ ├── link6.stl │ │ ├── link7.stl │ │ └── lwr.tar.gz │ ├── head_cam │ │ └── head_cam.stl │ ├── lwr_base │ │ ├── lwr_base.stl │ │ └── lwr_base_collision.stl │ ├── ati_sensor │ │ ├── ati_sensor.stl │ │ ├── ati_sensor_cylinder.stl │ │ └── ati_sensor_collision.stl │ ├── calib_tool │ │ ├── calib_tool.stl │ │ └── calib_tool_collision.stl │ └── screwdriver │ │ └── screwdriver.stl ├── README.md ├── package.xml ├── urdf │ ├── lwr_base.urdf.xacro │ ├── materials.urdf.xacro │ ├── table.urdf.xacro │ ├── weight.urdf.xacro │ ├── calib_tool.urdf.xacro │ ├── handle.urdf.xacro │ ├── screwdriver.urdf.xacro │ ├── hook.urdf.xacro │ ├── laser.urdf.xacro │ ├── head_cam.urdf.xacro │ ├── ati_sensor.urdf.xacro │ └── lwr.transmission.xacro ├── CMakeLists.txt ├── launch │ ├── lwr_upload.launch │ └── lwr_test.launch └── robots │ └── kuka_lwr.urdf.xacro ├── lwr_utils ├── scripts │ ├── rtping │ ├── deployer-corba │ ├── ping_ati │ ├── ping_lwr │ ├── lwr_runner.ops │ ├── kill_depl │ ├── deployer-corba-debug │ ├── eval_script │ ├── rtnet │ └── process_args ├── config │ ├── rtt_ros_integration-2.8.rosinstall │ ├── rtt_ros_integration-2.9.rosinstall │ ├── orocos_toolchain-2.9.rosinstall │ ├── orocos_toolchain-2.8.rosinstall │ ├── rtt_lwr-extras.rosinstall │ ├── conman.rosinstall │ ├── rtt_lwr.rosinstall │ ├── rtt_lwr-full.rosinstall │ └── rtnet.conf ├── launch │ ├── utils.launch │ ├── joint_trajectory_controller.launch │ ├── sim_ros_control_controllers_position.yml │ ├── lwr.world │ ├── hw_ros_control_controllers_position.yml │ ├── empty_world.launch │ ├── hw_ros_control_controllers_effort.yml │ ├── sim_ros_control_controllers_effort.yml │ ├── deployer.launch │ ├── spawn_robot.launch │ └── run.launch ├── README.md ├── CMakeLists.txt ├── package.xml └── include │ └── lwr_utils │ └── ros_helper.h ├── rtt_lwr ├── CMakeLists.txt └── package.xml ├── lwr_ikfast ├── update_ikfast_plugin.sh ├── lwr_arm_moveit_ikfast_plugin_description.xml ├── package.xml └── CMakeLists.txt ├── .gitmodules ├── .travis.yml ├── README.md └── .gitignore /docs/source/tools/krl-tool.rst: -------------------------------------------------------------------------------- 1 | KRL Tool 2 | ======== 3 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/lwr_moveit_sensor_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /docs/source/_static/cnrs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/cnrs.png -------------------------------------------------------------------------------- /docs/source/_static/distcc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/distcc.png -------------------------------------------------------------------------------- /docs/source/_static/frames.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/frames.png -------------------------------------------------------------------------------- /docs/source/_static/gazebo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/gazebo.png -------------------------------------------------------------------------------- /docs/source/_static/isir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/isir.png -------------------------------------------------------------------------------- /docs/source/_static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/logo.png -------------------------------------------------------------------------------- /docs/source/_static/upmc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/upmc.png -------------------------------------------------------------------------------- /docs/source/_static/cart_opt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/cart_opt.png -------------------------------------------------------------------------------- /docs/source/_static/deployer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/deployer.png -------------------------------------------------------------------------------- /docs/source/_static/example1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/example1.png -------------------------------------------------------------------------------- /docs/source/_static/example2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/example2.png -------------------------------------------------------------------------------- /docs/source/_static/gzserver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/gzserver.png -------------------------------------------------------------------------------- /docs/source/_static/move_it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/move_it.png -------------------------------------------------------------------------------- /docs/source/_static/sorbonne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/sorbonne.png -------------------------------------------------------------------------------- /docs/source/_static/cart_opt2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/cart_opt2.png -------------------------------------------------------------------------------- /docs/source/_static/dot_service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/dot_service.png -------------------------------------------------------------------------------- /docs/source/_static/gazebo-lwr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/gazebo-lwr.png -------------------------------------------------------------------------------- /docs/source/_static/kdev-build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/kdev-build.png -------------------------------------------------------------------------------- /docs/source/_static/kdev-editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/kdev-editor.png -------------------------------------------------------------------------------- /docs/source/_static/kdev-import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/kdev-import.png -------------------------------------------------------------------------------- /docs/source/_static/kuka-main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/kuka-main.png -------------------------------------------------------------------------------- /docs/source/_static/main_launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/main_launch.png -------------------------------------------------------------------------------- /docs/source/_static/orocos-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/orocos-logo.png -------------------------------------------------------------------------------- /docs/source/_static/run_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/run_example.png -------------------------------------------------------------------------------- /docs/source/_static/catkin-build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/catkin-build.png -------------------------------------------------------------------------------- /docs/source/_static/rosorg-logo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/rosorg-logo1.png -------------------------------------------------------------------------------- /docs/source/_static/run_example2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/run_example2.png -------------------------------------------------------------------------------- /docs/source/_static/test-rtt-lwr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/test-rtt-lwr.png -------------------------------------------------------------------------------- /lwr_description/meshes/hook/hook.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/hook/hook.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link0.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link0.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link1.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link3.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link3.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link4.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link4.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link5.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link5.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link6.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link6.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link7.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link7.stl -------------------------------------------------------------------------------- /docs/source/_static/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/favicon.ico -------------------------------------------------------------------------------- /docs/source/_static/kdev-import-end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/kdev-import-end.png -------------------------------------------------------------------------------- /docs/source/_static/kdev-import-root.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/kdev-import-root.png -------------------------------------------------------------------------------- /lwr_description/meshes/handle/handle.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/handle/handle.stl -------------------------------------------------------------------------------- /lwr_description/meshes/laser/laser.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/laser/laser.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link0_c.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link0_c.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link0_c2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link0_c2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link1_c.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link1_c.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link1_c2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link1_c2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link2_c.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link2_c.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link2_c2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link2_c2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link3_c.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link3_c.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link3_c2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link3_c2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link4_c.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link4_c.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link4_c2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link4_c2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link5_c.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link5_c.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link5_c2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link5_c2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link6_c.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link6_c.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link6_c2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link6_c2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link7_c.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link7_c.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link7_c2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr/link7_c2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/table/table.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/table/table.stl -------------------------------------------------------------------------------- /lwr_description/meshes/weight/weight.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/weight/weight.stl -------------------------------------------------------------------------------- /lwr_utils/scripts/rtping: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | prefix=/usr/local/rtnet 3 | prefix_bin=${prefix}/sbin 4 | sudo ${prefix_bin}/rtping $1 5 | -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon.png -------------------------------------------------------------------------------- /docs/source/_static/kdev-import-cmake.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/kdev-import-cmake.png -------------------------------------------------------------------------------- /docs/source/_static/kdev-import-finish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/kdev-import-finish.png -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_orig/link0.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_orig/link0.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_orig/link1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_orig/link1.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_orig/link2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_orig/link2.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_orig/link3.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_orig/link3.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_orig/link4.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_orig/link4.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_orig/link5.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_orig/link5.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_orig/link6.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_orig/link6.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_orig/link7.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_orig/link7.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_orig/lwr.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_orig/lwr.tar.gz -------------------------------------------------------------------------------- /lwr_description/meshes/weight/weight_c.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/weight/weight_c.stl -------------------------------------------------------------------------------- /lwr_utils/scripts/deployer-corba: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Wrapper script for the orocos deployer 4 | 5 | deployer-corba "$@" 6 | -------------------------------------------------------------------------------- /lwr_utils/scripts/ping_ati: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Ping ATI F/T Net Sensor" 3 | here="$(dirname "$0")" 4 | $here/rtping 192.168.100.103 5 | -------------------------------------------------------------------------------- /docs/source/_static/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/favicon-96x96.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/ms-icon-70x70.png -------------------------------------------------------------------------------- /docs/source/_static/rosdep-gazebo2-error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/rosdep-gazebo2-error.png -------------------------------------------------------------------------------- /lwr_description/meshes/head_cam/head_cam.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/head_cam/head_cam.stl -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_base/lwr_base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_base/lwr_base.stl -------------------------------------------------------------------------------- /docs/source/_static/favicon/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/ms-icon-144x144.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/ms-icon-150x150.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/ms-icon-310x310.png -------------------------------------------------------------------------------- /lwr_utils/scripts/ping_lwr: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Ping Kuka LWR 4+" 3 | here="$(dirname "$0")" 4 | echo $here 5 | $here/rtping 192.168.100.102 6 | -------------------------------------------------------------------------------- /rtt_lwr/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(rtt_lwr) 3 | find_package(catkin REQUIRED) 4 | catkin_metapackage() 5 | -------------------------------------------------------------------------------- /docs/source/_static/favicon/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/android-icon-36x36.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/android-icon-48x48.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/android-icon-72x72.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/android-icon-96x96.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-114x114.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-120x120.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-144x144.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-152x152.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-180x180.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-57x57.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-60x60.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-72x72.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-76x76.png -------------------------------------------------------------------------------- /lwr_description/meshes/ati_sensor/ati_sensor.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/ati_sensor/ati_sensor.stl -------------------------------------------------------------------------------- /lwr_description/meshes/calib_tool/calib_tool.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/calib_tool/calib_tool.stl -------------------------------------------------------------------------------- /lwr_description/meshes/handle/handle_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/handle/handle_collision.stl -------------------------------------------------------------------------------- /lwr_description/meshes/screwdriver/screwdriver.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/screwdriver/screwdriver.stl -------------------------------------------------------------------------------- /lwr_description/meshes/table/table_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/table/table_collision.stl -------------------------------------------------------------------------------- /docs/source/_static/favicon/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/android-icon-144x144.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/android-icon-192x192.png -------------------------------------------------------------------------------- /docs/source/_static/favicon/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/docs/source/_static/favicon/apple-icon-precomposed.png -------------------------------------------------------------------------------- /lwr_description/meshes/lwr_base/lwr_base_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/lwr_base/lwr_base_collision.stl -------------------------------------------------------------------------------- /lwr_description/meshes/ati_sensor/ati_sensor_cylinder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/ati_sensor/ati_sensor_cylinder.stl -------------------------------------------------------------------------------- /lwr_ikfast/update_ikfast_plugin.sh: -------------------------------------------------------------------------------- 1 | rosrun moveit_ikfast create_ikfast_moveit_plugin.py lwr arm lwr_ikfast `rospack find lwr_ikfast`/src/lwr_arm_ikfast_solver.cpp 2 | -------------------------------------------------------------------------------- /lwr_description/meshes/ati_sensor/ati_sensor_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/ati_sensor/ati_sensor_collision.stl -------------------------------------------------------------------------------- /lwr_description/meshes/calib_tool/calib_tool_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuka-isir/rtt_lwr/HEAD/lwr_description/meshes/calib_tool/calib_tool_collision.stl -------------------------------------------------------------------------------- /lwr_utils/scripts/lwr_runner.ops: -------------------------------------------------------------------------------- 1 | import("rtt_ros") 2 | ros.import("rtt_rospack") 3 | import("lwr_utils") 4 | 5 | runScript(ros.find("lwr_utils")+"/scripts/utils.ops") 6 | loadRobot(true) 7 | -------------------------------------------------------------------------------- /lwr_moveit_config/scripts/run.ops: -------------------------------------------------------------------------------- 1 | import("rtt_rospack") 2 | runScript(ros.find("lwr_utils")+"/scripts/utils.ops") 3 | 4 | loadRobot(getRobotName(), isSim(), true) 5 | 6 | loadROSControl(true) 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lwr_hardware"] 2 | path = lwr_hardware 3 | url = https://github.com/kuka-isir/lwr_hardware.git 4 | [submodule "rtt_lwr_sim"] 5 | path = rtt_lwr_sim 6 | url = https://github.com/kuka-isir/rtt_lwr_sim.git 7 | -------------------------------------------------------------------------------- /lwr_moveit_config/config/fake_controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: fake_arm_controller 3 | joints: 4 | - joint_0 5 | - joint_1 6 | - joint_2 7 | - joint_3 8 | - joint_4 9 | - joint_5 10 | - joint_6 -------------------------------------------------------------------------------- /lwr_moveit_config/.setup_assistant: -------------------------------------------------------------------------------- 1 | moveit_setup_assistant_config: 2 | URDF: 3 | package: lwr_description 4 | relative_path: robots/kuka_lwr.urdf.xacro 5 | SRDF: 6 | relative_path: config/lwr.srdf 7 | CONFIG: 8 | generated_timestamp: 1433255102 -------------------------------------------------------------------------------- /lwr_moveit_config/config/controllers.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: joint_trajectory_controller 3 | action_ns: follow_joint_trajectory 4 | type: FollowJointTrajectory 5 | default: true 6 | joints: [joint_0,joint_1,joint_2,joint_3,joint_4,joint_5,joint_6] 7 | -------------------------------------------------------------------------------- /lwr_utils/scripts/kill_depl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | kill -s SIGKILL $(ps aux | grep deployer | grep bin | awk '{print $2}') && echo -e "\e[32m--> deployer killed\e[0m" && exit 3 | echo -e "\e[101mNo deployer found, please check 'ps aux' ot 'htop' to find the deployer's PID\e[0m" 4 | -------------------------------------------------------------------------------- /lwr_utils/config/rtt_ros_integration-2.8.rosinstall: -------------------------------------------------------------------------------- 1 | - git: {local-name: rtt_ros_integration, uri: 'https://github.com/orocos/rtt_ros_integration.git',version: indigo-devel} 2 | - git: {local-name: rtt_geometry, uri: 'https://github.com/orocos/rtt_geometry.git',version: indigo-devel} 3 | -------------------------------------------------------------------------------- /lwr_moveit_config/config/controllers_no_orocos.yaml: -------------------------------------------------------------------------------- 1 | controller_list: 2 | - name: /ros_control_arm_controller 3 | action_ns: follow_joint_trajectory 4 | type: FollowJointTrajectory 5 | default: true 6 | joints: [joint_0,joint_1,joint_2,joint_3,joint_4,joint_5,joint_6] 7 | -------------------------------------------------------------------------------- /lwr_utils/config/rtt_ros_integration-2.9.rosinstall: -------------------------------------------------------------------------------- 1 | - git: {local-name: rtt_ros_integration, uri: 'https://github.com/orocos/rtt_ros_integration.git',version: toolchain-2.9} 2 | - git: {local-name: rtt_geometry, uri: 'https://github.com/orocos/rtt_geometry.git',version: toolchain-2.9} 3 | -------------------------------------------------------------------------------- /lwr_utils/scripts/deployer-corba-debug: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Wrapper script for the orocos deployer debug 4 | 5 | # Use gnulinux if orocos target isn't set 6 | OROCOS_TARGET=${OROCOS_TARGET:-gnulinux} 7 | 8 | # Run with gdb 9 | gdb -ex run --args deployer-corba-$OROCOS_TARGET "$@" 10 | -------------------------------------------------------------------------------- /lwr_utils/launch/utils.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /lwr_utils/config/orocos_toolchain-2.9.rosinstall: -------------------------------------------------------------------------------- 1 | - git: {local-name: orocos_toolchain, uri: 'https://github.com/orocos-toolchain/orocos_toolchain.git',version: toolchain-2.9} 2 | - git: {local-name: metaruby-metarelease, uri: 'https://github.com/orocos-gbp/metaruby-release.git', version: 'release/indigo/metaruby'} 3 | -------------------------------------------------------------------------------- /docs/source/_static/favicon/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /lwr_ikfast/lwr_arm_moveit_ikfast_plugin_description.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | IKFast61 plugin for closed-form kinematics 5 | 6 | 7 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /lwr_moveit_config/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(lwr_moveit_config) 3 | 4 | find_package(catkin REQUIRED) 5 | 6 | catkin_package() 7 | 8 | install(DIRECTORY launch/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch) 9 | install(DIRECTORY config/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config) 10 | install(DIRECTORY scripts/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/scripts) 11 | -------------------------------------------------------------------------------- /lwr_description/README.md: -------------------------------------------------------------------------------- 1 | Kuka LWR 4+ Description 2 | ================ 3 | 4 | This package contains the URDF (with inertia matrices) for the Kuka LWR 4+ at ISIR. 5 | 6 | ```bash 7 | # Upload the robot description in the parameter server 8 | roslaunch lwr_description lwr_upload.launch 9 | # Launch the fake robot in rviz (to debug) 10 | roslaunch lwr_description lwr_test.launch 11 | ``` 12 | 13 | > Author: Antoine Hoarau 14 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/fake_moveit_controller_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /lwr_description/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | lwr_description 4 | 0.0.1 5 | Kuka LWR 4+ URDF 6 | 7 | Antoine Hoarau 8 | 9 | CeCILL-C 10 | 11 | catkin 12 | robot_state_publisher 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /lwr_utils/README.md: -------------------------------------------------------------------------------- 1 | ## LWR Utilities 2 | 3 | A set of **very** usefull tools that allows easy setup for the robot. 4 | 5 | - **config** : Xenomai kernel configuration, rtnet configuration for LWR+ ATI F/T Sensor and rosinstall files. 6 | - **launch** : launch files for deploying components ans settings parameters to the ROS parameter server. 7 | - **scripts** : Xenomai utils and utils.ops, the orocos script helper to launch everything. 8 | - **src/ros_helper** : simple tool to parse the deployer's arguments . 9 | -------------------------------------------------------------------------------- /lwr_utils/launch/joint_trajectory_controller.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/source/adv-tutos/orocos-corba.rst: -------------------------------------------------------------------------------- 1 | OROCOS with CORBA and MQUEUE 2 | ---------------------------- 3 | 4 | In order to use the corba interface (connect multiple deployers together), you'll need to build the ``orocos_ws`` and ``rtt_ros_ws`` with : 5 | 6 | .. code-block:: bash 7 | 8 | catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -DENABLE_MQ=ON -DENABLE_CORBA=ON -DCORBA_IMPLEMENTATION=OMNIORB 9 | 10 | Reference : http://www.orocos.org/stable/documentation/rtt/v2.x/doc-xml/orocos-components-manual.html#orocos-corba 11 | -------------------------------------------------------------------------------- /lwr_moveit_config/config/kinematics.yaml: -------------------------------------------------------------------------------- 1 | arm: 2 | kinematics_solver: trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin 3 | #kdl_kinematics_plugin/KDLKinematicsPlugin 4 | #srv_kinematics_plugin/SrvKinematicsPlugin 5 | #trac_ik_kinematics_plugin/TRAC_IKKinematicsPlugin 6 | #lwr_arm_kinematics/IKFastKinematicsPlugin 7 | kinematics_solver_attempts: 3 8 | kinematics_solver_search_resolution: 0.005 9 | #kinematics_solver_timeout: 0.005 10 | ## TracIK params 11 | kinematics_solver_timeout: 0.01 12 | solve_type: Distance 13 | -------------------------------------------------------------------------------- /lwr_utils/config/orocos_toolchain-2.8.rosinstall: -------------------------------------------------------------------------------- 1 | # IT IS UNLIKELY YOU WANT TO EDIT THIS FILE BY HAND, 2 | # UNLESS FOR REMOVING ENTRIES. 3 | # IF YOU WANT TO CHANGE THE ROS ENVIRONMENT VARIABLES 4 | # USE THE rosinstall TOOL INSTEAD. 5 | # IF YOU CHANGE IT, USE rosinstall FOR THE CHANGES TO TAKE EFFECT 6 | 7 | - git: {local-name: orocos_toolchain, uri: 'https://github.com/orocos-toolchain/orocos_toolchain.git',version: toolchain-2.8} 8 | - git: {local-name: metaruby-metarelease, uri: 'https://github.com/orocos-gbp/metaruby-release.git', version: 'release/indigo/metaruby'} 9 | -------------------------------------------------------------------------------- /lwr_utils/launch/sim_ros_control_controllers_position.yml: -------------------------------------------------------------------------------- 1 | # Publish all joint states ----------------------------------- 2 | 3 | joint_state_controller: 4 | type: "joint_state_controller/JointStateController" 5 | publish_rate: 50 6 | # Gazebo Sim - Right and Left Joint Effort Trajectory Controller ------------------- 7 | 8 | joint_trajectory_controller: 9 | type: "position_controllers/JointTrajectoryController" 10 | joints: 11 | - joint_0 12 | - joint_1 13 | - joint_2 14 | - joint_3 15 | - joint_4 16 | - joint_5 17 | - joint_6 18 | -------------------------------------------------------------------------------- /lwr_utils/config/rtt_lwr-extras.rosinstall: -------------------------------------------------------------------------------- 1 | # IT IS UNLIKELY YOU WANT TO EDIT THIS FILE BY HAND, 2 | # UNLESS FOR REMOVING ENTRIES. 3 | # IF YOU WANT TO CHANGE THE ROS ENVIRONMENT VARIABLES 4 | # USE THE rosinstall TOOL INSTEAD. 5 | # IF YOU CHANGE IT, USE rosinstall FOR THE CHANGES TO TAKE EFFECT 6 | 7 | - git: {local-name: fbsched, uri: 'https://github.com/kuka-isir/fbsched.git'} 8 | - git: {local-name: rtt_dot_service, uri: 'https://github.com/kuka-isir/rtt_dot_service.git'} 9 | - git: {local-name: rtt_joint_traj_generator_kdl, uri: 'https://github.com/kuka-isir/rtt_joint_traj_generator_kdl.git'} 10 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/warehouse.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/source/adv-tutos/gz-sync-conman.rst: -------------------------------------------------------------------------------- 1 | Gazebo Synchronization using Conman 2 | =================================== 3 | 4 | 5 | Installation 6 | ------------ 7 | 8 | .. code-block:: bash 9 | 10 | mkdir -p ~/isir/conman_ws/src 11 | cd ~/isir/conman_ws/src 12 | wstool init 13 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/conman.rosinstall 14 | wstool update -j2 15 | cd ~/conman_ws/ 16 | # Disable tests on 14.04 17 | catkin config --init --cmake-args -DCATKIN_ENABLE_TESTING=0 -DCMAKE_BUILD_TYPE=Release 18 | # Build 19 | catkin build 20 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/default_warehouse_db.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/setup_assistant.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/warehouse_settings.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /rtt_lwr/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | rtt_lwr 4 | 2.2.0 5 | The rtt_lwr package 6 | 7 | Antoine Hoarau 8 | Antoine Hoarau 9 | 10 | CeCILL-C 11 | 12 | catkin 13 | 14 | lwr_description 15 | kuka_lwr_fri 16 | lwr_fri 17 | lwr_utils 18 | lwr_ikfast 19 | lwr_moveit_config 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/joystick_control.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/sensor_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /lwr_description/urdf/lwr_base.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/moveit_rviz.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | dist: trusty 3 | language: generic 4 | 5 | env: 6 | global: 7 | - UPSTREAM_WORKSPACE=https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/rtt_lwr.rosinstall 8 | - ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu 9 | - ADDITIONAL_DEBS="curl" 10 | 11 | matrix: 12 | - ROS_DISTRO="indigo" 13 | - ROS_DISTRO="kinetic" CATKIN_PARALLEL_JOBS="-p6 --cmake-args -DCMAKE_CXX_FLAGS=-std=c++11 --" ADDITIONAL_DEBS="curl libgazebo7-dev" 14 | - ROS_DISTRO="melodic" CATKIN_PARALLEL_JOBS="-p6 --cmake-args -DCMAKE_CXX_FLAGS=-std=c++11 --" 15 | 16 | install: 17 | - git clone https://github.com/ros-industrial/industrial_ci.git .ci_config 18 | script: 19 | - source .ci_config/travis.sh 20 | -------------------------------------------------------------------------------- /lwr_utils/launch/lwr.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | model://sun 7 | 8 | 9 | 10 | model://ground_plane 11 | 12 | 13 | 14 | 15 | 16 | 50 17 | 18 | 19 | 20 | 0 0 -9.81 21 | 0.001 22 | 1.0 23 | 1000 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /lwr_description/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(lwr_description) 3 | 4 | find_package(catkin REQUIRED COMPONENTS 5 | robot_state_publisher 6 | ) 7 | 8 | catkin_package() 9 | 10 | include_directories( 11 | ${catkin_INCLUDE_DIRS} 12 | ) 13 | 14 | install(DIRECTORY gazebo/ 15 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/gazebo 16 | PATTERN ".svn" EXCLUDE) 17 | install(DIRECTORY launch/ 18 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch 19 | PATTERN ".svn" EXCLUDE) 20 | install(DIRECTORY meshes/ 21 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/meshes 22 | PATTERN ".svn" EXCLUDE) 23 | install(DIRECTORY robots/ 24 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/robots 25 | PATTERN ".svn" EXCLUDE) 26 | install(DIRECTORY urdf/ 27 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/urdf 28 | PATTERN ".svn" EXCLUDE) -------------------------------------------------------------------------------- /docs/source/_static/favicon/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "App", 3 | "icons": [ 4 | { 5 | "src": "\/android-icon-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image\/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "\/android-icon-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image\/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "\/android-icon-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image\/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "\/android-icon-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image\/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "\/android-icon-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image\/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "\/android-icon-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image\/png", 38 | "density": "4.0" 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /lwr_ikfast/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | lwr_ikfast 4 | 1.0.0 5 | The lwr_ikfast package 6 | 7 | Antoine Hoarau 8 | 9 | BSD 10 | 11 | catkin 12 | 13 | 14 | 15 | moveit_core 16 | liblapack-dev 17 | roscpp 18 | tf_conversions 19 | pluginlib 20 | moveit_core 21 | liblapack-dev 22 | roscpp 23 | tf_conversions 24 | pluginlib 25 | 26 | -------------------------------------------------------------------------------- /lwr_description/urdf/materials.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /docs/source/tutos/moveit-tuto.rst: -------------------------------------------------------------------------------- 1 | MoveIt! with rtt_ros_control_embedded 2 | ===================================== 3 | 4 | As the other packages, we'll use the ``run.launch`` from ``lwr_utils`` that we duplicated in the ``lwr_moveit_config`` package for custom arguments. 5 | 6 | .. code:: 7 | 8 | roslaunch lwr_moveit_config run.launch sim:=true 9 | 10 | 11 | Then you can list available ros_control controllers : 12 | 13 | .. code:: 14 | 15 | rosrun controller_manager controller_manager list 16 | 17 | 18 | .. image:: /_static/move_it.png 19 | 20 | .. note:: 21 | 22 | These commands launch the following RTT Components : 23 | 24 | .. code:: 25 | 26 | o gazebo 27 | o lwr_sim 28 | o rtt_ros_control_embedded 29 | --> controller_manager 30 | --> hardware interface 31 | 32 | Then you have access to the full ``ros_control`` interface as a normal ROS module, so you can create you own ros_controllers. 33 | http://wiki.ros.org/ros_control. 34 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/run_benchmark_ompl.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /lwr_utils/config/conman.rosinstall: -------------------------------------------------------------------------------- 1 | # IT IS UNLIKELY YOU WANT TO EDIT THIS FILE BY HAND, 2 | # UNLESS FOR REMOVING ENTRIES. 3 | # IF YOU WANT TO CHANGE THE ROS ENVIRONMENT VARIABLES 4 | # USE THE rosinstall TOOL INSTEAD. 5 | # IF YOU CHANGE IT, USE rosinstall FOR THE CHANGES TO TAKE EFFECT 6 | 7 | - git: {local-name: conman, uri: 'https://github.com/kuka-isir/conman'} 8 | - git: {version: 0.2.0, local-name: cartesian_trajectory_msgs, uri: 'https://github.com/jhu-lcsr/cartesian_trajectory_msgs'} 9 | - git: {version: 0.7.1, local-name: lcsr_controllers, uri: 'https://github.com/jhu-lcsr/lcsr_controllers'} 10 | - git: {version: 0.2.0, local-name: lcsr_ros_orocos_tools, uri: 'https://github.com/jhu-lcsr/lcsr_ros_orocos_tools'} 11 | - git: {local-name: reflexxes_type2, uri: 'https://github.com/jhu-lcsr/reflexxes_type2'} 12 | - git: {local-name: lcsr_telemanip, uri: 'https://github.com/jhu-lcsr/lcsr_telemanip'} 13 | - git: {local-name: rqt_dot, uri: 'https://github.com/jbohren/rqt_dot'} 14 | - git: {local-name: xdot, uri: 'https://github.com/jbohren/xdot'} 15 | -------------------------------------------------------------------------------- /lwr_utils/launch/hw_ros_control_controllers_position.yml: -------------------------------------------------------------------------------- 1 | # Publish all joint states ----------------------------------- 2 | 3 | joint_state_controller: 4 | type: "joint_state_controller/JointStateController" 5 | publish_rate: 50 6 | # Gazebo Sim - Right and Left Joint Effort Trajectory Controller ------------------- 7 | 8 | joint_trajectory_controller: 9 | action_monitor_rate: 100 10 | constraints: 11 | goal_time: 0.0 12 | joint_0: {goal: 0.02, trajectory: 0.05} 13 | joint_1: {goal: 0.02, trajectory: 0.05} 14 | joint_2: {goal: 0.02, trajectory: 0.05} 15 | joint_3: {goal: 0.02, trajectory: 0.05} 16 | joint_4: {goal: 0.02, trajectory: 0.05} 17 | joint_5: {goal: 0.02, trajectory: 0.05} 18 | joint_6: {goal: 0.02, trajectory: 0.05} 19 | stopped_velocity_tolerance: 0.00001 20 | joints: [joint_0, joint_1, joint_2, joint_3, joint_4, joint_5, joint_6] 21 | state_publish_rate: 50 22 | stop_trajectory_duration: 2.0 23 | type: position_controllers/JointTrajectoryController 24 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/ompl_planning_pipeline.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /lwr_ikfast/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(lwr_ikfast) 3 | if(NOT CMAKE_BUILD_TYPE) 4 | set(CMAKE_BUILD_TYPE Release) 5 | endif() 6 | add_compile_options(-std=c++11) 7 | 8 | find_package(catkin REQUIRED COMPONENTS 9 | moveit_core 10 | pluginlib 11 | roscpp 12 | tf_conversions 13 | ) 14 | 15 | include_directories(${catkin_INCLUDE_DIRS}) 16 | 17 | catkin_package( 18 | LIBRARIES 19 | CATKIN_DEPENDS 20 | moveit_core 21 | pluginlib 22 | roscpp 23 | tf_conversions 24 | ) 25 | 26 | include_directories(include) 27 | 28 | set(IKFAST_LIBRARY_NAME lwr_arm_moveit_ikfast_plugin) 29 | 30 | find_package(LAPACK REQUIRED) 31 | 32 | add_library(${IKFAST_LIBRARY_NAME} src/lwr_arm_ikfast_moveit_plugin.cpp) 33 | target_link_libraries(${IKFAST_LIBRARY_NAME} ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${LAPACK_LIBRARIES}) 34 | 35 | install(TARGETS ${IKFAST_LIBRARY_NAME} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}) 36 | 37 | install( 38 | FILES 39 | lwr_arm_moveit_ikfast_plugin_description.xml 40 | DESTINATION 41 | ${CATKIN_PACKAGE_SHARE_DESTINATION} 42 | ) 43 | -------------------------------------------------------------------------------- /docs/source/tutos/build-docs.rst: -------------------------------------------------------------------------------- 1 | Build the documentation 2 | ------------------------ 3 | 4 | Documentation is built using **readthedocs**, using itself **sphinx**, and hosted on https://readthedocs.org/. 5 | Everytime a push is made on github, a new build is triggered at http://rtt-lwr.readthedocs.io/. 6 | 7 | Syntaxe 8 | ~~~~~~~ 9 | 10 | It uses **reStructeredText** instead of default **markdown** in order to support math equations, notes, warnings etc. 11 | More info at https://docs.readthedocs.io/en/latest/getting_started.html 12 | 13 | Generate documentation locally 14 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 15 | 16 | .. code-block:: bash 17 | 18 | pip install -U --user pip sphinx sphinx-autobuild recommonmark sphinx_rtd_theme 19 | 20 | * Go to the docs directory : ``roscd rtt_lwr/../docs`` and type ``make livehtml``. 21 | * Open your favorite webbrowser and go to ``127.0.0.1/8000`` to see the generated site locally. 22 | 23 | Update the doc using your favorite text editor, like atom (https://atom.io), and `open a pull request `_ on github at https://github.com/kuka-isir/rtt_lwr. 24 | -------------------------------------------------------------------------------- /lwr_utils/scripts/eval_script: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """ 3 | Evaluate xacro arguments 4 | 5 | """ 6 | 7 | import sys 8 | import subprocess 9 | 10 | service_name = sys.argv[1] 11 | input_file = sys.argv[2] 12 | args_ops = [] 13 | if len(sys.argv) > 2 : 14 | args_ops = sys.argv[3:] 15 | 16 | cmd = "rosrun lwr_utils process_args "+input_file+" "+str.join(' ',args_ops) 17 | proc = subprocess.Popen([cmd], stdout=subprocess.PIPE, shell=True) 18 | (output_filename, err) = proc.communicate() 19 | output_filename = output_filename.rstrip() 20 | if proc.returncode != 0: 21 | raise RuntimeError("%r failed, status code %s stdout %r stderr %r" % ( 22 | cmd, proc.returncode, output_filename, err)) 23 | print("Final output : ["+output_filename+"]") 24 | 25 | 26 | import rospy 27 | from rtt_ros_msgs.srv import RunScript 28 | from rtt_ros_msgs.srv import RunScriptRequest 29 | 30 | rospy.init_node("eval_node",anonymous=True) 31 | rospy.wait_for_service(service_name,1.0) 32 | service = rospy.ServiceProxy(service_name,RunScript) 33 | req = RunScriptRequest(output_filename) 34 | resp = service.call(req) 35 | print(resp) 36 | exit() -------------------------------------------------------------------------------- /docs/source/tutos/update-pkgs.rst: -------------------------------------------------------------------------------- 1 | **Update the packages** 2 | ######################### 3 | 4 | We are periodically doing updates on the code (new tools, bug fixes etc), so keeping it up-to-date can be very useful. 5 | 6 | To update all the packages we're going to use the ``vcstool`` utility (https://github.com/dirk-thomas/vcstool). 7 | 8 | It should be already installed during the :doc:`installation ` procedure, otherwise ``sudo apt install python-vcstool``. 9 | 10 | Update OROCOS 11 | ------------- 12 | 13 | .. code-block:: bash 14 | 15 | cd ~/isir/orocos-2.9_ws/src 16 | vcs pull 17 | # update submodules for bleeding-edge updates (OPTIONAL) 18 | vcs-git submodule foreach git checkout toolchain-2.9 19 | vcs-git submodule foreach git pull 20 | 21 | Update RTT ROS Integration 22 | -------------------------- 23 | 24 | .. code-block:: bash 25 | 26 | cd ~/isir/rtt_ros-2.9/src 27 | vcs pull 28 | 29 | Update rtt_lwr 30 | -------------- 31 | 32 | .. code-block:: bash 33 | 34 | cd ~/isir/lwr_ws/src 35 | vcs pull 36 | vcs-git submodule update 37 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/lwr_moveit_controller_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/trajectory_execution.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/lwr_gazebo_sim_moveit_controller_manager.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/source/adv-tutos/gz-sync-fbs.rst: -------------------------------------------------------------------------------- 1 | Gazebo Synchronization using FBSched 2 | ==================================== 3 | 4 | As an example you can launch ``roslaunch rtt_joint_traj_generator_kdl run.launch sim:=true``. 5 | Then in the deployer's console : 6 | 7 | .. code-block:: ruby 8 | 9 | # Then make sure gazebo follows its executionEngine 10 | gazebo.use_rtt_sync = true 11 | # load the fbs component (default 1Khz) 12 | loadFBSched() 13 | 14 | # Set a 1Hz period for the test 15 | fbs.setPeriod(1.0) 16 | 17 | # Then for each component 18 | addComponentToFBSched("gazebo") 19 | # This one is not necessary as it is gazebo's slave 20 | addComponentToFBSched("lwr_sim") 21 | # The controller 22 | addComponentToFBSched("lwr_sim_traj_kdl") 23 | # Just for the fun of it 24 | addComponentToFBSched("lwr_sim_state_pub") 25 | addComponentToFBSched("lwr_sim_krl_tool") 26 | 27 | # Configure and start FBSched 28 | fbs.configure() 29 | fbs.start() 30 | 31 | .. note:: 32 | 33 | When "fbs" starts, gazebo catches up with all the world's callbacks, so it might jump forward in time. 34 | If you put this code in you ops, and pause gazebo, then you won't have any issue. 35 | -------------------------------------------------------------------------------- /lwr_moveit_config/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | lwr_moveit_config 4 | 0.2.0 5 | 6 | An automatically generated package with all the configuration and launch files for using the lwr with the MoveIt Motion Planning Framework 7 | 8 | MoveIt Setup Assistant 9 | MoveIt Setup Assistant 10 | 11 | BSD 12 | 13 | http://moveit.ros.org/ 14 | https://github.com/ros-planning/moveit_setup_assistant/issues 15 | https://github.com/ros-planning/moveit_setup_assistant 16 | 17 | moveit_ros_move_group 18 | moveit_planners_ompl 19 | 20 | joint_state_publisher 21 | robot_state_publisher 22 | xacro 23 | lwr_description 24 | trac_ik_kinematics_plugin 25 | 26 | 27 | catkin 28 | 29 | 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | RTT Kuka LWR 4+ 2 | =================== 3 | 4 | [![Build Status](https://travis-ci.org/kuka-isir/rtt_lwr.svg?branch=rtt_lwr-2.0)](https://travis-ci.org/kuka-isir/rtt_lwr) [![Docs Status](https://readthedocs.org/projects/rtt-lwr/badge/?version=latest)](http://rtt-lwr.readthedocs.io/en/latest/) 5 | 6 | 7 | - **lwr_description** : contains the URDF, with tools, and launch files associated. 8 | - **lwr_hardware** : fork of [RCPRG's repo](https://github.com/RCPRG-ros-pkg/lwr_hardware). Contains an RTT component for communicating with the hardware (through rtnet) et another for publishing the robot status in ROS. 9 | - **lwr_ikfast** : Fast inverse kinematics plugin for moveit. Use trac-ik instead. 10 | - **lwr_moveit_config** : [MoveIt!](http://moveit.ros.org/) config package for starting moveit and connecting it to the controller manager. 11 | - **lwr_utils** : Set of **very** useful tools to launch and connect everything. 12 | - **rtt_lwr_sim** : Simulated interface for the Kuka. 13 | 14 | ## Experimental Setup 15 | 16 | [![Experimental Setup](https://docs.google.com/drawings/d/1E0KbzYNJTc-1nIdF8U4vIk07o5m0t-UEVZyddy6xKDc/pub?w=1697&)](goo.gl/GzuaWL) 17 | 18 | ## Documentation 19 | 20 | http://rtt-lwr.readthedocs.io/en/latest/ 21 | 22 | 23 | -------------------------------------------------------------------------------- /lwr_description/urdf/table.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/planning_context.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /lwr_description/launch/lwr_upload.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /lwr_moveit_config/config/joint_limits.yaml: -------------------------------------------------------------------------------- 1 | # joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed 2 | # Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration] 3 | # Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits] 4 | joint_limits: 5 | joint_0: 6 | has_velocity_limits: true 7 | max_velocity: 0.5 8 | has_acceleration_limits: false 9 | max_acceleration: 1.0 10 | joint_1: 11 | has_velocity_limits: true 12 | max_velocity: 0.5 13 | has_acceleration_limits: false 14 | max_acceleration: 1.0 15 | joint_2: 16 | has_velocity_limits: true 17 | max_velocity: 0.5 18 | has_acceleration_limits: false 19 | max_acceleration: 1.0 20 | joint_3: 21 | has_velocity_limits: true 22 | max_velocity: 0.5 23 | has_acceleration_limits: false 24 | max_acceleration: 1.0 25 | joint_4: 26 | has_velocity_limits: true 27 | max_velocity: 0.5 28 | has_acceleration_limits: false 29 | max_acceleration: 1.0 30 | joint_5: 31 | has_velocity_limits: true 32 | max_velocity: 0.5 33 | has_acceleration_limits: false 34 | max_acceleration: 1.0 35 | joint_6: 36 | has_velocity_limits: true 37 | max_velocity: 0.5 38 | has_acceleration_limits: false 39 | max_acceleration: 1.0 40 | -------------------------------------------------------------------------------- /lwr_description/urdf/weight.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 37 | 38 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /lwr_description/urdf/calib_tool.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /lwr_description/urdf/handle.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /lwr_utils/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(lwr_utils) 3 | 4 | find_package(catkin REQUIRED COMPONENTS 5 | roscpp 6 | cmake_modules 7 | ) 8 | 9 | find_package(OROCOS-RTT REQUIRED) 10 | include(${OROCOS-RTT_USE_FILE_PATH}/UseOROCOS-RTT.cmake ) 11 | 12 | include_directories( 13 | include 14 | ${catkin_INCLUDE_DIRS} 15 | ${USE_OROCOS_INCLUDE_DIRS} 16 | ) 17 | 18 | orocos_service(ros_helper src/ros_helper.cpp) 19 | 20 | target_link_libraries( 21 | ros_helper 22 | ${catkin_LIBRARIES} 23 | ${USE_OROCOS_LIBRARIES} 24 | ) 25 | 26 | orocos_install_headers( 27 | include/${PROJECT_NAME}/ros_helper.h 28 | ) 29 | 30 | orocos_generate_package(INCLUDE_DIRS include) 31 | 32 | install(DIRECTORY launch/ 33 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch 34 | PATTERN ".svn" EXCLUDE) 35 | 36 | set(scripts 37 | scripts/deployer-corba 38 | scripts/deployer-corba-debug 39 | scripts/eval_script 40 | scripts/generate_all_urdf_sdf 41 | scripts/kill_depl 42 | scripts/lwr_runner.ops 43 | scripts/ping_ati 44 | scripts/ping_lwr 45 | scripts/process_args 46 | scripts/rtnet 47 | scripts/rtping 48 | ) 49 | 50 | install(FILES ${scripts} 51 | PERMISSIONS OWNER_READ GROUP_READ WORLD_READ WORLD_EXECUTE GROUP_EXECUTE OWNER_EXECUTE 52 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 53 | ) 54 | 55 | install(FILES scripts/utils.ops DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/scripts) 56 | 57 | install(DIRECTORY config/ 58 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config 59 | PATTERN ".svn" EXCLUDE) 60 | -------------------------------------------------------------------------------- /lwr_description/urdf/screwdriver.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /lwr_utils/config/rtt_lwr.rosinstall: -------------------------------------------------------------------------------- 1 | # IT IS UNLIKELY YOU WANT TO EDIT THIS FILE BY HAND, 2 | # UNLESS FOR REMOVING ENTRIES. 3 | # IF YOU WANT TO CHANGE THE ROS ENVIRONMENT VARIABLES 4 | # USE THE rosinstall TOOL INSTEAD. 5 | # IF YOU CHANGE IT, USE rosinstall FOR THE CHANGES TO TAKE EFFECT 6 | 7 | - git: {local-name: rtt_lwr, uri: 'https://github.com/kuka-isir/rtt_lwr'} 8 | - git: {local-name: rtt_ros_kdl_tools, uri: 'https://github.com/kuka-isir/rtt_ros_kdl_tools'} 9 | - git: {local-name: lwr_project_creator, uri: 'https://github.com/kuka-isir/lwr_project_creator'} 10 | - git: {local-name: krl_msgs, uri: 'https://github.com/kuka-isir/krl_msgs'} 11 | - git: {local-name: rtt_krl_msgs, uri: 'https://github.com/kuka-isir/rtt_krl_msgs'} 12 | - git: {local-name: rtt_lwr_krl_tool, uri: 'https://github.com/kuka-isir/rtt_lwr_krl_tool'} 13 | - git: {local-name: rtt_state_publisher, uri: 'https://github.com/kuka-isir/rtt_state_publisher'} 14 | - git: {local-name: rtt_demo_load_comp, uri: 'https://github.com/kuka-isir/rtt_demo_load_comp'} 15 | - git: {local-name: rtt_gazebo_embedded, uri: 'https://github.com/kuka-isir/rtt_gazebo_embedded'} 16 | - git: {local-name: rtt_ros_control_embedded, uri: 'https://github.com/kuka-isir/rtt_ros_control_embedded'} 17 | - git: {local-name: rtt_control_msgs, uri: 'https://github.com/kuka-isir/rtt_control_msgs'} 18 | - git: {local-name: rtt_controller_manager_msgs, uri: 'https://github.com/kuka-isir/rtt_controller_manager_msgs'} 19 | - git: {local-name: rtt_ati_sensor, uri: 'https://github.com/kuka-isir/rtt_ati_sensor'} 20 | - git: {local-name: ati_sensor, uri: 'https://github.com/kuka-isir/ati_sensor'} 21 | -------------------------------------------------------------------------------- /lwr_description/urdf/hook.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 41 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /lwr_utils/launch/empty_world.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/lwr.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /lwr_utils/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | lwr_utils 4 | 2.0.0 5 | The lwr_utils package 6 | 7 | Antoine Hoarau 8 | 9 | CeCILL-C 10 | 11 | catkin 12 | lwr_description 13 | 14 | 15 | 16 | 17 | rtt_rosnode 18 | rtt_rospack 19 | rtt_rosparam 20 | rtt_rosclock 21 | rtt_roscomm 22 | rtt_trajectory_msgs 23 | rtt_actionlib_msgs 24 | rtt_control_msgs 25 | rtt_std_msgs 26 | rtt_diagnostic_msgs 27 | rtt_geometry_msgs 28 | rtt_sensor_msgs 29 | rtt_controller_manager_msgs 30 | rtt_shape_msgs 31 | kdl_typekit 32 | eigen_typekit 33 | rtt_tf 34 | rtt_nav_msgs 35 | rtt_krl_msgs 36 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /lwr_utils/launch/hw_ros_control_controllers_effort.yml: -------------------------------------------------------------------------------- 1 | # Publish all joint states ----------------------------------- 2 | 3 | joint_state_controller: 4 | type: "joint_state_controller/JointStateController" 5 | publish_rate: 50 6 | # Gazebo Sim - Right and Left Joint Effort Trajectory Controller ------------------- 7 | 8 | joint_trajectory_controller: 9 | action_monitor_rate: 20 10 | constraints: 11 | goal_time: 0.0 12 | joint_0: {goal: 0.02, trajectory: 0.2} 13 | joint_1: {goal: 0.02, trajectory: 0.2} 14 | joint_2: {goal: 0.02, trajectory: 0.2} 15 | joint_3: {goal: 0.02, trajectory: 0.2} 16 | joint_4: {goal: 0.02, trajectory: 0.2} 17 | joint_5: {goal: 0.02, trajectory: 0.2} 18 | joint_6: {goal: 0.02, trajectory: 0.2} 19 | stopped_velocity_tolerance: 0.01 20 | gains: 21 | joint_0: {d: 35.0, i: 10.0, i_clamp: 1, i_clamp_max: 1.0, i_clamp_min: -1.0, p: 450.0} 22 | joint_1: {d: 30.0, i: 10.0, i_clamp: 1, i_clamp_max: 1.0, i_clamp_min: -1.0, p: 450.0} 23 | joint_2: {d: 20.0, i: 8.0, i_clamp: 1, i_clamp_max: 1.0, i_clamp_min: -1.0, p: 350.0} 24 | joint_3: {d: 15.0, i: 5.0, i_clamp: 1, i_clamp_max: 1.0, i_clamp_min: -1.0, p: 250.0} 25 | joint_4: {d: 10.0, i: 5.0, i_clamp: 1, i_clamp_max: 1.0, i_clamp_min: -1.0, p: 150.0} 26 | joint_5: {d: 5.0, i: 5.0, i_clamp: 1, i_clamp_max: 1.0, i_clamp_min: -1.0, p: 50.0} 27 | joint_6: {d: 5.0, i: 5.0, i_clamp: 0.5, i_clamp_max: 1.0, i_clamp_min: -1.0, p: 40.0} 28 | joints: [joint_0, joint_1, joint_2, joint_3, joint_4, joint_5, joint_6] 29 | state_publish_rate: 45 30 | stop_trajectory_duration: 0.250 31 | type: effort_controllers/JointTrajectoryController 32 | -------------------------------------------------------------------------------- /lwr_utils/launch/sim_ros_control_controllers_effort.yml: -------------------------------------------------------------------------------- 1 | # Publish all joint states ----------------------------------- 2 | 3 | joint_state_controller: 4 | type: "joint_state_controller/JointStateController" 5 | publish_rate: 50 6 | # Gazebo Sim - Right and Left Joint Effort Trajectory Controller ------------------- 7 | 8 | joint_trajectory_controller: 9 | type: "effort_controllers/JointTrajectoryController" 10 | joints: 11 | - joint_0 12 | - joint_1 13 | - joint_2 14 | - joint_3 15 | - joint_4 16 | - joint_5 17 | - joint_6 18 | 19 | constraints: 20 | goal_time: 0.0 # Defaults to zero 21 | stopped_velocity_tolerance: 0.0 # Defaults to 0.01 22 | joint_0: 23 | trajectory: 0.0 24 | goal: 0.0 25 | joint_1: 26 | trajectory: 0.0 27 | goal: 0.0 28 | joint_2: 29 | trajectory: 0.0 30 | goal: 0.0 31 | joint_3: 32 | trajectory: 0.0 33 | goal: 0.0 34 | joint_4: 35 | trajectory: 0.0 36 | goal: 0.0 37 | joint_5: 38 | trajectory: 0.0 39 | goal: 0.0 40 | joint_6: 41 | trajectory: 0.0 42 | goal: 0.0 43 | 44 | gains: # Needed to map position+velocity commands to an effort command 45 | joint_0: {p: 450, i: 10, d: 15, i_clamp: 1} 46 | joint_1: {p: 450, i: 10, d: 15, i_clamp: 1} 47 | joint_2: {p: 350, i: 8, d: 15, i_clamp: 1} 48 | joint_3: {p: 200, i: 5, d: 2, i_clamp: 1} 49 | joint_4: {p: 150, i: 5, d: 0.01, i_clamp: 1} 50 | joint_5: {p: 50, i: 0.1, d: 5.0, i_clamp: 1} 51 | joint_6: {p: 20, i: 0.01, d: 1.1, i_clamp: 0.5} 52 | 53 | state_publish_rate: 50 # Defaults to 50 54 | action_monitor_rate: 20 # Defaults to 20 55 | stop_trajectory_duration: 0.0 # Defaults to 0.0 56 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/moveit_planning_execution.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /lwr_description/urdf/laser.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 41 | 43 | 44 | 45 | 46 | 47 | 48 | 51 | 53 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /docs/source/tutos/kdev-tuto.rst: -------------------------------------------------------------------------------- 1 | Make you life easier with Kdevelop 2 | ================================== 3 | 4 | Kdevelop is a nice IDE that supports cmake natively. 5 | To install it, just type ``sudo apt install kdevelop``, then in a **terminal**, type ``kdevelop``. 6 | 7 | .. tip:: 8 | 9 | To enable sourcing the bashrc from the Ubuntu toolbar, ``sudo nano /usr/share/applications/kde4/kdevelop.desktop`` 10 | and replace ``Exec=kdevelop %u`` by ``Exec=bash -i -c kdevelop %u``. 11 | 12 | 13 | 14 | Import a catkin/CMake project 15 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 16 | 17 | Click on ``Project --> Open/Import Project...`` 18 | 19 | .. image:: /_static/kdev-import.png 20 | 21 | Select the ``CMakeLists.txt`` inside your project. 22 | 23 | .. image:: /_static/kdev-import-cmake.png 24 | 25 | 26 | Select **you project** as the root directory. 27 | 28 | .. image:: /_static/kdev-import-root.png 29 | 30 | Correct the ``Build Directory`` if necessary, and if you've already built with ``catkin build``, you should see ``Using an already created build directory``. 31 | 32 | .. image:: /_static/kdev-import-end.png 33 | 34 | .. warning:: 35 | 36 | Make sure the ``Build Directory`` is set to ``/path/to/catkin_ws/build/my_project``. 37 | 38 | Click on ``finish`` and you're done import your project. 39 | 40 | .. image:: /_static/kdev-import-finish.png 41 | 42 | 43 | 44 | Build your project 45 | ~~~~~~~~~~~~~~~~~~ 46 | 47 | On the vertical left panel, click on ``Projects`` and you'll see the list of your currently opened projects. Yours should appear here afer a few seconds. 48 | 49 | .. image:: /_static/kdev-editor.png 50 | 51 | You can check also in the ``Build Sequence`` that your project appears. 52 | To build, click on ``build`` :) 53 | 54 | .. image:: /_static/kdev-build.png 55 | 56 | .. note:: 57 | 58 | Cliking on ``build`` is equivalent to calling : 59 | 60 | .. code:: 61 | 62 | cd /path/to/catkin_ws 63 | catkin build my_super_project 64 | -------------------------------------------------------------------------------- /lwr_description/launch/lwr_test.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | [/move_group/fake_controller_joint_states] 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /lwr_description/urdf/head_cam.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /lwr_utils/launch/deployer.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /lwr_utils/config/rtt_lwr-full.rosinstall: -------------------------------------------------------------------------------- 1 | - git: {local-name: rtt_lwr, uri: 'https://github.com/kuka-isir/rtt_lwr'} 2 | - git: {local-name: rtt_ros_kdl_tools, uri: 'https://github.com/kuka-isir/rtt_ros_kdl_tools'} 3 | - git: {local-name: lwr_project_creator, uri: 'https://github.com/kuka-isir/lwr_project_creator'} 4 | - git: {local-name: krl_msgs, uri: 'https://github.com/kuka-isir/krl_msgs'} 5 | - git: {local-name: rtt_krl_msgs, uri: 'https://github.com/kuka-isir/rtt_krl_msgs'} 6 | - git: {local-name: rtt_lwr_krl_tool, uri: 'https://github.com/kuka-isir/rtt_lwr_krl_tool'} 7 | - git: {local-name: rtt_state_publisher, uri: 'https://github.com/kuka-isir/rtt_state_publisher'} 8 | - git: {local-name: rtt_demo_load_comp, uri: 'https://github.com/kuka-isir/rtt_demo_load_comp'} 9 | - git: {local-name: rtt_gazebo_embedded, uri: 'https://github.com/kuka-isir/rtt_gazebo_embedded'} 10 | - git: {local-name: rtt_ros_control_embedded, uri: 'https://github.com/kuka-isir/rtt_ros_control_embedded'} 11 | - git: {local-name: rtt_control_msgs, uri: 'https://github.com/kuka-isir/rtt_control_msgs'} 12 | - git: {local-name: rtt_controller_manager_msgs, uri: 'https://github.com/kuka-isir/rtt_controller_manager_msgs'} 13 | - git: {local-name: rtt_ati_sensor, uri: 'https://github.com/kuka-isir/rtt_ati_sensor'} 14 | - git: {local-name: ati_sensor, uri: 'https://github.com/kuka-isir/ati_sensor'} 15 | - git: {local-name: fbsched, uri: 'https://github.com/kuka-isir/fbsched.git'} 16 | - git: {local-name: rtt_dot_service, uri: 'https://github.com/kuka-isir/rtt_dot_service.git'} 17 | - git: {local-name: rtt_joint_traj_generator_kdl, uri: 'https://github.com/kuka-isir/rtt_joint_traj_generator_kdl.git'} 18 | 19 | - git: {local-name: qpOASES, uri: 'https://github.com/kuka-isir/qpOASES'} 20 | - git: {local-name: cart_opt_ctrl, uri: 'https://github.com/kuka-isir/cart_opt_ctrl'} 21 | 22 | # This package was useful for rtt_gazebo : launching an orocos deployer as a gazebo7 plugin 23 | # Now with rtt_gazebo_embedded, we just need libgazebo-dev (7 or not) to be installed 24 | # - git: {local-name: gazebo_ros_pkgs, uri: 'https://github.com/ros-simulation/gazebo_ros_pkgs.git'} 25 | 26 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | 2 | OROCOS/ROS Components for Light Weight Robots 3 | ============================================== 4 | 5 | .. image:: /_static/isir.png 6 | :width: 100px 7 | :align: left 8 | 9 | .. image:: /_static/cnrs.png 10 | :width: 100px 11 | 12 | .. image:: /_static/sorbonne.png 13 | :width: 250px 14 | 15 | Introduction 16 | ------------ 17 | 18 | **rtt_lwr** is a set of components for controlling the Kuka LWR and IIWA at 1Khz. 19 | It relies on OROCOS for the real-time part, but also interfaces with ROS so we can use Rviz, MoveIt, ros-control etc. 20 | 21 | It has been designed so researchers/Phd Students/Engineers at ISIR can develop generic controllers for light weight robots and seemlessly switch between simulation/real hardware without the need to recompile their code. 22 | 23 | Prerequisites 24 | ------------- 25 | 26 | * Relatively powerful Ubuntu 18.04/16.04/14.04 PC 27 | * Knowledge about ROS 28 | * Notions about OROCOS 29 | 30 | 31 | Experimental setup 32 | ------------------ 33 | 34 | .. image:: https://docs.google.com/drawings/d/1E0KbzYNJTc-1nIdF8U4vIk07o5m0t-UEVZyddy6xKDc/pub?w=1802&h=1195 35 | 36 | 37 | .. toctree:: 38 | :name: install 39 | :caption: Installation and Configuration 40 | :glob: 41 | :maxdepth: 2 42 | 43 | install/* 44 | 45 | .. toctree:: 46 | :name: tutos 47 | :caption: Tutorials 48 | :glob: 49 | :maxdepth: 2 50 | 51 | Getting started with OROCOS 52 | Getting started with RTT LWR 53 | Getting started with ros_control / MoveIt! 54 | tutos/controller-tuto 55 | tutos/kdev-tuto 56 | tutos/update-pkgs 57 | tutos/build-docs 58 | 59 | .. toctree:: 60 | :name: tools 61 | :caption: Tools 62 | :glob: 63 | :maxdepth: 2 64 | 65 | tools/* 66 | 67 | .. toctree:: 68 | :name: adv-tutos 69 | :caption: Advanced Tutorials 70 | :glob: 71 | :maxdepth: 2 72 | 73 | adv-tutos/* 74 | 75 | .. toctree:: 76 | :name: rtpc 77 | :caption: Control PC setup 78 | :glob: 79 | :maxdepth: 2 80 | 81 | rtpc/xenomai 82 | rtpc/xenomai3 83 | rtpc/rtnet 84 | rtpc/orocos-xenomai 85 | -------------------------------------------------------------------------------- /lwr_utils/include/lwr_utils/ros_helper.h: -------------------------------------------------------------------------------- 1 | #ifndef __ROS_HELPER_H__ 2 | #define __ROS_HELPER_H__ 3 | 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | class ROSHelper : public RTT::ServiceRequester 17 | { 18 | 19 | public: 20 | ROSHelper(RTT::TaskContext *owner); 21 | RTT::OperationCaller getServiceOwner; 22 | RTT::OperationCaller getTaskContext; 23 | RTT::OperationCaller getOwner; 24 | RTT::OperationCaller isSim; 25 | RTT::OperationCaller getTfPrefix; 26 | RTT::OperationCaller getEnvName; 27 | RTT::OperationCaller addComponent; 28 | RTT::OperationCaller rosServiceCall; 29 | RTT::OperationCaller printArgv; 30 | RTT::OperationCaller getRobotNs; 31 | RTT::OperationCaller getRobotName; 32 | RTT::OperationCaller getThisNodeName; 33 | RTT::OperationCaller getThisNodeNamespace; 34 | RTT::OperationCaller getParam; 35 | RTT::OperationCaller waitForROSService; 36 | RTT::OperationCaller&)> parseArgv; 37 | 38 | }; 39 | 40 | class OS : public RTT::ServiceRequester 41 | { 42 | 43 | public: 44 | OS(RTT::TaskContext* owner ): 45 | RTT::ServiceRequester("os",owner), 46 | argv("argv"), 47 | argc("argc"), 48 | getenv("getenv"), 49 | isenv("isenv"), 50 | setenv("setenv") 51 | { 52 | this->addOperationCaller(argv); 53 | this->addOperationCaller(argc); 54 | this->addOperationCaller(getenv); 55 | this->addOperationCaller(isenv); 56 | this->addOperationCaller(setenv); 57 | } 58 | RTT::OperationCaller(void)> argv; 59 | RTT::OperationCaller argc; 60 | RTT::OperationCaller getenv; 61 | RTT::OperationCaller isenv; 62 | RTT::OperationCaller setenv; 63 | }; 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /lwr_moveit_config/config/controllers_params.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | root_link: link_0 12 | tip_link: link_7 13 | robot_description_param: ~robot_description 14 | # friction 15 | static_deadband: [0.001, 0.001, 0.01, 0.001, 0.001, 0.01, 0.01] 16 | static_effort: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.1] 17 | static_eps: 0.020 18 | i_gains: [10.0, 10.0, 1.0, 10.0, 1.0, 1.0, 0.1] 19 | i_clamps: [1.0, 1.0, 0.5, 1.0, 0.5, 0.1, 0.1] 20 | compensate_friction: false 21 | verbose: true 22 | 23 | 24 | p_gains: [450.0, 450.0, 80.0, 450.0, 80.0, 20.0, 1.0] 25 | d_gains: [20.0, 20.0, 1.5, 20.0, 1.5, 1.0, 0.05] 26 | position_tolerance: [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5] 27 | velocity_tolerance: [1.0, 1.0, 1.5, 1.0, 1.5, 2.5, 2.0] 28 | 29 | 30 | 31 | 32 | 33 | root_link: link_0 34 | tip_link: link_7 35 | robot_description_param: ~robot_description 36 | sampling_resolution: 0.002 37 | #note: absolute max joint velocity: 2.0 rad/s 38 | #note: safe joint velocity: 0.5 rad/s 39 | stop_on_violation: true 40 | verbose: false 41 | stop_time: 0.25 42 | temporal_tolerance: 0.5 43 | goal_position_tolerance: [0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01] 44 | goal_velocity_tolerance: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] 45 | 46 | 47 | position_tolerance: [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] 48 | velocity_tolerance: [30.2, 30.2, 30.2, 30.2, 30.0, 30.0, 30.0] 49 | max_velocities: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] 50 | max_accelerations: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0] 51 | max_jerks: [2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0] 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /lwr_utils/config/rtnet.conf: -------------------------------------------------------------------------------- 1 | # This file is usually located in /etc/rtnet.conf 2 | # Please adapt it to your system. 3 | # This configuration file is used with the rtnet script. 4 | 5 | # RTnet installation path 6 | prefix="/usr/local/rtnet" 7 | exec_prefix="${prefix}" 8 | RTNET_MOD="${exec_prefix}/modules" 9 | RTIFCONFIG="${exec_prefix}/sbin/rtifconfig" 10 | RTCFG="${exec_prefix}/sbin/rtcfg" 11 | TDMACFG="${exec_prefix}/sbin/tdmacfg" 12 | 13 | # Module suffix: ".o" for 2.4 kernels, ".ko" for later versions 14 | MODULE_EXT=".ko" 15 | 16 | 17 | 18 | # RT-NIC driver 19 | RT_DRIVER="rt_e1000e" 20 | RT_DRIVER_OPTIONS="" 21 | 22 | # PCI addresses of RT-NICs to claim (format: 0000:00:00.0) 23 | # If both Linux and RTnet drivers for the same hardware are loaded, this 24 | # list instructs the start script to rebind the given PCI devices, detaching 25 | # from their Linux driver, attaching it to the RT driver above. Example: 26 | # REBIND_RT_NICS="0000:00:19.0 0000:01:1d.1" 27 | REBIND_RT_NICS="0000:05:00.0 0000:06:00.0" 28 | 29 | # IP address and netmask of this station 30 | # The TDMA_CONFIG file overrides these parameters for masters and backup 31 | # masters. Leave blank if you do not use IP addresses or if this station is 32 | # intended to retrieve its IP from the master based on its MAC address. 33 | IPADDR="192.168.100.101" 34 | NETMASK="255.255.255.0" 35 | 36 | # Start realtime loopback device ("yes" or "no") 37 | RT_LOOPBACK="no" 38 | 39 | # Use the following RTnet protocol drivers 40 | RT_PROTOCOLS="udp packet tcp" 41 | 42 | # Start capturing interface ("yes" or "no") 43 | RTCAP="yes" 44 | 45 | 46 | 47 | # Common RTcfg stage 2 config data (master mode only) 48 | # The TDMA_CONFIG file overrides this parameter. 49 | STAGE_2_SRC="" 50 | 51 | # Stage 2 config data destination file (slave mode only) 52 | STAGE_2_DST="" 53 | 54 | # Command to be executed after stage 2 phase (slave mode only) 55 | STAGE_2_CMDS="" 56 | 57 | 58 | 59 | # TDMA mode of the station ("master" or "slave") 60 | # Start backup masters in slave mode, it will then be switched to master 61 | # mode automatically during startup. 62 | TDMA_MODE="master" 63 | 64 | 65 | # Master parameters 66 | 67 | # Simple setup: List of TDMA slaves 68 | TDMA_SLAVES="" 69 | 70 | # Simple setup: Cycle time in microsecond 71 | TDMA_CYCLE="450" 72 | 73 | # Simple setup: Offset in microsecond between TDMA slots 74 | TDMA_OFFSET="50" 75 | 76 | # Advanced setup: Config file containing all TDMA station parameters 77 | # To use this mode, uncomment the following line and disable the 78 | # three master parameters above (SLAVES, CYCLE, and OFFSET). 79 | #TDMA_CONFIG="${prefix}/etc/tdma.conf" 80 | -------------------------------------------------------------------------------- /docs/source/rtpc/orocos-xenomai.rst: -------------------------------------------------------------------------------- 1 | OROCOS RTT on Xenomai 2 | ===================== 3 | 4 | Orocos RTT is fully compatible with Xenomai, but it needs to be built *from source*. 5 | 6 | The only difference in the build process is the need to set ``export OROCOS_TARGET=xenomai`` before compiling. 7 | 8 | Orocos Toolchain 2.9 on Xenomai 9 | ------------------------------- 10 | 11 | .. code-block:: bash 12 | 13 | # Compile for Xenomai 14 | export OROCOS_TARGET=xenomai 15 | 16 | mkdir -p ~/isir/orocos-2.9_ws/src 17 | cd ~/isir/orocos-2.9_ws/src 18 | # Get all the packages 19 | wstool init 20 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/orocos_toolchain-2.9.rosinstall 21 | wstool update -j2 22 | # Get the latest updates (OPTIONAL) 23 | cd orocos_toolchain 24 | git submodule foreach git checkout toolchain-2.9 25 | git submodule foreach git pull 26 | 27 | cd ~/isir/orocos-2.9_ws/ 28 | # Install dependencies 29 | source /opt/ros/kinetic/setup.bash 30 | rosdep install --from-paths ~/isir/orocos-2.9_ws/src --ignore-src --rosdistro kinetic -y -r 31 | # Configure the build in Release (recommended), and enable extra transport methods (optional) 32 | catkin config --init --install --extend /opt/ros/kinetic/ --cmake-args -DCMAKE_BUILD_TYPE=Release -DENABLE_MQ=ON -DENABLE_CORBA=ON -DCORBA_IMPLEMENTATION=OMNIORB 33 | # Build 34 | catkin build 35 | 36 | RTT ROS Integration 2.9 on Xenomai 37 | ---------------------------------- 38 | 39 | .. code-block:: bash 40 | 41 | # Compile for Xenomai 42 | export OROCOS_TARGET=xenomai 43 | 44 | mkdir -p ~/isir/rtt_ros-2.9_ws/src 45 | cd ~/isir/rtt_ros-2.9_ws/src 46 | # Get all the packages 47 | wstool init 48 | wstool merge https://github.com/kuka-isir/rtt_lwr/raw/rtt_lwr-2.0/lwr_utils/config/rtt_ros_integration-2.9.rosinstall 49 | wstool update -j2 50 | 51 | cd ~/isir/rtt_ros-2.9_ws/ 52 | # Install dependencies 53 | source ~/isir/orocos-2.9_ws/install/setup.bash 54 | rosdep install --from-paths ~/isir/rtt_ros-2.9_ws/src --ignore-src --rosdistro kinetic -y -r 55 | # Configure the build in Release (recommended), and enable extra transport methods (optional) 56 | catkin config --init --install --extend ~/isir/orocos-2.9_ws/install --cmake-args -DCMAKE_BUILD_TYPE=Release -DENABLE_MQ=ON -DENABLE_CORBA=ON -DCORBA_IMPLEMENTATION=OMNIORB 57 | # Build (this can take a while) 58 | catkin build 59 | 60 | .. tip:: 61 | 62 | Always build for Xenomai on the Xenomai computer : 63 | ``echo 'export OROCOS_TARGET=xenomai' >> ~/.bashrc`` 64 | 65 | .. note:: 66 | 67 | Libraries built with xenomai will have *-xenomai.so* appended to the library name (ex ``libmycontroller-xenomai.so``) 68 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/run.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /docs/source/adv-tutos/ccache-distcc.rst: -------------------------------------------------------------------------------- 1 | Compile faster with Ccache and Distcc 2 | ===================================== 3 | 4 | * ccache : https://ccache.samba.org/ 5 | * distcc : https://github.com/distcc/distcc 6 | 7 | .. note:: You need to be connected to a high speed network to actually improve your build time 8 | 9 | Installation on hosts and clients 10 | --------------------------------- 11 | 12 | .. code-block:: bash 13 | 14 | sudo apt install distcc* ccache distccmon-gnome 15 | 16 | Build server configuration 17 | -------------------------- 18 | 19 | On every build computer, you need to install ``distcc`` and ``ccache`` and update the configuration : 20 | 21 | .. code-block:: bash 22 | 23 | sudo nano /etc/default/distcc 24 | 25 | Then set he following variables : 26 | 27 | .. code-block:: bash 28 | 29 | STARTDISTCC="true" 30 | 31 | # 32 | # Which networks/hosts should be allowed to connect to the daemon? 33 | # You can list multiple hosts/networks separated by spaces. 34 | # Networks have to be in CIDR notation, f.e. 192.168.1.0/24 35 | # Hosts are represented by a single IP Adress 36 | # 37 | # ALLOWEDNETS="127.0.0.1" 38 | # This means allow from myself and computers from 192.168.1.0 to 192.168.1.255 39 | ALLOWEDNETS="127.0.0.1 192.168.1.0/24" 40 | 41 | Restart the distcc deamon and you are all setup ! ``sudo service distcc restart``. 42 | 43 | Client configuration 44 | -------------------- 45 | 46 | .. code-block:: bash 47 | 48 | export CCACHE_PREFIX="distcc" 49 | # Use gcc 4.8 on 14.04 50 | export CC="ccache gcc-4.8" CXX="ccache g++-4.8" 51 | # Use gcc 5 on 16.04 52 | export CC="ccache gcc-5" CXX="ccache g++-5" 53 | # If you want only distcc use this 54 | #export CC="distcc gcc-4.8" CXX="distcc g++-4.8" 55 | #export CC="distcc gcc-5" CXX="distcc g++-5" 56 | 57 | # List here all the known distcc servers/number of threads 58 | export DISTCC_HOSTS='localhost/4 kuka-viz/6 kuka-viz2/6' 59 | 60 | 61 | .. code-block:: bash 62 | 63 | # Build your workspace with 64 | catkin build -p$(distcc -j) -j$(distcc -j) --no-jobserver 65 | 66 | .. tip:: Put this alias in your ``~/.bashrc``: ``alias cdistcc="catkin build -p$(distcc -j) -j$(distcc -j) --no-jobserver"`` 67 | 68 | .. warning:: The command in ``CC`` and ``CXX`` are the **commands sent** over the network. In order to avoid compiler conflicts, put the compiler version (ex: ``gcc-4.8``) ! 69 | 70 | 71 | Building a catkin workspace with Distcc 72 | --------------------------------------- 73 | 74 | If you've already built your workspace without distcc, you'll need to **clean** it first `catkin clean -y`. 75 | Then, verify you have the variables set correctly (as above) : ``echo $CXX && echo $CC``. 76 | 77 | Now you can use ``catkin build -p$(distcc -j) -j$(distcc -j) --no-jobserver`` to build your workspace. 78 | 79 | .. tip:: You can use ``distccmon-gnome`` to visualize the distribution. 80 | 81 | .. image:: /_static/distcc.png 82 | -------------------------------------------------------------------------------- /lwr_description/urdf/ati_sensor.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 19 | 21 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 57 | 59 | 66 | 67 | 68 | 71 | 72 | 73 | 74 | 76 | 78 | 79 | 80 | 81 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io 2 | 3 | ### ROS ### 4 | build/ 5 | bin/ 6 | lib/ 7 | msg_gen/ 8 | srv_gen/ 9 | msg/*Action.msg 10 | msg/*ActionFeedback.msg 11 | msg/*ActionGoal.msg 12 | msg/*ActionResult.msg 13 | msg/*Feedback.msg 14 | msg/*Goal.msg 15 | msg/*Result.msg 16 | msg/_*.py 17 | 18 | # Generated by dynamic reconfigure 19 | *.cfgc 20 | /cfg/cpp/ 21 | /cfg/*.py 22 | 23 | # Ignore generated docs 24 | *.dox 25 | *.wikidoc 26 | 27 | # eclipse stuff 28 | .project 29 | .cproject 30 | 31 | # qcreator stuff 32 | CMakeLists.txt.user 33 | 34 | srv/_*.py 35 | *.pcd 36 | *.pyc 37 | qtcreator-* 38 | *.user 39 | 40 | /planning/cfg 41 | /planning/docs 42 | /planning/src 43 | 44 | *~ 45 | 46 | # Emacs 47 | .#* 48 | 49 | # Catkin custom files 50 | #CATKIN_IGNORE 51 | 52 | 53 | ### C++ ### 54 | # Compiled Object files 55 | *.slo 56 | *.lo 57 | *.o 58 | *.obj 59 | 60 | # Precompiled Headers 61 | *.gch 62 | *.pch 63 | 64 | # Compiled Dynamic libraries 65 | *.so 66 | *.dylib 67 | *.dll 68 | 69 | # Fortran module files 70 | *.mod 71 | 72 | # Compiled Static libraries 73 | *.lai 74 | *.la 75 | *.a 76 | *.lib 77 | 78 | # Executables 79 | *.exe 80 | *.out 81 | *.app 82 | 83 | 84 | ### Python ### 85 | # Byte-compiled / optimized / DLL files 86 | __pycache__/ 87 | *.py[cod] 88 | 89 | # C extensions 90 | *.so 91 | 92 | # Distribution / packaging 93 | .Python 94 | env/ 95 | build/ 96 | develop-eggs/ 97 | dist/ 98 | downloads/ 99 | eggs/ 100 | .eggs/ 101 | lib/ 102 | lib64/ 103 | parts/ 104 | sdist/ 105 | var/ 106 | *.egg-info/ 107 | .installed.cfg 108 | *.egg 109 | 110 | # PyInstaller 111 | # Usually these files are written by a python script from a template 112 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 113 | *.manifest 114 | *.spec 115 | 116 | # Installer logs 117 | pip-log.txt 118 | pip-delete-this-directory.txt 119 | 120 | # Unit test / coverage reports 121 | htmlcov/ 122 | .tox/ 123 | .coverage 124 | .coverage.* 125 | .cache 126 | nosetests.xml 127 | coverage.xml 128 | *,cover 129 | 130 | # Translations 131 | *.mo 132 | *.pot 133 | 134 | # Django stuff: 135 | *.log 136 | 137 | # Sphinx documentation 138 | docs/_build/ 139 | 140 | # PyBuilder 141 | target/ 142 | 143 | 144 | ### KDevelop4 ### 145 | *.kdev4 146 | .kdev4/ 147 | 148 | 149 | ### Qt ### 150 | # C++ objects and libs 151 | 152 | *.slo 153 | *.lo 154 | *.o 155 | *.a 156 | *.la 157 | *.lai 158 | *.so 159 | *.dll 160 | *.dylib 161 | 162 | # Qt-es 163 | 164 | /.qmake.cache 165 | /.qmake.stash 166 | *.pro.user 167 | *.pro.user.* 168 | *.qbs.user 169 | *.qbs.user.* 170 | *.moc 171 | moc_*.cpp 172 | qrc_*.cpp 173 | ui_*.h 174 | # Makefile* 175 | *-build-* 176 | 177 | # QtCreator 178 | 179 | *.autosave 180 | 181 | #QtCtreator Qml 182 | *.qmlproject.user 183 | *.qmlproject.user.* 184 | 185 | 186 | ### CMake ### 187 | CMakeCache.txt 188 | CMakeFiles 189 | # Makefile 190 | cmake_install.cmake 191 | install_manifest.txt 192 | 193 | 194 | ### Linux ### 195 | *~ 196 | 197 | # KDE directory preferences 198 | .directory 199 | 200 | # Linux trash folder which might appear on any partition or disk 201 | .Trash-* 202 | 203 | .tb_history 204 | 205 | \.DS_Store 206 | -------------------------------------------------------------------------------- /lwr_utils/launch/spawn_robot.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 55 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /docs/source/install/test-install.rst: -------------------------------------------------------------------------------- 1 | Test your installation 2 | ====================== 3 | 4 | We're gonna test a few components to make sure everything is working correctly. 5 | 6 | * The ``catkin build`` during install command has no errors 7 | * Gazebo starts normally 8 | * lwr_utils starts normally 9 | * Gazebo inside orocos (embedded) starts normally 10 | 11 | .. important:: 12 | 13 | The Gazebo server in the final setup is launched **inside** the ``gazebo`` component (that you can see if you type ``ls``). 14 | You **will not** be able to launch gazebo separately, it has to be instanciated inside the orocos deployer via this method. 15 | This component is provided by the `rtt_gazebo_embedded `_ package. 16 | 17 | Making sure everything is built 18 | ------------------------------- 19 | 20 | Every one of these commands should provide no errors (all green). 21 | 22 | .. code-block:: bash 23 | 24 | # Orocos Toolchain 2.9 25 | catkin build -s -w ~/isir/orocos-2.9_ws 26 | # Orocos-ROS bridge 27 | catkin build -s -w ~/isir/rtt_ros-2.9_ws 28 | # Rtt lwr 29 | catkin build -s -w ~/isir/lwr_ws 30 | 31 | 32 | Gazebo 33 | ------ 34 | Gazebo needs to get some models at the first launch, so in a terminal type : 35 | 36 | .. code:: 37 | 38 | gzserver --verbose 39 | 40 | .. image:: /_static/gzserver.png 41 | 42 | Then ``ctrl+C`` to close it and type : 43 | 44 | .. code:: 45 | 46 | gazebo 47 | 48 | .. image:: /_static/gazebo.png 49 | 50 | 51 | Gazebo-ROS 52 | ---------- 53 | 54 | Gazebo with ROS plugin 55 | ~~~~~~~~~~~~~~~~~~~~~~ 56 | 57 | Start the roscore : ``roscore`` 58 | 59 | Close any instance of gazebo running, and then launch gazebo with the ros plugins : 60 | 61 | .. code-block:: ruby 62 | 63 | gazebo -s libgazebo_ros_paths_plugin.so -s libgazebo_ros_api_plugin.so --verbose 64 | 65 | Upload the robot's URDF 66 | ~~~~~~~~~~~~~~~~~~~~~~~ 67 | 68 | .. code-block:: ruby 69 | 70 | roslaunch lwr_description lwr_upload.launch 71 | # you can also pass load_ati_sensor:=true load_handle:=true load_base:=true 72 | 73 | .. note:: If the ROS API is loaded correctly, this command should exit immediately 74 | 75 | Spawn to robot into Gazebo 76 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | 78 | .. code:: 79 | 80 | roslaunch lwr_utils spawn_robot.launch robot_name:=lwr_sim 81 | 82 | .. note:: If the model has been correctly uploaded, this command should also exit immediately 83 | 84 | .. image:: /_static/gazebo-lwr.png 85 | 86 | 87 | Gazebo inside the OROCOS Deployer 88 | --------------------------------- 89 | 90 | .. important:: 91 | 92 | **Close** all previous nodes, roscore, deployers, windows etc, and start the main deployer with gazebo. 93 | 94 | Now gazebo is launched **inside** the orocos deployer ! 95 | 96 | .. code-block:: ruby 97 | 98 | roslaunch lwr_utils run.launch sim:=true 99 | # this launches gazebo inside the orocos deployer 100 | 101 | .. note:: 102 | 103 | You can see the robot in the gazebo gui because the model is spawned into gazebo via the main launch file. 104 | Still, it has no interface to send commands, what we'll do in the next step. 105 | 106 | Now type : 107 | 108 | .. code-block:: ruby 109 | 110 | # Load the lwr interface in the deployer 111 | loadRobot(getRobotName(), isSim(), true) 112 | # Let it load, then print the components : 113 | ls 114 | 115 | You should see all the components ``running [R]`` : 116 | 117 | .. image:: /_static/test-rtt-lwr.png 118 | -------------------------------------------------------------------------------- /docs/source/tutos/controller-tuto.rst: -------------------------------------------------------------------------------- 1 | Create your first OROCOS controller 2 | =================================== 3 | 4 | Using ``lwr_create_pkg`` 5 | ------------------------ 6 | 7 | Using the lwr_project_creator utility, we can generate a (very) simple controller for our robot. 8 | 9 | Generate the controller 10 | ~~~~~~~~~~~~~~~~~~~~~~~ 11 | 12 | .. code-block:: bash 13 | 14 | mkdir -p ~/catkin_ws/src 15 | cd ~/catkin_ws/src 16 | lwr_create_pkg my_controller -c MyController 17 | 18 | cd ~/catkin_ws 19 | chmod a+x ~/isir/lwr_ws/install/env.sh 20 | catkin config --init --extend ~/isir/lwr_ws/install 21 | 22 | 23 | Build the controller 24 | ~~~~~~~~~~~~~~~~~~~~ 25 | 26 | .. image:: /_static/run_example.png 27 | 28 | .. code-block:: bash 29 | 30 | cd ~/catkin_ws 31 | catkin build 32 | # add the controller to the ros package path 33 | source ~/catkin_ws/devel/setup.bash 34 | 35 | Launch it : 36 | 37 | .. code-block:: bash 38 | 39 | roslaunch my_controller run.launch sim:=true 40 | 41 | 42 | .. image:: /_static/run_example2.png 43 | 44 | General note on controllers 45 | --------------------------- 46 | 47 | This generated controller is "kuka-lwr-free" and as a general rule you should avoid to include kuka-lwr stuff in your code. 48 | 49 | You should just see the robot as an ***Effort interface***,i.e, you should only listen to the current state (q,qdot) and publish torques. 50 | 51 | **Recommended** ports are : 52 | 53 | .. code-block:: bash 54 | 55 | Robot input / Controller output: - JointTorqueCommand 56 | - (JointPositionCommand) 57 | 58 | Robot Output / Controller intput: - JointPosition 59 | - JointVelocity 60 | - (JointTorque) 61 | 62 | 63 | 64 | The complete list of LWR ports : 65 | 66 | .. code-block:: bash 67 | 68 | curl --silent https://raw.githubusercontent.com/kuka-isir/lwr_hardware/master/lwr_fri/src/FRIComponent.cpp | grep -oP 'addPort\( *\"\K\w+' 69 | 70 | 71 | .. code-block:: bash 72 | 73 | CartesianImpedanceCommand 74 | CartesianWrenchCommand 75 | CartesianPositionCommand 76 | JointImpedanceCommand 77 | JointPositionCommand 78 | JointTorqueCommand --> To Controller 79 | toKRL --> KRL Tool 80 | KRL_CMD --> KRL Tool 81 | fromKRL --> KRL Tool 82 | CartesianWrench 83 | RobotState --> KRL Tool 84 | FRIState --> KRL Tool 85 | JointVelocity --> To Controller 86 | CartesianVelocity 87 | CartesianPosition 88 | MassMatrix 89 | Jacobian 90 | JointTorque --> To Controller 91 | JointTorqueAct 92 | GravityTorque 93 | JointPosition --> To Controller 94 | JointPositionFRIOffset 95 | 96 | 97 | The controller uses `rtt_ros_kdl_tools::ChainUtils `_ to create an "arm" object. 98 | This arm loads the robot_description from the ROS parameter server (you can use the provided launch file that helps you start everything), then create a few KDL chain, solvers etc to compute forward kinematics, jacobians etc. 99 | 100 | Functions available can be found `here `_. 101 | 102 | Inverse Kinematics is included in ChainUtils via `Trac IK `_ . 103 | -------------------------------------------------------------------------------- /lwr_utils/scripts/rtnet: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ### BEGIN INIT INFO 3 | # Provides: rtnet_kuka 4 | # Required-Start: $local_fs 5 | # Required-Stop: $local_fs 6 | # Default-Start: 2 3 4 5 7 | # Default-Stop: 0 1 6 8 | # X-Interactive: false 9 | # Short-Description: Starts RTNet components for the Kuka LWR 10 | # Description: Start/stop RTNet components for the Kuka LWR 4+ at ISIR 11 | ### END INIT INFO 12 | 13 | VERT="\\033[1;32m" 14 | NORMAL="\\033[0;39m" 15 | NC='\033[0m' 16 | ROUGE="\\033[1;31m" 17 | ROSE="\\033[1;35m" 18 | BLEU="\\033[1;34m" 19 | BLANC="\\033[0;02m" 20 | BLANCLAIR="\\033[1;08m" 21 | JAUNE="\\033[1;33m" 22 | CYAN="\\033[1;36m" 23 | 24 | SLAVES="192.168.100.102 192.168.100.103" 25 | SLAVES_NAMES="Kuka ATISensor" 26 | ### Xenomai 2+RTNET 27 | prefix="/usr/local/rtnet" 28 | prefix_bin="${prefix}/sbin" 29 | modules_dir="modules" 30 | RTNETCFG="${prefix}/etc/rtnet.conf" 31 | 32 | bringup_slave() 33 | { 34 | slave=$1 35 | slave_name=$2 36 | slave_number=$3 37 | sleep_time_s=1.0 38 | max_trials=10 39 | rc=0 40 | count=$max_trials # Maximum number to try. 41 | while [ $count -ne 0 ] ; do 42 | sudo ${prefix_bin}/rtroute solicit $slave dev rteth0 #$slave_number 43 | sudo ${prefix_bin}/rtping -c 1 $slave # Try once. 44 | rc=$? 45 | if [ $rc -eq 0 ] ; then 46 | count=1 # If okay, flag to exit loop. 47 | else 48 | echo -e "$BLANC" "Remaining trials $count for $slave_name ${NC}" 49 | fi 50 | count=$((count - 1)) # So we don't go forever. 51 | sleep $sleep_time_s 52 | done 53 | 54 | if [ $rc -eq 0 ] ; then # Make final determination. 55 | echo -e "$VERT" "$slave_name is connected. ${NC}" 56 | else 57 | echo -e "$ROUGE" "$slave_name timed out. Please start again if $slave_name is plugged in. ${NC}" 58 | fi 59 | } 60 | 61 | do_start() 62 | { 63 | echo "Starting RealTime Network"; 64 | 65 | # Read the config file 66 | if [ -r $RTNETCFG ]; then 67 | . $RTNETCFG 68 | else 69 | echo -e "$ROUGE" "Could not read $RTNETCFG ${NC}" 70 | exit 1 71 | fi 72 | 73 | sudo modprobe -r ${RT_DRIVER#$"rt_"} 74 | #cd ${prefix}/sbin/ 75 | sudo ${prefix_bin}/rtnet start 76 | sleep 0.5 77 | 78 | # Bring up connection 79 | #i=0 80 | #rc=0 81 | #for SLAVE in $SLAVES; do 82 | # sudo ${prefix_bin}/rtifconfig rteth$i up $IPADDR netmask $NETMASK 83 | # #${prefix_bin}/rtroute solicit $SLAVE dev rteth$i 84 | # i=$((i+1)) 85 | # done 86 | 87 | # Wait until connection is good for all slaves 88 | i=0 89 | names=($SLAVES_NAMES) 90 | for SLAVE in $SLAVES; do 91 | #echo "${prefix_bin}/rtroute solicit $SLAVE dev rteth$i" 92 | sudo ${prefix_bin}/rtifconfig rteth$i up $IPADDR netmask $NETMASK 93 | bringup_slave $SLAVE ${names[$i]} $i & 94 | i=$((i+1)) 95 | done 96 | 97 | } 98 | 99 | do_stop() 100 | { 101 | echo "Stoping RealTime Network"; 102 | cd ${prefix}/sbin/ 103 | sudo ${prefix_bin}/rtnet stop 104 | } 105 | 106 | 107 | case "$1" in 108 | start) 109 | do_start 110 | ;; 111 | stop) 112 | do_stop 113 | ;; 114 | restart|reload|condrestart) 115 | do_stop 116 | do_start 117 | ;; 118 | *) 119 | echo $"Usage: $0 {start|stop|restart|reload|status}" 120 | exit 1 121 | esac 122 | exit 0 123 | -------------------------------------------------------------------------------- /lwr_moveit_config/config/ompl_planning.yaml: -------------------------------------------------------------------------------- 1 | planner_configs: 2 | SBLkConfigDefault: 3 | type: geometric::SBL 4 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() 5 | ESTkConfigDefault: 6 | type: geometric::EST 7 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0 setup() 8 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 9 | LBKPIECEkConfigDefault: 10 | type: geometric::LBKPIECE 11 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() 12 | border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 13 | min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 14 | BKPIECEkConfigDefault: 15 | type: geometric::BKPIECE 16 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() 17 | border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 18 | failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 19 | min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 20 | KPIECEkConfigDefault: 21 | type: geometric::KPIECE 22 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() 23 | goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 24 | border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 (0.0,1.] 25 | failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 26 | min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 27 | RRTkConfigDefault: 28 | type: geometric::RRT 29 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() 30 | goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 31 | RRTConnectkConfigDefault: 32 | type: geometric::RRTConnect 33 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() 34 | RRTstarkConfigDefault: 35 | type: geometric::RRTstar 36 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() 37 | goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 38 | delay_collision_checking: 1 # Stop collision checking as soon as C-free parent found. default 1 39 | TRRTkConfigDefault: 40 | type: geometric::TRRT 41 | range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() 42 | goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 43 | max_states_failed: 10 # when to start increasing temp. default: 10 44 | temp_change_factor: 2.0 # how much to increase or decrease temp. default: 2.0 45 | min_temperature: 10e-10 # lower limit of temp change. default: 10e-10 46 | init_temperature: 10e-6 # initial temperature. default: 10e-6 47 | frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() 48 | frountierNodeRatio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 49 | k_constant: 0.0 # value used to normalize expresssion. default: 0.0 set in setup() 50 | PRMkConfigDefault: 51 | type: geometric::PRM 52 | max_nearest_neighbors: 10 # use k nearest neighbors. default: 10 53 | PRMstarkConfigDefault: 54 | type: geometric::PRMstar 55 | arm: 56 | planner_configs: 57 | - SBLkConfigDefault 58 | - ESTkConfigDefault 59 | - LBKPIECEkConfigDefault 60 | - BKPIECEkConfigDefault 61 | - KPIECEkConfigDefault 62 | - RRTkConfigDefault 63 | - RRTConnectkConfigDefault 64 | - RRTstarkConfigDefault 65 | - TRRTkConfigDefault 66 | - PRMkConfigDefault 67 | - PRMstarkConfigDefault 68 | projection_evaluator: joints(joint_0,joint_1) 69 | longest_valid_segment_fraction: 0.005 70 | -------------------------------------------------------------------------------- /docs/source/tutos/getting-started.rst: -------------------------------------------------------------------------------- 1 | Getting started with rtt_lwr 2.0 2 | ================================ 3 | 4 | The main launch file 5 | -------------------- 6 | 7 | In lwr_utils, you'll find the main roslaunch to deploy the components : 8 | 9 | .. code-block:: ruby 10 | 11 | roslaunch lwr_utils run.launch sim:=true launch_gazebo:=true 12 | 13 | 14 | .. image:: /_static/main_launch.png 15 | :alt: Simple run.launch without arguments 16 | 17 | This uploads the ``robot description`` (tools accessible via ``load_*:=true`` arguments), the ``robot_state_publisher`` ( the ``joint_state_publisher`` is done by an orocos component called ``rtt_state_publisher``), the service to spawn the robot on gazebo and a few parameters to get the robot name, namespace, tf_prefix etc. 18 | 19 | By default, this passes the **utils.ops script** that contains a bunch of useful functions to load the robot and a few components that comes with rtt_lwr. This script is located at ``$(rospack find lwr_utils)/scripts/utils.ops``. You can change the script loaded by ``run.launch`` via the **ops_script:=** argument. 20 | 21 | Later on, you're gonna pass your own customized script as argument : 22 | ``touch my_script.ops && nano my_script.ops`` and ``run.launch ops_script:=/path/to/my_script.ops`` 23 | 24 | .. code-block:: ruby 25 | 26 | import("rtt_rospack") 27 | runScript(ros.find("lwr_utils") + "/scripts/utils.ops") 28 | 29 | # loadRobot(getRobotName(),isSim(),true) 30 | # .... 31 | # Your own functions ! 32 | 33 | 34 | Writing your own deployment script (ops file) 35 | --------------------------------------------- 36 | 37 | A typical sequence for deploying components would be : 38 | 39 | .. code-block:: ruby 40 | 41 | # Load rospack to find packages in the ros workspace 42 | import("rtt_rospack") 43 | # Load the utility script into the deployer 44 | runScript(ros.find("lwr_utils")+"/scripts/utils.ops") 45 | # Load the robot 46 | loadRobot(getRobotName(),isSim(),true) 47 | # Load the state publisher for rviz visualization 48 | loadStatePublisher(true) 49 | 50 | # Then you can load your component, connect it etc. 51 | 52 | .. note:: 53 | 54 | Instead of creating everything **by hand**, please follow the `Controller Tutorial `_ and generate a sample project. 55 | 56 | Available global functions : 57 | 58 | .. code-block:: ruby 59 | 60 | curl --silent https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/scripts/utils.ops | grep global 61 | 62 | .. code-block:: ruby 63 | 64 | global string getRobotName() 65 | global string getRobotNs() 66 | global string getTfPrefix() 67 | global bool isSim() 68 | global bool setRobotInitialJointConfiguration(double q0,double q1,double q2,double q3,double q4,double q5,double q6) 69 | global string loadKRLTool(bool start_component) 70 | global void setJointTorqueControlMode() 71 | global void setCartesianImpedanceControlMode() 72 | global void setJointImpedanceControlMode() 73 | global bool importRequiredPackages() 74 | global bool connectPortsFromList(string controller_name,string robot_name,strings ports_list ,ConnPolicy cp) 75 | global bool connectStandardPorts(string controller_name,string robot_name, ConnPolicy cp) 76 | global bool connectLWRPorts(string controller_name,string robot_name, ConnPolicy cp) 77 | global bool connectAllPorts(string controller_name,string robot_name, ConnPolicy cp) 78 | global string loadStatePublisher(bool start_component) 79 | global string loadConman() 80 | global bool addComponentToStateEstimation(string component_name) 81 | global bool addRobotToConman(string component_name) 82 | global bool addControllerToConman(string component_name) 83 | global string loadFBSched() 84 | global bool addControllerToFBSched(string component_name) 85 | global void generateGraph() 86 | global string loadJointTrajectoryGeneratorKDL(bool start_component) 87 | global string loadROSControl(bool start_component) 88 | global string getAtiFTSensorDataPort() 89 | global bool connectToAtiFTSensorPort(string comp_name,string port_name,ConnPolicy cp) 90 | global string loadAtiFTSensor(bool start_component) 91 | global string loadRobot(string robot_name,bool is_sim,bool start_component) 92 | -------------------------------------------------------------------------------- /lwr_moveit_config/launch/move_group.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /lwr_description/robots/kuka_lwr.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | -------------------------------------------------------------------------------- /lwr_utils/launch/run.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /lwr_description/urdf/lwr.transmission.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | transmission_interface/SimpleTransmission 9 | 10 | EffortJointInterface 11 | PositionJointInterface 12 | 13 | 14 | EffortJointInterface 15 | PositionJointInterface 16 | 1 17 | 18 | 19 | 20 | 21 | transmission_interface/SimpleTransmission 22 | 23 | EffortJointInterface 24 | PositionJointInterface 25 | 26 | 27 | EffortJointInterface 28 | PositionJointInterface 29 | 1 30 | 31 | 32 | 33 | 34 | transmission_interface/SimpleTransmission 35 | 36 | EffortJointInterface 37 | PositionJointInterface 38 | 39 | 40 | EffortJointInterface 41 | PositionJointInterface 42 | 1 43 | 44 | 45 | 46 | 47 | transmission_interface/SimpleTransmission 48 | 49 | EffortJointInterface 50 | PositionJointInterface 51 | 52 | 53 | EffortJointInterface 54 | PositionJointInterface 55 | 1 56 | 57 | 58 | 59 | 60 | transmission_interface/SimpleTransmission 61 | 62 | EffortJointInterface 63 | PositionJointInterface 64 | 65 | 66 | EffortJointInterface 67 | PositionJointInterface 68 | 1 69 | 70 | 71 | 72 | 73 | transmission_interface/SimpleTransmission 74 | 75 | EffortJointInterface 76 | PositionJointInterface 77 | 78 | 79 | EffortJointInterface 80 | PositionJointInterface 81 | 1 82 | 83 | 84 | 85 | 86 | transmission_interface/SimpleTransmission 87 | 88 | EffortJointInterface 89 | PositionJointInterface 90 | 91 | 92 | EffortJointInterface 93 | PositionJointInterface 94 | 1 95 | 96 | 97 | 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /docs/source/install/install-18.04-melodic.rst: -------------------------------------------------------------------------------- 1 | Installation on Ubuntu 18.04 2 | ============================ 3 | 4 | ROS Melodic ++ 5 | -------------- 6 | 7 | From http://wiki.ros.org/melodic/Installation/Ubuntu 8 | 9 | Required tools 10 | ~~~~~~~~~~~~~~ 11 | 12 | .. code-block:: bash 13 | 14 | sudo sh -c "echo 'deb http://packages.ros.org/ros/ubuntu $(lsb_release -cs) main' > /etc/apt/sources.list.d/ros-latest.list" 15 | wget http://packages.ros.org/ros.key -O - | sudo apt-key add - 16 | sudo apt update 17 | sudo apt install python-rosdep python-catkin-tools ros-melodic-catkin python-wstool python-vcstool 18 | 19 | Fix Locales 20 | ~~~~~~~~~~~ 21 | 22 | .. code-block:: bash 23 | 24 | sudo locale-gen en_US #warnings might occur 25 | sudo locale-gen en_US.UTF-8 26 | sudo nano /etc/environment 27 | # put theses lines 28 | LANGUAGE=en_US 29 | LC_ALL=en_US 30 | # Reboot ! 31 | 32 | If you type ``perl`` you should not see any warnings. 33 | 34 | ROS Melodic Desktop Full 35 | ~~~~~~~~~~~~~~~~~~~~~~~~ 36 | 37 | .. code-block:: bash 38 | 39 | sudo apt install ros-melodic-desktop-full 40 | 41 | After Install 42 | ~~~~~~~~~~~~~ 43 | 44 | .. code-block:: bash 45 | 46 | # Load The environment 47 | source /opt/ros/melodic/setup.bash 48 | # Update ROSdep (to get dependencies automatically) 49 | sudo rosdep init 50 | rosdep update 51 | 52 | 53 | MoveIt! (via debians) 54 | ~~~~~~~~~~~~~~~~~~~~~ 55 | 56 | .. code-block:: bash 57 | 58 | # MoveIt! 59 | sudo apt install ros-melodic-moveit 60 | 61 | OROCOS 2.9 + rtt_ros_integration 2.9 (from source) 62 | -------------------------------------------------- 63 | 64 | OROCOS toolchain 2.9 65 | ~~~~~~~~~~~~~~~~~~~~ 66 | 67 | .. code-block:: bash 68 | 69 |   mkdir ~/isir ; cd ~/isir 70 |   mkdir -p orocos-2.9_ws/src 71 | cd orocos-2.9_ws/src 72 | # Get all the packages 73 | wstool init 74 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/orocos_toolchain-2.9.rosinstall 75 | wstool update -j2 76 | # Get the latest updates (OPTIONAL) 77 | cd orocos_toolchain 78 | git submodule foreach git checkout toolchain-2.9 79 | git submodule foreach git pull 80 | # Configure the workspace 81 | cd ../../ 82 | # Install dependencies 83 | source /opt/ros/melodic/setup.bash 84 | rosdep install --from-paths src --ignore-src --rosdistro melodic -y -r 85 | catkin config --init --install --extend /opt/ros/melodic/ --cmake-args -DCMAKE_BUILD_TYPE=Release 86 | # Build 87 | catkin build 88 | 89 | rtt_ros_integration 2.9 90 | ~~~~~~~~~~~~~~~~~~~~~~~ 91 | 92 | .. code-block:: bash 93 | 94 | cd ~/isir 95 | mkdir -p rtt_ros-2.9_ws/src 96 | cd rtt_ros-2.9_ws/src 97 | # Get all the packages 98 | wstool init 99 | wstool merge https://github.com/kuka-isir/rtt_lwr/raw/rtt_lwr-2.0/lwr_utils/config/rtt_ros_integration-2.9.rosinstall 100 | wstool update -j2 101 | # Configure the workspace 102 | cd ../ 103 | # Install dependencies 104 | source ~/isir/orocos-2.9_ws/install/setup.bash 105 | rosdep install --from-paths src --ignore-src --rosdistro melodic -y -r 106 | catkin config --init --install --extend ~/isir/orocos-2.9_ws/install --cmake-args -DCMAKE_BUILD_TYPE=Release 107 | # Build (this can take a while) 108 | catkin build 109 | 110 | ROS Control 111 | ----------- 112 | 113 | This allows you to use MoveIt! or just the ros_control capabilities in an orocos environnement. Let's install everything : 114 | 115 | .. code-block:: bash 116 | 117 | sudo apt install ros-melodic-ros-control* ros-melodic-control* 118 | 119 | RTT LWR packages 120 | ---------------- 121 | 122 | .. code-block:: bash 123 | 124 | mkdir -p ~/isir/lwr_ws/src/ 125 | cd ~/isir/lwr_ws/src 126 | # Get all the packages 127 | wstool init 128 | # Get rtt_lwr 'base' 129 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/rtt_lwr.rosinstall 130 | # Get the extra packages 131 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/rtt_lwr-extras.rosinstall 132 | 133 | # Download 134 | wstool update -j2 135 | 136 | Cart Opt Ctrl 137 | ~~~~~~~~~~~~~ 138 | 139 | Experimental optimisation based controller : 140 | 141 | .. code-block:: bash 142 | 143 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/rtt_lwr-full.rosinstall 144 | wstool update 145 | 146 | Install dependencies 147 | ~~~~~~~~~~~~~~~~~~~~ 148 | 149 | .. code-block:: bash 150 | 151 | # If you compiled rtt_ros from sources 152 | source ~/isir/rtt_ros-2.9_ws/install/setup.bash 153 | # Use rosdep tool 154 | rosdep install --from-paths ~/isir/lwr_ws/src --ignore-src --rosdistro melodic -y -r 155 | 156 | Configure the workspace 157 | ~~~~~~~~~~~~~~~~~~~~~~~ 158 | 159 | .. code-block:: bash 160 | 161 | cd ~/isir/lwr_ws 162 | catkin config --init --install --extend ~/isir/rtt_ros-2.9_ws/install --cmake-args -DCMAKE_BUILD_TYPE=Release 163 | 164 | Build the workspace 165 | ~~~~~~~~~~~~~~~~~~~ 166 | 167 | Let's build the entire workspace : 168 | 169 | .. code-block:: bash 170 | 171 | catkin build --workspace ~/isir/lwr_ws 172 | 173 | .. image:: /_static/catkin-build.png 174 | 175 | Once it's done, load the workspace : 176 | 177 | .. code-block:: bash 178 | 179 | source ~/isir/lwr_ws/install/setup.bash 180 | 181 | .. tip:: Put it in you bashrc : ``echo 'source ~/isir/lwr_ws/install/setup.bash' >> ~/.bashrc`` 182 | 183 | Now we can :doc:`test the installation `. 184 | -------------------------------------------------------------------------------- /lwr_description/meshes/lwr/link0.dae: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | VCGLab 6 | VCGLib | MeshLab 7 | 8 | mer. mars 18 13:21:29 2015 GMT 9 | mer. mars 18 13:21:29 2015 GMT 10 | Y_UP 11 | 12 | 13 | 14 | 15 | 16 | -0.0795108 -0.0583155 0.0575083 -0.0795 -0.0589997 0.0549997 0.0792141 -0.0169452 1.34418e-08 0.075232 -0.0300237 -1.60978e-07 0.0718346 0.00139989 -3.90339e-06 0.0772468 0.00272487 -9.5224e-07 0.0810963 0.00281791 1.42336e-05 0.0795979 -0.015217 0.0058101 0.0755246 -0.0297125 0.00557924 0.0812109 -0.000786835 0.00592858 0.0608975 -0.053419 -1.87788e-07 0.0667734 -0.0458436 0.00660293 0.068938 -0.0425143 -2.86549e-07 -0.0809984 -0.0574924 0.0583407 0.0528212 -0.0616446 0.00635043 -0.081 -0.054 0.0585 -0.0795 0.0589997 0.0549997 -0.0254084 0.0768337 0.00666915 -0.0107131 0.0804041 0.00584098 -0.0794597 0.0583099 0.057533 -0.0810004 0.0574029 0.0589861 -0.0686293 -0.042884 2.36e-06 -0.0777424 -0.0224471 1.11431e-05 -0.0795132 -0.0550299 0.00601558 -0.0269843 -0.076373 0 -0.0395016 -0.0707129 -4.04299e-08 -0.0543545 -0.0603056 -2.12395e-06 -0.0137489 -0.0798258 -1.29631e-08 -0.0795 -0.0589997 0.0109997 -0.0256827 -0.0768048 0.00658394 0.0786066 0.0195304 0.00699203 0.0773385 0.0239742 -3.66935e-08 0.00686926 0.0807082 0 -0.00686926 0.0807082 0 0.00783431 0.080804 0.00580275 -0.0333767 0.0738035 1.2229e-09 -0.079497 0.0589984 0.00959806 -0.0205265 0.0783175 -2.83107e-07 0.0395097 -0.0707109 -3.20769e-09 0.041102 -0.0698424 0.00571969 0.0508502 -0.06304 -1.4042e-07 0.0385297 -0.0680977 -3.99261e-06 0.0269843 -0.076373 0 -0.081 -0.0107949 0.00520527 -0.081 -0.0300788 0.00749993 -0.0809996 -0.0575783 0.00762855 -0.080927 -0.00343764 0 -0.081 0.00810571 0.00474043 -0.0795962 0.0170172 -1.69615e-08 -0.0810001 0.0574688 0.00756726 -0.056138 0.0583954 -7.76431e-08 -0.0391899 0.0680632 -3.94245e-06 -0.0458816 0.0667879 -7.1906e-07 -0.070606 0.0398715 -1.30201e-06 -0.0795095 0.0554119 0.00601792 0.0721741 0.0370709 0.00631778 0.0101171 -0.0803821 0.00666675 0.0275983 -0.0763177 0.00544861 0.0135154 -0.0798422 5.50803e-09 0 -0.081 0 -0.0114059 -0.0803734 0.00633689 0.0329536 0.073946 3.56716e-07 0.0288814 0.075764 0.00690273 0.0197367 0.0785688 -9.78923e-07 0.0608397 0.0534741 3.50598e-06 0.0457946 0.0667041 1.59304e-06 0.0720314 0.0371225 -1.38937e-06 0.0408533 0.0695261 0.00690537 0.0456667 0.0671534 0.00539317 0.0612408 0.0531352 0.00669183 0.0361739 0.0478688 0.1195 -0.028377 -0.052866 0.1195 -0.016963 -0.057552 0.1195 -0.056214 -0.0209758 0.1195 -0.0593159 -0.00903398 0.1195 0.052117 -0.0297279 0.1195 0.035851 -0.048111 0.1195 -0.0579698 0.015475 0.1195 -0.0505178 0.0323718 0.1195 -0.047172 -0.037078 0.1195 -0.0224168 0.055655 0.1195 0.00174683 0.0599748 0.1195 0.06 -0.000201986 0.1195 0.013585 -0.0584418 0.1195 -0.042828 0.0420208 0.1195 0.019903 0.056603 0.1195 0.0572188 0.018055 0.1195 0.045201 0.039457 0.1195 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |

30 82 9 7 9 82 15 74 20 13 74 15 15 45 13 77 78 20 74 77 20 73 13 79 73 74 13 11 76 14 51 63 4 66 31 4 4 63 66 41 51 4 5 4 31 6 30 9 30 6 31 12 3 8 12 8 11 12 4 3 12 41 4 75 76 11 75 11 8 75 7 82 75 8 7 13 0 72 51 41 26 72 1 60 1 72 0 1 0 13 13 45 1 1 45 28 60 1 29 29 1 28 78 84 20 51 33 63 86 82 30 2 3 4 4 5 2 2 5 31 6 2 31 2 7 8 8 3 2 9 7 2 2 6 9 10 11 14 10 12 11 14 40 10 40 41 10 12 10 41 79 13 71 72 71 13 45 26 25 27 41 59 27 26 41 27 59 60 60 29 27 34 62 63 34 81 85 85 62 34 37 33 51 37 36 17 18 37 17 18 33 37 18 34 33 34 18 81 80 19 20 84 80 20 76 39 14 57 39 76 39 40 14 83 57 76 83 72 60 45 15 44 44 15 20 49 44 20 17 36 16 16 18 17 16 20 19 16 81 18 16 49 20 16 36 49 16 80 81 16 19 80 26 53 51 23 26 45 23 21 26 23 22 21 26 21 46 46 53 26 48 53 46 46 21 22 46 23 45 23 46 22 46 47 49 49 48 46 24 25 26 27 24 26 24 28 45 45 25 24 24 29 28 24 27 29 55 66 69 55 86 30 55 30 31 55 31 66 32 63 33 32 34 63 33 34 32 49 36 35 36 37 35 35 52 49 35 51 52 35 37 51 38 39 57 57 42 38 40 39 38 38 41 40 38 42 41 58 59 41 42 58 41 58 42 57 45 44 43 43 46 45 46 43 47 49 47 43 43 44 49 54 48 49 54 53 48 54 49 52 51 50 52 50 51 53 50 54 52 53 54 50 67 62 85 67 68 62 55 87 86 87 55 69 57 83 56 56 58 57 58 56 59 56 60 59 56 83 60 63 62 61 61 66 63 61 65 66 62 68 61 68 65 61 64 68 69 64 65 68 64 69 66 65 64 66 70 67 85 67 70 68 70 69 68 70 87 69 70 71 72 74 73 70 75 70 76 70 77 74 78 77 70 70 73 79 81 80 70 70 75 82 72 83 70 70 84 78 70 85 81 86 70 82 79 71 70 70 80 84 70 83 76 87 70 86

31 |
32 |
33 |
34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
46 | -------------------------------------------------------------------------------- /docs/source/adv-tutos/bicompil.rst: -------------------------------------------------------------------------------- 1 | Bi-Compilation gnulinux/Xenomai 2 | =============================== 3 | 4 | **Tutorial** : You are using a gnulinux computer and would like to try to build for xenomai 5 | 6 | 1. You can install a xenomai kernel and go all xenomai. Please refer to the Xenomai section . 7 | 2. You can **build** your components to xenomai and test it on another xenomai computer later. 8 | 9 | First, get Xenomai libs : 10 | 11 | .. code-block:: bash 12 | 13 | wget http://xenomai.org/downloads/xenomai/stable/xenomai-2.6.5.tar.bz2 14 | tar xfvj xenomai-2.6.5.tar.bz2 15 | cd xenomai-2.6-5 16 | mkdir install 17 | ./configure --prefix=`pwd`/install 18 | make -j`nproc` 19 | make install 20 | # Now Xenomai is installed in ~/xenomai-2.6-5/install 21 | 22 | Then clean everything in your orocos workspace : 23 | 24 | .. code-block:: bash 25 | 26 | cd orocos-2.9_ws/ 27 | catkin clean -y 28 | 29 | Then add new profiles : 30 | 31 | .. code-block:: bash 32 | 33 | catkin profile add xenomai 34 | catkin profile add gnulinux 35 | 36 | If you run catkin profile list : 37 | 38 | .. code-block:: bash 39 | 40 | [profile] Available profiles: 41 | xenomai (active) 42 | default 43 | gnulinux 44 | 45 | For Xenomai 46 | ----------- 47 | 48 | Use the xenomai profile : ``catkin profile set xenomai``. 49 | 50 | Let's configure the workspace, the important option is --env-cache as it will save the current environment in a static file (inside orocos-2.9_ws/.catkin_tools). 51 | It is only saving when running catkin build ! 52 | 53 | .. code-block:: bash 54 | 55 | catkin config --extend /opt/ros/indigo \ 56 | --install \ 57 | --env-cache \ 58 | -b build-xenomai \ 59 | -d devel-xenomai \ 60 | -i install-xenomai \ 61 | --cmake-args -DCMAKE_BUILD_TYPE=Release \ 62 | -DENABLE_CORBA=ON -DENABLE_MQ=ON -DCORBA_IMPLEMENTATION=OMNIORB 63 | 64 | Note that we put the build, devel and install space in a different folder so it won't collide with gnulinux builds. 65 | 66 | Now you can build ! 67 | 68 | .. code-block:: bash 69 | 70 | OROCOS_TARGET=xenomai XENOMAI_ROOT_DIR=~/xenomai-2.6.5/install catkin build 71 | 72 | .. note:: 73 | 74 | Now the env var OROCOS_TARGET and XENOMAI_ROOT_DIR are **set/fixed** for all the packages. If you modify them using export, it **won't** affect the ones written for the packages during build. 75 | 76 | Once it's done you'll have : 77 | 78 | .. code-block:: bash 79 | 80 | hoarau@waro-G55VW:~/ros_ws/orocos-2.9_ws$ ll 81 | total 44 82 | drwxrwxr-x 11 hoarau hoarau 4096 Jul 27 22:48 ./ 83 | drwxrwxr-x 15 hoarau hoarau 4096 Jul 27 16:36 ../ 84 | drwxrwxr-x 10 hoarau hoarau 4096 Jul 27 22:50 build-xenomai/ 85 | drwxrwxr-x 3 hoarau hoarau 4096 May 2 10:13 .catkin_tools/ 86 | drwxrwxr-x 5 hoarau hoarau 4096 Jul 27 16:57 devel-xenomai/ 87 | drwxrwxr-x 7 hoarau hoarau 4096 Jul 27 22:50 install-xenomai/ 88 | drwxrwxr-x 11 hoarau hoarau 4096 Jul 27 22:40 logs/ 89 | drwxrwxr-x 4 hoarau hoarau 4096 Jun 7 11:55 src/ 90 | 91 | And inside install-xenomai/lib you'll have -xenomai libraries : 92 | 93 | .. code-block:: bash 94 | 95 | lrwxrwxrwx 1 hoarau hoarau 47 Jul 27 16:58 liborocos-ocl-deployment-corba-xenomai.so -> liborocos-ocl-deployment-corba-xenomai.so.2.9.0 96 | 97 | For gnulinux 98 | ------------ 99 | 100 | Let's use the default profile : ``catkin profile set default`` 101 | Let's configure it the standard way : 102 | 103 | .. code-block:: bash 104 | 105 | catkin config --extend /opt/ros/indigo \ 106 | --env-cache \ 107 | -b build \ 108 | -d devel \ 109 | --install \ 110 | -i install \ 111 | --cmake-args -DCMAKE_BUILD_TYPE=Release -DENABLE_CORBA=ON \ 112 | -DENABLE_MQ=ON -DCORBA_IMPLEMENTATION=OMNIORB 113 | 114 | And build it : 115 | 116 | .. code-block:: bash 117 | 118 | OROCOS_TARGET=gnulinux catkin build 119 | 120 | We now have two version of the same libs (gnulinux/xenomai) : 121 | 122 | .. code-block:: bash 123 | 124 | hoarau@waro-G55VW:~/ros_ws/orocos-2.9_ws$ ll 125 | total 44 126 | drwxrwxr-x 11 hoarau hoarau 4096 Jul 27 22:48 ./ 127 | drwxrwxr-x 15 hoarau hoarau 4096 Jul 27 16:36 ../ 128 | drwxrwxr-x 11 hoarau hoarau 4096 Jul 27 22:40 build/ 129 | drwxrwxr-x 10 hoarau hoarau 4096 Jul 27 22:50 build-xenomai/ 130 | drwxrwxr-x 3 hoarau hoarau 4096 May 2 10:13 .catkin_tools/ 131 | drwxrwxr-x 5 hoarau hoarau 4096 Jul 27 22:40 devel/ 132 | drwxrwxr-x 5 hoarau hoarau 4096 Jul 27 16:57 devel-xenomai/ 133 | drwxrwxr-x 7 hoarau hoarau 4096 Jul 27 22:41 install/ 134 | drwxrwxr-x 7 hoarau hoarau 4096 Jul 27 22:50 install-xenomai/ 135 | drwxrwxr-x 11 hoarau hoarau 4096 Jul 27 22:40 logs/ 136 | drwxrwxr-x 4 hoarau hoarau 4096 Jun 7 11:55 src/ 137 | 138 | Now let's prove it works : 139 | 140 | .. code-block:: bash 141 | 142 | hoarau@waro-G55VW:~/ros_ws/orocos-2.9_ws$ catkin profile list 143 | [profile] Available profiles: 144 | xenomai (active) 145 | default 146 | gnulinux 147 | 148 | # Let's check the global linux variable 149 | hoarau@waro-G55VW:~/ros_ws/orocos-2.9_ws$ echo $OROCOS_TARGET 150 | gnulinux 151 | 152 | # The next command will show the env variable written on the package rtt cache 153 | # (enabled via catkin config --env-cache) 154 | hoarau@waro-G55VW:~/ros_ws/orocos-2.9_ws$ catkin build --get-env rtt | grep ORO 155 | typeset -x OROCOS_TARGET=xenomai 156 | # We have xenomai written in the cache of the rtt package ! 157 | 158 | We are on xenomai profile, the global linux OROCOS_TARGET is set to gnulinux, but the env written on each package (here rtt) is xenomai ! 159 | 160 | You can also try to launch to launch the deployer on non-xenomai kernel : 161 | 162 | .. code-block:: bash 163 | 164 | hoarau@waro-G55VW:~/ros_ws/orocos-2.9_ws$ source install-xenomai/setup.sh 165 | hoarau@waro-G55VW:~/ros_ws/orocos-2.9_ws$ deployer 166 | Xenomai: /dev/rtheap is missing 167 | (chardev, major=10 minor=254) 168 | # It doest not work, because you don't have a xenomai kernel 169 | 170 | Final note : on kuka-rt2 (xenomai kernel) it can support both versions ! 171 | -------------------------------------------------------------------------------- /docs/source/rtpc/rtnet3.rst: -------------------------------------------------------------------------------- 1 | RTnet setup on Xenomai 3 2 | ======================== 3 | 4 | Official website : http://www.rtnet.org/index.html 5 | 6 | RTnet allows you to send and receive data with very strict constraints, in a real-time environment (RTAI, Xenomai). It only works with a very limited set of ethernet cards (RTnet includes "real-time" re-written drivers) : Intel PRO/1000, 82574L, any card with r8169 (xenomai < 2.6.4 only) and others. 7 | 8 | First make sure your followed the `Xenomai installation instructions `_ and you are running the Xenomai kernel (uname -a). 9 | 10 | Recommended hardware 11 | -------------------- 12 | 13 | * `Intel Pro/1000 GT `_ : e1000e driver *<-- Recommended* 14 | * `D-Link DGE-528T `_ : r8169s driver 15 | 16 | Check which kernel driver you use 17 | --------------------------------- 18 | 19 | .. code-block:: bash 20 | 21 | lspci -vvv -nn | grep -C 10 Ethernet 22 | 23 | And check if the **rt_** version exists in `RTnet's drivers `_. 24 | 25 | Configuration 26 | ------------- 27 | 28 | The configuration file is located by default at ``/usr/xenomai/etc/rtnet.conf`` 29 | Take a look at `this configuration file `_. 30 | 31 | * **RT_DRIVER="rt_e1000e"** The driver we use (we have the Intel PRO/1000 GT) 32 | * **REBIND_RT_NICS="0000:05:00.0 0000:06:00.0"** NIC addresses of the 2 cards we use for RTnet (you can check the NIC address typing 'lshw -C network' and looking at "bus info: pci@...". It is useful to have a fix master/slave config order (card1->robot, card2->Sensor for example). 33 | * **IPADDR="192.168.100.101"** IP of the master (your computer). ALl the slaves will send/receive to/from master IP. 34 | * **NETMASK="255.255.255.0"** The other slave will have IPs 192.168.100.XXX. 35 | * **RT_LOOPBACK="no"** Not used now. Might be useful to use it somehow. 36 | * **RT_PROTOCOLS="udp packet tcp"** Robot sends via UDP, ATI Sensor via TCP for config, UDP otherwise. 37 | * **RTCAP="yes"** To debug with Wireshark 38 | * **TDMA_CYCLE="450"** and **TDMA_OFFSET="50"** Data from robot/ sensor takes about 350us to receive (using Wireshark). 39 | 40 | 41 | Allow non-root users 42 | -------------------- 43 | 44 | To allow commands like ``rtnet start`` etc to be used without ``sudo``, we will use ``visudo``. 45 | We remove password in certain commands *only for people in the xenomai group*. 46 | 47 | .. code-block:: bash 48 | 49 | sudo visudo 50 | # then add the following at the end 51 | %xenomai ALL=(root) NOPASSWD:/sbin/insmod 52 | %xenomai ALL=(root) NOPASSWD:/sbin/rmmod 53 | %xenomai ALL=(root) NOPASSWD:/sbin/modprobe 54 | %xenomai ALL=(root) NOPASSWD:/bin/echo 55 | %xenomai ALL=(root) NOPASSWD:/bin/mknod 56 | %xenomai ALL=(root) NOPASSWD:/usr/bin/service 57 | %xenomai ALL=(root) NOPASSWD:/usr/sbin/service 58 | %xenomai ALL=(root) NOPASSWD:/usr/xenomai/sbin/rtcfg 59 | %xenomai ALL=(root) NOPASSWD:/usr/xenomai/sbin/rtifconfig 60 | %xenomai ALL=(root) NOPASSWD:/usr/xenomai/sbin/rtiwconfig 61 | %xenomai ALL=(root) NOPASSWD:/usr/xenomai/sbin/rtnet 62 | %xenomai ALL=(root) NOPASSWD:/usr/xenomai/sbin/rtping 63 | %xenomai ALL=(root) NOPASSWD:/usr/xenomai/sbin/rtroute 64 | %xenomai ALL=(root) NOPASSWD:/usr/xenomai/sbin/tdmacfg 65 | 66 | 67 | Test your installation 68 | ---------------------- 69 | 70 | Using the test script 71 | ~~~~~~~~~~~~~~~~~~~~~ 72 | 73 | A launch script can be found `here `_. 74 | Adjust the following settings to your needs : 75 | 76 | * SLAVES="192.168.100.102 192.168.100.103" 77 | * SLAVES_NAMES="Kuka ATISensor" 78 | 79 | Then to use it : 80 | 81 | .. code-block:: bash 82 | 83 | ./path/to/script/rtnet start 84 | 85 | Manually 86 | ~~~~~~~~~ 87 | 88 | .. code-block:: bash 89 | 90 | cd /usr/xenomai/sbin 91 | # Start the rt kernel drivers 92 | sudo ./rtnet start 93 | # Bringup connection 94 | sudo ./rtifconfig rteth0 up 192.168.100.101 netmask 255.255.255.0 95 | # Bringup slaves 96 | sudo ./rtroute solicit 192.168.100.102 dev rteth0 97 | # Ping Slave 98 | sudo ./rtping 192.168.100.102 99 | # Stop everything 100 | sudo ./rtnet stop 101 | 102 | 103 | .. note:: 104 | 105 | You might have to remove the non-rt kernel driver before rtnet start : 106 | 107 | .. code-block:: bash 108 | 109 | sudo rmmod e1000e 110 | sudo ./rtnet start 111 | 112 | .. note:: 113 | 114 | You should see rt_e1000e as the kernel driver currently used 115 | 116 | .. code-block:: bash 117 | 118 | lspci -vvv -nn | grep -C 10 Ethernet 119 | lsmod | grep rt_ 120 | 121 | 122 | Use RTnet in C++ 123 | ---------------- 124 | 125 | The API is the same as regular socket in C, except that the functions start with ``rt_*``. 126 | To make sure it compiles on every platform, add the following to your headers : 127 | 128 | .. code-block:: cpp 129 | 130 | #ifndef HAVE_RTNET 131 | 132 | // Rename the standard functions 133 | // And use theses ones to be RTnet-compatible when available 134 | 135 | #define rt_dev_socket socket 136 | #define rt_dev_setsockopt setsockopt 137 | #define rt_dev_bind bind 138 | #define rt_dev_recvfrom recvfrom 139 | #define rt_dev_sendto sendto 140 | #define rt_dev_close close 141 | #define rt_dev_connect connect 142 | 143 | #else 144 | // Use RTnet in Xenomai 145 | #include 146 | #endif 147 | 148 | And in your CMakeLists.txt (example) : 149 | 150 | .. code-block:: cmake 151 | 152 | # Add the path to the FindRTnet.cmake folder 153 | # Let's assume you put it in /path/to/project/cmake 154 | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) 155 | 156 | if($ENV{OROCOS_TARGET} STREQUAL "xenomai") 157 | find_package(RTnet) 158 | if(NOT ${RTnet_FOUND}) 159 | message(ERROR "RTnet cannot be used without Xenomai") 160 | else() 161 | message(STATUS "RTnet support enabled") 162 | set_property(TARGET ${TARGET_NAME} APPEND PROPERTY COMPILE_DEFINITIONS HAVE_RTNET XENOMAI) 163 | endif() 164 | endif() 165 | 166 | 167 | .. note:: `FindRTnet.cmake can be found here `_. 168 | -------------------------------------------------------------------------------- /lwr_utils/scripts/process_args: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """ 3 | Evaluate xacro arguments 4 | 5 | """ 6 | 7 | import os 8 | import sys 9 | import subprocess 10 | from xml.dom import minidom 11 | try: 12 | import regex as re 13 | except: 14 | print("Regex lib not available, please install it to use the extend runScript method\n\n\tsudo pip install regex") 15 | import time 16 | 17 | rospack = None 18 | 19 | try: 20 | import rospkg 21 | rospack = rospkg.RosPack() 22 | except: pass 23 | 24 | __regex_runscript = re.compile(r'(runScript(?P\((?:(?&match)|[^()]+)*\)))') 25 | __regex_rtt_args = re.compile(r'(\\w+):=(.+)') 26 | __regex_ros_args = re.compile(r'(\$\( *arg *([^) ]*) *\))') 27 | __regex_ros_find = re.compile(r'(ros.find(?:\(((?R)|[^()]+)*\)))') 28 | 29 | 30 | def __format_str(str_in): 31 | #print "formatting ",str_in 32 | s = str(str_in) 33 | s = s.replace(" ","") 34 | 35 | if (s[0] == '"' and s[-1] == '"') or (s[0] == '(' and s[-1] == ')'): 36 | s = __format_str(s[1:-1]) 37 | #print "s:",s 38 | return s 39 | 40 | def process_ros_args(input_str,args): 41 | # Looking for parameters 42 | str_out = input_str 43 | it = re.finditer(__regex_ros_args, input_str) 44 | for i in it: 45 | complete_arg = i.group(1) 46 | arg_name = i.group(2) 47 | str_out = str_out.replace(complete_arg,args[arg_name]) 48 | return str_out 49 | 50 | def expand_runScript(input_str,args,list_of_opended_files,level=0,level_max=10): 51 | 52 | #output_str = '' 53 | if not list_of_opended_files: 54 | output_str = '/* Generated by expand_runScript() at '+str(time.strftime("%Y-%m-%d %H:%M"))+'\n' + input_str 55 | else: 56 | output_str = input_str 57 | 58 | number_of_files_appened = len(list_of_opended_files) 59 | 60 | output_str = process_ros_args(output_str,args) 61 | run_scripts_lines = re.findall(__regex_runscript,output_str) 62 | 63 | for run_script_line in run_scripts_lines: 64 | try: 65 | #print "RunScript Line",run_script_line 66 | #print "" 67 | string_to_replace = run_script_line[0] 68 | string_to_interpret = __format_str(run_script_line[1]) 69 | #print "string_to_replace : ",string_to_replace,string_to_interpret 70 | ros_find_lines = re.findall(__regex_ros_find,string_to_interpret) 71 | 72 | if not rospack or not ros_find_lines: 73 | #Classic path 74 | #print "i'mm gonna open ",string_to_interpret 75 | if not string_to_interpret in list_of_opended_files: 76 | list_of_opended_files.append(string_to_interpret) 77 | with open(string_to_interpret,'r') as f: 78 | output_str = output_str.replace(string_to_replace,'\n\n/* Expanding '+string_to_interpret+' */\n\n'+f.read()) 79 | else: 80 | for ros_find_line in ros_find_lines: 81 | #print "ros find",ros_find_line 82 | ros_find_complete_line = ros_find_line[0] 83 | ros_pkg = __format_str(ros_find_line[1]) 84 | 85 | 86 | ros_path = rospack.get_path(ros_pkg) 87 | #print "string to interpret before : ",string_to_interpret," we should add ",ros_path,"instead of ",ros_find_complete_line 88 | string_to_interpret = string_to_interpret.replace(ros_find_complete_line,ros_path) 89 | string_to_interpret = ''.join(string_to_interpret.split('+')) 90 | string_to_interpret = string_to_interpret.replace('"','') 91 | #print "Complete final path : ",string_to_interpret 92 | if os.path.isfile(string_to_interpret): 93 | if not string_to_interpret in list_of_opended_files: 94 | list_of_opended_files.append(string_to_interpret) 95 | with open(string_to_interpret,'r') as f: 96 | output_str = output_str.replace(string_to_replace,'\n\n/* Expanding ROS '+string_to_interpret+' */\n\n'+f.read()) 97 | except: pass 98 | 99 | #print "****************************\n",output_str,"************************************" 100 | if not run_scripts_lines or number_of_files_appened == len(list_of_opended_files) or level >= level_max: 101 | #print "LEVEL = ",level 102 | return output_str 103 | 104 | return expand_runScript(output_str,args,list_of_opended_files,level+1) 105 | 106 | def format_file_xacro(input_file,args): 107 | import rospkg 108 | with open(input_file,"r") as f: 109 | 110 | s = '\n' 111 | for a in args: 112 | s = s + '\n' 113 | s = s + '\n\n' 116 | 117 | intput_filename = os.path.basename(input_file) 118 | output_xacro_filename = rospkg.get_ros_home() +'/'+ intput_filename+'.xacro' 119 | 120 | with open(output_xacro_filename,'w') as f: 121 | f.write(s) 122 | 123 | cmd = "rosrun xacro xacro "+output_xacro_filename+" "+str.join(' ',args) 124 | proc = subprocess.Popen([cmd], stdout=subprocess.PIPE, shell=True) 125 | (out, err) = proc.communicate() 126 | if proc.returncode != 0: 127 | raise RuntimeError("%r failed, status code %s stdout %r stderr %r" % ( 128 | cmd, proc.returncode, out, err)) 129 | 130 | xmldoc = minidom.parseString(out) 131 | itemlist = xmldoc.getElementsByTagName('script') 132 | s_out = str.join(' ',[i.firstChild.data for i in itemlist]) 133 | return output_xacro_filename,s_out 134 | 135 | def create_dict_from_argv(argv): 136 | d = {} 137 | for arg in argv: 138 | a = arg.split(':=') 139 | d[a[0]] = a[1] 140 | return d 141 | 142 | 143 | _input_filename = sys.argv[1] 144 | __args = [] 145 | 146 | if len(sys.argv) >= 2 : 147 | __args = sys.argv[2:] 148 | 149 | _args = create_dict_from_argv(__args) 150 | 151 | with open(_input_filename,'r') as f: 152 | _expanded_output_str = expand_runScript(f.read(),_args,[]) 153 | 154 | _expanded_output_filename = _input_filename+'.exp' 155 | with open(_expanded_output_filename,'w') as f: 156 | f.write(_expanded_output_str) 157 | print(_expanded_output_filename) 158 | exit() 159 | 160 | 161 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /docs/source/install/install-16.04-kinetic.rst: -------------------------------------------------------------------------------- 1 | Installation on Ubuntu 16.04 2 | ============================ 3 | 4 | ROS Kinetic ++ 5 | -------------- 6 | 7 | From http://wiki.ros.org/kinetic/Installation/Ubuntu. 8 | 9 | Required tools 10 | ~~~~~~~~~~~~~~ 11 | 12 | .. code-block:: bash 13 | 14 | sudo sh -c "echo 'deb http://packages.ros.org/ros/ubuntu $(lsb_release -cs) main' > /etc/apt/sources.list.d/ros-latest.list" 15 | wget http://packages.ros.org/ros.key -O - | sudo apt-key add - 16 | sudo apt update 17 | sudo apt install python-rosdep python-catkin-tools ros-kinetic-catkin python-wstool python-vcstool 18 | 19 | Fix Locales 20 | ~~~~~~~~~~~ 21 | 22 | .. code-block:: bash 23 | 24 | sudo locale-gen en_US #warnings might occur 25 | sudo locale-gen en_US.UTF-8 26 | sudo nano /etc/environment 27 | # put theses lines 28 | LANGUAGE=en_US 29 | LC_ALL=en_US 30 | # Reboot ! 31 | 32 | If you type ``perl`` you should not see any warnings. 33 | 34 | ROS Kinetic Desktop 35 | ~~~~~~~~~~~~~~~~~~~ 36 | 37 | .. code-block:: bash 38 | 39 | # ROS Desktop (NOT DESKTOP-FULL) 40 | sudo apt install ros-kinetic-desktop 41 | 42 | After Install 43 | ~~~~~~~~~~~~~ 44 | 45 | .. code-block:: bash 46 | 47 | # Load The environment 48 | source /opt/ros/kinetic/setup.bash 49 | # Update ROSdep (to get dependencies automatically) 50 | sudo rosdep init 51 | rosdep update 52 | 53 | 54 | MoveIt! (via debians) 55 | ~~~~~~~~~~~~~~~~~~~~~ 56 | 57 | .. code-block:: bash 58 | 59 | # MoveIt! 60 | sudo apt install ros-kinetic-moveit 61 | 62 | OROCOS 2.9 + rtt_ros_integration 2.9 (from source) 63 | -------------------------------------------------- 64 | 65 | OROCOS toolchain 2.9 66 | ~~~~~~~~~~~~~~~~~~~~ 67 | 68 | .. code-block:: bash 69 | 70 |   mkdir ~/isir ; cd ~/isir 71 |   mkdir -p orocos-2.9_ws/src 72 | cd orocos-2.9_ws/src 73 | # Get all the packages 74 | wstool init 75 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/orocos_toolchain-2.9.rosinstall 76 | wstool update -j2 77 | # Get the latest updates (OPTIONAL) 78 | cd orocos_toolchain 79 | git submodule foreach git checkout toolchain-2.9 80 | git submodule foreach git pull 81 | # Configure the workspace 82 | cd ../../ 83 | # Install dependencies 84 | source /opt/ros/kinetic/setup.bash 85 | rosdep install --from-paths src --ignore-src --rosdistro kinetic -y -r 86 | catkin config --init --install --extend /opt/ros/kinetic/ --cmake-args -DCMAKE_BUILD_TYPE=Release 87 | # Build 88 | catkin build 89 | 90 | rtt_ros_integration 2.9 91 | ~~~~~~~~~~~~~~~~~~~~~~~ 92 | 93 | .. code-block:: bash 94 | 95 | cd ~/isir 96 | mkdir -p rtt_ros-2.9_ws/src 97 | cd rtt_ros-2.9_ws/src 98 | # Get all the packages 99 | wstool init 100 | wstool merge https://github.com/kuka-isir/rtt_lwr/raw/rtt_lwr-2.0/lwr_utils/config/rtt_ros_integration-2.9.rosinstall 101 | wstool update -j2 102 | # Configure the workspace 103 | cd ../ 104 | # Install dependencies 105 | source ~/isir/orocos-2.9_ws/install/setup.bash 106 | rosdep install --from-paths src --ignore-src --rosdistro kinetic -y -r 107 | catkin config --init --install --extend ~/isir/orocos-2.9_ws/install --cmake-args -DCMAKE_BUILD_TYPE=Release 108 | # Build (this can take a while) 109 | catkin build 110 | 111 | Gazebo 8 112 | -------- 113 | 114 | From http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install. 115 | 116 | .. code-block:: bash 117 | 118 | # Gazebo 8 119 | curl -ssL http://get.gazebosim.org | sh 120 | # The ros packages 121 | sudo apt install ros-kinetic-gazebo8-* 122 | 123 | .. note:: Don't forget to put source ``source /usr/share/gazebo/setup.sh`` in your ``~/isir/.bashrc`` or you won't have access to the gazebo plugins (Simulated cameras, lasers, etc). 124 | 125 | ROS Control 126 | ----------- 127 | 128 | This allows you to use MoveIt! or just the ros_control capabilities in an orocos environnement. Let's install everything : 129 | 130 | .. code-block:: bash 131 | 132 | sudo apt install ros-kinetic-ros-control* ros-kinetic-control* 133 | 134 | RTT LWR packages 135 | ---------------- 136 | 137 | .. code-block:: bash 138 | 139 | mkdir -p ~/isir/lwr_ws/src/ 140 | cd ~/isir/lwr_ws/src 141 | # Get all the packages 142 | wstool init 143 | # Get rtt_lwr 'base' 144 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/rtt_lwr.rosinstall 145 | # Get the extra packages 146 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/rtt_lwr-extras.rosinstall 147 | 148 | # Download 149 | wstool update -j2 150 | 151 | Cart Opt Ctrl 152 | ~~~~~~~~~~~~~ 153 | 154 | Experimental optimisation based controller : 155 | 156 | .. code-block:: bash 157 | 158 | wstool merge https://raw.githubusercontent.com/kuka-isir/rtt_lwr/rtt_lwr-2.0/lwr_utils/config/rtt_lwr-full.rosinstall 159 | wstool update 160 | 161 | Install dependencies 162 | ~~~~~~~~~~~~~~~~~~~~ 163 | 164 | .. code-block:: bash 165 | 166 | # If you compiled rtt_ros from sources 167 | source ~/isir/rtt_ros-2.9_ws/install/setup.bash 168 | # Use rosdep tool 169 | rosdep install --from-paths ~/isir/lwr_ws/src --ignore-src --rosdistro kinetic -y -r 170 | 171 | .. note:: 172 | 173 | Gazebo 7 is shipped by default with kinetic, so rosdep will try to install it and fail. You can ignore this issue safely as you now have Gazebo 8 installed. 174 | 175 | .. code-block:: bash 176 | 177 | # dpkg-query: no packages found matching gazebo7 178 | # ERROR: the following rosdeps failed to install 179 | # apt: command [sudo -H apt-get install -y gazebo7] failed 180 | # apt: Failed to detect successful installation of [gazebo7] 181 | 182 | 183 | Configure the workspace 184 | ~~~~~~~~~~~~~~~~~~~~~~~ 185 | 186 | .. code-block:: bash 187 | 188 | cd ~/isir/lwr_ws 189 | catkin config --init --install --extend ~/isir/rtt_ros-2.9_ws/install --cmake-args -DCMAKE_CXX_FLAGS=-std=c++11 -DCMAKE_BUILD_TYPE=Release 190 | 191 | Build the workspace 192 | ~~~~~~~~~~~~~~~~~~~ 193 | 194 | Let's build the entire workspace : 195 | 196 | .. code-block:: bash 197 | 198 | catkin build --workspace ~/isir/lwr_ws 199 | 200 | .. image:: /_static/catkin-build.png 201 | 202 | Once it's done, load the workspace : 203 | 204 | .. code-block:: bash 205 | 206 | source ~/isir/lwr_ws/install/setup.bash 207 | 208 | .. tip:: Put it in you bashrc : ``echo 'source ~/isir/lwr_ws/install/setup.bash' >> ~/.bashrc`` 209 | 210 | Now we can :doc:`test the installation `. 211 | --------------------------------------------------------------------------------