ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Trying to use PyPose to control turtlebot arm

asked 2011-11-09 04:01:24 -0600

Aroarus gravatar image

updated 2014-01-28 17:10:44 -0600

ngrennan gravatar image

Hello! I am trying to use the program PyPose to control the turtlebot arm but I am running into a series of weird errors as I use it. I have the computer plugged into the ArbotiX board via a USB - Serial TTL cable, and the board is then wired into the arm correctly as per the tutorial instructions. When I run PyPose and try to capture a pose, it says it cannot read any of the 5 servos, but when I move the sliders and hit "set" the arm moves in a fast and jerky manner to a relatively random position. It does not slow down if I increase the delta-T, and the position it moves to is only slightly related to the position of the sliders. Also, all the servos move during the motion, even if only one of the sliders was changed. Does anyone know why this might be happening? I am happy to provide more information, but do not know what else would be useful!

Edit: I am trying to compile the pypose.pde sketch, but I am getting the following error:

In file included from /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h:44:0,
                 from /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/delay.h:37,
                 from /home/marc/sketchbook/hardware/arbotix/cores/arbotix/wiring_private.h:30,
                 from /home/marc/sketchbook/hardware/arbotix/cores/arbotix/WInterrupts.c:33:
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected identifier or ‘(’ before ‘double’
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected ‘)’ before ‘>=’ token

The specific part of the math.h file in question is:

    The round() function rounds \a __x to the nearest integer, but rounds
    halfway cases away from zero (instead of to the nearest even integer).
    Overflow is impossible.

    \return The rounded value. If \a __x is an integral or infinite, \a
    __x itself is returned. If \a __x is \c NaN, then \c NaN is returned.
extern double round (double __x) __ATTR_CONST__;  /** Line 426 */
#define roundf  round       /**< The alias for round(). */

All of my settings in the Arduino environment are correct (board type, serial port). Do you have any idea how to fix this error? I never modified the math.h file after downloading it (other than the comment indicating which line was 426 for this post). Thank you very much!

I have also tried uploading the program directly using a terminal command:

sudo avrdude -p m644p -P /dev/ttyUSB0 -F -c dasa -U flash:w:pypose.pde

Which I put together from reading various forums. It produces the following message:

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
avrdude: Expected signature for ATMEGA644P is 1E 96 0A
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature ...
edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2011-11-09 05:21:52 -0600

fergs gravatar image

PyPose has not been tested with the ROS firmware, if you want to use PyPose you must install the pypose.pde sketch (note, this will not work with the ROS drivers).

The ROS firmware will eventually be merged with the PyPose firmware (our target is to have this ready for Arduino 1.0, as major updates to a number of libraries are needed).

edit flag offensive delete link more

Question Tools


Asked: 2011-11-09 04:01:24 -0600

Seen: 657 times

Last updated: Nov 11 '11