Wiki » History » Version 24
François Félix Ingrand, 2018-05-29 14:28
1 | 3 | François Félix Ingrand | h1. LAAS Code (GenoM3) for the OSMOSIS show case. |
---|---|---|---|
2 | 1 | François Félix Ingrand | |
3 | 13 | François Félix Ingrand | This project contains all the GenoM3 components needed for the "OSMOSIS case study":https://osmosis.gitlab.io/ . It can be used with ROS or PocoLibs middleware, with the "simulation in gazebo":https://osmosis.gitlab.io/experiment/simulation.html or on the real robot. |
4 | 3 | François Félix Ingrand | h2. Robot setup |
5 | |||
6 | 18 | François Félix Ingrand | Below is a drawing of the Robot Setup. All the components with are available as sub-projects. |
7 | 3 | François Félix Ingrand | |
8 | 11 | François Félix Ingrand | The components are: |
9 | 14 | François Félix Ingrand | * "IMUDriver-genom3":https://redmine.laas.fr/projects/imudriver/gollum/README : complete and compiles, properly tested on the real IMU. |
10 | * "LaserDriver-genom3":https://redmine.laas.fr/projects/laserdriver/gollum/README : tested with an Hokuyo UTM-30LX at LAAS and on the real robot. |
||
11 | * "PotentialField-genom3":https://redmine.laas.fr/projects/potentialfield/gollum/README : complete and compiles, tested with the simulator and the real robot. |
||
12 | * "SafetyPilot-genom3":https://redmine.laas.fr/projects/safetypilot/gollum/README : complete and compiles, tested with the simulator and the real robot. |
||
13 | * "Teleop-genom3":https://redmine.laas.fr/projects/teleop/gollum/README : complete and compiles, tested on the real robot. |
||
14 | * "RobotDriver-genom3":https://redmine.laas.fr/projects/robotdriver/gollum/README : we do not have the source to fully implement this component. For now it is a proxy to get the /odom and /joy topics from the real robot controler (and copy them in the proper port), and provides the /summit_xl_control/cmd_vel topic to the real controller from the Safety Pilot Cmd port. This module only makes sense when using PocoLibs as it will "translate" topics from ROS to GenoM3 ports and vice versa. Otherwise, you may as well directly map to the ros topics. |
||
15 | * "GPSDriver-genom3":https://redmine.laas.fr/projects/gpsdriver/gollum/README : complete and compiles, tested with the simulator and on the real robot. |
||
16 | * "Localization-genom3":https://redmine.laas.fr/projects/localization-g3/gollum/README : this component is basically "pom-genom3":https://git.openrobots.org/projects/pom-genom3?jump=welcome . In simulation, it will grab the /odom Odometry topics from gazebo, translate it ina pose-estimator format used by pom-genom3 and then pom will produce the pose which can be used directly. On the real robot, we use pom which grab GPS position, Odometry speed and IMU speed/accel and merge them. |
||
17 | * "Navigation-genom3":https://redmine.laas.fr/projects/navigation/gollum/README : complete and compiles, tested with the simulator. |
||
18 | * "NRWLSensor-genom3":https://redmine.laas.fr/projects/rwlsensor/gollum/README : complete and compiles, tested with the simulator. |
||
19 | 1 | François Félix Ingrand | |
20 | 17 | François Félix Ingrand | The figure below show all the components as well as their ports (produced by the component they are attached to, and read by the component(s) with an arrow pointing to the port). For example the @pose@ port is produced by _Localization/POM_ and read by _Navigation_, _RWLSensor_ and _PotentialField_. |
21 | 15 | François Félix Ingrand | |
22 | 19 | François Félix Ingrand | |
23 | 23 | François Félix Ingrand | !{width:600px;border:20px solid white;}OSMOSIS.png! |
24 | 1 | François Félix Ingrand | |
25 | 19 | François Félix Ingrand | |
26 | 24 | François Félix Ingrand | Most components are using some IDL types defined in the "osmosis-idl":https://redmine.laas.fr/projects/osmosis-idl project. There are also types coming from the "openrobots-idl":https://git.openrobots.org/projects/openrobots-idl?jump=welcome project. |
27 | 1 | François Félix Ingrand | |
28 | 11 | François Félix Ingrand | h2. Simulation setup |
29 | 13 | François Félix Ingrand | |
30 | 24 | François Félix Ingrand | There is also a simulation setup which can be used (instructions on how to install it can be found "here":https://osmosis.gitlab.io/experiment/simulation.html ). It has less functional modules (as some of them are handled by the Gazebo simulator). All the ports shared with the simulator (IMU, LaserScan, Odometry, Cmd) are ROS topics and are properly defined in IDL as to correspond to their ROS counterpart. Still, Pom does a poor job when merging Odometry, GPS and IMU in simulation (probably because the Odometry is terrain truth, so using a Kalman does not make sense). So we just grab /odom for position. |
31 | 19 | François Félix Ingrand | |
32 | 1 | François Félix Ingrand | |
33 | 20 | François Félix Ingrand | !{width:600px;border:20px solid white;}simu.png! |
34 | 23 | François Félix Ingrand | |
35 | 20 | François Félix Ingrand | |
36 | 19 | François Félix Ingrand | h2. Scripts to run the whole demo |
37 | 24 | François Félix Ingrand | |
38 | The system in simulation or on the real robot can be run using "scripts":https://redmine.laas.fr/projects/scripts or an "OpenPRS Supervisor":https://redmine.laas.fr/projects/superv . |