Legacy ROS Workspace Install
This guide details the process of setting up the onboard computer for the HausBots Robot Crawler. The setup ensures that the robot is ready to communicate with the Android control application upon boot.
Prerequisites
Section titled “Prerequisites”- Onboard Computer: Single Board Computer (SBC) such as Raspberry Pi or similar.
- Operating System: Ubuntu 20.04 LTS (Focal Fossa).
- ROS Distribution: ROS Noetic Ninjemys.
- Network Hardware: Ethernet interface (configured for static IP
10.0.0.x). - ROS Master URI:
http://127.0.0.1:11311(onboard local).
Quick Start (Automated Installation)
Section titled “Quick Start (Automated Installation)”The project includes an install.sh script that automates the deployment of ROS, workspace dependencies, and systemd services.
1. Transfer Setup Files
Section titled “1. Transfer Setup Files”Copy the setup/ros_setup directory to the robot computer.
2. Execute Installation
Section titled “2. Execute Installation”Run the following commands as root (sudo):
cd setup/ros_setupsudo chmod +x install.shsudo ./install.shWhat the Script Does
Section titled “What the Script Does”The install.sh script performs the following critical tasks:
System Dependencies
Section titled “System Dependencies”- Installs
curl,gnupg2,lsb-release, andnet-tools. - Adds the official ROS Noetic repository to the system sources.
- Installs
ros-noetic-ros-baseandros-noetic-rosbridge-server.
Workspace Initialization
Section titled “Workspace Initialization”- Deploys the
ros_wsto the user’s home directory. - Cleans any existing build artifacts to ensure architecture compatibility.
- Builds the Catkin workspace using
catkin_make.
Helper Scripts Deployment
Section titled “Helper Scripts Deployment”- Deploys launch scripts to
/opt/ros_helpers/.
Systemd Integration
Section titled “Systemd Integration”The script enables and starts three primary services to ensure the robot is “always on”:
graph TD
roscore[roscore.service] --> rosbridge[rosbridge.service]
rosbridge --> robot_launch[robot_launch.service]
subgraph "Onboard SBC Services"
roscore
rosbridge
robot_launch
end
- roscore.service: Manages the ROS Master.
- rosbridge.service: Launches the WebSocket server for mobile app communication.
- robot_launch.service: Executes the main crawler control logic (
robot_launch.launch).
For the network plan, the robot-agent install, and the camera and health services, see Robot Setup Overview. This page keeps only the workspace-level install that development robots run.
Manual Verification
Section titled “Manual Verification”After installation, verify that the services are active:
systemctl status roscore.servicesystemctl status rosbridge.servicesystemctl status robot_launch.service