Robotics Club Tabletop Challenge 3

Here’s the code from our last meeting, a currently incomplete tabletop robot that currently only locates the tissue box.


void goForward (){
startMotor (wheelr, 90);
startMotor (wheell, 70);

void stopMotors(){
stopMotor (wheelr);
stopMotor (wheell);

void goBackwards(){
startMotor (wheell, -70);
startMotor (wheelr, -70);

void turnCCW(){
int motorRTurn = SensorValue(encoderr);
int motorLTurn = SensorValue(encoderl);

startMotor (wheelr, 75);
startMotor (wheell, -50);

while (SensorValue(encoderr) – motorRTurn < 365 && SensorValue(encoderl) – motorLTurn < 301)


void turnCW(){
int motorRTurn = SensorValue(encoderr);
int motorLTurn = SensorValue(encoderl);

startMotor (wheelr, -75);
startMotor (wheell, 60);

while (SensorValue(encoderr) – motorRTurn < 395 && SensorValue(encoderl) – motorLTurn < 395)


task main()
while(SensorValue(sonar)>= 20){
goForward ();
wait (.5);
turnCW ();
goForward ();
wait (4.9);


Moveit breakthrough with PR2Lite

Update from Alan.

We’re taking a break from formal meetings in December.  Alex and his son will continue experimenting with ROS on the Neato.  Alan is continuing his work on PR2Lite arm navigation and has made a nice breakthrough.

We’re updating arm navigation in the following ways:

  • New right arm configuration with MX-64s, MX-106s, and the velo gripper
  • using Moveit on Hydro on the latest Ubuntu release
  • using a new laptop

The newest Ubuntu release required some minor code changes to get hydro to compile.

The tutorials were not quite accurate.  Using the configuration in pr2_moveit_config as a starting point helped.

Moveit on Hydro doesn’t officially support mimic links when launching demo.launch.  Some hacks allowed progress to be made, but Alan was encountering bugs, especially in kdl_kinematics_plugin.  After fixing some problems, Alan found the following commit by Ioan Sucan andSachin Chitta in the Hydro development branch:

Pulling in a subset of the changes to the laptop fixed many of the bugs Alan was encountering.  The arm navigation in demo.launch seems to hit problems in some edge conditions, but the new arm navigation may now be usable.  A major breakthrough.

Next, we need to change some of the hardware configuration on the physical robot to allow the laptop to replace the existing computer.

Melonee Wise and Michael Ferguson from Unbounded Robotics demo UBR-1 at HBRC

Alan, Alex and Maxim attended the November HBRC featuring the UBR-1 by Unbounded Robots and presented by Melonee Wise (CEO) and Michael Ferguson (CTO).  Below is Alan’s report.

The HBRC presentation had 3 parts.  First, Melonee gave a nice presentation on the history of robots contrasting real robots vs. the high expectations set by fictional robots.  The presentation featured excellent vintage videos of robots.  In the center section, Melonee did Q&A, which is the focus of the rest of this blog entry. Finally, Michael gave a demo of UBR-1 which is in the following video.  Note that while the base was stationary during the demo, Michael was driving UBR-1 via joystick around the room before the presentation.  Also, the screen on the video is hard to see, but it was displaying the robot model that was moving in sync with the real robot.

The base model for UBR-1 is $35,000.  This price tag is a lot less than the PR2, but still a lot more than PR2Lite cost to build. IEEE Automation had a nice introduction to UBR-1 with a nice follow up interview.

Other news coverage actually called the UBR-1 a PR2-Lite!

The following is a summary of the info from the Q&A.

The UBR-1 has a 7 DOF arm and a 14″ telescopic torso.  It has a 3-D camera similar to a Kinect.  Such a camera cost $10,000 when PR2 was designed.  The PR2’s Batteries (1.2 kilowatts for 2 hours), the custom servers with the first 4 quad-core i7s, and other decisions for the PR2 were not chosen with production at scale in mind.  UBR-1 has the advantage of the latest technology advances and being designed for production.

The UBR-1 has a Laser scanner with a range of 4 to 6 meters at 180 degrees.  Both the 3-D camera and Laser scanner are indoor only.

The arm is 7 DOF with the same joint configuration as PR2.  The UBR-1 has a higher reach (by 3″), a better ground reach, and a longer cross-table reach compared to the PR2 despite having a shorter arm than the PR2.  This is partially due to the greater joint angles and a better base to arm ratio.The UBR-1 arm is designed for low inertia (by minimizing the swinging mass).  The arm design tries to minimize pinch points.  The arms currently use a numerical solver right now, but may move to something faster like OpenRave IKFast.  The arms have a max payload of 1.5 kilograms at full extension.The arm uses active gravity compensation to keep the arm in-place and compliant.  Forward kinematics are used to determine torque.  If the emergency-off button is triggered, then the arms will slowly fall.  Active gravity compensation consumes power, even when the robot is otherwise idle, but it is only 12 watts with the arm straight out.  PR2 used counterbalanced arms, but this comes at a cost of greater weight. (note: the UBR-1 is 160 pounds vs 450 pounds for PR2.) For an active robot, active compensation should be better.

The UBR-1 base model has an i5 server with 8 gig of RAM.  ARM microprocessors are distributed through the robot.  It takes 8 screws to replace the battery. There’s a cable harness down the arm. Driving takes 80-100 watts for the base.  Arm movement consumes 25 watts. The computer consumes up to 60 watts. There are 600 watt hours of battery. Automatic docking to a recharger is supported. Most of the rest of the internals are currently trade secrets.

UBR-1 travels at .75 meters per second.  It has wheel encoders with sub-millimeter accuracy which are fused with IMU sensor data to compensate for slippage.

The UBR-1 is envisioned for the markets including educational/research, light manufacturing (stocking shelves, biomedical), elderly care, and hospitality (room service,  EPG – Evidence of prior guest).  Although UBR-1 can support remote actuation (e.g., through ROS), it has no screen to make it targeted at the telepresence market. Series A funding will be raised soon. The robots should start delivery in the summer of 2014.

Software is based on ROS and MoveIt!  Unbounded Robotics plans to release an open source developers kit.  A gazebo simulation is planned to be released soon, but gazebo is undergoing significant changes due to the DARPA challenge.

Remember when PR2Lite took on Maxwell at Maker Faire to play chess? Well, UBR-1 plays chess too!

Progress Report – November 2013

Alan showed off our new arm at the October HBRC meeting.  This arm was designed by Matthew and assembled by Matthew and Alan.  It features a velo gripper, 2 MX-64s and 2 MX-106s.
At HBRC, Alan welcomed interested members to join us on Saturdays.  Alex and his son Maxim joined Alan and Frank the last few weeks and have made an immediate impact.

We’ve begun putting PR2Lite on the ground again.  PR2Lite has gained a lot of weight since the last ground runs, and the pivoting wheels have not been straightening properly.  Maxim added springs to encourage the wheels to complete their rotation.  The springs have enabled PR2Lite to drive again, but we want to further increase the reliability.

The linear actuator in the base is responsible for rotating all four wheels in unison to be in one of 3 states: forward, rotation, sideways.  The base was designed assuming the full 4 inches of linear actuator extension.  The linear actuator provides 3-wire feedback to determine its extension.  Unfortunately, the feedback is off the min/max by about 10%.  Frank is modifying the higher level code to compensate for this imprecision to get full extension.  With the springs and full extension, it seems likely that PR2Lite’s floor navigation will be satisfactory.

Next Alex and Frank are going to get PR2Lite navigating on the floor using SLAM.  PR2Lite’s software supports ROS slam, including the accelerometer.  The software appears to be working on a pedestal, but it’s time to test on the ground.  As a point of comparison, Alex and Maxim have been getting their Neato to navigate using SLAM.   Maxim presented his Neato progress at the November HBRC.


We’ve now installed the new right arm on PR2Lite and reprogrammed the servo IDs.  Based on preliminary testing, the new arm looks good and strong!  Next, we will do full integration of the new arm into the ROS configuration.


Alan has made steady progress on the new laptop upgrading PR2Lite to Moveit and Hydro.  Based on advice by Mike Ferguson, Alan skipped trying to use Open Rave – which wasn’t going well.  With Moveit’s new support for “mimic joints”, PR2Lite’s arms and the velo gripper are mostly natively supported.  Alan has been modifying Moveit code to overcome migration hurdles.  With the improved momentum, Alan is getting more optimistic about the migration.

Matthew now has to focus on his college applications!

Progress Report: October 27, 2013

I went to my friend’s house to help build 3 new chassis for our school’s FTC team.
Alan and Frank set up PR2Lite to have its own wifi hub and connected the pr2lite_rosbridge GUI to it and drove Pr2Lkite around the garage for the first time in a long while.  Based on this test, we’ve decided to upgrade the parallax encoders to the 36-Position Quadrature Encoder Set so that we can improve the pid accuracy and hopefully get wheel speeds more synchronized.
Alan has been trying to upgrade PR2Lite to run on Ubunto 13,04, Hydro, and MoveIt.  Progress is painfully slow as each step taken fails out-of-the-box and requires extensive deugging.