vanttec / vanttec_usv

Software Repository for the VantTec Unmanned Surface Vehicle platforms.
MIT License
38 stars 7 forks source link

VantTec USV Main Repository

This is the main working repository for the USV (Unmanned Surface Vehicle) VantTec Platform.

Packages

How to start working?

Enter the following commands into your Ubuntu terminal:

# Clone repository and its submodules
cd
git clone --recurse-submodules http://github.com/vanttec/vanttec_usv.git

# Build docker container
cd ~/vanttec_usv
docker build -t vtec_rb25 .

# Run container
usv start 

NOTE: Add the scripts repository to the ${PATH} variable in ~/.bashrc

export PATH="$PATH":~/vanttec_usv/scripts

Requirements to build the workspace

# Go to repository root
cd {vanttec_usv path}

# Build usv_interfaces package
colcon build --packages-select usv_interfaces

# Set environment variables with install/setup.bash file
source install/setup.bash

# Create record about submodules in .git/config file in workspace root
git submodule init
git submodule update

# Change directory to usv_libs from usv_control package and create submodules
cd vanttec_usv/src/usv_control/libs/usv_libs
git submodule init
git submodule update

- Nvidia CUDA
- ZED SDK
- Gazebo Sim Garden
- TensorRT
  - https://docs.nvidia.com/deeplearning/tensorrt/quick-start-guide/index.html

- Other dependencies specified in errors while building

TODO: Modify and do documentation of: ROS2_XBEE_BRIDGE's changes. Also, add to repo as submodule

  1. Change config file to:
    • ['xbee0', '0013A20041CF8FE6', 'STATION_XBEE']
    • ['xbee1', '0013A20041CF8F96', 'BOAT_XBEE']

  1. Do launch files for

Network 1: (USV)

export ROS_DOMAIN_ID=50; ros2 launch ros2_xbee_bridge xbee_bridge.launch.py dev:=/dev/ttyUSB0 namespace:=xbee0

export ROS_DOMAIN_ID=50; ros2 topic pub /xbee1/msg1 std_msgs/msg/String "data: 'Hello from id 50 huhh'"

Network 2: (OGS)

export ROS_DOMAIN_ID=51; ros2 launch ros2_xbee_bridge xbee_bridge.launch.py dev:=/dev/ttyUSB1 namespace:=xbee1

export ROS_DOMAIN_ID=51; ros2 topic echo /intra_comms/xbee0/msg1 std_msgs/msg/String

NOTE: If found similar issue to "xmlrpc.client.Fault: <Fault 1: "<class 'RuntimeError'>:!rclpy.ok()">" while running topic echo: Just restart ros daemon

NOTE: Extra dependencies:

# To install dependencies automatically:
rosdep install --from-paths src -y --ignore-src

sudo apt-get install libpcap-dev libgeographic-dev ros-humble-perception-pcl ros-humble-pcl-msgs ros-humble-vision-opencv ros-humble-xacro ros-humble-tf-transformations

sudo add-apt-repository ppa:borglab/gtsam-release-4.1
sudo apt install libgtsam-dev libgtsam-unstable-dev

HOW TOs:

Run mission #2:

ros2 launch usv_control usv_control_sim_launch.py
ros2 launch usv_missions obstacle_launch.py
ros2 run usv_utils obstacle_viewer_node
ros2 run usv_control obstacle_avoidance_node
ros2 run usv_missions mission_handler_node 

#

Move the boat around:

ros2 launch usv_control usv_control_sim_launch.py
ros2 launch usv_control teleop_launch.py 

#