At this time, Liatris is exclusively a proof of concept. This is written in detail for those who want to replicate the experiment using the identical hardware.
The goal was to deliver a proof of concept working with existing, commercially available hardware. As a result, this is a convoluted solution requiring the simultaneous use of Linux & Windows operating systems as well as updating scripts written in Ruby, PHP and Python programming languages. A future release will support Python and Linux exclusively.
Local Network and API
For simplicity of the proof of concept, both the local network and API are on the same server.
Set up a LAMP stack server. You can follow instructions on the TurtleBot tutorial’s LAMP stack page.
Copy the entire contents of Liatris’ repository’s /WebServer/ folder to the servers /var/www/html/ folder.
First, modify /config/config.php and set your MySQL database IP, username and password. Use a MySQL user with full privileges because these scripts will automatically create the necessary database and tables.
Then, call [yourserverip]/index.php.
The following options are available:
- Log of points on touch screen - Prints log of touch screen x and y percentages for troubleshooting.
- Graph last object - Draw the last object’s pose on a graph.
- Log of RFID values - Prints log of all RFID values read by the RFID reader for troubleshooting.
- Delete all RFID values - Deletes the entire RFID table. This should be run before every test run. Currently, duplicate RFID values will be ignored. To support duplicate objects in the future, this should be changed to support RFID values that contain both an object_id (object_id is equivalent for all identical object types) and tag_id (tag_id is unique to this specific tag).
Cite: This solution, EPC tags, was initially developed by MIT.
It’s critical to use a touch screen that supports multi-touch.
On the Windows computer:
- Connect the touch screen monitor. Install any drivers that came with your monitor.
- Install Python
- Install Kivy
- Download a copy of send_touch screen_points_to_server.py.
- Edit this file.
- Update windowsize_width’s value to your monitor’s width in pixels.
- Update windowsize_height’s value to your monitor height in pixels.
- Modify the server’s path called in urlopen to point to your server’s address or IP.
- Start send_touch screen_points_to_server.py by using the Start a Kivy Application instructions. Tip: Running python send_touch screen_points_to_server.py will not work!
To validate that it’s running correctly:
- Place a finger on the screen; a randomly colored box should appear.
- Check if that point is published to the network by reviewing “Log of points on touch screen” listed under “Setup Local Network & API”.
Note: These instructions are specific to Alien Technology’s ALR-9680.
Follow the included instructions on how to connect ALR-9680 to your local network. Connect the antenna to Baxter’s right gripper. Use zip ties because Baxter’s parallel gripper’s force isn’t sufficient to hold the antenna.
Download the Demo Software Gateway found on ALR-9680’s page. Install this on your Windows computer. Run this to test if your network is set up correctly. This is also helpful for writing values to each RFID tag.
- Download the Ruby API found on ALR-9680’s page.
- Follow the instructions on how to install the Ruby API on the reader.
- Install the included (out-dated) version of Ruby (found in the download on Alien’s website) on your Windows Computer.
- Copy both Ruby scripts for the RFID Reader.
- Modify rfid_to_server.rb.
- Update the server called in URI.parse to point to your server’s address or IP.
- Run ruby rfid_to_server.rb to start collecting RFID values.
To validate it’s running correctly:
- Place a test tag in front of the antenna.
- Verify that you are collecting values by viewing the local network’s Log of RFID values page.
Tip: turn_rfid_reader_off.rb is a convenient way to disable the reader’s antenna.
Prior to starting this, make sure:
- send_touch screen_points_to_server.py is running.
- All RFID values have been deleted (by calling the link on the server).
- rfid_to_server.rb is running.
On the Linux computer:
- Install ROS and all of Baxter’s python scripts / ROS libraries installed.
- Make a local copy of Liatris/Robot.
- Allow Liatris to create local STL and config files
- chmod 777 ./stl/
- chmod 777 ./
- Edit liatris.py.
- Set _server to your API’s server or IP address.
- Modify your table’s dimensions by editing the draw_table_in_rviz function.
- Enable Baxter
- rosrun baxter_tools enable_robot.py -e
- Start MoveIt
- roslaunch baxter_moveit_config demo_baxter.launch
- Run Liatris
- python liatris.py