Skip to content

_Tutorial: Setting up and running the ST 17 Robotic Arm

Minh-Khang Vu edited this page Aug 22, 2019 · 1 revision

Prerequisites

This tutorial will set up your environment to be able to run the ST-R17 Robotic Arm. It assumes that you have all the dependencies setup:

  • Using Ubuntu 16.04
  • ROS kinetic installed, catkin_ws ready and in use
  • IRL github repository cloned, and installed (Git clone into src folder of ROS catkin_ws, catkin_make, etc.)
  • Basic understanding of how the arms work (Publisher, Subscriber, Service, Client, Rostopics, etc.)

If the above are ready to go, then follow these steps:

  1. Make sure the IRL repository is up to date
  • You always want to be using the latest code when using the arm, except for certain circumstances.
  • Use git merge master on your branch to get the latest code from master, which is considered the most stable branch
  • Build your workspace with catkin_make -C ~/catkin_ws to make sure your ROS is using the most update to C code that's in your IRL repository

Hardware Bringup

  1. Turn Edwin on by flipping the power button on his electronics box to "|". (Pictured below) Switch
  2. Plug the USB cord into a port on your computer. The connector (pictured below) uses a usb serial connector to connect to the robot. Wait until the green light is blinking slowly at one second intervals. Connector

Software Bringup

  1. Run roscore in a new Terminal window.
  • Press Ctrl-Alt-T to start a new Terminal tab.
  1. Open a terminal and start the arm
  • This is done with rosrun irl edwin_node.py
  1. Open another terminal and start the arm's route database
  • This is done with rosrun irl edwin_routes.py
  1. Open another terminal and start the arm's behavior database
  • This is done with rosrun irl edwin_behaviors.py
  1. Assuming that all of the above ran with no problems/errors (no red walls of text or errors), then you're good to go! You can now either begin controller testing, or run your own scripts which can communicate with the arm now.

Testing

For testing purposes, you can, in addition to the above nodes running, also run:

rosrun irl test_arm_pub.py

This will open up a GUI, in which you can actuate the arm in any way you want using any of its possible movement types. Feel free to play around with it, and also use it for making your own routes/behaviors.

More...

If you need help on how to use ROS with your code to make the arms move, check out this script It's fairly large and complex, but if contains everything you need to know about how to make your code work with the arms. If you can understand the initialization (near top), the check_for_completion() method (below initialization), and the publishes (throughout the script), then you can make your own script!

The Dino Arms use a Service/Client model internally in the actuation suite, and externally communicating with other files they use a Publisher/Subscriber model. In this way you can make sure you send all your commands as fast as you can, but the Arms make sure that all your commands are executed in order and without drops.

To make your own behaviors/routes for running, understand that Edwin (the ST17) operates using either XYZ coordinates or joint movements. The coordinate plane is fixed, and numbers are absolute. Metrics for ranges go into the thousands, and differ based on the joint of the coordinate. Talk to the Project Lead for more knowledge on how all this works.