Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
tutorials:pycram:own_robot [2021/02/05 11:25] – created jdechtutorials:pycram:own_robot [2021/02/05 11:27] – [Implementation] jdech
Line 12: Line 12:
     * Joint chains, for example the joint chain of each arm.      * Joint chains, for example the joint chain of each arm. 
     * Joint configurations, for example the parking position of the arms.      * Joint configurations, for example the parking position of the arms. 
-=== Initialization == +=== Initialization ===
 In PyCRAM the robot description is a class which extends the RobotDescription class. The attributes to initialize are moistly self explanatory. Name is the general name of the robot, base_frame is the origin of the URDF while base_link is the base link in the URDf, torso_link and torso_joint are the names of the torso joint and link, if there are any and lastly ik_joints means all non-fixed joints this is used for ik resolution and has to be given. Optionally an odom frame and the corresponding joints can also be specified. This then looks like this: In PyCRAM the robot description is a class which extends the RobotDescription class. The attributes to initialize are moistly self explanatory. Name is the general name of the robot, base_frame is the origin of the URDF while base_link is the base link in the URDf, torso_link and torso_joint are the names of the torso joint and link, if there are any and lastly ik_joints means all non-fixed joints this is used for ik resolution and has to be given. Optionally an odom frame and the corresponding joints can also be specified. This then looks like this:
 <code> class BoxyDescription(RobotDescription): <code> class BoxyDescription(RobotDescription):
Line 45: Line 45:
                               minimal_height=minimal_height, maximal_height=maximal_height) </code>                               minimal_height=minimal_height, maximal_height=maximal_height) </code>
                                                              
-==== Additional Info ==== +=== Additional Info === 
 For more examples or a full implementation of a robot description please referee to the already implemented descriptions [[https://github.com/cram2/pycram/blob/master/pycram/src/pycram/robot_description.py#L401 | here]]. For more examples or a full implementation of a robot description please referee to the already implemented descriptions [[https://github.com/cram2/pycram/blob/master/pycram/src/pycram/robot_description.py#L401 | here]].
                                                              
-=== Process Modules === +==== Process Modules for your robot ==== 
 To add a robot to PyCRAM the plans and designators can all stay the same the only thing specific are the so-called process modules, these are the low-level implementation which interacts directly with the robot. Normally one process module is responsible for one physical resource, for example one process module for the gripper and another to navigate the robot in the room.  To add a robot to PyCRAM the plans and designators can all stay the same the only thing specific are the so-called process modules, these are the low-level implementation which interacts directly with the robot. Normally one process module is responsible for one physical resource, for example one process module for the gripper and another to navigate the robot in the room. 
 Besides this differentiation there is another one, that is if the process module is for the real robot or for the simulation. That is because in the simulation a lot of steps a real robot would perform are left out, for example if moving the robot it is teleported to the target location instead driving to it. This is done to save time and speed up the simulation, so the robot can simulate different scenarios before executing one.  Besides this differentiation there is another one, that is if the process module is for the real robot or for the simulation. That is because in the simulation a lot of steps a real robot would perform are left out, for example if moving the robot it is teleported to the target location instead driving to it. This is done to save time and speed up the simulation, so the robot can simulate different scenarios before executing one. 
  
-==== Implementation ==== +=== Implementation ===