Page 1 of 1

What about a Scilab Interface ?

Posted: 23 Aug 2018, 17:35
by SRL_Max
Good day all,

I was wondering if the V-REP community would be interested in the development of an interface between Scilab and V-REP, in a similar way to what currently exists between MATLAB and V-REP?
Both being open-source, free software, this could be interesting for those who want to transition from paying solutions to a less constrained developing environment.

The fact that I don't know how difficult that could be indicates me that I most probably don't have the skills to take on the task at the moment, but with support from Coppelia Robotics and Scilab Entreprise, this could make a great project for the open-source community.

So please, tell me what do you think? Would it be worth the effort, or is the intersection of the two user-bases too small?


Re: What about a Scilab Interface ?

Posted: 26 Aug 2018, 10:02
by fferri
That would be great!

There's a new remote API based on the BlueZero middleware which should be simpler to use than the remote API found in earlier versions of V-REP.

I don't know if it is yet final, because the link in that documentation page points to a non-existent page.

However, this is the github project page and I see that the python subdirectory looks quite complete, so it maybe worth giving it a look.

Re: What about a Scilab Interface ?

Posted: 27 Aug 2018, 12:03
by SRL_Max

Thanks for your enthusiastic answer!

Do you think it's better to wait for the next release including this new remote API before trying anything? From what I've gathered so far, it would only mean :
  • rebuilding the new remote API C/C++ library
  • adding/changing some function names in the bindings
Looking at the MATLAB/Octave bindings, here's what I've understood so far on how to write bindings for Scilab:
  • define all the parameter values (object types, etc.)
  • load the remote API C library
  • define all the functions, with type conversion and call to C/C++ library
Is that correct?

As for the Scilab side, there exists a 'link' (or 'ilib_for_link') and 'call' functions, similar to MATLAB's 'loadlibrary' and 'calllib' I believe.

Lastly, if I want to start working on this project, what should I do? Create a new repo, develop, test and then contact Coppelia? It's my first time dealing with open-source contribution process, so I'm not really sure.


Re: What about a Scilab Interface ?

Posted: 29 Aug 2018, 06:55
by fferri
The new b0RemoteApi is already complete in functionality. Not all remote API commands have been implemented, but I think this is by choice. Implementing the missing commands is as easy as adding entries to generate/simxFunctions.xml and to cpp/b0RemoteApi.h.

The remote API client code should then be linked (statically or dynamically) in your Octave bindings library as usual (I have no experience with that, but I'm making a reasonable guess).

You can host your project wherever you prefer. GitHub probably is the best option as the Coppelia organization is hosting everything V-REP-related there. Choosing a permissive open-source license such as BSD2, BSD3, or Apache 2.0 will help get your project included in the various V-REP distributions once it's mature and stable enough.