Results 1 to 6 of 6

Thread: ArbotixPro All commands ?

  1. #1

    Question ArbotixPro All commands ?

    Hello,

    Where I can find all commands, with protocol, of ArbotixPro, to acces at all Dynamixel servos plugged (read and write, of course) , Accelerometer/Gyroscope and other like GPIOs.

    I have searched a little in the section HR-OS1, but I didn't find an exhaustive list

    Thanks for your help

  2. #2

    Re: ArbotixPro All commands ?

    I don't know if I have ever seen any complete documents or the like...

    The only way I have learned some stuff is to look at the source code. Both for the board itself as well as some of the support code for the HR-OS1 robot that used it.

    For example if you wish to see the register list, their wiki page: https://github.com/Interbotix/Arboti...Register-Table
    Does not really give you any information.

    You can get some from their source code that you can get from github. Their is a link to their project up on their product page: http://www.trossenrobotics.com/arbotix-pro

    Code:
    #define P_MODEL_NUMBER_L      0
    #define P_MODOEL_NUMBER_H     1
    #define P_VERSION             2
    #define P_ID                  3
    #define P_BAUD_RATE           4
    #define P_RETURN_DELAY_TIME   5
    #define P_CW_ANGLE_LIMIT_L    6
    #define P_CW_ANGLE_LIMIT_H    7
    #define P_CCW_ANGLE_LIMIT_L   8
    #define P_CCW_ANGLE_LIMIT_H   9
    #define P_SYSTEM_DATA2        10
    #define P_LIMIT_TEMPERATURE   11
    #define P_DOWN_LIMIT_VOLTAGE  12
    #define P_UP_LIMIT_VOLTAGE    13
    #define P_MAX_TORQUE_L        14
    #define P_MAX_TORQUE_H        15
    #define P_RETURN_LEVEL        16
    #define P_ALARM_LED           17
    #define P_ALARM_SHUTDOWN      18
    #define P_OPERATING_MODE      19
    #define P_DOWN_CALIBRATION_L  20
    #define P_DOWN_CALIBRATION_H  21
    #define P_UP_CALIBRATION_L    22
    #define P_UP_CALIBRATION_H    23
    /*
    #define P_TORQUE_ENABLE         (24)
    #define P_LED                   (25)
    #define P_CW_COMPLIANCE_MARGIN  (26)
    #define P_CCW_COMPLIANCE_MARGIN (27)
    #define P_CW_COMPLIANCE_SLOPE   (28)
    #define P_CCW_COMPLIANCE_SLOPE  (29)
    #define P_GOAL_POSITION_L       (30)
    #define P_GOAL_POSITION_H       (31)
    #define P_GOAL_SPEED_L          (32)
    #define P_GOAL_SPEED_H          (33)
    #define P_TORQUE_LIMIT_L        (34)
    #define P_TORQUE_LIMIT_H        (35)
    #define P_PRESENT_POSITION_L    (36)
    #define P_PRESENT_POSITION_H    (37)
    #define P_PRESENT_SPEED_L       (38)
    #define P_PRESENT_SPEED_H       (39)
    #define P_PRESENT_LOAD_L        (40)
    #define P_PRESENT_LOAD_H        (41)
    #define P_PRESENT_VOLTAGE       (42)
    #define P_PRESENT_TEMPERATURE   (43)
    #define P_REGISTERED_INSTRUCTION (44)
    #define P_PAUSE_TIME            (45)
    #define P_MOVING (46)
    #define P_LOCK                  (47)
    #define P_PUNCH_L               (48)
    #define P_PUNCH_H               (49)
    #define P_RESERVED4             (50)
    #define P_RESERVED5             (51)
    #define P_POT_L                 (52)
    #define P_POT_H                 (53)
    #define P_PWM_OUT_L             (54)
    #define P_PWM_OUT_H             (55)
    */
    
    #define    P_DYNAMIXEL_POWER    24
    #define    P_LED_PANNEL    25
    #define    P_LED_HEAD    26
    //#define    -    27
    #define    P_LED_EYE    28
    //#define    -    29
    #define    P_BUTTON    30
    //#define     -        31
    //#define     -        32
    //#define     -        33
    //#define     -        34
    //#define     -        35
    //#define     -        36
    //#define     -        37
    
    //#define    P_GPIO_MODE    31
    //#define    P_GPIO_OUT    32
    //#define    P_GPIO_IN    33
    //#define    P_ADC0_VOLTAGE    34
    //#define    -    35
    //#define    P_ADC1_RESERVED    36
    //#define    -    37
    #define    P_GYRO_Z    38
    //#define    -    39
    #define    P_GYRO_Y    40
    //#define    -    41
    #define    P_GYRO_X    42
    //#define    -    43
    #define    P_ACC_X    44
    //#define    -    45
    #define    P_ACC_Y    46
    //#define    -    47
    #define    P_ACC_Z    48
    //#define    -    49
    #define    P_ADC0_VOLTAGE    50
    #define    P_ADC1_MIC1        51
    //#define    -            52
    #define    P_ADC9_MIC2        53
    //#define    -            54
    #define    P_ADC2            55
    //#define    -            56
    #define    P_ADC3            57
    //#define    -            58
    #define    P_ADC4            59
    //#define    -            60
    #define    P_ADC5            61
    //#define    -            62
    #define    P_ADC6            63
    //#define    -            64
    #define    P_ADC7            65
    //#define    -            66
    #define    P_ADC8            67
    //#define    -            68
    #define    P_ADC10            69
    //#define    -            70
    #define    P_ADC11            71
    //#define    -            72
    #define    P_ADC12            73
    //#define    -            74
    #define    P_ADC13            75
    //#define    -            76
    #define    P_ADC14            77
    //#define    -            78
    #define    P_ADC15            79
    //#define    -            80
    #define P_BUZZER_DATA0    81
    #define P_BUZZER_DATA1    82
    #define P_TX_REMOCON_DATA_L           83
    //#define P_TX_REMOCON_DATA_H           84
    #define P_RX_REMOCON_DATA_L           85
    //#define P_RX_REMOCON_DATA_H           86
    #define P_RX_REMOCON_DATA_ARRIVED     87
    #define P_ZIGBEE_ID_L                 88
    #define P_ZIGBEE_ID_H                 89
    Warning I have not done anything with an Arbotix-Pro in probably well over a year.

    Maybe someone else has more info or you might email Trossen Support to see if they can point you to some other stuff.

    Good Luck

  3. #3

    Re: ArbotixPro All commands ?

    @KurtEck, Thanks for your answer :-)


    @trossenrobotics.com, I know programming is not easy every day, but when you want that your product will be best than other. You must be carefull to have one documentation better than other else.


    So, I'm not sure is it in this case.


    I was thinking to buying an HR-OS1, so with an ArbotixPro...

    But finaly, with one poor documentation, like this ( not easy to find ), may be, I will find an other solution to make my own robot.


    So, I think, is faster to do yourself than trying to understand what another person has tried to make us understand... No ?


    Thanks, again for your comments.
    Maybe want more comments. I waiting for you

  4. #4
    Join Date
    Dec 2012
    Location
    Los Angeles, CA
    Posts
    858
    Images
    25
    Rep Power
    88

    Re: ArbotixPro All commands ?

    MousKitos, just a heads up this forum is community driven, I moderate and keep spam posts from showing up but I'm not an employee or financially compensated by them. Trossen employees very rarely look at it. It is best to email them directly.

  5. #5

    Re: ArbotixPro All commands ?

    Forgot to mention that the Arbotix pro is pretty close to being a Robotis CM730 board...
    You can find more information on that board, example like: http://support.robotis.com/en/produc...r_(cm-730).htm

    As for HROS1 - There are several things:

    The system was setup to run off of the Darwin-op framework of code and as such it follows the document above.
    There have been a few quirks in the firmware of the Arbotix-Pro as compared to what the CM730 does, in particular to the Gyro or Accel... I don't remember the details, but like maybe the direction of one of the axis is different...

    Basic communications of it, it works like most other USB servo controllers like USB2AX or USB2DYNAMIXL that plug into a linux board. and you can use the standard dynamixel_sdk to talk to it. I don't remember the default for this library. If it is setup to work by default with FTDI based board like this one (/dev/ttyUSB0) I think it is, versus other boards like USB2AX which generate a device (/dev/ttyACM0) Note: the 0 in these may be 1 or 2 or... So depending on code, you may have to change the dxl_hal.cpp file that is part of dynamixel_sdk to handle the appropriate one. My modified version actually looks for both, and first looks for a hard coded name /dev/ttyDXL such that I can setup device rules and use different setups....

    So how to talk to servo: look at the dynamixel library. You use the dxl_initialize the setup. You can then do things like dxl_ping(id).
    likewise you can do things like dxl_read_byte, dxl_read_word, dlx_write_byte, dxl_write_word...

    now how do you talk to the ArbotixPro? You talk to it like it is a servo. I believe the default id for it is 0xc0 (200).
    So for example if you wish to tell it to turn on the power to the servos, you can do something like;
    dxl_write_byte(200, P_DYNAMIXEL_POWER, 1);

    You wish to know the state of the buttons:
    buttons = dxl_read_byte(200, P_BUTTON);

    Again the tables I mentioned in the first posting give you an idea of some of these settings.

    The software that runs on the Arbotix Pro is up in the github, you can modify it, but it requires you to purchase a
    programmer and adapter board.

    Personally I prefer to use other boards, so I have my own adapter boards that use Teensy processors (PJRC) like a T3.2 or
    T3.6. I have my own sketch that loads on these boards that emulates most of the CM730/Arbotix Pro. However more
    recent boards I have not put an IMU on them... The reason for this is, that I am not sure if I have an IMU if I
    want the hosts access to it be constrained by going through these limited exposed registers. Or for example if you
    choose to instead of use the framework, maybe go to ROS, than maybe better off with using an IMU with native ROS support.

    Now is the HR-OS1 for you? Can not answer it. Depends on your needs.

    If you are looking simply for the hardware to do your own thing and you like how the robot is configured, then
    I would say go for it.

    If you are looking for a project where lots of new cool new things are happening and active development, not sure.

    Last update to may HROS1 project was Dec 2015: https://github.com/Interbotix/HROS1-Framework
    3D models and stuff for 3d printing (Updated a few weeks ago?) : https://github.com/Interbotix/HROS1-3D-Models
    My first posting has link to Arbotix Pro github.

  6. #6

    Re: ArbotixPro All commands ?

    Thanks KurtEck for your explanations, it's now more clear

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. HROS1 RPi and ArbotixPro communication
    By az139 in forum Arbotix, Microcontrollers, Arduino
    Replies: 6
    Last Post: 08-24-2015, 01:03 AM
  2. Hexapod walking disturbance due to to pulseIn() commands
    By robot$ in forum Humanoids, Walkers & Crawlers
    Replies: 7
    Last Post: 07-03-2014, 12:33 AM
  3. MX-64T occasionally misses commands
    By jwatte in forum DYNAMIXEL & Robot Actuators
    Replies: 0
    Last Post: 11-10-2013, 05:52 PM
  4. Question(s) HB-25 Missing Commands
    By ROBOTMAN in forum Arbotix, Microcontrollers, Arduino
    Replies: 5
    Last Post: 05-08-2011, 07:06 PM

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •