CAN Protocol v4.0
Contents |
CAN Communication
Baud-Rate
The CAN communication baud-rate is 1Mbps.
Non-Periodic Communication
Messages can be sent to initialize or stop CAN communication.
Remote frame can be used to request data. If host sends remote frame, the Allegro Hand responds with it regardless periodic communication status.
Periodic Communication
The Allegro Hand control software attempts to communicate with the real or simulated hand at a regular control interval. Every 3 milliseconds, the joint torques are calculated and the joint angles are updated.
CAN Frames
Arbitration Identifier
The Allegro Hand uses 11 bit standard arbitration identifier. It is composed with two part.
MSB | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | LSB |
---|---|---|---|---|---|---|---|---|---|---|
Message ID | Device ID |
Message ID
Message | Message ID | RTR | Description |
---|---|---|---|
Servo ON | 0x040 | Engage joint motor driver | |
Servo OFF | 0x041 | Disable joint motor driver | |
Set Torque Finger 1 | 0x060 | Set torque of finger #1 | |
Set Torque Finger 2 | 0x061 | Set torque of finger #2 | |
Set Torque Finger 3 | 0x062 | Set torque of finger #3 | |
Set Torque Finger 4 | 0x063 | Set torque of finger #4 | |
Set Position Finger 1 | 0x0E0 | Set position of finger #1 | |
Set Position Finger 2 | 0x0E1 | Set position of finger #2 | |
Set Position Finger 3 | 0x0E2 | Set position of finger #3 | |
Set Position Finger 4 | 0x0E3 | Set position of finger #4 | |
Set Periodic Read | 0x081 | Set periodic read interval for position, IMU, temperature, status | |
Config | 0x068 | Set Device ID, Baud-rate for RS-485 | |
Information | 0x080 | R | Product information and status |
Serial | 0x088 | R | Product serial number |
Position Finger 1 | 0x020 | R | Current angle position of finger #1 |
Position Finger 2 | 0x021 | R | Current angle position of finger #2 |
Position Finger 3 | 0x022 | R | Current angle position of finger #3 |
Position Finger 4 | 0x023 | R | Current angle position of finger #4 |
IMU | 0x030 | R | Current IMU quaternion |
Temperature Finger 1 | 0x038 | R | Current temperature of finger #1 |
Temperature Finger 2 | 0x039 | R | Current temperature of finger #2 |
Temperature Finger 3 | 0x03A | R | Current temperature of finger #3 |
Temperature Finger 4 | 0x03B | R | Current temperature of finger #4 |
Status | 0x010 | R | Current Status |
Messages marked with RTR can be sent by host in remote frame, and the Allegro Hand will respond it.
DeviceID
Multiple Allegro Hand can be used in the same CAN bus. In such case, Device ID field is used to distinguish each device.
Default device ID is 0, and it can be configured using Config message. Changed Device ID is stored in internal non-volatile memory and will be retained for power cycle.
Data Structure
Each message has different data filed format. All multi-byte data structures in data filed uses little endian.
Servo ON
Data Length = 0
This message does not have data field.
Servo OFF
Data Length = 0
This message does not have data field.
Set Torque Finger #
Data Length = 8
Each finger has 4 joints. This message sets joint torque set-point. Torque set-point is 2 byte signed digit. Data field is composed as below.
Torque Data[0:7] | |||||||
---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Joint 1 | Joint 2 | Joint 3 | Joint 4 |
Set Position Finger #
Data Length = 8
Each finger has 4 joints. This message sets position set-point. Position set-point is 2 byte signed digit. Data field is composed as below.
This message is not implemented yet.
Position Data[0:7] | |||||||
---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Joint 1 | Joint 2 | Joint 3 | Joint 4 |
Set Periodic Read
Data Length = 8
This message sets periodic report interval. Period is configured in milli-second. If period is set to 0, that message will not be reported periodically.
Period Data[0:7] | |||||||
---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Position | IMU | Temperature | Status |
Config
Data Length = 6
This message sets Device ID and RS-485 baud-rate. If SET field bit is marked, corresponding data will be stored in internal non-volatile memory.
Config Data[0:5] | |||||
---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 |
SET | Dev.ID | RS-485 baud-rate |
SET field is structured as below.
SET field bit flag | |||||||
---|---|---|---|---|---|---|---|
MSB | 6 | 5 | 4 | 3 | 2 | 1 | LSB |
X | X | X | X | X | X | Baud-rate | Dev.ID |
Dev.ID field is structured as below.
Dev.ID field bit | |||||||
---|---|---|---|---|---|---|---|
MSB | 6 | 5 | 4 | 3 | 2 | 1 | LSB |
X | X | X | X | X | X | Device ID |
Baud-rate field is structured as below.
Baud-rate filed [31:0] | |||||||
---|---|---|---|---|---|---|---|
MSB | 30 | ... | 1 | LSB | |||
Baud rate in bps |
Information
Data Length = 7
Information message is composed with hardware version, firmware version, palm temperature, status flag. The Allegro Hand sends this message when the host request by remote frame.
Information Data [0:6] | ||||||
---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 |
Hardware Ver. | Firmware Ver. | L/R | Temp | Stat |
Hardware Ver. And Firmware Ver. Is 2 byte number.
L/R field shows which side hand is. If this field is 0, it means the Hand is right hand.
Temp. field shows palm temperature. Represented in signed Celsius degree.
Stat field represents current status. The same data can be retrieved using Status message.
Stat. field bit flag | |||||||
---|---|---|---|---|---|---|---|
MSB | 6 | 5 | 4 | 3 | 2 | 1 | LSB |
X | X | X | F4 | F3 | F2 | F1 | S |
- S : Servo status. 0 means servo OFF.
- F1 : One or more of joints is in high temperature fault state.
- F2 : One or more of joints is in high temperature throttling state.
- F3 : One or more of joints is in communication timeout state.
- F4 : Palm is in high temperature fault state.
Serial
Data Length = 8
Serial number can be retrieved using CAN interface. It is stored in ASCII characters. The Allegro Hand sends this message when the host request by remote frame.
Position Finger #
Data Length = 8
Joint position is reported through this message format. The Allegro Hand sends this message when the host request by remote frame or report period comes. All values are represented as signed 2 byte integer.
Position Data[0:7] | |||||||
---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Joint 1 | Joint 2 | Joint 3 | Joint 4 |
Joint angle can be calculated by this equation
IMU
Data Length = 8
The pose of device is measured by IMU and reported through this message format. The Allegro Hand sends this message when the host request by remote frame or report period comes. All values are represented as signed 2 byte integer.
Quaternion Data[0:7] | |||||||
---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Quaternion W | Quaternion X | Quaternion Y | Quaternion Z |
Temperature Finger #
Data Length = 4
The temperature of joint is reported through this message format. The Allegro Hand sends this message when the host request by remote frame or report period comes. All values are represented as signed 1 byte integer.
Temperature is represented as Celsius degree.
Temperature Date[0:3] | |||
---|---|---|---|
0 | 1 | 2 | 3 |
Joint 1 | Joint 2 | Joint 3 | Joint 4 |
Status
Data Length = 1
Hand Status can be retrieved by this message. The Allegro Hand sends this message when the host request by remote frame or report period comes.
Status bit field is same with Stat field in Information message.
Download
File:V4 AllegroHandUsersManual 1.1.pdf
Copyright & Trademark Notice
Allegro, the Allegro logo, RoboticsLab, the RoboticsLab logo, and all related files and documentation are Copyright ⓒ 2008-2020 Wonik Robotics Co., Ltd. All rights reserved. RoboticsLab and Allegro are trademarks of Wonik Robotics. All other trademarks or registered trademarks mentioned are the properties of their respective owners.
Wonik Robotics's Allegro Hand is based on licensed technology developed by the Humanoid Robot Hand research group at the Korea Institute of Industrial Technology (KITECH).
Any references to the BHand Library or the Allegro Hand Motion and/or Grasping Library refer to a library of humanoid robotic hand grasping algorithms and motions developed and published by KITECH researchers.
J.-H. Bae, S.-W. Park, D. Kim, M.-H. Baeg, and S.-R. Oh, "A Grasp Strategy with the Geometric Centroid of a Groped Object Shape Derived from Contact Spots," Proc. of the 2012 IEEE Int. Conf. on Robotics and Automation (ICRA2012), pp. 3798-3804
Wiki maintained by Sean Yi <seanyi@wonikrobotics.com>
Whos here now: Members 0 Guests 1 Bots & Crawlers 0 |