Table of Contents

Advertisement

Quick Links

KIT
User manual
Please read these instructions before use.
Do not discard: keep for future reference.

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the qbmove Advanced Kit and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for QB Robotics qbmove Advanced Kit

  • Page 1 User manual Please read these instructions before use. Do not discard: keep for future reference.
  • Page 2 www.qbrobotics.com...
  • Page 3 www.qbrobotics.com Dear customer Thank you for purchasing our product. To receive more complete service, please visit our website www.qbrobotics.com Designed to be controlled like conventional servomotors, the qbmove can be changed in position and stiffness and so it can substitute small conventional servomotors used for constructing any mechanism or robotic system.
  • Page 4: Table Of Contents

    Summary About this document ......................4 Using this document ...................... 4 Symbols and designations ....................4 Safety ............................ 5 Safety instructions ......................5 Environmental conditions ....................5 EC Directives on product safety ..................6 Introduction to qbmove kit ....................7 What’s in the box? ......................
  • Page 5 5.2.2 Robot example for Structure 1 ................43 Support structure 2 ...................... 46 5.3.1 Structure assembly ..................... 47 5.3.2 Robot assembly ....................50 5.3.3 Robot examples for Structure 2 ................. 52 qb control ........................54 Software ..........................55 Installing the drivers ..................... 56 qbmove GUI .........................
  • Page 6 Commissioning and Maintenance ..................99 Commissioning ......................100 Maintenance and warranty ..................100 Appendix ........................... 101 VSA papers ......................... 101 qbmove papers ......................102 10 Record of documented revisions ..................103 28 aprile 2021...
  • Page 7: About This Document

    1 About this document This documentation serves for safety-relevant operations on and with the servo-actuators. It contains safety instructions which must be observed. The user should assume all responsibility for any accident caused by their careless handling of the product. Attention must be paid to the following safety instructions. Please read through this user's guide and make sure you fully understand all the instructions before assembling and operating this product.
  • Page 8: Safety

    2 Safety Safety instructions IMPORTANT SAFETY INSTRUCTIONS – Read Before Using! • Operational, maintenance, and service requirements are covered in the instruction manual. Read the entire instruction manual before device use. • Check that all the contents is intact after removing it from the packaging. •...
  • Page 9: Ec Directives On Product Safety

    EC Directives on product safety • The following EC directives on product safety must be observed. • If the product is being used outside the UE, international, national and regional directives must be also observed. Machinery Directive (2006/42/EC) Because of their small size, no serious threats to life or physical condition can normally be expected from electric miniature drivers.
  • Page 10: Introduction To Qbmove Kit

    3 Introduction to qbmove kit This chapter shows what the qbmove kit includes, all the technical information about the qbmove Advanced and its mechanical connection. Following, electrical connections between the devices. 28 aprile 2021...
  • Page 11: What's In The Box

    What’s in the box? ① x 4 ② x 2 ③ x 4 ④ x 4 ⑤ x 1 ⑦ x 1 ⑧ x 5 ⑥ x 1 ⑨ x 2 ⑩ x 1 ⑪ x 1 ⑫ x 1 Figure 3-1 ①...
  • Page 12: Technical Data

    Technical data Mechanical and electrical characteristics of the qbmove Advanced: operating data ① (quantity) (unit) (value) mechanical Continuous Output Power Nominal Torque [Nm] Nominal Speed [rad/s] Peak Torque [Nm] Maximum Speed [rad/s] 6.33 Maximum Stiffness [Nm/rad] 83.5 Minimum Stiffness [Nm/rad] no load 0.25 Nominal Stiffness...
  • Page 13 operating data (quantity) (unit) (value) Sensor a – Motor 1 Position Resolution [°] 360/32768 Range [°] 0-360 Sensor b – Motor 2 Position Resolution [°] 360/32768 Range [°] 0-360 Sensor c – Motor 1 Current Resolution 5/1638 Range Sensor d – Motor 2 Current Resolution 5/1638 Range...
  • Page 14 Dimensions of the flanges. Figure 3-5 C-Flange dimensions. Figure 3-6 Base flange dimensions. 28 aprile 2021...
  • Page 15 Figure 3-7 Snap-on mechanism. Figure 3-8 Examples of connection. 28 aprile 2021...
  • Page 16: Agonistic/Antagonistic Vsa

    3.2.1 Agonistic/Antagonistic VSA The qbmove Advanced embeds the features of a servo motor and, moreover, the possibility of adjusting the output shaft stiffness. The Figure 3-9 shows a scheme of the agonistic/antagonistic VSA principle, implemented in our actuator. Basically, there are two motors connected at the output shaft by non-linear springs, so the output position “x”...
  • Page 17 Using fitting functions (see the next paragraph) the relations between deflection, torque and stiffness are represented by the following graphics. Figure 3-11 Torque - Deflection characteristic. Figure 3-12 Torque - Stiffness characteristic. 28 aprile 2021...
  • Page 18: Mathematical Model

    Moreover, also considering the motors’ speed, our actuator has a 3d workspace. The figures below show the Torque – Speed characteristic (Figure 3-13) and the VSA workspace (Figure 3-14). Figure 3-13 Torque - Speed characteristic. Figure 3-14 Torque - Speed - Stiffness Workspace. 3.2.2 Mathematical model The following mathematical functions and their parameters describe the mathematical model of...
  • Page 19: Electrical Connections

    Electrical connections In this guide you will find explanation regarding power connection of a single qbmove units as well as qbmove chains. Power connection is made using the qbally component (seeFigure 3-15). Figure 3-15: qbally1 The supply voltage must be 24V! 3.3.1 Qbally The qbally is the simplest qbally available.
  • Page 20 If you connect the qbmove to the power supply and the USB cable isn’t IMPORTANT connected, both LEDs are on. IMPORTANT must have a unique ID Each qbmove you connect to your system Figure 3-17: Serial connection of four qbmoves using a qbally1 It is advisable to not to connect more than four qbmoves for each chain, due to the current capacity of the ERNI cable.
  • Page 21: Mechanical Assembly

    4 Mechanical assembly This chapter provides the user with the required procedures needed to assemble different kinds of mechanical connection between qbmoves and, furthermore, some technical advice for a correct use of the platform. 28 aprile 2021...
  • Page 22 Encoding of components for mechanical assembly Figure 4-4:Parts from left to right - 2001, 3001, 3002 Figure 4-3: Parts from left to right - 1001, 1002, 1003 ,1004 Figure 4-2: Parts from left to right - 1005, 1006 Figure 4-1: Parts from left to right - 3003, 3005, 3007, 3008 Table 4-1: Unified components codes Assembly code Description...
  • Page 23: Flat Flange Assembly

    Required tools for the assembly are listed below. • Flathead screwdriver • 2 mm Allen wrench • 2.5 mm Allen wrench Flat Flange assembly Figure 4-5: Two qbmoves connected using a flat flange Required components: Figure 4-6: Required components for a flat flange 28 aprile 2021...
  • Page 24: Assembly Sequence

    4.1.1 Assembly sequence Use of the CORE component. Figure 4-8: Anchors Opening In Figure 4-8 arrows represent points to push in order to open the locking mechanism. Figure 4-7: Flat Flange Assemble the 1002 parts with the 1001 central core, using the two pins as reference. Make sure to the orientation of the two components is the same and with the anchor teeth on the same side of the counterbores of the central component.
  • Page 25 Assemble the Flat flange on the output pulley of the qbmove, by the eight screws 3003, as shown in Figure 4-9. Figure 4-9: Flat Flange assembly procedure on a qbmove Now a second qbmove can be connected to the first one by snapping the flanges, as shown in Figure 4-10.
  • Page 26: Erni Cable Routing In The Flat Flange

    4.1.2 ERNI cable routing in the Flat Flange The ERNI cable, which allows the connection of 2 qbmoves, can be placed inside the flat flange in two ways; First one is shown in Figure 4-11. Figure 4-11: First possible ERNI cable routing inside a flat flange Another way is shown in Figure 4-12.
  • Page 27: Base Flange Assembly

    Base Flange assembly This type of flange is used to connect one qbmove to your desired frame. Figure 4-13: qbmove connected to a Base Flange Required components: Figure 4-14: Required components for a Base Flange 28 aprile 2021...
  • Page 28: Assembly Sequence

    4.2.1 Assembly sequence Preparation of the Base Flange Assemble the 1002 parts with the 1004 parts using two 3007 screws and two 3008 nuts, as shown in Figure 4-15. Figure 4-15: Add-on assembly procedure Assembly of the Base Flange Figure 4-16: Base Flange Assemble the two parts obtained with the 1001 central core, using the two pins as references.
  • Page 29: C Flange Assembly

    Place the removable component from the side of the elastic anchors of the Core in correspondence of the first notches, as shown in Figure 4-16 Snap the Base flange on one of the free faces of the qbmove (Figure 4-18) then, using the provided holes, screw the entire assembly wherever you need.
  • Page 30: Assembly Sequence

    Required components: Figure 4-19: Required components for a C-Flange 4.3.1 Assembly sequence Preparation of a C Flange Figure 4-20: Free pulley on qbmove assembly procedure Assemble the 3001 bearing on the free 2001 pulley, on the opposite side of the eight treaded holes.
  • Page 31 Figure 4-21: First flange wing assembly procedure Assemble the 1003 component on the free pulley by using eight 3003 screws. Assemble the component obtained before and the second 1003 component with the Core, using the two pins as reference. 28 aprile 2021...
  • Page 32 Figure 4-22: C-Flange assembly procedure Place the removable 1003 component in correspondence of the first notches, as shown in Figure 4-22. Assembly of the C Flange with the QB-move Figure 4-23: qbmove C-Flange assembly procedure Place the qbmove ② in the desired position and then close the C Flange. 28 aprile 2021...
  • Page 33: Erni Cable Routing In The C Flange

    Move the qbmove ① in the desired “zero” position and then fix it with the eight 3003 screws. NOTE: with the two flanges screwed to the qbmove ① it is still possible to open the flange to detach or change the orientation of the qbmove ②. 4.3.2 ERNI cable routing in the C Flange The ERNI cable can be routed inside the C Flange as shown in Figure 4-24.
  • Page 34: Double Flat Flange Assembly

    Double Flat Flange assembly This type of flange is used to rigidly connect two qbmoves. Figure 4-25: qbmoves connected by a Double Flat Flange Required components: Figure 4-26: Required components to assemble a double flat flange 28 aprile 2021...
  • Page 35: Assembly Sequence

    4.4.1 Assembly sequence Preparation of the Double Flat Flange. Figure 4-27: Removable component Join two 1002 components and fix each other with two 3005 screws and two 3006 nuts, as shown in Figure 4-27. The obtained components will be the removable elements of the Double Flat Flange. Figure 4-28: Double flat flange Assemble the two obtained components with the Core, using the two pins as reference.
  • Page 36 Assembly the Double flat flange with the qbmove. With the double flat flange, you can rigidly connect two qbmove with different orientation. An example is shown in Figure 4-29. Figure 4-29: qbmove double flat flange assembly 28 aprile 2021...
  • Page 37: Gripper Assembly

    Gripper assembly Required items. Figure 4-31: Required components for a qbMove gripper Figure 4-30: qbmove gripper 28 aprile 2021...
  • Page 38: Assembly Sequence

    4.5.1 Assembly sequence Assemble the 1005 component on a Flat Flange using four 3008 nuts and two 3007 screws, as shown in figure below. Figure 4-32: Fixed finger assembly procedure Assemble the fixed finger on the qbmove closing the Flat Flange and locking it by two 3007 screws, as shown in Figure 4-32.
  • Page 39 Assemble the second finger, component 1006, using the 3003 screws, as shown in Figure 4-33. The qbmove must be equipped with a rear pulley, as like in a C Flange mounting. Figure 4-34: Assembled gripper 28 aprile 2021...
  • Page 40 28 aprile 2021...
  • Page 41: Qbmove Accessories

    5 qbmove accessories This chapter shows different kind of variable stiffness robots and accessories available by qbrobotics. Moreover, some advices to better use your qbmove Advanced kit. 28 aprile 2021...
  • Page 42: Tool Tips

    Tool tips In this paragraph, you can find some basic advices to correctly assemble a robot using the qbmove kit, avoiding unwanted behaviors of the assembled robot and let the user using it safely. For a smart assembly, you must read with attention the chapter 2, primarily the technical data. The qbmove is a back drivable actuator.
  • Page 43: Distances Between Flange And Actuator

    By the flanges in the kit, you can make the joints of you robot. For example: Base Flange to fix the first qbmove to a frame; Flat Flange for first and fourth joint of ② and second for ④ and ⑤;...
  • Page 44: Support Structure 1

    Support structure 1 In qbrobotics.com you can find several accessories for your qbmove kit, such as aluminum structures to hold the Variable Stiffness robot you are going to assembly. Figure below shows the Structure 1 with the Base Flange. Figure 5-3 Structure 1. 5.2.1 Robot assembly To assembly the robot on the structure, follows following three steps:...
  • Page 45 Figure 5-5 STEP 2: Placing of qbmove Advanced and closure of flange. Figure 5-6 STEP 3: Screws to lock the qbmove Advanced on the structure. The structure must be clamped on a solid surface, to avoid damages and increase the stability of the robot. 28 aprile 2021...
  • Page 46: Robot Example For Structure 1

    5.2.2 Robot example for Structure 1 Here you can see some example of kinematics you can assembly on the Structure 1, to have your desired Variable Stiffness Robot. 5.2.2.1 Configuration Arm 1 Figure 5-7 Variable Stiffness robot Arm 1 and its DoF on the structure 1. This configuration has a first vertical joint to better explore the workspace, two horizontal joints to move the Tool Centre Point on a vertical plane and finally a variable stiffness gripper.
  • Page 47 5.2.2.2 Configuration Arm 2 Figure 5-8 Variable Stiffness robot Arm 2 and its DoF on the structure 1. This configuration has a first vertical joint, the second one is horizontally placed end the third is rotated 90 ° compared to the previous one. We suggest to set the qbmove ID from the bottom (ID 1) to the gripper (ID 4).
  • Page 48 5.2.2.3 Configuration WRIST Figure 5-9 Variable Stiffness robot WRIST and its DoF on the structure 1. This configuration is similar to a robotics wrist, with the three consecutive joints perpendicularly assembled. We suggest to set the qbmove ID from the bottom (ID 1) to the gripper (ID 4). 28 aprile 2021...
  • Page 49: Support Structure 2

    Support structure 2 This is an aluminum structure with a Plexiglass as framework and a vertical profile to place your robot arm. Following picture shows the components of Structure 2 accessory. Figure 5-10 Accessory Structure 2 components. 28 aprile 2021...
  • Page 50: Structure Assembly

    5.3.1 Structure assembly Assembly a pair of profiles 3016 connecting each other by a stirrup 3020, moreover assembly a component 3017 and a component 3019. Figure 5-11 Assembly of two profile for the structure base. Use the same components to assemble a symmetrical system (make sure to check the quotes). Assembly the two bases with the square profile 3015 using nuts 3014 and screws 3010, then assembly a stirrup 3017 and place the cup 3018.
  • Page 51 Make sure of the correct position of aluminium profiles, in order to have a stiff and balanced structure.  ✓ Figure 5-13 Assembly of aluminum profiles. 28 aprile 2021...
  • Page 52 Insert in the external guides of profiles four nuts 3014 and 2 cups 3019 (Figure 5-14). Figure 5-14 Assembly of the base nuts. 28 aprile 2021...
  • Page 53: Robot Assembly

    Assembly the Plexiglass plate by four screws 3012 (Figure 5-15). Figure 5-15 Assembly of the Pexiglass plate. 5.3.2 Robot assembly To connect your robot to the structure, use a Flat Flange (4.1): open the flange, insert four 3008 nuts and connect the flange at the first qbmove Advanced of your robot. Figure 5-16 Connection between qbmove Advanced and the Flat Flange.
  • Page 54 Place two nuts 3014 and two screws 3010 in the plastic interface, then connect the Flat Flange prepared before, by four screws 3007. Figure 5-17 Connection of the robot to the plastic interface. Connect the interface to the front surface of the structure inserting it from the top, then lock two screws 3010 and place the cup 3018.
  • Page 55: Robot Examples For Structure 2

    5.3.3 Robot examples for Structure 2 Here you can see some example of kinematics you can assembly on the Structure 1, to have your desired Variable Stiffness Robot. We suggest to set the qbmove ID from the frame (ID 1) to the gripper (ID 4).
  • Page 56 5.3.3.2 Configuration Arm V2 Figure 5-21 Variable Stiffness Arm V2. This kinematic has three consecutive vertical joints and a variable stiffness gripper. This robot can perform tasks on horizontal plane with high dexterity. Figure 5-22 shows a generical configuration of this robot and its dof. Figure 5-22 Joints of Arm V2.
  • Page 57: Qb Control

    qb control Figure 5-23 qb control module. The qb control module is used to control directly the various robots’ configurations you can realize with the accessories described in this chapter. It allows to interact with the preferred kinematic using one of the ways described in chapter 6, with the advantage of not having to connect the robot to a computer or perform any computation in this last.
  • Page 58: Software

    6 Software This chapter explains how to install the software, connect the actuators and use them. The qbmove GUI will help you to test and use the single qbmove; A Simulink package also can be used to control the qbmoves; The qbAPI software protocol lets you build a custom program to use the devices you have;...
  • Page 59: Installing The Drivers

    Installing the drivers Independently from the chosen solution between GUI, Simulink package or qbAPI tools, it is necessary to download and install the drivers from FTDI’s site. Instructions vary between operative systems, but it is only necessary to install the drivers under MAC OSX or Windows.
  • Page 60: Main Layout

    must execute: sudo adduser user_name dialout where user_name is the username under which the GUI is used. Once this command is executed, it is necessary to log out and back in, for the changes to take effect. 6.2.2 Main Layout Figure 6-1: qbmove GUI main window Application is structured in one tab only: •...
  • Page 61 To use the qbmove with this application you have to click on “Scan Ports”. If the qbmove is properly connected, you’ll see the serial port in the little window on the left. Once the serial port is seen you could connect the device clicking on the Connect button. This operation, if successful, enables all of the buttons and you should see a green “Connected”...
  • Page 62: Basic Tab

    6.2.3 Basic Tab Figure 6-3: qbmove GUI Basic tab • Devices IDs present: Once the device, or devices (if connected in a chain), are connected clicking on “Connect”, a list of their IDs is going to be showed here. Selecting the desired ID from drop-down menu will make the application connect to that device and is then possible to use that specific device only;...
  • Page 63 IMPORTANT Remember to power the qbmove, or the chain, before using it. 28 aprile 2021...
  • Page 64: Simulink Package

    Simulink package 6.3.1 Installation 6.3.1.1 Download The first necessary steps to use the qbmove with Simulink, are: Download the qbmove_simulink repository Download the qbAPI repository Before compiling be sure to have a folder tree like the following, i.e. rename the folders accordingly: your_working_directory: •...
  • Page 65 In the new model go to: "Simulation -> Model Configuration Parameters". Under "Solver" select as Type "Fixed-Step", as Solver "ode1 (Euler)" or "discrete (no continuous states)" and as Fixed-step size type the delta_t in seconds. (e.g. if you want to retrieve positions and set new inputs every 5 milliseconds, type 0.005). Click "OK". Every qbmove needs at least 1 millisecond to read and set new positions, so the minimum step time allowed is 1 millisecond multiplied by the number of qbmoves in the chain.
  • Page 66 The block outputs have the following functions: Pos.1: Gives the position measurements of the first motor of the device. − Pos.2: Gives the position measurements of the second motor of the device. − Pos.L: Gives the position measurement of the qbmove shaft. −...
  • Page 67 “Equilibrium Position and Stiffness Preset” – This modality works only with the qbmove. It drives the shaft position and its stiffness. Both the inputs are in the measurement unit defined by the field “Unit” Equilibrium Position and Stiffness Preset Percentage” – This modality works only with the qbmove.
  • Page 68 with the right number of the serial port. The communication baudrate should be put equal to 2000000. MAC OSX: On OSX the devices are usually seen as /dev/tty.usbserial-XX. To set the port name, double click on the block and insert in the line edit ‘/dev/tty.usbserial-XX’...
  • Page 69 Figure 6-8: qbmove Get Current and Measurements block QB Pacer This is a mandatory block. Every simulation schematic needs to have one. Is used make the simulation go as the same velocity as the devices connected. As you can see in the following example, is always used with a Clock to see if the commands of the simulation are going at the same velocity of the device, or slower.
  • Page 70 6.3.2.3 Example In the main folder, you will find an example called "qbmove_example.slx". This is a simple configuration which you can use to test your qbmove. Figure 6-10: qbmove control Simulink example This example is structured for one device only, with ID equal to 65. As you can see in the above image on the left there are two constant inputs with a slider gain each, which can be tweaked while the simulation is running and you can see the device will move.
  • Page 71: Delta Robot Example

    As you can see, the QB Pacer block is used to confront time with the clock of the simulation. The two times, the clock and the real time, are confronted in a scope. There should be two lines in it. If the simulation step is set correctly the two lines should be overlapped. If the two lines diverge, a bigger step size must be set.
  • Page 72: Qbapi Software Protocol

    • The end-effector qbmove can be treated as a two-finger gripper with the advantage of exploiting the positioning and compliance control proper of qbmove devices. Indeed, the grip can be more or less strong w.r.t. the applied stiffness. Moreover, following the example in the script “delta_waypoints.m”, it is possible to send predefined waypoints in an infinite loop fashion, which can be used to create a simple static demo application.
  • Page 73: Integrating The Functions

    Download the make utility from here. Follow the installation instructions. When the installation procedure has ended you will need to add the binary path to the Environment Variables. To do that follow the previous steps. The binary folder for make utility is in C:\Program Files (x86)\GnuWin32\bin.
  • Page 74 • Description: This function is used to close communication between the computer and the device. Is necessary to use it before a program is terminated. • Arguments • comm_settings *comm_settings_t: Structure containing info about communication settings • commActivate • Description: This function activates the motor drives (or the motor drive if only one present) of the device.
  • Page 75: Code Examples

    • short int inputs[]: The array used to store the inputs to be taken to the devices • commGetMeasurements • Description: This function is used to retrieve the encoder measurements from the device. The measurements returned are in encoder ticks. If you are using the qbmove, the constant to convert from ticks to degrees is 360/32768.
  • Page 76 g++ qbmove_example.cpp libqbmove_comm.a -o qbmove_example .\qbmove_example This is not a complete program that use the device with all its capabilities but it is only an example to see what is the correct order of functions and what functions should be used to integrate the device within your system. This example is tested on Linux OS.
  • Page 77 openRS485(&file_descriptor, serial_ports[0]); // use one of the values from RS485listPo (file_descriptor.file_handle == INVALID_HANDLE_VALUE) { std::cout << "ERROR: \tfails while opening the serial resource (sets errno [" << strer ror(errno) << "])." << std::endl; return std::cout << "INFO: \tconnected to qb device..." <<...
  • Page 78 return std::cout << "INFO: \tmotor currents are: " << std::endl << "\t- motor 1: " << currents[ 0] << std::endl << "\t- motor 2: " << currents[1] << std::endl; std::cout << "------------------------------" << std::endl; std::cout << "INFO: \tStart qbmove demo" <<...
  • Page 79: Ros

    usleep(1000000); #endif commands[0] = -15000; // max negative turn commands[1] = 16000; // middle stiffness commSetPosStiff(&file_descriptor, device_id, commands); std::cout << "INFO: \tmax negative turn, middle stiffness" << std::endl; #ifdef _WIN32 Sleep(1000); #else usleep(1000000); #endif // ... commActivate(&file_descriptor, device_id, FALSE); //deactivate motor #ifdef _WIN32 Sleep(1000);...
  • Page 80: Installation

    6.5.1 Installation qbmove related ROS packages have been tested only on Ubuntu Xenial 16.04. and 18.04. We are currently working to improve the compatibility IMPORTANT with the major distributions of linux, this requires time though. We apologize for the inconvenience and we will be glad if you report any problem encountered with not yet supported distros.
  • Page 81: Usage

    It is worth noticing that the Catkin Workspace is expected to be already initialized. If you have never used ROS on your current machine, you should IMPORTANT follow this guide first: http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment Compile the packages using catkin: cd ~/catkin_ws catkin_make If you were not familiar with ROS you should be happy now: everything is done! Nonetheless, if you encounter some troubles during the compilation, feel free to ask for support on...
  • Page 82 Figure 6-11: Synchronous vs asynchronous control mode. Mixed configurations can be also achieved through a proper setup. In such a case we can think of synchronous sub-systems which execute asynchronously w.r.t. each other. Note that in a single-device system the synchronous mode is a nonsense. In both cases there is always one central Node which manages the shared resources for the serial communication (e.g.
  • Page 83 Figure 6-12: Package overview with C++ class details 6.5.2.2 Communication Handler The Communication Handler Node has no parameters to be set, therefore it is always launched like this: roslaunch qb_device_driver communication_handler.launch On start, it scans the serial communication resources connected to your system and shows a list of the devices it has found.
  • Page 84 [2] devices connected: [ INFO] [1524044525.218696997]: - device [1] connected through [/dev/ttyUSB0] [ INFO] [1524044525.218736612]: - device [2] connected through [/dev/ttyUSB1] When the Communication Handler is on, it provides all the Services required to interact with the connected devices: e.g. get info or measurements, activate or deactivate motors, set commands, and even more...
  • Page 85 Figure 6-13: Example of launch files 6.5.2.4 Control Modes For the sake of simplicity, we are going to cover all the control modes for a single qbmove, but it is just a matter of putting things together and set the launch file parameters properly to control several devices together (qb_chain_control is dedicated for such a scope).
  • Page 86 false) and make a call to the Communication Handler Service, when activate_motors your system is ready, e.g. as follows: rosservice call /communication_handler/activate_motors {"id: <ac tual_device_id>, max_repeats: 0"} Additional arguments • [0.01]: The duration of the control loop expressed in control_duration seconds.
  • Page 87 The followings are particular control modes which are enabled with few parameters, but the concepts of this paragraph hold for all of them. 6.5.2.5 GUI Control This control mode is the simpler and the one suggested to test that everything is working as expected.
  • Page 88 6.5.2.6 Waypoint control This control mode is a bit more structured and useful than the previous: it allows to set a fixed trajectory of any number of position waypoints (with timing constraints) and set the robot to cycle infinitely on it (because of the loop it is recommended to set the first and last waypoint in a similar configuration to avoid unwanted sudden changes).
  • Page 89: Delta Robot And Open Kinematic Chains Examples

    time: [4.0] joint_positions: <device_name>: [0.5, 0.0] joint_velocities: <device_name>: [-0.5, 0.0] 6.5.2.7 API control If you need a complex (i.e. real) control application, e.g. the qbmove is mounted on a robot which uses computer vision aid to grasp objects, the previous two control modes don't really help much.
  • Page 90 6.5.3.1 Launch file and URDF model The .launch files included in qbchain package are built in a very similar way to the one reported in Figure 6-13, and you can also inspect it by opening one of the files included in “~/catkin_ws/src/qbchain-ros/qb_chain_control/launch”.
  • Page 91 • the 3D positioning of the end-effector can be more or less compliant to the surrounding environment by adjusting the stiffness of the three joints. This leads respectively to a less or more precise pursuing of the control reference, but the compliance can be exploited to achieve many tasks that could not have been done otherwise;...
  • Page 92 nsecs: 0 frame_id: '' point: x: 0.17 y: 0.02 z: 0.13 motor_stiffnesses: [1, 1, 1] velocity: 0.1 type_of_movement: moveJ" Obviously, if you want to interact with one of the others kinematics, you have to maintain the above message structure, changing the name of the topic as “/qb<robot_config>/control/<robot_config>_controller/target_poses”...
  • Page 93 # Waypoints describe the desired motion trajectory: - time [s]: it is mandatory and can be either a single value o r an interval for which other values hold; - end_effector [m]: a three-element list of [x, y, z] coordin ates for the delta end-effector position;...
  • Page 94: Qb Control

    In addition to the new controller, all the URDFs of the kinematic configurations that can be realized with the qbmove Kit and its accessories are equipped with Interactive Markers that enable a manual motion of the end-effector directly from rviz. Also, the stiffness of the joints can be adjusted manually, together with the gripper position and stiffness.
  • Page 95 where <robot_config> is the name of the kinematic configuration you have chosen. The command can be run both via ssh via computer and by connecting the module to a monitor via HDMI cable. In the first case you have to run the command: ssh pi@192.168.1.130 and type in the password “qbrobotics”;...
  • Page 96: Ros Packages Overview

    here you must insert the IP of your computer. You can find it typing IMPORTANT from terminal the command ifconfig. and in the same shell use the way you prefer to interact with the kinematic structure. 6.5.5 ROS packages overview You can find all the needed packages here: •...
  • Page 97 This page was intentionally left blank 28 aprile 2021...
  • Page 98: Troubleshooting

    7 Troubleshooting This chapter explains how to solve problems that you may encounter in the process of building a robot, programming a robot file, or operating a robot platform. 28 aprile 2021...
  • Page 99: Qbmove Output Shaft Doesn't Move Smoothly

    qbmove output shaft doesn’t move smoothly [Cause] In some cases, qbmove’s output shaft may get stiff and won’t rotate smoothly when you try to move it with your hands. This is not product failure but a situation caused by the tight arrangement of the internal gears.
  • Page 100: Blue Led Is Off When The Robot Is Powered

    Blue LED is off when the robot is powered [Cause] The blue LED is damaged or the actuator doesn’t receive the electrical supply, directly from the power supply or from a previous actuator of the power chain. [Troubleshooting] _____________________________________________________________________________ Solution 01 Connect qbmove to your PC and run “qbmove GUI”...
  • Page 101 [Troubleshooting] _____________________________________________________________________________ Solution 01 Under Windows, try changing the COM port number by going under Control Panel > Hardware and Sound > Device Manager. Open the Ports (COM & LPT) drop down menu, right click on the COM port and select Proprieties. Select the Port Settings tab and then click on Advanced.
  • Page 102: Commissioning And Maintenance

    8 Commissioning and Maintenance This chapter explains how to solve problems that you may encounter in the process of building a robot, programming a robot file, or operating a robot platform. 28 aprile 2021...
  • Page 103: Commissioning

    Commissioning Hazards due to hot surfaces Depending on the load and ambient temperature, the motor can overheat. Allow the motor to cool down after operation. Risk of injury caused by protruding, rotating or moving parts of the driven mechanical units Damage to the motor and/or Speed Controller because of incorrectly set control parameters Before commissioning, check and if necessary adjust the configured parameters.
  • Page 104: Appendix

    9 Appendix VSA papers A decoupled Impedance observer for a Variable Stiffness Robot http://www.centropiaggio.unipi.it/publications/decoupled-impedance-observer-variable- stiffness-robot.html A real time robust observer for an agonist antagonist variable stiffness actuator http://www.centropiaggio.unipi.it/publications/real-time-robust-observer-agonist-antagonist- variable-stiffness-actuator.html A Real-time Parametric Stiffness Observer for VSA devices http://www.centropiaggio.unipi.it/publications/real-time-parametric-stiffness-observer-vsa- devices.html A Stiffness Estimator for Agonistic–Antagonistic Variable-Stiffness-Actuator Devices http://www.centropiaggio.unipi.it/publications/stiffness-estimator- agonistic%E2%80%93antagonistic-variable-stiffness-actuator-devices.html Variable Stiffness Control for Oscillation Damping...
  • Page 105: Qbmove Papers

    qbmove papers VSA - CubeBot. A modular variable stiffness platform for multi degrees of freedom systems http://www.centropiaggio.unipi.it/publications/vsa-cubebot-modular-variable-stiffness- platform-multi-degrees-freedom-systems.html Towards variable impedance assembly: the VSA peg-in-hole http://www.centropiaggio.unipi.it/publications/towards-variable-impedance-assembly-vsa- peg-hole.html Passive impedance control of a Qboid multi-DOF VSA-CubeBot manipulator http://www.centropiaggio.unipi.it/publications/passive-impedance-control-qboid-multi-dof- vsa-cubebot-manipulator.html Open Source VSA-CubeBots for Rapid Soft Robot Prototyping http://www.centropiaggio.unipi.it/publications/open-source-vsa-cubebots-rapid-soft-robot- prototyping.html Robust Optimization of System Compliance for Physical Interaction in Uncertain Scenarios...
  • Page 106: Record Of Documented Revisions

    10 Record of documented revisions Revision Date Remarks 09/04/18 First version 2.10 08/08/18 Updated ROS section 2.11 23/10/18 Updated ROS section 2.12 16/04/19 Updated Electrical connections section 2.20 22/09/2020 Update paragraph 6.3 and 6.5 New chapter 5 “qbmove accessories” and update of ch 6 2.30 19/03/2021 2.40...

Table of Contents