Quick-Start =========== .. image:: media/gifs/xarm6_velocity_waypoints.gif :width: 100% The following guide provides information on how to quickly start and interact with your cobot. xARM6 Informative Links ----------------------- - `xARM6 Developer Manual `__ - `xARM6 User Manual `__ - `xARM6 Studio Tutorials `__ - `xARM6 Python SDK `__ - `xARM6 C++ SDK `__ - `xARM6 ROS SDK `__ - `xARM6 3D Files `__ - `xARM6 Certificates `__ - `Ufactory Studio Tutorials `__ - `Ufactory Usecases `__ Launch driver ~~~~~~~~~~~~~ .. code-block:: bash roslaunch mbs_ui app.launch .. image:: media/pictures/ui.jpg :width: 100% Once the app is launched, you will be presented with the aforeshown GUI. .. note:: GUI have several sections and fields(details below) whose default values can be set inside ``app.yaml`` (``mbs_ui/params``) file Network Connection ~~~~~~~~~~~~~~~~~~ .. image:: media/pictures/ui_network_connection.jpg :width: 80% In the network connection, you have to add the IP address of the xARM6. The IP address for the xARM6 is commonly in the range of `192.168.1.xxx`. Robot Control ~~~~~~~~~~~~~ The robot control section provides an interface to interact with the default controls of the xARM6. - **Go to home position** The go home position takes the robot to home pose set by the user. It is a typically safe configuration to ensure that auxiliary end-of-effectors are not effected. It moves the robot to the specified pose set by 'home_pose_source' ros parameter. - **Record home position** The record home position saves the home pose set by the user. It will take the arm to manual control mode. Users can guide the arm around and than record and save the desired home position of the robot. - **Manual control** It allows the robot to be manually controlled via hand. It does not perform/record anything just for purpose of hand guiding the robot. - **Go to zero position** Zero position takes the robot to the packing position or zero joint angle. It will not take into consideration any end-effector as the last link(link6) of the robot is quite near to the ground. .. warning:: The zero position does not take into consideration the auxiliary end-of-effector and will collide if the end-of-effector is not removed. - **Clear errors** This clears most of the errors from the xARM6, however, some special errors may not be cleared and have to be cleared via the Ufactory studio. Information on the error code that shows up can be looked up in the `manuals `__. Trajectory Control ~~~~~~~~~~~~~~~~~~ .. figure:: media/gifs/xarm6_trajectory_waypoints.gif :width: 100% :align: center Recording trajectory waypoints and playing them back twice. This section is resposible for recording and playing back trajectories. During trajectory recording, users have to move the robot around. These motion will be recorded and should be saved in order to play back later. Trajectory playback takes into consideration the speed and the number of times the trajectory should be played back. Waypoints Control ~~~~~~~~~~~~~~~~~ .. figure:: media/gifs/xarm6_waypoint_control_rviz.gif :width: 100% :align: center Recording waypoints in the ``mbs_gui`` app In this frame waypoint control is handled mainly collect, load and show waypoints. During the collection phase robot goes into hand guiding mode and can be moved around. Users can move the robot around and record the waypoints when desired. Wating time at waypoints can also be set in the user interface and have a unit of seconds. At the end users can save the waypoints. For robot operation in any of the modes (explained in next section) it is necessary that the desired waypoints are loaded inside the user interface. By default an empty waypoint configuration is loaded. However users can change the default waypoint file by setting the ros parameter ``waypoints_source``. .. figure:: media/gifs/xarm6_record_waypoints.gif :width: 100% :align: center Recording waypoints in the xARM6 Force Control ~~~~~~~~~~~~~ .. figure:: media/gifs/xarm6_compliance_control_rviz.gif :width: 100% :align: center Activating compliance control in the ``mbs_gui`` app Force control section is mainly responsible for *Force Torque Sesnor* and *Compliance Control*. .. important:: At start ``FT sensor`` published some garbage values which can have serious impacts on the compliance controller. Therefore users should always look(in the GUI as well as the sensors wrench topic). Either the force torque sensor reset or activate compliance control will reset the sensor and no garbage values are published. .. image:: media/pictures/ui_arm_sensor_garbage.jpg :width: 100% .. note:: Garbage values/force torque sensor does not effect velocity based control mode. It is only used in compliance control mode therefore effects the same. In complinace control three factors are considered and an equilibrium is found to optimize the desired constraint. The three responsible factors are: 1. Force torque sensor wrench 2. External applied force 3. Desired end effector point For example a user want the robot to move from its current position to some desired position `X`. Now from start position to the desired position `X` a path will be computed which will optimize the aboce three mentioned constraints. A very gentle introduction to control systems can be found `here `__ .. figure:: media/gifs/xarm6_compliance_waypoints.gif :width: 100% :align: center Activating compliance control in the xARM6 .. attention:: It is important to note that the force control provides garbage values both in the force (red arrow) and torque (yellow arrow) readings. - **FT Sensor Reset:** The force torque sensor reset removes the garbage values that initially come when starting up the robot. .. image:: media/pictures/ui_arm.jpg :width: 80% - **Activate Compliance Control:** Actiavtes compliance control and internally calls ``FT sensor reset`` as well. - **De-activate Compliance Control:** Deactivates the compliance control. - **Applied Force:** External applied force to the compliance control in all axes namely x, y, z. .. image:: media/pictures/ui_arm_external_force.jpg :width: 80% - **Error Scale:** This values scales the error signal to the control loop. Higher the error scale more is the robot responsive to the outer world(FT sensor values and external forces) less system stability. - **Goal Tolerance:** It determines the tolerance of the arm motion planner to reach the desired goal. Higher the tolerance less is the end goal accuracy.