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

Bioloid Vision Module

Created by Prof. Hamid Moballegh of The Robocup Humanoid Team of Freie Universität Berlin - fumanoids.de
261 postsPage 11 of 181 ... 8, 9, 10, 11, 12, 13, 14 ... 18
261 postsPage 11 of 181 ... 8, 9, 10, 11, 12, 13, 14 ... 18

Post by kamondelious » Sun Sep 13, 2009 9:26 am

Post by kamondelious
Sun Sep 13, 2009 9:26 am

Is the RAWSAMPLE the only way to grab the full 160x120 image? Is it not possible with CAPTURE? In example.c CAPTURE is used in conjunction with READDATA which returns the colour groups defined with the calibration phase.

Does anyone have 8-10fps retrieving the full 160x120 image? If so how?

Hamid, how goes your work to make faster download speeds and streaming?

Cheers!
Is the RAWSAMPLE the only way to grab the full 160x120 image? Is it not possible with CAPTURE? In example.c CAPTURE is used in conjunction with READDATA which returns the colour groups defined with the calibration phase.

Does anyone have 8-10fps retrieving the full 160x120 image? If so how?

Hamid, how goes your work to make faster download speeds and streaming?

Cheers!
kamondelious
Savvy Roboteer
Savvy Roboteer
Posts: 29
Joined: Tue Sep 30, 2008 11:18 pm

Post by hamid_m » Sun Sep 13, 2009 10:19 am

Post by hamid_m
Sun Sep 13, 2009 10:19 am

Hi kamondelious,

Currently, it is the only way. The function of CAPTURE is the internal frame capture and process, which finally updates the object list. The list can be accessed through READDATA command.

It is not possible to output the whole image at more than 1/4 FPS, because there is a big bottleneck: Communication with the PC at 57600bps.

I have started working on enabling streaming after it got possible to connect the module directly to the PC, and there was no more need to connect through CM5. However the feature is not available yet. In addition, as 160*120*8.5*10=1632000 which is much more than 1Mbps, it is by no means possible to stream with that frame rate.

Best regards,
Hamid.
Hi kamondelious,

Currently, it is the only way. The function of CAPTURE is the internal frame capture and process, which finally updates the object list. The list can be accessed through READDATA command.

It is not possible to output the whole image at more than 1/4 FPS, because there is a big bottleneck: Communication with the PC at 57600bps.

I have started working on enabling streaming after it got possible to connect the module directly to the PC, and there was no more need to connect through CM5. However the feature is not available yet. In addition, as 160*120*8.5*10=1632000 which is much more than 1Mbps, it is by no means possible to stream with that frame rate.

Best regards,
Hamid.
hamid_m
Savvy Roboteer
Savvy Roboteer
Posts: 133
Joined: Thu May 03, 2007 4:56 pm

Post by StuartL » Mon Sep 14, 2009 7:59 am

Post by StuartL
Mon Sep 14, 2009 7:59 am

hamid_m wrote:Also, I have posted an example program in C which makes a pan/tilt mechanism track a red ball. I think, all the needed functions can be found there,
We need a new class(or header). From the structure, it is similar to Dynamixel.h/.c but needs some minimal changes. For example to send the capture command to the camera, or to read/write filter values.

As also Pedro pointed out, there is no more need to implement the calibration interface as is it now possible through USB.


Where can I find the example.c? I took a look on the VM Wiki but wasn't sure where to start.

Cheers,
Stuart
hamid_m wrote:Also, I have posted an example program in C which makes a pan/tilt mechanism track a red ball. I think, all the needed functions can be found there,
We need a new class(or header). From the structure, it is similar to Dynamixel.h/.c but needs some minimal changes. For example to send the capture command to the camera, or to read/write filter values.

As also Pedro pointed out, there is no more need to implement the calibration interface as is it now possible through USB.


Where can I find the example.c? I took a look on the VM Wiki but wasn't sure where to start.

Cheers,
Stuart
StuartL
Savvy Roboteer
Savvy Roboteer
Posts: 350
Joined: Mon Jun 04, 2007 3:46 pm
Location: Thatcham, Berkshire, UK

Post by hamid_m » Mon Sep 14, 2009 8:35 am

Post by hamid_m
Mon Sep 14, 2009 8:35 am

Hi Stuart,

Check that:
http://robosavvy.com/forum/viewtopic.ph ... c&start=45

Best regards,
Hamid.
Hi Stuart,

Check that:
http://robosavvy.com/forum/viewtopic.ph ... c&start=45

Best regards,
Hamid.
hamid_m
Savvy Roboteer
Savvy Roboteer
Posts: 133
Joined: Thu May 03, 2007 4:56 pm

Post by kamondelious » Sat Sep 19, 2009 4:48 pm

Post by kamondelious
Sat Sep 19, 2009 4:48 pm

Hi all,

What AVR library is used for Hamid's example.c? I'm using avr-libc which is the same (or at least similar) to what the example.c for the comprehensive kit comes with. I haven't been able to find one that gives me the mega128.h used in Hamid's example.c.

Has anyone converted Hamid's example.c to work with avr-libc (avr-gcc)? The interrupt handling seems considerably different so I'm assuming I'm doing something wrong there, most of the rest of the code is the same.

I'm using
Code: Select all
ISR(SIG_UART0_RECV)
{
  gbpRxInterruptBuffer[(gbRxBufferWritePointer++)] = RXD0_DATA;
}

ISR(SIG_UART1_RECV)
{
  PCBuffer[(WritePointer++)] = RXD1_DATA;
}

unsigned long Timer=0;

ISR(SIG_OUTPUT_COMPARE1A)
{
  // Place your code here               
  Timer++;
}


In place of
Code: Select all
interrupt [USART0_RXC] void usart0_rx_isr(void)
{
  gbpRxInterruptBuffer[(gbRxBufferWritePointer++)] = RXD0_DATA;
}

interrupt [USART1_RXC] void usart1_rx_isr(void)
{
  PCBuffer[(WritePointer++)] = RXD1_DATA;
}

interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
  // Place your code here               
  Timer++;
}


My code compiles fine but hangs when I try and get a picture. It successfully sends the image request packet, but hangs receiving the data.
Code: Select all
     TxPacket(100, 15, 0);
     for (i=0; i<160*120; i++) {
      TxD8(RxD80());
     }

The RxD80() causes it to hang and I have to cycle the power in order to be able to have my HaViMo accept another image request.

Of note, I output the AX-12 & AX-S1 data for all that are attached and that part of my code works just fine.

Any help would be greatly appreciated.

Cheers!
Hi all,

What AVR library is used for Hamid's example.c? I'm using avr-libc which is the same (or at least similar) to what the example.c for the comprehensive kit comes with. I haven't been able to find one that gives me the mega128.h used in Hamid's example.c.

Has anyone converted Hamid's example.c to work with avr-libc (avr-gcc)? The interrupt handling seems considerably different so I'm assuming I'm doing something wrong there, most of the rest of the code is the same.

I'm using
Code: Select all
ISR(SIG_UART0_RECV)
{
  gbpRxInterruptBuffer[(gbRxBufferWritePointer++)] = RXD0_DATA;
}

ISR(SIG_UART1_RECV)
{
  PCBuffer[(WritePointer++)] = RXD1_DATA;
}

unsigned long Timer=0;

ISR(SIG_OUTPUT_COMPARE1A)
{
  // Place your code here               
  Timer++;
}


In place of
Code: Select all
interrupt [USART0_RXC] void usart0_rx_isr(void)
{
  gbpRxInterruptBuffer[(gbRxBufferWritePointer++)] = RXD0_DATA;
}

interrupt [USART1_RXC] void usart1_rx_isr(void)
{
  PCBuffer[(WritePointer++)] = RXD1_DATA;
}

interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
  // Place your code here               
  Timer++;
}


My code compiles fine but hangs when I try and get a picture. It successfully sends the image request packet, but hangs receiving the data.
Code: Select all
     TxPacket(100, 15, 0);
     for (i=0; i<160*120; i++) {
      TxD8(RxD80());
     }

The RxD80() causes it to hang and I have to cycle the power in order to be able to have my HaViMo accept another image request.

Of note, I output the AX-12 & AX-S1 data for all that are attached and that part of my code works just fine.

Any help would be greatly appreciated.

Cheers!
kamondelious
Savvy Roboteer
Savvy Roboteer
Posts: 29
Joined: Tue Sep 30, 2008 11:18 pm

HAVIMO Visual Studio C++ RawSample

Post by jhr_777 » Wed Nov 04, 2009 8:25 pm

Post by jhr_777
Wed Nov 04, 2009 8:25 pm

Hello everyone¡¡¡

I have a dude about get a image (rawSample) with PC. I know that I have to "execute" the instruction 15, but I have errors. Here is mi code in Visual Studio 8

Code: Select all

void Image_Havimo( )
{
        // Packet structure
   dxl_instruction InstPacket;
   dxl_status StatusPacket;
   int ErrorCode;
   WORD Model_Number;

   InstPacket.id         = 100;            // ID
   InstPacket.instruction   = 15;          // Read Register
   InstPacket.address      = 0;   // Address of Model Number
   InstPacket.parameter[0]   = 0;            // Number of byte to read
   InstPacket.length      = 3;            // Length = 3(id, instruction, address) + (Number of parameter)
   // Communication
   //while( dxl_control( &InstPacket, &StatusPacket, true ) != ERR_CODE_SUCCESS){}
   ErrorCode = dxl_control( &InstPacket, &StatusPacket, true );





I tried everything but it doesnt work. In addition, the havimo is found when I do a PING.

Code: Select all

// Packet structure
   dxl_instruction InstPacket;
   dxl_status StatusPacket;
   int ErrorCode;
   WORD Model_Number;

   InstPacket.id         = id;            // ID
   InstPacket.instruction   = INST_PING;      // Read instruction
   InstPacket.address      = 0;   // Address of Model Number
   //InstPacket.parameter[0]   = 0;            // Number of byte to read
   InstPacket.length      = 3;            // Length = 3(id, instruction, address) + (Number of parameter)



I need a help. Please ¡¡¡¡¡
Hello everyone¡¡¡

I have a dude about get a image (rawSample) with PC. I know that I have to "execute" the instruction 15, but I have errors. Here is mi code in Visual Studio 8

Code: Select all

void Image_Havimo( )
{
        // Packet structure
   dxl_instruction InstPacket;
   dxl_status StatusPacket;
   int ErrorCode;
   WORD Model_Number;

   InstPacket.id         = 100;            // ID
   InstPacket.instruction   = 15;          // Read Register
   InstPacket.address      = 0;   // Address of Model Number
   InstPacket.parameter[0]   = 0;            // Number of byte to read
   InstPacket.length      = 3;            // Length = 3(id, instruction, address) + (Number of parameter)
   // Communication
   //while( dxl_control( &InstPacket, &StatusPacket, true ) != ERR_CODE_SUCCESS){}
   ErrorCode = dxl_control( &InstPacket, &StatusPacket, true );





I tried everything but it doesnt work. In addition, the havimo is found when I do a PING.

Code: Select all

// Packet structure
   dxl_instruction InstPacket;
   dxl_status StatusPacket;
   int ErrorCode;
   WORD Model_Number;

   InstPacket.id         = id;            // ID
   InstPacket.instruction   = INST_PING;      // Read instruction
   InstPacket.address      = 0;   // Address of Model Number
   //InstPacket.parameter[0]   = 0;            // Number of byte to read
   InstPacket.length      = 3;            // Length = 3(id, instruction, address) + (Number of parameter)



I need a help. Please ¡¡¡¡¡
jhr_777
Newbie
Newbie
Posts: 5
Joined: Wed Nov 04, 2009 8:18 pm

I receive my new Havimo

Post by lebill » Sun Nov 08, 2009 6:08 pm

Post by lebill
Sun Nov 08, 2009 6:08 pm

Everything is detect, everyting seem to work fine

My only concern is the light source, I test last night, with normal room light, and I always get a black capture, the only way to get a glimpse of a image is to point the Havimo to the light source.

I just test now (noon) outside, with full sun light, and it ok, could be better, it's still a dark capture.

Is there a way to change the ISO or something like that to make it see something inside my house.

Thanks for your support
Everything is detect, everyting seem to work fine

My only concern is the light source, I test last night, with normal room light, and I always get a black capture, the only way to get a glimpse of a image is to point the Havimo to the light source.

I just test now (noon) outside, with full sun light, and it ok, could be better, it's still a dark capture.

Is there a way to change the ISO or something like that to make it see something inside my house.

Thanks for your support
lebill
Newbie
Newbie
Posts: 1
Joined: Sun Nov 08, 2009 5:51 pm

Post by hamid_m » Mon Nov 09, 2009 10:37 am

Post by hamid_m
Mon Nov 09, 2009 10:37 am

Hi lebill,

between the camera registers there is a 24 bit value called "integration time". it can be accessed through the calibration program. The address of the registers can be found in the datasheet of the camera chip included in the software package. This is the exposure value. by increasing the value the image becomes lighter, but also more sensitive to motion.

Best regards,
Hamid.
Hi lebill,

between the camera registers there is a 24 bit value called "integration time". it can be accessed through the calibration program. The address of the registers can be found in the datasheet of the camera chip included in the software package. This is the exposure value. by increasing the value the image becomes lighter, but also more sensitive to motion.

Best regards,
Hamid.
hamid_m
Savvy Roboteer
Savvy Roboteer
Posts: 133
Joined: Thu May 03, 2007 4:56 pm

Post by jhr_777 » Tue Nov 10, 2009 8:25 pm

Post by jhr_777
Tue Nov 10, 2009 8:25 pm

Hi, thankyou for answer hamid. I solved the problem yet, but now I have a new problem, so I need your help now :D . The problem is when I convert de raw Image to RGB. Continue I show de code

Code: Select all
void YCbCr2RGB(BYTE *buff, BYTE *red, BYTE *green, BYTE *blue)
{

  int contador = 0;
  BYTE Image[120*160];

  for(int i=0; i<40; i++)
  {
     for(int j=0; j<120; j++)
    {
       for(int k=0; k<4; k++)
      {
         Image[(k+i*4)*120 + j] = buff[contador++];
      }

    }
  }

  BYTE y, cb, cr;
  float calcR, calcB, calcG;

  for(int i=0; i<160; i++)
  {
     for(int j=0; j<120; j++)
    {
       y = (Image[i*120+j] & 15) << 4;

      //y = Image[i*120+j];

        if( (j & 1) == 1)
      {
         cb = Image[i*120+j] & 240;
      }
      else
      {
         cr = Image[i*120+j] & 240;
      }

        calcR = y + 1.371 * (cr - 128);
        calcG = y - 0.698 * (cr - 128) - 0.336 * (cb - 128);
        calcB = y + 1.732 * (cb - 128);
     
       if (calcR < 0)
         calcR = 0;
        if (calcG < 0)
         calcG = 0;
        if (calcB <0> 255)
         calcR = 255;
        if (calcG > 255)
         calcG = 255;
      if (calcB > 255)
         calcB = 255;
         
         red[i*120 + j] = (unsigned char)calcR;
         green[i*120 + j] = (unsigned char)calcG;
         blue[i*120 + j] = (unsigned char)calcB;          
    }
  }
}


When I saw de final picture I can get PICTURE but I have 2 problems. The first I is that the final image has a 120X160 resolution and the Havimocalib is 160x120. The second problem is that the colors in the image are strange. I have proved many posibilities and I dont found the error. Can u help me with my problems? Sorry for my english
Hi, thankyou for answer hamid. I solved the problem yet, but now I have a new problem, so I need your help now :D . The problem is when I convert de raw Image to RGB. Continue I show de code

Code: Select all
void YCbCr2RGB(BYTE *buff, BYTE *red, BYTE *green, BYTE *blue)
{

  int contador = 0;
  BYTE Image[120*160];

  for(int i=0; i<40; i++)
  {
     for(int j=0; j<120; j++)
    {
       for(int k=0; k<4; k++)
      {
         Image[(k+i*4)*120 + j] = buff[contador++];
      }

    }
  }

  BYTE y, cb, cr;
  float calcR, calcB, calcG;

  for(int i=0; i<160; i++)
  {
     for(int j=0; j<120; j++)
    {
       y = (Image[i*120+j] & 15) << 4;

      //y = Image[i*120+j];

        if( (j & 1) == 1)
      {
         cb = Image[i*120+j] & 240;
      }
      else
      {
         cr = Image[i*120+j] & 240;
      }

        calcR = y + 1.371 * (cr - 128);
        calcG = y - 0.698 * (cr - 128) - 0.336 * (cb - 128);
        calcB = y + 1.732 * (cb - 128);
     
       if (calcR < 0)
         calcR = 0;
        if (calcG < 0)
         calcG = 0;
        if (calcB <0> 255)
         calcR = 255;
        if (calcG > 255)
         calcG = 255;
      if (calcB > 255)
         calcB = 255;
         
         red[i*120 + j] = (unsigned char)calcR;
         green[i*120 + j] = (unsigned char)calcG;
         blue[i*120 + j] = (unsigned char)calcB;          
    }
  }
}


When I saw de final picture I can get PICTURE but I have 2 problems. The first I is that the final image has a 120X160 resolution and the Havimocalib is 160x120. The second problem is that the colors in the image are strange. I have proved many posibilities and I dont found the error. Can u help me with my problems? Sorry for my english
jhr_777
Newbie
Newbie
Posts: 5
Joined: Wed Nov 04, 2009 8:18 pm

Post by hamid_m » Wed Nov 11, 2009 9:16 am

Post by hamid_m
Wed Nov 11, 2009 9:16 am

Hi jhr_777,

Could you please attach a result image, Perhaps I can say what is wrong with it.

Hamid.
Hi jhr_777,

Could you please attach a result image, Perhaps I can say what is wrong with it.

Hamid.
hamid_m
Savvy Roboteer
Savvy Roboteer
Posts: 133
Joined: Thu May 03, 2007 4:56 pm

Post by jhr_777 » Wed Nov 11, 2009 8:15 pm

Post by jhr_777
Wed Nov 11, 2009 8:15 pm

Thanks for answer Hamid_d, your help is very important for me . I put the canal blue, green and red and the final Image. Obiusly the final image is wrong!!!!!

Blue.jpeg

Image

Green.jpeg

Image

Red.jpeg

Image

Final Image

Image
Thanks for answer Hamid_d, your help is very important for me . I put the canal blue, green and red and the final Image. Obiusly the final image is wrong!!!!!

Blue.jpeg

Image

Green.jpeg

Image

Red.jpeg

Image

Final Image

Image
jhr_777
Newbie
Newbie
Posts: 5
Joined: Wed Nov 04, 2009 8:18 pm

Post by hamid_m » Wed Nov 11, 2009 8:29 pm

Post by hamid_m
Wed Nov 11, 2009 8:29 pm

Hi jhr_777,

It seems that the order of Y and Cb/Cb is wrong.
at this point Y and Cr/Cb are separated:

y = (Image[i*120+j] & 15) << 4;

//y = Image[i*120+j];

if( (j & 1) == 1)
{
cb = Image[i*120+j] & 240;
}
else
{
cr = Image[i*120+j] & 240;
}


in this code, Y comes from, the lower nibble and Cr/Cb from the higher nibble of the data byte.
Just change the order and the problem should be solved.

Best regards,
Hamid.
Hi jhr_777,

It seems that the order of Y and Cb/Cb is wrong.
at this point Y and Cr/Cb are separated:

y = (Image[i*120+j] & 15) << 4;

//y = Image[i*120+j];

if( (j & 1) == 1)
{
cb = Image[i*120+j] & 240;
}
else
{
cr = Image[i*120+j] & 240;
}


in this code, Y comes from, the lower nibble and Cr/Cb from the higher nibble of the data byte.
Just change the order and the problem should be solved.

Best regards,
Hamid.
hamid_m
Savvy Roboteer
Savvy Roboteer
Posts: 133
Joined: Thu May 03, 2007 4:56 pm

Post by jhr_777 » Thu Nov 12, 2009 2:03 pm

Post by jhr_777
Thu Nov 12, 2009 2:03 pm

Thanks Hami_d you are a good friend :D . Here is the final code that works

Code: Select all
void YCbCr2RGB(BYTE *buff, BYTE *red, BYTE *green, BYTE *blue)
{

  int contador = 0;
  BYTE Image[120*160];

  for(int i=0; i<40; i++)
  {
     for(int j=0; j<120; j++)
    {
       for(int k=0; k<4; k++)
      {
         Image[(k+i*4)*120 + j] = buff[contador++];
      }

    }
  }


  BYTE y, cb, cr;
  float calcR, calcB, calcG;

  for(int j=0; j<120; j++)
  {
     for(int i=0; i<160; i++)
    {
       y = (Image[i*120+j] & 240);

       //y = Image[i*120+j];

        if( (i & 1) == 1)
      {
         cb = (Image[i*120+j] & 15) << 4;
      }
      else
      {
         cr = (Image[i*120+j] & 15) << 4;
      }

        calcR = y + 1.371 * (cr - 128);
        calcG = y - 0.698 * (cr - 128) - 0.336 * (cb - 128);
        calcB = y + 1.732 * (cb - 128);
     
       if (calcR < 0)
         calcR = 0;
        if (calcG < 0)
         calcG = 0;
        if (calcB <0> 255)
         calcR = 255;
        if (calcG > 255)
         calcG = 255;
      if (calcB > 255)
         calcB = 255;
         
         red[i*120 + j] = (unsigned char)calcR;
         green[i*120 + j] = (unsigned char)calcG;
         blue[i*120 + j] = (unsigned char)calcB;          
    }
  }
}
Thanks Hami_d you are a good friend :D . Here is the final code that works

Code: Select all
void YCbCr2RGB(BYTE *buff, BYTE *red, BYTE *green, BYTE *blue)
{

  int contador = 0;
  BYTE Image[120*160];

  for(int i=0; i<40; i++)
  {
     for(int j=0; j<120; j++)
    {
       for(int k=0; k<4; k++)
      {
         Image[(k+i*4)*120 + j] = buff[contador++];
      }

    }
  }


  BYTE y, cb, cr;
  float calcR, calcB, calcG;

  for(int j=0; j<120; j++)
  {
     for(int i=0; i<160; i++)
    {
       y = (Image[i*120+j] & 240);

       //y = Image[i*120+j];

        if( (i & 1) == 1)
      {
         cb = (Image[i*120+j] & 15) << 4;
      }
      else
      {
         cr = (Image[i*120+j] & 15) << 4;
      }

        calcR = y + 1.371 * (cr - 128);
        calcG = y - 0.698 * (cr - 128) - 0.336 * (cb - 128);
        calcB = y + 1.732 * (cb - 128);
     
       if (calcR < 0)
         calcR = 0;
        if (calcG < 0)
         calcG = 0;
        if (calcB <0> 255)
         calcR = 255;
        if (calcG > 255)
         calcG = 255;
      if (calcB > 255)
         calcB = 255;
         
         red[i*120 + j] = (unsigned char)calcR;
         green[i*120 + j] = (unsigned char)calcG;
         blue[i*120 + j] = (unsigned char)calcB;          
    }
  }
}
jhr_777
Newbie
Newbie
Posts: 5
Joined: Wed Nov 04, 2009 8:18 pm

Post by lalala » Mon Nov 16, 2009 5:58 pm

Post by lalala
Mon Nov 16, 2009 5:58 pm

Hey guys. I am 17, and I am working on a research program. I need the communication protocol in C so that I can go straight to the programming of my robot. I just started learning C yesterday, so I don't think I can write the entire communication protocol all by myself. Also, my deadline is nearing, so I hope someone can send me the communication protocol or tell me where I can find it. Your help is greatly appreciated.
Hey guys. I am 17, and I am working on a research program. I need the communication protocol in C so that I can go straight to the programming of my robot. I just started learning C yesterday, so I don't think I can write the entire communication protocol all by myself. Also, my deadline is nearing, so I hope someone can send me the communication protocol or tell me where I can find it. Your help is greatly appreciated.
lalala
Newbie
Newbie
Posts: 1
Joined: Mon Nov 16, 2009 5:51 pm

Questions about Havmio 2/Roboplus

Post by altwolf » Wed Dec 09, 2009 8:27 pm

Post by altwolf
Wed Dec 09, 2009 8:27 pm

Hello!

I wish to ask for the Havmio module for Christmas since I think it's the coolest thing EVER!

BUT...

Before I tell people I want it, I would like to know some things:

What is the current version of the Havmio product? 1.5 or 2?

If it is 1.5, will that model be compatible with Roboplus? I read that Havmio will have support in Roboplus...

If only version 2 has support for Roboplus, when will version 2 be released?

I ask all this because I know that, currently, a person must use C++ to work with the module and I am not prepared to do that, yet. I have only just begun cracking open the possibilities of the Behaviour/Roboplus programs as it is.
Hello!

I wish to ask for the Havmio module for Christmas since I think it's the coolest thing EVER!

BUT...

Before I tell people I want it, I would like to know some things:

What is the current version of the Havmio product? 1.5 or 2?

If it is 1.5, will that model be compatible with Roboplus? I read that Havmio will have support in Roboplus...

If only version 2 has support for Roboplus, when will version 2 be released?

I ask all this because I know that, currently, a person must use C++ to work with the module and I am not prepared to do that, yet. I have only just begun cracking open the possibilities of the Behaviour/Roboplus programs as it is.
altwolf
Savvy Roboteer
Savvy Roboteer
Posts: 50
Joined: Thu Jan 29, 2009 9:11 pm

PreviousNext
261 postsPage 11 of 181 ... 8, 9, 10, 11, 12, 13, 14 ... 18
261 postsPage 11 of 181 ... 8, 9, 10, 11, 12, 13, 14 ... 18