Rosanswers logo

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, specify the -D option.

avrdude done.  Thank you.

The board reacts as if something has happened, but the arm still behaves the same way as it did before. Can someone please give me some feedback on this? Does the command I am using look correct? Why would my board be giving an invalid device signature? Thank you very much!

Originally posted by Aroarus on ROS Answers with karma: 122 on 2011-11-09

Post score: 0


1 Answer 1


Rosanswers logo

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).

Originally posted by fergs with karma: 13902 on 2011-11-09

This answer was ACCEPTED on the original site

Post score: 0


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.