Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

libavr/libbioloid C library for CM5 released!

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
289 postsPage 19 of 201 ... 16, 17, 18, 19, 20
289 postsPage 19 of 201 ... 16, 17, 18, 19, 20

Continuous drive

Post by kGezz » Wed May 11, 2011 6:24 am

Post by kGezz
Wed May 11, 2011 6:24 am

Hello,

I've just started using the libbioloid libraries. I'm interested in setting the servos to continuous drive, but I haven't managed to do so. I know you have to set the min/max angle limit to 0, then set a speed.

I've tried the following code:

dx_set_minmax_angle(1,0,0);
dx_set_speed(1,300);

I've inserted this code to run when the 'up' button is pressed on the CM5, using the example.c code, but apparently it is not that simple.

Any insight as to how to get the servos running in continuous mode? Also if it is possible to poll the current position of the servos (I am aware of the dead zone, but is it possible to get the position data while in continuous mode? I've never seen this explicitly said anywhere.)

Thanks for any help.
Hello,

I've just started using the libbioloid libraries. I'm interested in setting the servos to continuous drive, but I haven't managed to do so. I know you have to set the min/max angle limit to 0, then set a speed.

I've tried the following code:

dx_set_minmax_angle(1,0,0);
dx_set_speed(1,300);

I've inserted this code to run when the 'up' button is pressed on the CM5, using the example.c code, but apparently it is not that simple.

Any insight as to how to get the servos running in continuous mode? Also if it is possible to poll the current position of the servos (I am aware of the dead zone, but is it possible to get the position data while in continuous mode? I've never seen this explicitly said anywhere.)

Thanks for any help.
kGezz
Newbie
Newbie
Posts: 3
Joined: Wed May 11, 2011 5:44 am

Writing to servos

Post by kGezz » Wed May 11, 2011 7:33 am

Post by kGezz
Wed May 11, 2011 7:33 am

Hello,

In regards to my previous post, I've discovered that the "dx_write" function has no effect on the AX-12's register (the dx_read functions work fine). I'm guessing that there is an "enable write" function somewhere which I am currently looking for.

In the mean time, if anyone knows a better approach to getting the servos to run in continuous mode I would be very grateful.

Cheers
Hello,

In regards to my previous post, I've discovered that the "dx_write" function has no effect on the AX-12's register (the dx_read functions work fine). I'm guessing that there is an "enable write" function somewhere which I am currently looking for.

In the mean time, if anyone knows a better approach to getting the servos to run in continuous mode I would be very grateful.

Cheers
kGezz
Newbie
Newbie
Posts: 3
Joined: Wed May 11, 2011 5:44 am

Continuous drive

Post by kGezz » Wed May 11, 2011 11:01 am

Post by kGezz
Wed May 11, 2011 11:01 am

Okay, after reading the AX-12 datasheet (lol) I found the source of the problem. Although I found that the libioloid library doesn't seem to cater (easily) for setting the servos to continuous drive. It's pretty simple so I'll write down what I did if other people get stuck.

Firstly I had to comment out all mentions of "dx_lock" in supervisor.c, as this sets the servos to locked mode before you get a chance to muck around.

Then I was free to write to the AX-12s register. The ones needed are goal position (0x1E), the angle limits (0x06, 0x08) and the goal/moving speed (0x20).

The following code will work in the main loop:

//set goal position to 0
dx_write16(1,0x1E,0);

//set angle limits to 0
dx_write16(1,0x06,0);
dx_write16(1,0x08,0);

//set goal speed
dx_write16(1,0x20,0x3FF);


Just a note that 0x3FF is quite a fast rotation. Not sure why the servos are auto-locked by the supervisor routine, but there seems to be no implications in removing that code. You can always lock it manually yourself by setting the register (0x2F).

AX-12 datasheet for you lazy buggers

http://www.trossenrobotics.com/images/p ... 12(English).pdf


Cheers
Okay, after reading the AX-12 datasheet (lol) I found the source of the problem. Although I found that the libioloid library doesn't seem to cater (easily) for setting the servos to continuous drive. It's pretty simple so I'll write down what I did if other people get stuck.

Firstly I had to comment out all mentions of "dx_lock" in supervisor.c, as this sets the servos to locked mode before you get a chance to muck around.

Then I was free to write to the AX-12s register. The ones needed are goal position (0x1E), the angle limits (0x06, 0x08) and the goal/moving speed (0x20).

The following code will work in the main loop:

//set goal position to 0
dx_write16(1,0x1E,0);

//set angle limits to 0
dx_write16(1,0x06,0);
dx_write16(1,0x08,0);

//set goal speed
dx_write16(1,0x20,0x3FF);


Just a note that 0x3FF is quite a fast rotation. Not sure why the servos are auto-locked by the supervisor routine, but there seems to be no implications in removing that code. You can always lock it manually yourself by setting the register (0x2F).

AX-12 datasheet for you lazy buggers

http://www.trossenrobotics.com/images/p ... 12(English).pdf


Cheers
kGezz
Newbie
Newbie
Posts: 3
Joined: Wed May 11, 2011 5:44 am

Post by Julienne » Wed May 11, 2011 4:08 pm

Post by Julienne
Wed May 11, 2011 4:08 pm

PedroR wrote:The use of a Pepper board is completelly un related to libbioloid.

libbioloid is a library to control the robot and interface with the Dynamixel bus.

A Pepper board is something design to "pretend" to be a Dynamixel device on the Dynamixel bus and can work with libbioloid, Roboplus or USB2Dynamixel, etc.

As for the Robotis Gyro, the specs should be avilable on the Robotis website.
However bear in mind that using the Pepper Board you can use a Gyro from any manufacturer or model; it doesn't have to be a gyro from Robotis.

In particular, for inverse pendulum applications (that you mentioned) it is imortant to choose a gyro that has an appropriate deg/sec rating. There are gyros that go from 75deg/sec to 300 deg/sec.
I am not a specialist in inverse pendulum (I know little about it) but I think you'll need a gyro with a low deg/sec rating. I'd recommend you google about it to find out more. Any Analog gyro (or sensor) should work with the Pepper board.

Regards
Pedro.


Well, I had the time to look a little bit further.

Here are my conclusions :

I'm going to implement the Dewey version.
I found the bill of material and the pcb design (in Eagl format, i'm going to convert it in Protel (Altium DXP)) thanks to pepperm - just have to do the changes related to the capacitor described here : http://robosavvy.com/site/index.php?opt ... nsor_board

The Dewey software looks good, I don't think I have to change anything in it so I'm able to just put it (the .hex) in the ATmega8 (I still have to ask my school to see which material we have to flash it : 6 pins connector or 10 pins...).

Our gyroscope is 300°/s according to the datasheet, perfect for our project. In addition, it is a 5V one, so the compatibility should be ok.

The interesting part is that with the pepper board it is possible to put more than only one gyroscope on the board (actually, we need 2) : we can put the pepper board close to the CM5 unit and just the gyroscope on the inverted penduluum so weight is very light.

My friend implement the regulation in C code (libbioloid) and the mechanical part is finished so i'll be able to give you news about how it is going very soon.

Any comments ?
PedroR wrote:The use of a Pepper board is completelly un related to libbioloid.

libbioloid is a library to control the robot and interface with the Dynamixel bus.

A Pepper board is something design to "pretend" to be a Dynamixel device on the Dynamixel bus and can work with libbioloid, Roboplus or USB2Dynamixel, etc.

As for the Robotis Gyro, the specs should be avilable on the Robotis website.
However bear in mind that using the Pepper Board you can use a Gyro from any manufacturer or model; it doesn't have to be a gyro from Robotis.

In particular, for inverse pendulum applications (that you mentioned) it is imortant to choose a gyro that has an appropriate deg/sec rating. There are gyros that go from 75deg/sec to 300 deg/sec.
I am not a specialist in inverse pendulum (I know little about it) but I think you'll need a gyro with a low deg/sec rating. I'd recommend you google about it to find out more. Any Analog gyro (or sensor) should work with the Pepper board.

Regards
Pedro.


Well, I had the time to look a little bit further.

Here are my conclusions :

I'm going to implement the Dewey version.
I found the bill of material and the pcb design (in Eagl format, i'm going to convert it in Protel (Altium DXP)) thanks to pepperm - just have to do the changes related to the capacitor described here : http://robosavvy.com/site/index.php?opt ... nsor_board

The Dewey software looks good, I don't think I have to change anything in it so I'm able to just put it (the .hex) in the ATmega8 (I still have to ask my school to see which material we have to flash it : 6 pins connector or 10 pins...).

Our gyroscope is 300°/s according to the datasheet, perfect for our project. In addition, it is a 5V one, so the compatibility should be ok.

The interesting part is that with the pepper board it is possible to put more than only one gyroscope on the board (actually, we need 2) : we can put the pepper board close to the CM5 unit and just the gyroscope on the inverted penduluum so weight is very light.

My friend implement the regulation in C code (libbioloid) and the mechanical part is finished so i'll be able to give you news about how it is going very soon.

Any comments ?
Julienne
Newbie
Newbie
Posts: 4
Joined: Mon Apr 11, 2011 4:27 pm

Post by limor » Sat Oct 01, 2011 11:38 am

Post by limor
Sat Oct 01, 2011 11:38 am

what happened to the http://braincell.cx site?
what happened to the http://braincell.cx site?
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by knudow » Thu Oct 06, 2011 1:26 pm

Post by knudow
Thu Oct 06, 2011 1:26 pm

Hello.

I really need help. I've been given 3 CM-5 used months or years ago by some university students and they were using this firmware and library.

I've been trying to use the Bioloid software for hours before finding out that they had this library and firmware installed, then found this topic, and the web down, with no mirror anywere.

How do I reinstall the original firmware?? I don't know which option to choose! I tried with b/B: bridge" and then uploading the hex, but it does nothing. I mean, it uploads the file, but then when I restart the CM-5, everything is the same.

I NEED help. Does anyone know how to restore the firmware, or if the liblioloid library is uploaded elsewhere so I can read the readme and info files? Thanks!
Hello.

I really need help. I've been given 3 CM-5 used months or years ago by some university students and they were using this firmware and library.

I've been trying to use the Bioloid software for hours before finding out that they had this library and firmware installed, then found this topic, and the web down, with no mirror anywere.

How do I reinstall the original firmware?? I don't know which option to choose! I tried with b/B: bridge" and then uploading the hex, but it does nothing. I mean, it uploads the file, but then when I restart the CM-5, everything is the same.

I NEED help. Does anyone know how to restore the firmware, or if the liblioloid library is uploaded elsewhere so I can read the readme and info files? Thanks!
knudow
Newbie
Newbie
Posts: 4
Joined: Thu Oct 06, 2011 1:22 pm

restoring CM5 firmware

Post by wiweet » Thu Oct 06, 2011 4:43 pm

Post by wiweet
Thu Oct 06, 2011 4:43 pm

Have you tried the controller firmware restoration on Roboplus Manager?
(available at www.robotis.com)
Have you tried the controller firmware restoration on Roboplus Manager?
(available at www.robotis.com)
wiweet
Savvy Roboteer
Savvy Roboteer
Posts: 43
Joined: Fri Apr 15, 2011 2:50 am

Post by siempre.aprendiendo » Thu Oct 06, 2011 5:35 pm

Post by siempre.aprendiendo
Thu Oct 06, 2011 5:35 pm

Here you have the "Restoring the Controller's Firmware" page at the Robotis support site

Image
Here you have the "Restoring the Controller's Firmware" page at the Robotis support site

Image
siempre.aprendiendo
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 559
Joined: Wed Aug 08, 2007 9:13 pm
Location: Barcelona

Post by knudow » Thu Oct 06, 2011 7:08 pm

Post by knudow
Thu Oct 06, 2011 7:08 pm

Thanks for the answers. I will try this on monday at the lab.
Thanks for the answers. I will try this on monday at the lab.
knudow
Newbie
Newbie
Posts: 4
Joined: Thu Oct 06, 2011 1:22 pm

Post by sdeba » Sat Nov 12, 2011 10:20 pm

Post by sdeba
Sat Nov 12, 2011 10:20 pm

What happened to the braincell.cx website? Where I can find now libbioloid libraries? ;)

EDIT: Can somebody upload or send me this libraries?
What happened to the braincell.cx website? Where I can find now libbioloid libraries? ;)

EDIT: Can somebody upload or send me this libraries?
sdeba
Savvy Roboteer
Savvy Roboteer
Posts: 31
Joined: Sat Nov 12, 2011 9:00 pm

Post by gorbag » Wed Jan 18, 2012 3:54 pm

Post by gorbag
Wed Jan 18, 2012 3:54 pm

sdeba wrote:What happened to the braincell.cx website? Where I can find now libbioloid libraries? ;)

EDIT: Can somebody upload or send me this libraries?


I don't know if they were the latest versions before the site went down, but the files that were there as of 8/5/10 I've uploaded to

http://robosavvy.com/Builders/gorbag/braincell-cx-bioloid/

Hope it helps you out!!
sdeba wrote:What happened to the braincell.cx website? Where I can find now libbioloid libraries? ;)

EDIT: Can somebody upload or send me this libraries?


I don't know if they were the latest versions before the site went down, but the files that were there as of 8/5/10 I've uploaded to

http://robosavvy.com/Builders/gorbag/braincell-cx-bioloid/

Hope it helps you out!!
gorbag
Newbie
Newbie
Posts: 1
Joined: Sat Oct 04, 2008 1:05 am

Post by i-Bot » Wed Jan 18, 2012 4:32 pm

Post by i-Bot
Wed Jan 18, 2012 4:32 pm

The site is up again, since November.
http://sneaky.braincell.cx/bioloid/
and
http://sneaky.braincell.cx/bioloid/dist/

Latest version is there.
The site is up again, since November.
http://sneaky.braincell.cx/bioloid/
and
http://sneaky.braincell.cx/bioloid/dist/

Latest version is there.
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

makefile, additional src and header files

Post by Fasin » Sun Apr 22, 2012 1:30 pm

Post by Fasin
Sun Apr 22, 2012 1:30 pm

Hello everyone,

ive started using the libbioloid api by adding my own code to the delivered example.c. Now i've written some stuff, that i also want to use in another project, but including the code in every new single sourcefile is very tedious and error prone, just like writing all code into only one single source file. I'm pretty much used to using makefiles and such, but i cant seem to understand, how i can get it to make additional source and header files in addition to the example.c.

Has anyone else run into this? I would really appreciate any kind of hint/help.
Hello everyone,

ive started using the libbioloid api by adding my own code to the delivered example.c. Now i've written some stuff, that i also want to use in another project, but including the code in every new single sourcefile is very tedious and error prone, just like writing all code into only one single source file. I'm pretty much used to using makefiles and such, but i cant seem to understand, how i can get it to make additional source and header files in addition to the example.c.

Has anyone else run into this? I would really appreciate any kind of hint/help.
Fasin
Newbie
Newbie
Posts: 1
Joined: Sun Apr 22, 2012 1:22 pm

Post by Julius » Mon Aug 13, 2012 9:36 am

Post by Julius
Mon Aug 13, 2012 9:36 am

One of the biggest overheads we're seeing are for 32-bit arithmetic (needed for accurate trig) and interrupt overhead. If we can switch to the platform we're thinking of (see other thread) both of these should be resolved natively
One of the biggest overheads we're seeing are for 32-bit arithmetic (needed for accurate trig) and interrupt overhead. If we can switch to the platform we're thinking of (see other thread) both of these should be resolved natively
Julius
Newbie
Newbie
Posts: 1
Joined: Mon Aug 13, 2012 9:34 am

Post by dttworld » Thu Sep 06, 2012 3:20 am

Post by dttworld
Thu Sep 06, 2012 3:20 am

i-Bot wrote:The site is up again, since November.
http://sneaky.braincell.cx/bioloid/
and
http://sneaky.braincell.cx/bioloid/dist/

Latest version is there.


Anyone know if the author is still around? I'm looking for the latest libraries for the CM-5 controller. Just built a really cool robot using Dynamixels from the Bioloid kit as robot arms. Want to get rid of the USB2Dynamixel I'm using and instead use the CM-5 and serial cable to another controller (Arduino Mega).

I have a vid of the bot on Instructables. I have entered it into a contest:

http://www.instructables.com/id/A-Robot-In-Our-Homes/

You can see the arms made from a Bioloid kit parts.

Thanks!

Image
i-Bot wrote:The site is up again, since November.
http://sneaky.braincell.cx/bioloid/
and
http://sneaky.braincell.cx/bioloid/dist/

Latest version is there.


Anyone know if the author is still around? I'm looking for the latest libraries for the CM-5 controller. Just built a really cool robot using Dynamixels from the Bioloid kit as robot arms. Want to get rid of the USB2Dynamixel I'm using and instead use the CM-5 and serial cable to another controller (Arduino Mega).

I have a vid of the bot on Instructables. I have entered it into a contest:

http://www.instructables.com/id/A-Robot-In-Our-Homes/

You can see the arms made from a Bioloid kit parts.

Thanks!

Image
dttworld
Newbie
Newbie
Posts: 2
Joined: Thu Sep 06, 2012 3:14 am

PreviousNext
289 postsPage 19 of 201 ... 16, 17, 18, 19, 20
289 postsPage 19 of 201 ... 16, 17, 18, 19, 20