This software suite designed for to be used as a course material. It should not be taken as a basis for other projects as the software might change for the vehicle.
This package is designed for Python 3, ROS Jazzy, and Ubuntu 24.04 (Noble). Before proceeding with the packages, please follow the installations for ROS and python.
-
Create a workspace
mkdir -p ~/ros_ws/src -
Go to the Cybership Software Suite Repository Follow the installation instructions for Cybership Software Suite
-
Navigate to the workspace and clone the repository inside the workspace
cd ~/ros_ws/src git clone https://github.com/NTNU-MCS/TMR4243_LAB.git
-
Install ROS dependencies
cd ~/ros_ws rosdep install --from-paths src --ignore-src -r -y
-
After installation, install the required python packages. You should be inside a python virtual environment from the Cybership Software Suite setup.
find ~/ros_ws/src -name "requirements*txt" -exec pip install -r {} \;
-
If there is any problem with the instructions, create a github issue.
ros2 launch tmr4243_utilities utilities.simulation.launch.py-
topic:
/CSEI/control/etatype:
std_msgs/msg/Float32Multiarraydescription: Holds the navigation data for the vehicle. Position and orientation
$\eta = [x, y, \psi]^\top$ -
topic:
/CSEI/control/u_cmdtype:
std_msgs/msg/Float64MultiArraydescription: Control inputs for the actuators. It can be published by teleop node or your custom control node.
$u_{cmd} = [u_0, u_1, u_2, \alpha_1, \alpha_2]^\top$ -
$u_0 \in [-1, 1]$ , Controls the force of the tunnel thruster -
$u_1 \in [0, 1]$ , Controls the force of the port VSP thruster -
$u_2 \in [0, 1]$ , Controls the force of the starboard VSP thruster -
$\alpha_1 \in [-\pi, \pi]$ , Controls the force direction for port VSP thruster -
$\alpha_2 \in [-\pi, \pi]$ , Controls the force direction for starboard VSP thruster
-
-
topic:
/CSEI/control/tautype:
std_msgs/msg/Float64MultiArraydescription: body fixed force. It is published by the simulator.
$\tau = [F_x, F_y, M_z]^\top$ -
topic:
/joytype:
sensor_msgs/msg/Joydescription: Joystick inputs
tmr4243_interfaces/msg/observer.msgfloat64[] eta float64[] nu float64[] biastmr4243_interfaces/msg/reference.msgfloat64[] eta_d float64[] eta_ds float64[] eta_ds2 float64 w float64 v_s float64 v_sstmr4243_interfaces/msg/s.msgfloat64 s float64 s_dot
-
$\eta \rightarrow$ State variable -
$u \rightarrow$ Control command -
$\tau \rightarrow$ Body fixed force

