Project

General

Profile

Wiki » History » Revision 2

Revision 1 (Martin Jacquet, 2020-10-19 13:03) → Revision 2/50 (Martin Jacquet, 2020-10-19 13:31)

h1. Perceptive and torque-control NMPC wiki 

 h2. I - Software Overview 

 h3. I.1. Openrobots 

 Collections of all the open-source software used at LAAS. You can find more details in "Openrobots Wiki-Homepage":https://www.openrobots.org/wiki 
 > 

 h3. I-2. Robotpkg 

 "Robotpkg":http://robotpkg.openrobots.org/ is a packaging system for installing robotics software developed by the robotic community. 
 We will use robotpkg to install the required modules for the simulations (state estimation, gazebo interface...) as well as third-party dependencies (qpOases). 
 > 

 h3. I-3. GenoM 

 The Generator of Modules, aka *GenoM*, generator is [*Cite paper*] a *generator of modules, designed modules*, i.e. components, for different "middlewares":https://it.wikipedia.org/wiki/Middleware (examples of middlewares are "ROS":https://www.ros.org/, "YARP":https://www.yarp.it/), i.e. it allows to be middleware independant, i.e. create components independently from the same module can be compiled for, e.g., ROS or Pocolibs, without any modification. choice of the used middleware. 
 This allows a great code re-usability and to abstract the user from any specific choice of a middleware. You just write the component once and then you can select one among the supported middleware; for each middleware GenoM needs a template. 
 Originally GenoM has been developed tightly with *Pocolibs*, then from version 3, aka *GenoM3*, other middleware templates has been provided, like ROS. 
 > 

 h3. Resources 

 Here it is reported a list of other resources in which you can find more details about GenoM. 
 Another specificity of GenoM is the interaction with * "*GenoM Homepage*":https://git.openrobots.org/projects/genom3 hosted on @git.Openrobots.org@, where you can find also: 
 ** its "*Wiki*":https://git.openrobots.org/projects/genom3/wiki , 
 ** and between components. its "*Documentation*":https://git.openrobots.org/projects/genom3/gollum/index , 
 Each component is started independantly like a linux executable (within a roscore, for ROS, * or you can have also a h2 intance, for Pocolibs), then the connection between ports (or topics) is made using look "here":https://www.openrobots.org/wiki/genom, where you can find more detailed material - like a supervisor, "Genomix":https://git.openrobots.org/projects/genomix, either with it "Matlab":https://git.openrobots.org/projects/matlab-genomix or "TCL":https://git.openrobots.org/projects/tcl-genomix.  
 manual and some slides - in section @Documentation@. 
 > 

 h3. I-4. Pocolibs 

 "Pocolibs":https://www.openrobots.org/wiki/pocolibs/ As stated before, "*Pocolibs*":https://www.openrobots.org/wiki/pocolibs/ is a middleware, like ROS. ROS, YARP. 
 As already said, GenoM was originally made for it. 
 > 

 * ??Why are we using Pocolibs and not other popular middlewares, such as ROS??? 
 ** It aims has been developed here at being more performant LAAS, thus we have total control on its development and faster than we can even develop other _custom_ features necessary for our projects; 
 ** it is *more performant* and *fast* compared to ROS, when running on a single machine, thanks to the exploitation of shared memory. ROS, on the other hand, uses a network layer for sending messages between one "node":http://wiki.ros.org/Nodes and another one, this leads to greater delays and loss of performances. 
 > 

 h3. I.5. TeleKyb Robotpkg 

 The "TeleKyb":https://git.openrobots.org/projects/telekyb3 software platform provides the aerial-robotic oriented softwares developped at LAAS-CNRS. 
 In particular, we If you are going to use GenoM then you will use: definitely meet "*Robotpkg*":http://robotpkg.openrobots.org/. 
 * "mrsim":https://git.openrobots.org/projects/mrsim-genom3 a Multi-Robot SIMulator. It is design to be a transparent interface w.r.t. compilation framework and packaging system for installing robotics software developed by the real aerial vehicles used in LAAS-CNRS. robotic community. It makes also contains packages for some general, third-party open-source software that the transition between simulation robotics software depends on and experiment transparent, from the software point of view. that is not commonly packaged by major unix distributions. 
 * "pom": > 
 * "optitrack": In orther words it is a simple way to *package software* together and it allows to *automatically manage* all the *dependecies* (libraries and other modules) which the softwares depend on. 
 * "rotorcraft": More detailed info on how it works and on how to use it can be found in its "*Documentation*":http://robotpkg.openrobots.org/robotpkg/README.html (@Robotpkg Homepage->Documentation@). 
 * "nhfc": 
 * "maneuver": 
 > 

 h3. I.6. Gazebo 


 h2. II - Installation procedure 
 Robotpkg is the *simplest way to* [[Software-installation|install GenoM]] since it allows you to download and compile GenoM automatically without the need to worry about all the dependencies.