The basic idea of the youBot API is to represent a robot system as a combination of decoupled functional sub-systems. That is, this API represents manipulator arm and base platform as the combination of several joints. At the same time each joint is defined as a combination of a motor and a gearbox.
There are three main classes in the youBot API that a user should be aware of.
- YouBotManipulator class that represents youBot arm as the aggregation of several joints and a gripper
- YouBotBase class that represents youBot base platform
- YouBotJoint class that represents joints which make up both the manipulator and the base
- Linux
- Ethernet adapter
- Root access to the Ethernet adapter
These libraries are required by the youBot API:
- Simple Open EtherCAT master (included in the driver)
- Boost C++ Libraries
Install a minimal installation of ROS. (see ros.org)
Clone the youBot API sources:
git clone git:https://github.com/youbot/youbot_driver.git
Add the repository folder to the ROS_PACKAGE_PATH environment variable.
Compile the youbot driver by typing:
rosmake youbot_driver --rosdep-install
First, make sure that you have the gnu-make software available on your system (version 3.81 or later required), as well as a working C compiler chain. The console commands below are exemplary for a Ubuntu Linux. You will need a git version control software:
sudo apt-get install git git-core
Cmake a cross platform make is also necessary:
sudo apt-get install cmake
To download the youBot API sources type:
git clone git:https://github.com/youbot/youbot_driver.git
Install boost.
sudo apt-get install libboost-all-dev
Now you should be able to compile the youBot API.
cd <your_folder>/youbot_driver
mkdir build
cd build
cmake ..
make
The library will be generated in the folder ~/youbot_driver/lib.
The youBot API give you complete joint level access to the youBot joints. Every youBot joint is represented as a youbot::YouBotJoint class in the API. At this stage we make no difference if it is a base joint which powers a wheel or a manipulator joint.
By the classes youbot::YouBotBase and youbot::YouBotManipulator it is possible to get access to a youbot::YouBotJoint instance for a particular joint.
To set a setpoint or read some sensor values form the joints you have to use the youbot::JointData classes. Which could be for instance youbot::JointVelocitySetpoint or youbot::JointSensedCurrent.
To configure parameters of a joint, you have to use the youbot::JointParameter classes. Which could be for instance youbot::MaximumPositioningVelocity.
You can find example programs in the youbot_applications repository.
For more detailed information on class and methods please refer to the API documentation.
To generate the documentation from the source code type:
sudo apt-get install doxygen
cd build
make doc
The youBot Driver needs access to the raw ethernet device. Under Linux a normal user does not have access to the raw ethernet device. You can grand this capability to a program by the tool setcap. To install setcap use:
sudo apt-get install libcap2-bin
To provide a program with raw access to a ethernet device use: (replace the ./YouBot_KeyboardRemoteControl with your program.)
sudo setcap cap_net_raw+ep ./YouBot_KeyboardRemoteControl
This have to be done whenever the executable is created or replaces e.g. after building.
This software is published under a dual-license: GNU Lesser General Public License LGPL 2.1 and BSD license. The dual-license implies that users of this code may choose which terms they prefer.