-
Notifications
You must be signed in to change notification settings - Fork 3
Robotic Arm
The OWI 535 Edge robotic arm is sold in the UK by Maplin in kit form. It is also marketed as the Velleman KSR10
Note that the device is controlled by motors not servos, so the precise positioning at the end of movements is not guaranteed. At least one project attempts to use inverse kinematics to calculate the actual position.
The OWI Robotic Arm Edge USB Protocol requires 3-byte movement commands to be sent via usb, with each bit relating to a specific action. The movement will continue until you send byte codes telling it to stop.
sudo apt-get install libusb-1.0-0
# add udev rule so you can send commands without being SU
echo ACTION==\"add\", SUBSYSTEM==\"usb\", ATTR{idVendor}==\"1267\" ,ATTR{idProduct}==\"0000\", MODE=\"0666\" \
| sudo tee -a /etc/udev/rules.d/95-robot.rules
Once you have installed libusb you can use:
- PyUSB ctrl_transfer command
- C libusb_control_transfer command
I have yet to find a way to send USB Control Transfer messages directly from the command shell.
the Roboarm project by Vladimir Iakovlev exposes controls very simply
- Project page [https://pypi.python.org/pypi/roboarm/]
- docs [https://github.com/nvbn/roboarm/blob/master/docs/api.rst]
- credit [http://devinhenkel.com/what-the/control-owi-robotic-arm-from-scratch/]
To control the arm with a PS3 controller, you can use the libraries pygame and roboarm.
On Raspbian:
- install: python3-pygame joystick libusb libusb-dev
- pip install roboarm
- for help configuring and pairing the controller
- see [https://github.com/artmg/MuGammaPi/wiki/CamJam-Robotics-Kit#using-pygame]
- The Maplin online store refers to the a WikiHow article on using the arm with the Pi
- See also the Pi forum article
- or
- Liz Quilty's article on hacking the arm
-
Liz Quilty's Web-based Python control
- download code needs tweaking
# install apache2
sudo apt-get install -y apache2 git-core
# create folder and downloading lisquilty's python code
sudo git clone https://github.com/lizquilty/roboticarm.git /var/www/robot
# add the suggested httpd config Directory section using /var/www/robot
sudo nano /etc/apache2/sites-available/default
# restart apache to pick up new config
sudo service apache2 restart
# Now try browsing to
# http://pi-ip-addr/robot/armtrol.py
# Troubleshooting
# check apache error log
less /var/log/apache2/error.log
- Peter Lavelle's Python control 'psuedo languange'
- Poly's Python for control - look in reverse order for the best understanding
- Use XBox controller with Matt Dyson's Python arm control project
- Using a wii-mote instructable [http://www.instructables.com/id/Raspberry-Pi-and-Wiimote-controlled-Robot-Arm/]
Maxin B. John has developed an alpha linux kernel driver but the linux community recommended using a userspace control via libusb as the preferred way forward.
FUZE BASIC can control the arm: http://www.fuze.co.uk/2014/03/robot-arm/
However FUZE BASIC is a commercial derivitive of RTB Return To Basic
The ROS wiki has an article on the OWI 535
This article shows how to skip the internal USB controller and drive the motors directly
The product ships with a CDROM containing unsigned Windows drivers and a Windows GUI interface to control the motors, with option to record and replay sequences of movement.
There is a win32 version of libusb available, which some say works fine with python on Windows. Search for libusb-win32 and the function usb_control_msg() (apparently timeout value must be set, and not be 0).
The simplest way to set up the USB driver with libusb-win32 is using Zadig
- Install Python3 for Windows from python.org
- Right click on shortcut to Open File Location for Start Menu / Programs / Python
- Right-click to create shortcut to CMD - save it as it is
- Right click on CMD shortcut to Edit properties
- Start In - copy the value from one of the Python shortcuts
- rename Command for Python
- use Command for Python to execute:
python -m pip install -U roboarm
- Use Zadig from [http://zadig.akeo.ie/] to install USB drivers
- For Device ID 1267 : 0000
- Edit the name to "OWI535 Robotic Arm"
- Choose libusb-win32
- Install Driver