Skip to content

wrs tasks

Felix von Drigalski edited this page Nov 26, 2019 · 1 revision

How to run the kitting task

The kitting task is complicated to run. Follow this order and checklist:

  1. Restart the docker. In one terminal, run roscore.

  2. In one terminal, run PhoXiControl. This can take 1-2 minutes until a window shows up. Make sure that the button on the top left shows a "Pause" and not a "Play" symbol (= run the camera).

  3. In different terminals, do:

    roslaunch o2as_phoxi_camera o2as_phoxi_camera.launch
    roslaunch o2as_examples connect_real_robots.launch
    roslaunch o2as_moveit_config o2as_moveit_planning_execution.launch
    roslaunch o2as_skills o2as_skill_server.launch
    
  4. Run rosrun o2as_routines calibration.py. Equip the m4 tool with the c_bot. Check that the calibration of the trays and the feeder is correct. Check the positions of the bins with a_bot and b_bot.

  5. After calibration is done, rosrun o2as_routines kitting.py. Equip the suction tool with 1. Move the robots back by pressing 2. Start the task by entering start.

Notes

  • The skill server keeps track of the tools the robot carries. If it is restarted while it carries a tool, the tool has to be put back into the holder and equipped using the skill server.

Things to check

  • Is the c_bot calibrated to the tray? Does the tool move directly over the screw holes?
  • Is the c_bot calibrated to the feeders?
  • Run roslaunch o2as_routines action_clients.launch and check: -- Does the precision gripper work? Open, close, slightly_close it. -- Does the suction work? Send commands to suction_tool -- Do the motors work? Send commands to screw_tool_m4 and screw_tool_m3
  • Does the USB relay work? Run rosservice call /o2as_usb_relay/set_power ... (port: 2). The feeders should turn on and off.
  • Is self.bin_is_inclined set up correctly? Do the bin inclinations match? Look in kitting.py
  • Are the bins set up correctly? Are all the parts where they are supposed to be?
  • Is the o2as_bg_ratio calibration finished? Run 341 in calibration.py

How to prepare the kitting task (setup phase, t = -10 min)

Start up the robots, cameras, tools, grippers, USB relay and wait for the order file.

  1. Copy the order file to catkin_ws/src/o2as_scene_description/config/kitting_order_file.csv
  2. Run rosrun o2as_scene_description kitting_configuration_generator.py
  3. Open o2as_scene_description/urdf/templates/placement_bin_layout.csv. Do this:
  • Copy the list of bins into the variable self.bin_is_inclined. Incline the bins with few parts in them.
  • Copy the content of ``
  • Enter a line --- into the list of bins to separate them into sets.
  • Save the file contents of kitting_parts_bin_list.yaml
  1. Run rosrun o2as_scene_description bin_layout_generator.py
  2. Load the scene by restarting roslaunch o2as_moveit_config o2as_moveit_planning_execution.launch
  3. Check that everything looks correct and calibrate the scene via entries 321, 322 in calibration.py
  4. Calibrate o2as_bg_ratio via entry 341 in calibration.py. Check in the package that the background of the gripper is red.
  5. Start up rosrun o2as_routines kitting.py. Equip the suction tool with 1, move the robots to the start pose with 2, start the task with start

How to run the assembly task

  1. Restart the docker. In one terminal, run roscore.

  2. In one terminal, run PhoXiControl. This can take 1-2 minutes until a window shows up. Make sure that the button on the top left shows a "Pause" and not a "Play" symbol (= run the camera).

  3. In different terminals, do:

    roslaunch o2as_phoxi_camera o2as_phoxi_camera.launch
    roslaunch o2as_debug_monitor test.launch
    roslaunch o2as_examples connect_real_robots.launch
    roslaunch o2as_moveit_config o2as_moveit_planning_execution.launch
    roslaunch o2as_skills o2as_skill_server.launch
    
  4. Run rosrun o2as_routines calibration.py. Equip the m4 tool with the b_bot. Check that the calibration of the trays is correct.

  5. After calibration is done, rosrun o2as_routines assembly.py. Equip the m4 tool with 1. Move the robots into position by pressing 2. Start the task by entering start.

Notes

  • The skill server keeps track of the tools the robot carries. If it is restarted while it carries a tool, the tool has to be put back into the holder and equipped using the skill server.

Things to check

  • Are a_bot and b_bot calibrated to the trays?
  • Are the plates in the correct spot?
  • Run roslaunch o2as_routines action_clients.launch and check: -- Does the precision gripper work? Open, close, slightly_close it. -- Does the suction work? Send commands to suction_tool -- Do the motors work? Send commands to screw_tool_m4 and screw_tool_m3
  • Are the trays calibrated correctly? Do the calibration with a_bot and b_bot and the parts inside them.

How to prepare the assembly task (setup phase, t = -10 min)

Start up the robots, cameras, tools, grippers and wait for the trays.

  1. Set up the parts in the trays like this. The tray side facing the assembly jig is the "top". All questions have to be answered with "YES!"

-- Does the cut side of the motor shaft look up, so that it points upwards when mounted to the plate? -- Is the motor standing on its back side, inclined towards the left? -- Is the set screw inserted into the pulley? -- Is the side with the set screw pointing up towards the assembly jig? -- Can the pulley still be mounted to the shaft? -- Is the retainer pin standing with the screw head on top? -- Does the motor shaft touch the bottom right corner of its partition with its threaded end? Does its die cut end touch the left side of the partition? -- Are the washers equidistant to each other and the partition walls? -- Are all the small parts in the center of their partition?

  1. Carry the tray into the system running area. Reset parts that moved or fell over.

  2. Start up rosrun o2as_routines assembly.py. Equip the m4 tool with 1, move the robots to the start pose with 2, start the task with start.


How to run the taskboard task

```
roslaunch o2as_examples connect_real_robots.launch
roslaunch o2as_moveit_config o2as_moveit_planning_execution.launch
roslaunch o2as_skills o2as_skill_server.launch
rosrun o2as_routines taskboard_sequence.py
```

The taskboard.py interface should explain the rest.