List of Available Robots
- This page lists the available robots in ay_tools. ay_tools provide a framework to operate different robots in the same way. This is done by wrapping each robot control (over ROS and non-ROS) by a common interface. "Available robots" means robots that is accessible through this common interface.
Overview †
In order to operate robots with a common interface, ay_tools provide the following two mechanisms:
- TMultiArmRobot Class
- TMultiArmRobot is an interface class to operate a robot system with multiple arms (e.g. Baxter: 2 arms, Mikata Arm: 1 arm). Robot classes of different robots are defined as subclasses of TMultiArmRobot, so we can operate them through the same interface. Both TMultiArmRobot and its subclasses are defined in the Python library ay_py (Note: it is independent from ay_trick described below, so you can make a Python program that is independent from ay_trick). TMultiArmRobot is defined in ay_py/ros/robot.py, and the robot classes are defined in the same directory (ay_py/ros).
- ay_util
- ROS utility, including launch files of robots.
- ay_trick
- ay_trick is a framework to build integrated robotic applications in an interactive programming fashion. The Python library ay_py is designed to be general, while ay_trick is designed to cover situation-specific systems.
Use Cases †
Just Using the Common Interface †
First, launch the robot with a launch file in ay_util or other ways (Note: the launch file in ay_util also launches utility programs including state-validity checker (collision checker). If you with to launch the robot only, it's recommended to make your launch files.). e.g.
$ roslaunch ay_util motomansia10f_ksim.launch
Then run your Python program where a subclass of TMultiArmRobot (e.g. TRobotMotoman) is used. In the program, you will instantiate the robot class (e.g. TRobotMotoman), initialize it, and then writing operations using the common interface TMultiArmRobot.
Using ay_trick †
First, launch the robot with a launch file in ay_util or other ways (Note: the launch file in ay_util also launches utility programs including state-validity checker (collision checker). If you with to launch the robot only, it's recommended to make your launch files.). e.g.
$ roslaunch ay_util motomansia10f_ksim.launch
Second, launch CUITool of ay_trick.
$ rosrun ay_trick cui_tool.py
Third, setup the robot in CUITool. e.g.
> robot 'motos'
Then, run your Script under the ay_trick framework (a Python script with ay_trick code). Note that in your Script, you can access the robot by ct.robot (ct is the CoreTool object). In most cases, you do not need to consider which class ct.robot is.
What are Listed Below? †
In the robot list below, we describe the following items for each robot:
- ROS launch command: Launch command provided in ay_util.
- Robot class: A subclass of TMultiArmRobot.
- ay_trick setup command: Setup command in ay_trick.
Related Topics †
List of Robots †
Mikata Arm (normal) †
Setup
- Normal Mikata Arm (gripper is attached).
- Dynamixel-based robot arm connected with USB.
ROS launch command (kinematic simulation):
$ roslaunch ay_util mikata_ksim.launch
ROS launch command (real robot):
$ roslaunch ay_util mikata_real.launch
Robot class: TRobotMikata (defined in ay_py/ros/rbt_mikata.py).
ay_trick setup command (kinematic simulation):
> robot 'mikatas'
ay_trick setup command (real robot):
> robot 'mikata'
Mikata Arm (rotated wrist) †
Note: This is the robot we will use in the FingerVision hackathon 2018 fall.
Setup
- Mikata Arm with rotated wrist link (gripper is attached).
- Dynamixel-based robot arm connected with USB.
ROS launch command (kinematic simulation):
$ roslaunch ay_util mikata_rot_ksim.launch
ROS launch command (real robot):
$ roslaunch ay_util mikata_rot_real.launch
Robot class: TRobotMikata (defined in ay_py/ros/rbt_mikata.py).
ay_trick setup command (kinematic simulation):
> robot 'mikatas'
ay_trick setup command (real robot):
> robot 'mikata'
Motoman SIA10F †
Setup
- Motoman SIA10F connected to a PC over Ethernet.
ROS launch command (kinematic simulation):
$ roslaunch ay_util motomansia10f_ksim.launch
ROS launch command (real robot):
$ roslaunch ay_util motomansia10f_real.launch
Robot class: TRobotMotoman (defined in ay_py/ros/rbt_moto.py).
ay_trick setup command (kinematic simulation):
> robot 'motos'
ay_trick setup command (real robot):
> robot 'moto'
Universal Robots UR3 †
Setup
- Universal Robots UR3 connected to a PC over Ethernet.
- No gripper.
ROS launch command (kinematic simulation):
$ roslaunch ay_util ur3_ksim.launch
ROS launch command (real robot):
$ roslaunch ay_util ur3_real.launch
Robot class: TRobotUR (defined in ay_py/ros/rbt_ur.py).
ay_trick setup command (kinematic simulation):
> robot 'urs'
ay_trick setup command (real robot):
> robot 'ur'
Universal Robots UR3 with Dynamixel Gripper †
Setup
- Universal Robots UR3 connected to a PC over Ethernet.
- Dynamixel Gripper.
ROS launch command (kinematic simulation):
$ roslaunch ay_util ur3_ksim.launch
ROS launch command (real robot):
$ roslaunch ay_util ur3_real.launch
Robot class: TRobotURDxlG (defined in ay_py/ros/rbt_urdxlg.py).
ay_trick setup command (kinematic simulation):
> robot 'urdxlgs'
ay_trick setup command (real robot):
> robot 'urdxlg'
Baxter †
Note: Not tested for more than a year.
Setup
- Rethink's Baxter robot connected to a PC over Ethernet.
- Left gripper is the Robotiq gripper. Right gripper is Baxter EPG.
ROS launch command (kinematic simulation):
N/A
ROS launch command (dynamics simulation):
$ roslaunch ay_util bx_sim1.launch $ roslaunch ay_util bx_sim2.launch
ROS launch command (real robot):
$ roslaunch ay_util bx_real.launch
Robot class: TRobotBaxter (defined in ay_py/ros/rbt_bxtr.py).
ay_trick setup command (kinematic simulation):
N/A
ay_trick setup command (dynamics simulation):
> robot 'bxs'
ay_trick setup command (real robot):
> robot 'bx'
PR2 †
Note: Not tested for long time.
Setup
- Standard PR2.
ROS launch command (kinematic simulation):
N/A
ROS launch command (dynamics simulation):
$ roslaunch ay_util pr2_sim_l.launch
ROS launch command (real robot):
$ roslaunch ay_util pr2_real_l.launch
Robot class: TRobotPR2 (defined in ay_py/ros/rbt_pr2.py). ay_trick setup command (kinematic simulation):
N/A
ay_trick setup command (dynamics simulation):
> robot 'pr2s'
ay_trick setup command (real robot):
> robot 'pr2'