Skip to content

Commit

Permalink
Merge pull request cram2#170 from Tigul/new-robot-description
Browse files Browse the repository at this point in the history
New robot description
  • Loading branch information
Tigul authored Jul 10, 2024
2 parents 57dbfa6 + 4d3ca61 commit 571ddb5
Show file tree
Hide file tree
Showing 66 changed files with 3,486 additions and 3,180 deletions.
9 changes: 6 additions & 3 deletions doc/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,14 @@ The code for this plan can be seen below.

.. code-block:: python
from pycram.bullet_world import BulletWorld, Object
from pycram.world.bullet_world import BulletWorld
from pycram.world_concepts.world_concepts import Object
from pycram.process_module import simulated_robot
from pycram.designators.motion_designator import *
from pycram.designators.location_designator import *
from pycram.designators.action_designator import *
from pycram.designators.object_designator import *
from pycram.enums import ObjectType
from pycram.datastructures.enums import ObjectType, Arms, Grasps
world = BulletWorld()
kitchen = Object("kitchen", ObjectType.ENVIRONMENT, "kitchen.urdf")
Expand All @@ -79,7 +80,7 @@ The code for this plan can be seen below.
NavigateAction(target_locations=[pickup_pose.pose]).resolve().perform()
PickUpAction(object_designator_description=cereal_desig, arms=[pickup_arm], grasps=["front"]).resolve().perform()
PickUpAction(object_designator_description=cereal_desig, arms=[pickup_arm], grasps=[Grasps.FRONT]).resolve().perform()
ParkArmsAction([Arms.BOTH]).resolve().perform()
Expand Down Expand Up @@ -123,12 +124,14 @@ Authors
installation
designators
resolvers
new_robot
examples
troubleshooting
ros_utils
remarks



Indices and tables
==================

Expand Down
32 changes: 32 additions & 0 deletions doc/source/new_robot.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
============================
Adding a new robot to PyCRAM
============================

To add a new robot to PyCRAM, you need two things:
* A Robot description
* Process Modules to control the robot

--------------------------------
Robot Description
--------------------------------
The robot description defines certain semantic properties of the robot that can not be extracted from the robot's URDF automatically.
This includes kinematic chains which the robot can move (like the arms), descriptions of the end-effectors as well as
descriptions of the cameras mounted on the robot.

An overview of the different components of the robot description as well as how these are created can be found in the
following example:

.. nbgallery::
notebooks/robot_description.ipynb


--------------------------------
Process Modules
--------------------------------
Process Modules are the components that actually control the robot. They are responsible for executing actions on the robot
and are the only component of PyCRAM that interacts with the robot directly.

If you want to use the robot in simulation then you can use the provided default process modules which will suffice to
control the robot in simulation. However, should the provided process modules not be sufficient for your use case, you can
implement them yourself. For examples how the process modules are designed please have a look at the already implemented
process modules in :mod:`pycram.process_modules`.
Loading

0 comments on commit 571ddb5

Please sign in to comment.