Skip to content

cernicarlo/bt_ace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BT ACE

Repository for automated mission of Girona 1000 with robotic arm to scan and collect data of an area, communicate through luma and interact with objects found.

Table of Contents

  1. What's Inside
  2. Installation
  3. Use Case
  4. Troubleshooting

What's inside

  • bt_cpp package
  • pcl_geometric_primitives_detector package

Installation

  • Once you install ROS Noetic, create a workspace (eg. ~/catkin_ws) following ROS instructions for ws creation (either catkin_make or catkin init)

PCL geometric primitives detecor

  • before starting, install PCL 1.14 manually. Here more info.
 wget https://github.com/PointCloudLibrary/pcl/archive/refs/tags/pcl-1.14.1.tar.gz
 tar -xzf pcl-1.14.1.tar.gz
 cd pcl-pcl-1.14.1
 mkdir build
 cd build
 cmake ..

 # the number (10 in this case) depends on how many jobs you want to use
 make -j10
 sudo make -j10 install
  • install groq (pip install groq)
  • install graphviz (pip install graphviz)
  • install open3d (pip install open3d)
  • install yaml (pip install pyyaml)
  • install tkinter (pip install tkinter)

IAUV Girona 1000 use case

  1. To ensure compatibility, clone the dependencies at the specified versions. Navigate to the src directory of your Catkin workspace and clone all the needed repositories:

    sudo apt-get install python3-vcstool
    cd ~/catkin_ws/src
    git clone https://github.com/cernicarlo/bt_ace.git
    vcs import < ~/catkin_ws/src/bt_ace/repos.vc
  2. Follow the instructions to install stonefish at ~/catkin_ws/src/stonefish/README.md (previously downloaded with vcs)

  3. Install dependencies

sudo apt install ros-noetic-interactive-markers
sudo apt install ros-noetic-ros-numpy
  1. Please take a look at the folder other_repo_modification to substitute the relative file in the other repo involved in this use case.

  2. Build your workspace:

cd ~/catkin_ws
catkin build
source devel/setup.bash

Use Case

WIP for girona1000 use case: the AUV goes to do the survey, it suddenly find an object it was not planned to find, it searches among its possibilities and it detects the bt that can make a turn around the object

T1

# launch simulation w/ Stonefish, RVIZ, service to plan the path and action service to follow the path
roslaunch bt_cpp scenario.launch

T2

# launch node to make available the planner services
roslaunch pcl_geometric_primitives_detector perception.launch

T3

# Launch the BT Manager
rosrun bt_cpp bt_manager

T4

# Mock script to cluster the pcl (to be deleted when pcl is fixed)
roslaunch pcl_geometric_primitives_detector mock_labeled_clustering.launch

(if debugging) T5

# to keep separate for debugging - to be included in perception.launch
rosrun pcl_geometric_primitives_detector pcl_geometric_primitives_detector

Mission flow

NB. here action is meant as a single BT

  • First part of mission: Survey
  1. the BT manager validates the mission file
  2. If the mission file is validated, the mission starts
  3. the BT manager populates the stack with the entries in mission file
  4. BT manager executes stack (FIFO) removing the bt executed from the stack
  5. once the stack is empty, the BT manager calls the clustering service commands the auv to go to the luma
  • Second part of mission: communication with luma and clustering
  1. once it's at the luma, the AUV communicates the clusters
  2. from the clusters, the BT manager gets the type of objects detected and where they are
  • Third part of mission: population and execution of actions for each object detected
  1. the BT manager ask what action it can execute on each object
  2. the BT manager orders these actions based on the priority (in this case, distance AUV-object, from the smaller distance to the biggest)
  3. based on priorities, the BT manager populate a new stack with the actions for each object detected
  4. the BT manager execute the stack with a FIFO logic and popping the action executed until the stack is empty

Troubleshooting

In case there are some problems, please bear in mind that the latest commit tested is in the branch stable. So, please:

cd ~/catkin_ws/src/bt_ace
git checkout stable
cd ~/catkin_ws
catkin build
source devel/setup.bash

and try again.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published