21 May 2013
moveit
maxwell
robots
ros
Over the past few weeks I’ve been using MoveIt quite a bit – I was actually using the Pick and
Place actions for Maxwell’s chess playing last weekend at Maker Faire (an updated on that
shortly).
I recently changed over to using IKFast for IK under MoveIt. This fixes a number of problems
with the default IK plugin. I’m using ROS Groovy under Ubuntu Precise, and ran into several
issues which I thought I would mention here.
First off, I start with the excellent moveit_ikfast_generator
from Dave Coleman. You should run his instructions for “Create Collada File for Use with
OpenRave”. Once you have a collada file, here is what I did to make the ikfast generator
work:
sudo apt-add-repository ppa:openrave/release
sudo apt-get update
sudo apt-get install openrave0.8-dp-ikfast
At this point, I had to edit a /usr/lib/python2.7/dist-packages/openravepy/__init__.py to
add the following line just after the copyright:
__openravepy_version__ = "0.8"
Without this, nothing seems to run. Once the code is updated, the tools listed in
section 5 of the ROS Industrial tutorial
work as indicated.
Then it’s back to the README in moveit_ikfast_generator, where the instructions will
walk you through generating the ikfast plugin. One note there is also a command for:
openrave-robot.py my_robot.dae --info joints
which is very helpful if you have a 7-dof actuator and need to fill in the –freeindex
parameter.
I’d like to take one quick moment to thank Dave and the ROS Industrial team for their
documentation, and Ioan Sucan and the rest of the MoveIt team for the great platform
they’ve provided.
30 Apr 2013
blast-from-the-past
robots
ros
I was recently updating my personal website when I realized that I had some projects that had never
seen the light of day. This post is about one of these old projects that I never showed off:
Back in late summer of 2010 I started to build a miniature PR2. It was a 60% scale model of the PR2
arms, base, and torso. The base was differential drive instead of the more expensive casters found
in the PR2. I reused the motors and 6" wheels that had previously been used in REX, one of my first
large robots. For this robot, the frame was primarily 8020 Aluminum rail covered/connected with
laser-cut ABS and the occasional sheet metal bracket:
The head sported a pan/tilt, which used two AX-12s for tilting and a third for pan. It had two webcams
for stereo, and was designed with enough space between the web cams to install a Videre short-range
stereo camera, although I never got around to that:
The arms were pretty massive, nearly 0.6 meters long, with 7 servos. The shoulder pan, forearm roll,
wrist pitch and wrist roll joints were AX-12s. The shoulder lift joint was an RX-64, while the elbow
and upper arm roll joints were powered by (admittedly, under-powered) RX-24F servos:
The torso had a 12" throw linear actuator, and used expensive and heavy 8020 parts to form the
bearings and rail:
The entire thing was controlled by a laptop, tucked into the base, and an ArbotiX prototype with
integrated motor drivers. When dealing with robots this big and heavy, an E-stop is a must.
The wiring on the back panel was made somewhat tidy, and covered with Lexan shells:
I went as far as moving arms around under ROS, and tuning in the navigation stack a bit. The code
developed for this robot later became the
arbotix_ros
drivers:
A couple of things did this robot in. First off, it was really heavy (45lbs) and hard to easily
transport around (which I was doing a lot of back then). Transport was quite funny as well,
because the arms loved to dangle in every possible direction, leading to the "bubble-wrap straight jacket":
Second, the Kinect came out shortly afterwards, making the sensor suite pretty lacking, and looked
ludicrous trying to strap a Kinect on this robot. A number of lessons learned are pretty clear
in Maxwell, which was built shortly after this robot sacrificed his arms. Oh, and since I couldn't
find a reason to slip this picture into the story above, here is a view of the Autodesk
Inventor CAD model:
29 Apr 2013
robots
PR-Shelf, the most awesome, not-actually ROS-powered, robot shelf: