Difference between revisions of "CAN Protocol v4.0"
Line 181: | Line 181: | ||
<br> | <br> | ||
<br> | <br> | ||
− | {| class="wikitable" style="text-align: center; width: | + | {| class="wikitable" style="text-align: center; width: 50%;" |
!colspan="8"|Torque Data[0:7] | !colspan="8"|Torque Data[0:7] | ||
|- | |- | ||
+ | !colspan="1" style="background-color:#ffffff;"| 0 | ||
!colspan="1" style="background-color:#ffffff;"| 1 | !colspan="1" style="background-color:#ffffff;"| 1 | ||
!colspan="1" style="background-color:#ffffff;"| 2 | !colspan="1" style="background-color:#ffffff;"| 2 | ||
Line 196: | Line 197: | ||
!colspan="2" style="background-color:#ffffff;"| Joint 3 | !colspan="2" style="background-color:#ffffff;"| Joint 3 | ||
!colspan="2" style="background-color:#ffffff;"| Joint 4 | !colspan="2" style="background-color:#ffffff;"| Joint 4 | ||
+ | |} | ||
+ | <br> | ||
+ | <br><br> | ||
+ | ===Set Position Finger #=== | ||
+ | Data Length = 8<br><br>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. | ||
+ | <br> | ||
+ | <br> | ||
+ | This message is not implemented yet. | ||
+ | <br> | ||
+ | <br> | ||
+ | {| class="wikitable" style="text-align: center; width: 50%;" | ||
+ | !colspan="8"| Position Data[0:7] | ||
+ | |- | ||
+ | !colspan="1" style="background-color:#ffffff;"| 0 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 1 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 2 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 3 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 4 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 5 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 6 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 7 | ||
+ | |- | ||
+ | !colspan="2" style="background-color:#ffffff;"| Joint 1 | ||
+ | !colspan="2" style="background-color:#ffffff;"| Joint 2 | ||
+ | !colspan="2" style="background-color:#ffffff;"| Joint 3 | ||
+ | !colspan="2" style="background-color:#ffffff;"| Joint 4 | ||
+ | |} | ||
+ | <br> | ||
+ | <br><br> | ||
+ | ===Set Periodic Read=== | ||
+ | Data Length = 8<br><br>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. | ||
+ | <br> | ||
+ | <br> | ||
+ | {| class="wikitable" style="text-align: center; width: 50%;" | ||
+ | !colspan="8"| Period Data[0:7] | ||
+ | |- | ||
+ | !colspan="1" style="background-color:#ffffff;"| 0 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 1 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 2 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 3 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 4 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 5 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 6 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 7 | ||
+ | |- | ||
+ | !colspan="2" style="background-color:#ffffff;"| Position | ||
+ | !colspan="2" style="background-color:#ffffff;"| IMU | ||
+ | !colspan="2" style="background-color:#ffffff;"| Temperature | ||
+ | !colspan="2" style="background-color:#ffffff;"| Status | ||
+ | |} | ||
+ | <br> | ||
+ | <br><br> | ||
+ | ===Config=== | ||
+ | Data Length = 6<br><br> | ||
+ | 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. | ||
+ | <br> | ||
+ | <br> | ||
+ | {| class="wikitable" style="text-align: center; width: 50%;" | ||
+ | !colspan="8"| Config Data[0:5] | ||
+ | |- | ||
+ | !colspan="1" style="background-color:#ffffff;"| 0 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 1 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 2 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 3 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 4 | ||
+ | !colspan="1" style="background-color:#ffffff;"| 5 | ||
+ | |- | ||
+ | !colspan="1" style="background-color:#ffffff;"| SET | ||
+ | !colspan="1" style="background-color:#ffffff;"| Dev.ID | ||
+ | !colspan="4" style="background-color:#ffffff;"| RS-485 baud-rate | ||
|} | |} | ||
<br> | <br> |
Revision as of 20:06, 27 December 2018
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 | 0x050 | Set torque of finger #1 | |
Set Torque Finger 2 | 0x051 | Set torque of finger #2 | |
Set Torque Finger 3 | 0x052 | Set torque of finger #3 | |
Set Torque Finger 4 | 0x053 | 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 | 0x058 | 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 |
Download
File:V4 AllegroHandUsersManual.pdf
Whos here now: Members 0 Guests 0 Bots & Crawlers 1 |