ft24_control/README.md

2.1 KiB

(At least) teach the robot to drive remotely

Start Script

The whole system (modules for robot control, remote control, lidar drivers and ROS interface, as well as SLAM & navigation) can be launched by executing start.bash, which is located at the root of the project directory.

start.bash creates a tmux session with a separate window for each module, plus an additional window running htop for monitoring performance. In each window, the appropriate launch file for the respective module is executed.

The benefits of this modular setup lie in separation of the outputs of the different modules, enabling easier troubleshooting. Additionally, this allows terminating or restarting modules independently. For example, if the controller loses connection, this would be evident in the remote control window and the responsible module could be restarted without bringing the entire system down.

Robot Control

The robot control is implemented in the dcaiti_control package and can be launched with
ros2 launch dcaiti_control launch_robot.py.
This launch file brings up the ros2_control-based nodes that serve as the interface between the physical robot and the ROS2 software stack.

Remote Control

The launch file ros2 launch src/dcaitirobot/launch/remote_control_launch.py launches the nodes required to interface the PS3 controller and publish its commands as Twist messages in ROS.

Lidar

ros2 launch velodyne velodyne-all-nodes-VLP16-launch.py is provided by the velodyne package and brings up the velodyne driver as well as nodes required to publish ROS2 messages of type PointCloud2 and LaserScan.

Note
In order to bring the lidar to the same subnet as the Jetson within the provided router, we modified the lidar's IP from 192.168.4.200 to 192.168.1.200.

SLAM and Nav2

ros2 launch src/dcaiti_navigation/launch/start_nav2.py will start slam_toolbox (plus several nodes/transforms required for slam_toolbox to work with our lidar output), multiple Nav2 packages as well explore_lite which provides autonomous exploration support for Nav2.