Line 181: Line 181:
 
<br>
 
<br>
 
<br>
 
<br>
{| class="wikitable" style="text-align: center; width: 85%;"
+
{| 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