CBCv3 userlib functions

4 replies [Last post]
garrettsickles
garrettsickles's picture
Title: NooBot
Joined: 12/08/2011
Posts:
BotPoints: 52
User offline. Last seen 8 years 28 weeks ago.

Will the CBCv3 target utilize the same functions (neglecting their implementations') as the CBCv2 target? I don't want to risk compatibility issues with new code. So far on github everything seems to be the same, but just checking because of the total overhaul of the controller and camera build.

Garrett Sickles
807Robotics: A Narwhal's Revenge
Youth Advisory Council
Geophysics & Computer Science

Beta
Beta's picture
Title: The Magnificent
Joined: 02/24/2012
Posts:
BotPoints: 266
User offline. Last seen 8 years 32 weeks ago.

The Kovan C userlib is about 85% compatible with the CBCv2 C userlib, and significantly larger. Breaking down the major ones:

  • Motors / Servos are completely backwards compatible. Some additional methods.
  • Buttons are almost completely different.
  • Analogs and Digitals are completely backwards compatible. Some additional methods.
  • Camera library will be completely different, probably with backwards compatibility that warns you those methods are deprecated.
  • iRobot Create support has been completely rewritten under the hood to be much more accurate (saying 90 degrees actually gets you fairly close to 90 degrees now. The method uses little to no fudging.) and complete. Beyond a few additional methods, the external library remains largely the same
  • "ir" is a new library.
  • "wifi" is a new library.
  • "draw" is a new library.

The Kovan C++ userlib is completely different than the CBCv2 C++ userlib, and is more powerful than the C userlib. The C libraries are actually implemented using the C++ libraries. We will also be distributing a Java and Python library.

For more information, here are the headers for the new userlib: https://github.com/kipr/libkovan/tree/master/include.

Having said all that, we are planning on making it as easy as possible to get old code up and running on the Kovan. Our goal is not to break everyone's code, but to provide the best possible robotics library.

I am working on these libraries almost every day, so they are subject to wild and rapid change.

Thanks.

Braden McDorman

Developer of the KIPR Link, KISS IDE, KIPR's 2D Simulator, and CBCJVM.

Reach me at bmcdorman(cat)kipr(dog)org where (cat)=@ and (dog)=. if you need assistance of any kind.

garrettsickles
garrettsickles's picture
Title: NooBot
Joined: 12/08/2011
Posts:
BotPoints: 52
User offline. Last seen 8 years 28 weeks ago.

Well sweet! I really like the way that you all have composed the serial library. Cereal lol. But I have one more question about the kiss compiler for C/C++ on non-controller side. Do you run a shell script to compile from kiss ide(I hope) and if so where in the source is that... I was hoping to write an external build system for Xcode but I'm confused by all the QT gui functionality.

Garrett Sickles
807Robotics: A Narwhal's Revenge
Youth Advisory Council
Geophysics & Computer Science

Beta
Beta's picture
Title: The Magnificent
Joined: 02/24/2012
Posts:
BotPoints: 266
User offline. Last seen 8 years 32 weeks ago.

Actually, I have eliminated local compilation of source files altogether with the Kovan. It is fast enough to do the compilation locally, then send the results back to the computer. In the case of "This Machine" and the simulator, we have the "This Machine" application (It's a new GUI application) or the simulator do the compilation and send the results back to KISS IDE. This means that the simulator can be run on a different machine, different OS, different architecture than the host. It also means that KISS IDE doesn't need a local compiler at all to compile/download to the Kovan. All three of these targets use a common base for compilation called kiss-compiler. kiss-compiler is fairly complicated, but it would be possible to write a cmd line wrapper for it. It is still somewhat intertwined with Qt's standard library, however.

Braden McDorman

Developer of the KIPR Link, KISS IDE, KIPR's 2D Simulator, and CBCJVM.

Reach me at bmcdorman(cat)kipr(dog)org where (cat)=@ and (dog)=. if you need assistance of any kind.

garrettsickles
garrettsickles's picture
Title: NooBot
Joined: 12/08/2011
Posts:
BotPoints: 52
User offline. Last seen 8 years 28 weeks ago.

Shoot, haha i was wondering because i had to redownload command line utilities to get the current kiss ide to work. It was worth a try though.

Garrett Sickles
807Robotics: A Narwhal's Revenge
Youth Advisory Council
Geophysics & Computer Science