A KUKA youBot description for ROS.
Python
Permalink
Failed to load latest commit information.
youbot_2dnav
youbot_control
youbot_description
youbot_gazebo
youbot_teleop
.gitignore
CMakeLists.txt
README.md

README.md

youbot_ros_tools

A KUKA youBot description package for ROS Hydro to be used for simulation in Gazebo 1.9.

What's inside

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.

Quick start

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

Please type 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

This command starts the map server, the amcl localization module and the move_base navigation module. The robot can thus be controlled passing messages to the move_base/goal topic.

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.

Credits

The Xacro URDF description and the meshes for the robot have been taken from the WPI's youbot_description package. A lot of the code for this repository has been written by @Arn-O.