Contents
Overview
This package contains all files necessary to perform collision-free planned motions with the arm of Care-O-bot 3. It is based on the arm_navigation stack and uses packages like ompl, collision_space and planning_environment to plan paths for the arm. For more information please navigate to the respective packages.
The files were generated using the Planning Description Configuration Wizard. You can find a detailed description of each file here.
Usage
Prerequisites
This tutorial assumes that you are familiar with:
starting care-o-bot; either in simulation using gazebo (see cob_bringup_sim) or a real care-o-bot (see cob_bringup).
using the cob_command_gui to move the arm
Please compile cob3_3_arm_navigation to make sure all dependencies can be found.
rosdep install cob3_3_arm_navigation rosmake cob3_3_arm_navigation
Start the planning environment
To start the arm_navigation please call
roslaunch cob3_3_arm_navigation cob3_3_arm_navigation.launch
to start all nodes necessary to perform collision-free path planning (considering self-collision, known obstacles as well as sensor data).
OR
Call
roslaunch cob3_3_arm_navigation cob3_3_arm_navigation_static.launch
to start all nodes necessary to perform collision-free path planning (considering self-collision and known obstacles but NO sensor data).
Perform collision-free movements
Once all nodes are running, you have the following two possibilities to perform planned motion.
Planned motion using the cob_command_gui
This is the easiest way to plan collision-free paths to predefined configurations. It uses the cob_command_gui which is started by
roslaunch cob_bringup dashboard.launch
On the cob_command_gui you can move all modules of the care-o-bot. However, planned motion can only be performed for the arm. To do so, enable the "Planning" check-box on the left side of the dashboard. As long as "Planning" is active all movements are planned.
Please note that the robot's initial configuration needs to be collision-free. If you are in a collision, simply deactivate "Planning" and move the arm without planned motion until it is collision-free again.
Planned motion within scripts
Planned motion for the care-o-bot has also been included into the cob_script_server. If you want to use planned motion in a more complex scenario, use the tutorials in cob_script_server/Tutorials and use "sss.move_planned()" instead of "sss.move()". Again, planned motion is only available for arm movements.