A KUKA youBot description package for ROS Hydro to be used for simulation in Gazebo 1.9.
youbot_ros_tools is a catkin package and is divided in five parts, each of which groups a specific set of functionalities. Its structure reflects the one proposed in the Gazebo ROS integration guidelines.
- youbot_description contains the Xacro URDF description of the robot, including the directives for Gazebo simulation, and the 3d meshes for all its parts.
- youbot_gazebo contains the launch files for different youbot configurations and world files. It currently only contains the map for a completely empty room.
- youbot_control provides configuration and launch files to spawn the robot controllers.
- youbot_teleop includes a simple teleoperation script for moving the robot's base and arm. More about controlling multiple robots can be found later in the document.
- youbot_2dnav includes the configuration and launchers to start the navigation module.
Even though this package is still under developement and contains some tradeoffs that limit its adherence to reality, we encourage you to try it, suggest improvements and raise issues.
After downloading and building the package, if you're in a rush to see a little youBot inside Gazebo and to move its arm, try
roslaunch youbot_gazebo youbot.launch
to spawn a single youbot in an empty world. To let the robot start publishing the joint states and to be able to control it, in another terminal type
roslaunch youbot_control youbot_control.launch
If everything went as expected and neither screens showed errors, you can start the teleoperation script typing
roslaunch youbot_teleop youbot_teleop.launch
help for the list of available commands, or simply try
base_move to test if the base correctly moves forward and
arm_move j1 3.15 to test if the first joints rotate correctly.
If all of the previous steps have been followed without modifying the launch files, the navigation stack can be started with
roslaunch youbot_2dnav move_base.launch
Every one of the precedent commands allows a namespace-specific variation in case multiple robots have been spawned
roslaunch youbot_gazebo youbot_double.launch roslaunch youbot_control youbot_control.launch ns:=/youbot0 roslaunch youbot_control youbot_control.launch ns:=/youbot1 roslaunch youbot_teleop youbot_teleop.launch ns:=/youbot0 roslaunch youbot_teleop youbot_teleop.launch ns:=/youbot1
The wiki page about understanding launch and namespaces gives more insight in this direction.