Code Monkey home page Code Monkey logo

poseidon's Introduction

Poseidon

Hydrographic surveying platform operating system

NOTE: Clone the repo in /opt for proper use. call the installation file located in install/ acording to the environement you have.

Google Cartographer installation

On ROS Noetic:

sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
mkdir catkin_ws
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src

according to : cartographer-project/cartographer_ros#1726 delete line 46 or the line containing<depend>libabsl-dev</depend>

sed -i '46d' filename
sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
sh src/cartographer/scripts/install_abseil.sh
catkin_make_isolated --install --use-ninja

Compile and run Poseidon on virtual machine

Instruction:

sudo apt install git
sudo chown $USER:$USER /opt
cd /opt
git clone --recursive <poseidon repo>

Run these scripts:

  • /opt/Poseidon/install/stages/1-base-ros-noetic.sh
  • /opt/Poseidon/install/stages/2-x64.sh
  • /opt/Poseidon/install/stages/3-network.sh
  • /opt/Poseidon/install/stages/4-x64.sh
  • /opt/Poseidon/install/stages/5-finalize.sh

Example :

sh /opt/Poseidon/install/stages/1-base-ros-noetic.sh

Source ros environement:

source /opt/ros/noetic/setup.bash

Optional, automatic sourcing ros environement:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc

Start new terminal or :

source ~/.bashrc

Changes to build poseidon on virtual machine:

cd /opt/Poseidon/src/workspace
catkin_make -j1 -DCATKIN_BLACKLIST_PACKAGES="mavros;mavros_extras;mavros_msgs;test_mavros;libmavconn;raspberrypi_vitals"

Source poseidon workspace:

source devel/setup.bash

Or

echo "source /opt/Poseidon/src/workspace/devel/setup.bash" >> ~/.bashrc

Start new terminal or :

source ~/.bashrc

Launch simulator:

roslaunch launch/Simulator/dummy_simulator_virtual-machine.launch

Start browser and navigate to localhost or 127.0.0.1

Unit test

See readme for tests :

  • sonar_nmea_0183_tcp_client
  • gnss_zed_f9p

Run tests

catkin_make run_tests -j1 -DCATKIN_BLACKLIST_PACKAGES="ins_piksi;libmavconn;echoboat_odometry;mavros_msgs;mavros;mavros_extras;test_mavros;gnss_mosaic_x5;imu_bno055;sonar_imagenex852;inertial_sense;raspberrypi_vitals;imu_null;sonar_dummy;gnss_dummy;lidar_filtering"

Replay Echoboat Rosbag

In poseidon workspace:

roslaunch launch/Echoboat/rosbag_replay.launch bag_filename:=rosbag.bag

Geo-reference Lidar

In poseidon workspace:

./devel/lib/logger/lidarGeoreferencer file > outputFile.txt

Activate filtering:

./devel/lib/logger/lidarGeoreferencer -f -a -135 -b -45 -d 1 -e 5 file > outputFile.txt

For help:

./devel/lib/logger/lidarGeoreferencer

Logging mode

  • Always ON : 1
  • Manual : 2
  • Speed based : 3

poseidon's People

Contributors

cbcidco avatar ddoiron-cidco avatar ddoiron79 avatar dependabot[bot] avatar glabmoris avatar hugoeeb avatar ludoviclaf avatar patcmorneau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

poseidon's Issues

[websocket] Add functions to manage goals

Add functions to:
-List all goals

  • create a goal (waypoint)
  • edit a goal (waypoint)
  • delete a goal

MUST USE A COMMAND DESIGN PATTERN FOR A PROPER GENERIC IMPLEMENTATION

gnss_dummy topic update

Est ce qu'il faudrais metre a jour le topic dans gnss_dummy pour qu'il soit compatible avec gpsd_client?

script d'initialisation

j'ai un petit bug.

lorsque le script d'installation de gpsd et chrony le pc redémarre en boucle dans la meme partie du script.

J'ai déplacer la partie qui télécharge WiringPi dans le script principale pour le retirer du script de redémarrage.

En attente de valider si le bug est corriger

[Hardware] DHT22

Mettre en commande un DHT22 pour permetre de mesurer la température et le niveau d'humidité dans l'hydro ball et l'hydro box

Deconnection sonar

si la communication du sonard est couper l'interface web est pas aviser et la donnée est rafraichie avec la meme valeur pour l'éternité

[Date] Gestion de l'horloge lors de coupure d'alimentation

Le raspberry n'Est pas équiper d'un RTC alimenter avec une pille de mémoire.

Je pense que ce pourais etre une bonne idée d'équiper le raspberry d'un rtc car losque l'alimentation est couper la date tombe au 28 janvier 2018 a 16h00

nous devons attendre que le gps aie un fix pour avoir la bonne date et la bonne heure

[state_controller] system value

   //CPU temps
   ifstream fcputemp;
       fcputemp.open ("/sys/class/thermal/thermal_zone0/temp");
       if (fcputemp.is_open()){
	     getline (fcputemp,cputemp);  
       fcputemp.close();}
   cputemp.erase (cputemp.begin()+2); 
   cputemp.insert(2,".");
   //cputemp = température en string xx.xx C 

   //CPU load
   ifstream fcpustat;
       fcpustat.open ("/proc/loadavg");
       if (fcpustat.is_open()){
	     getline (fcpustat,cpustat);  
       fcpustat.close();}
   ret = sscanf(cpustat.c_str(), "%lf",&loadavg);
   loadavg = loadavg / 8.0 * 100.0;
   //loadavg = charge cpu sur 100 tenant compte que le raspberry a 4 core et 2 thread par core.

[mutex] I2C et SPI

Valider l'intercommunication des mutex entre les diférent process de Ros

Pour éviter que le caratob control communique sur le i2c en meme temps qu'un IMU ou autre

[Hardware] Integrer gps Hemisphere

on ne peut ouvrir l'interface série car elle est ouverte par gpsd.

il faudrais arreter le service suivit de l'ouverture du port série pour transmetre la configuration pour relancer le service pgsd

[Catarob] communication I2C

J'ai envoyer un courriel au fabricant pour valider la structure de donnée a envoyer au controleur.

pour ce qui est de la réception des donnée tout est fonctionnel

[PCB] Ajouter les trou

Sur le board du PSU ajouter les trou pour le RPI et HAT pour qu'il soit visser directement sur le pcb d'alimentation

[ASV] control

donc pour débuter le rpi controlerais ce module par un port usb

https://www.sparkfun.com/products/9664

protocole de communication --> https://www.pololu.com/docs/0J40/5.e

on aurais une télécommande normal avec un recepteur normal. le canal 0 et 1 serais pour controler les deux moteur du bateau. le canal2 serais pour alimenter un relais qui couperais le signal provenant du raspberry et laisserais celui de la télécommande passer.
20200311_122310

Design power supply

On a besoin d'un PSU:

  • 24V
  • 5V

Voir wsi on batit ou source d'un fournisseur
Inclut toggle on/off avec reed switch

[BUG] websocket

reste acrocher lors de la fermeture de ros.

Le process est aretter par sigterm.

Ajouter une condition pour valider si ros est toujours en état de fonctionnement dans les boucles

Captive portal pour wifi

Utiliser une technologie de captive portal pour automatiquement forcer l'utilisateur à la bonne page/IP quand il connecte au wifi de l'appareil.

[RTKLIB] intégration dans linux

Voici la liste des projet compilable sous linux de manière native au projet de rtklib

pos2kml, str2str, rnx2rtkp, convbin et rtkrcv

Les autre module serais compilable pour windows. 

Je vais chercher a savoir si quelqu un aurais compiler rtkconv sous linux.

websocket

le websocket ne semble pas rejoignable par les ip externe du raspberry 192.168.0.183

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.