Kenkoko / ua-ros-pkg

Automatically exported from code.google.com/p/ua-ros-pkg
1 stars 0 forks source link

Compliance Settings not set properly #27

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
In 

ax12_controller_core, ax12_driver_core 

It appears that the compliance settings are not being set correctly, i.e. 
DMXL_SET_COMPLIANCE_MARGINS, DMXL_SET_COMPLIANCE_SLOPES, DMXL_SET_PUNCH (i.e. 
around line 270 in ax12_io.py) are only calling one of the two sets (i.e. a 
Clockwise and Counter-Clockwise setting) and it would seem that it should be 
calling both. 

I'm not 100% sure that its even setting the one side correctly, but I've 
noticed that the arm that I'm using, which uses the dynamixels are much more 
sloppy when I'm using your driver which leads me to believe that these 
compliance settings are not being set correctly. 

Thanks,
John Hoare

Original issue reported on code.google.com by haro...@gmail.com on 29 Jun 2011 at 8:43

GoogleCodeExporter commented 9 years ago
John,

It should set both CW and CCW slopes. Here is what happens: it writes 2 bytes 
(1st byte - CW slope, 2nd byte - CCW slope) starting from register 28, so that 
1st byte goes to register 28 (CW Compliance Slope) and 2nd byte goes to 
register 29 (CCW Compliance Slope).

Are you saying that when using some other driver and setting compliance slopes 
to the same value the behavior is different?

Original comment by areb...@gmail.com on 29 Jun 2011 at 9:02

GoogleCodeExporter commented 9 years ago
Okay, my apologies I see that now. Is there a way that I can easily read out 
the values of the registers so that I can verify they're being set correctly? 
It could be in my head, but it appears that the behavior differs between when I 
use your driver vs. some of our matlab code that directly drives the servos. 

Original comment by haro...@gmail.com on 29 Jun 2011 at 9:38

GoogleCodeExporter commented 9 years ago
No worries. You could write a simple python script that just connects to the 
serial bus, reads the compliance values before and after you set them to 
something else. Look at [1] and [2] for an example.

[1] 
http://ua-ros-pkg.googlecode.com/svn/trunk/arrg/ua_drivers/ax12_driver_core/scri
pts/info_dump.py
[2] 
http://ua-ros-pkg.googlecode.com/svn/trunk/arrg/ua_drivers/ax12_driver_core/scri
pts/set_servo_config.py

Original comment by areb...@gmail.com on 29 Jun 2011 at 9:47

GoogleCodeExporter commented 9 years ago
John,

I would also suggest to migrate to dynamixel_motor [1] stack, that I have 
released a few days ago. Any bug fixes and new features will go there. Ubuntu 
packages are available for ROS Diamondback.

[1] 
http://code.google.com/p/ua-ros-pkg/source/browse/stacks/dynamixel_motor/trunk

Original comment by areb...@gmail.com on 29 Jun 2011 at 10:22

GoogleCodeExporter commented 9 years ago
Okay, I've migrated over to the dynamixel_motor stack. If I encounter any 
problems (or verifiable bugs) I'll submit a new report. Thanks. 

Original comment by haro...@gmail.com on 30 Jun 2011 at 2:07

GoogleCodeExporter commented 9 years ago
Great! So are compliance settings set properly?

Original comment by areb...@gmail.com on 30 Jun 2011 at 2:51

GoogleCodeExporter commented 9 years ago

Original comment by areb...@gmail.com on 12 Jul 2011 at 4:53