All CoSTAR classes that represent components should ideally extend the CostarComponent
class in costar_stack/costar_component
.
For example:
from costar_component import CostarComponent
class MyComponent(CostarComponent):
def __init__(self, myargs, *args, **kwargs):
super(MyComponent, self).__init__(*args, **kwargs)
See the example component code.
Arm configuration should go in costar_stack/costar_bringup/launch/config
. For example, the UR5 config looks like this:
<launch>
<!-- Smartmove params -->
<group ns="costar">
<rosparam param="home">[0.30, -1.33, -1.80, -0.27, 1.50, 1.60]</rosparam>
<group ns="robot">
dof: 6
base_link: base_link
end_link: ee_frame
</group>
<group ns="smartmove">
<rosparam param="available_objects">
- sander_makita
- node_uniform
- link_uniform
- drill
- table
</rosparam>
<rosparam param="regions">
- in_back_of
- in_front_of
- right_of
- left_of
- up_from
- down_from
</rosparam>
<rosparam param="references">
- world
</rosparam>
</group>
</group>
</launch>
The alternative is to write a yaml file.
Tests go in costar_stack/costar_bringup/tests
. Right now these include:
- IIWA sim test: launches gazebo, servos to several positions and verifies that the robot makes it.
Make sure the tests work before making any changes.
- IIWA sim test is not included in Travis.