A parser is developed to search through the automaton generated from gr1c and control the real robot.
This file is to execute the automaton generated by gr1c (http://scottman.net/2012/gr1c) on real robot platform UR10. gr1c is a collection of tools for GR(1) synthesis and related activities. In our example, an automaton are synthesized automatically to accomplish the task specified by the user, e.g. "pick up the object and put down". The robot actions are based on currently sensed environment. All the environment variables are sensed by AprilTag.
- Universal Robot UR10
- Robotiq 140mm Adaptive parallel-jaw gripper
- Logitech HD 1080p camera
- AprilTag
- ROS Kinetic
- Python library to control a robot from 'Universal Robots'
- Universal Robot package for ROS Kinetic
- Robotiq ROS package
- gr1c
- usb_cam
- apriltags_ros
Please do the following steps for executing the automaton by GR(1) synthesis on UR10 robot.
- Follow the tutorial in Universal Robot package for ROS Kinetic and Robotiq ROS package to set up hardware properly.
- Download the repository to /ROS_WORK_SPACE/src, and build the package. Enter into the workspace
cd /ROS_WORK_SPACE/src
- Open
roscore
and run Logitech HD 1080p camera in ROS.
roslaunch apriltags_ros apriltags_ros.launch
- Specify the task in an .spc file. Please refer to https://tulip-control.github.io/gr1c/ for the correct format.
/automaton_parser/src/example.spc
is an example. - Run the python file
python /automaton_parser/src/Parser_aut_ctl
. - Type in the .spc file name. You can see an automaton has emerged in the folder
/automaton_parser/src
. - Open a new terminal and run the python file
python /automaton_parser/src/Executer
. - If "Pub complete" emerges in the terminal where
Executer
runs, typeYes
in the terminal whereParser_aut_ctl
runs. - If "Pub complete" emerges in the terminal where
Parser_aut_ctl
runs, typeYes
in the terminal whereExecuter
runs. - If "Robot action callback" emerges in the terminal where
Executer
runs, typeYes
in the terminal whereParser_aut_ctl
runs. Observe the action of the robot.