Wiki » History » Version 4
Martin Jacquet, 2020-10-19 14:20
1 | 1 | Martin Jacquet | h1. Perceptive and torque-control NMPC wiki |
---|---|---|---|
2 | |||
3 | 2 | Martin Jacquet | h2. I - Software Overview |
4 | 1 | Martin Jacquet | |
5 | 2 | Martin Jacquet | h3. I.1. Openrobots |
6 | 1 | Martin Jacquet | |
7 | Collections of all the open-source software used at LAAS. You can find more details in "Openrobots Wiki-Homepage":https://www.openrobots.org/wiki |
||
8 | > |
||
9 | |||
10 | 2 | Martin Jacquet | h3. I-2. Robotpkg |
11 | 1 | Martin Jacquet | |
12 | 2 | Martin Jacquet | "Robotpkg":http://robotpkg.openrobots.org/ is a packaging system for installing robotics software developed by the robotic community. |
13 | We will use robotpkg to install the required modules for the simulations (state estimation, gazebo interface...) as well as third-party dependencies (qpOases). |
||
14 | 1 | Martin Jacquet | > |
15 | |||
16 | 2 | Martin Jacquet | h3. I-3. GenoM |
17 | 1 | Martin Jacquet | |
18 | 2 | Martin Jacquet | The Generator of Modules, aka *GenoM*, generator of modules, designed to be middleware independant, i.e. the same module can be compiled for, e.g., ROS or Pocolibs, without any modification. |
19 | This allows a great code re-usability and to abstract the user from any specific choice of a middleware. |
||
20 | Originally GenoM has been developed tightly with *Pocolibs*, then from version 3, aka *GenoM3*, other middleware templates has been provided, like ROS. |
||
21 | 1 | Martin Jacquet | > |
22 | 2 | Martin Jacquet | Another specificity of GenoM is the interaction with and between components. |
23 | Each component is started independantly like a linux executable (within a roscore, for ROS, or a h2 intance, for Pocolibs), then the connection between ports (or topics) is made using 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. |
||
24 | > |
||
25 | 1 | Martin Jacquet | |
26 | 2 | Martin Jacquet | h3. I-4. Pocolibs |
27 | 1 | Martin Jacquet | |
28 | 2 | Martin Jacquet | "Pocolibs":https://www.openrobots.org/wiki/pocolibs/ is a middleware, like ROS. |
29 | It aims at being more performant and faster than 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. |
||
30 | 1 | Martin Jacquet | > |
31 | |||
32 | 4 | Martin Jacquet | h3. I-5. TeleKyb |
33 | 2 | Martin Jacquet | |
34 | The "TeleKyb":https://git.openrobots.org/projects/telekyb3 software platform provides the aerial-robotic oriented softwares developped at LAAS-CNRS. |
||
35 | In particular, we will use: |
||
36 | * "mrsim":https://git.openrobots.org/projects/mrsim-genom3 a Multi-Robot SIMulator. It is design to be a transparent interface w.r.t. the real aerial vehicles used in LAAS-CNRS. It makes the transition between simulation and experiment transparent, from the software point of view. |
||
37 | 3 | Martin Jacquet | * "pom":https://git.openrobots.org/projects/pom-genom3 a UKF-based state estimator merging state feedback for different sources (e.g. mocap + IMU) |
38 | * "optitrack":https://git.openrobots.org/projects/optitrack-genom3 export the motion capture data to the genom software stack |
||
39 | * "rotorcraft":https://git.openrobots.org/projects/rotorcraft-genom3 low-level interface, with either the simulated or real platform |
||
40 | * "nhfc":https://git.openrobots.org/projects/nhfc-genom3 near-hovering flight controller, used for unmodeled take-off and post-failure recovery |
||
41 | * "maneuver":https://git.openrobots.org/projects/maneuver-genom3 a global trajectory planner, providing position and attitude (as quaternions) as well as first and second derivatives. It implement take-off and waypoint-to-waypoint motions. A joystick-based velocity control is implemented, but not used in this project. |
||
42 | 1 | Martin Jacquet | > |
43 | |||
44 | 4 | Martin Jacquet | h3. I-6. Gazebo |
45 | 1 | Martin Jacquet | |
46 | 4 | Martin Jacquet | To simulate the platform, we use the "Gazebo":http://gazebosim.org/ simulator. To interface it with the genom software stack, we use two dedicated components: |
47 | * "mrsim-gazebo":https://git.openrobots.org/projects/mrsim-gazebo a plugin to interface the simulated multi-rotor with the genom components (in place of mrsim) |
||
48 | * "optitrack-gazebo":https://git.openrobots.org/projects/optitrack-gazebo emulates the optitrack network interface to publish the model poses |
||
49 | > |
||
50 | 2 | Martin Jacquet | |
51 | h2. II - Installation procedure |