diff --git a/docs/raph-rover/documentation/_user-manual.mdx b/docs/raph-rover/documentation/_user-manual.mdx deleted file mode 100644 index c5d46225..00000000 --- a/docs/raph-rover/documentation/_user-manual.mdx +++ /dev/null @@ -1,509 +0,0 @@ ---- -title: Raph Rover User Manual | Operation and Maintenance -sidebar_label: User manual -sidebar_position: 2 -keywords: - - raph - - rover - - mobile - - robot - - user - - manual -description: >- - User manual for Raph Rover -image: /img/robots/raph/raph-rover.webp -toc_max_heading_level: 4 ---- - -# Raph Rover User Manual - -import styles from './styles.module.css'; -import useBaseUrl from '@docusaurus/useBaseUrl'; -import ThemedImageZoom from '@site/src/components/ThemedImageZoom'; -import CenterContent from '@site/src/components/CenterContent'; - - - -TODO: - -- Split this file into more smaller ones - User Manual and Developer Guides -- Review data, text, shorten, make it sound less like GPT wrote it -- Remove stuff thats copied from specification -- Remove all circlejerk text - - - -### What's included - - - -| Item | Count | -| -------------------------- | :---: | -| Raph Rover | 1 | -| Raph Rover battery pack | 2 | -| Raph Rover battery charger | 1 | -| Li-Ion charger 6S 4A | 1 | -| Tools | 1 | - - - -### Seals - - - Both to keep the rover looking cleaner, and to provide extra weather and dust - resistance a system of seals around the rover can be used. - - -To ensure weather-tightness while accommodating additional payloads, the Raph -Rover is equipped with specialized cable seals. To insert additional cables, it -is necessary to dismantle the entire panel by loosening two thumb screws. Once -the panel is disassembled, individual seals can be removed from the frame, -allowing for the insertion of new cables. - -Raph Rover comes with different seals, labeled as QT [Z]/[X] or QT [X], where Z -indicates the number of holes in the seal and X indicates the diameter of the -cable in millimeters. - - - -### Block diagram - -### Drivetrain - - - {' '} - An image is worth a 1000 words - remove text, replace with image showing the - movement - - -- turning in place ( around middle point between frontal wheels) -- turning around specific frontal wheel -- turning around a curve - - - -| Parameter | Value | -| ----------------------------- | :---------: | -| Track Width | 385 mm | -| Wheelbase length | 379 mm | -| Ground clearance | 105 mm | -| Climb grade (no payload) | 30° ( ~58%) | -| Climb grade with 5kg payload | 20° ( ~36%) | -| Climb grade with 10kg payload | 10° ( ~18%) | -| Hill grade traversal | 30° ( ~58%) | -| Nominal torque | 4 Nm | -| Maximum torque | 8 Nm | - - - -The standard configuration of the Raph Rover features a drivetrain comprising -two fixed wheels at the front and two rotary wheels at the rear. This design -enhances the mobility of the Rover, enabling it to execute precise maneuvers -such as: - -- turning in place ( around middle point between frontal wheels) -- turning around specific frontal wheel -- turning around a curve - -This versatile drivetrain configuration optimizes the Rover's navigational -capabilities, ensuring adaptability in various operational scenarios. - -#### Traction parameters - - - -| Parameter | Value | -| ----------------------------- | :---------: | -| Track Width | 385 mm | -| Wheelbase length | 379 mm | -| Ground clearance | 105 mm | -| Climb grade (no payload) | 30° ( ~58%) | -| Climb grade with 5kg payload | 20° ( ~36%) | -| Climb grade with 10kg payload | 10° ( ~18%) | -| Hill grade traversal | 30° ( ~58%) | -| Nominal torque | 4 Nm | -| Maximum torque | 8 Nm | - - - -#### Motors - - - {' '} - Do ve really want to tell people that we are using chinese motors? Just say - that they are high quality, direct drive, brushless motors with integrated - encoder and stop there. - - -The Raph Rover is equipped with 6 DirectDriveTech M0601C-111 direct-drive BLDC -motors, serving both the drive and turn functions. These motors enable the rover -to attain a speed of approximately 1.8 m/s when equipped with standard diameter -tires. Each motor is outfitted with an integrated incremental encoder with a -resolution of 12 bits. - -To mitigate potential operational challenges, a mechanical bumper restricts the -turn angle of each steering wheel to 180°. This bumper not only acts as a limit -for wheel rotation but also serves to establish the wheel's position when the -rover is restarted, ensuring consistent and reliable performance. - -#### Wheels - -As standard, Raph Rover comes with rubber tires with a diameter of about 170 mm. -Whole drive assembly has following characteristics: - - - -| Parameter | Value | -| -------------------------------- | :----------------: | -| Tire size (diameter x thickness) | ~ 170 mm x ~ 80 mm | -| Tire lock type | Beadlock | -| Tire insert | Hard foam | -| Wheel rim diameter | 120 mm | - - - -### Battery & charging - - - Copy what Getting Started says about batteries here - - -Raph Rover boasts an advanced battery management system, a feature enabling the -simultaneous utilization of two battery packs. This innovative system empowers -the rover to seamlessly operate for approximately four continuous hours under -decent conditions (e.g. relatively flat terrain). The dual-battery configuration -enhances the overall endurance and sustained performance of the rover. - -A notable feature of the design is the ability to detach the battery packs -without requiring a power-off cycle. By connecting the charger to the rear slot -of the Rover, users can safely remove both batteries. This functionality -streamlines the process of swift and efficient battery replacements, resulting -in minimal downtime during operations. The seamless swapping of battery packs -not only extends the operational range of the rover but also mitigates the -necessity for frequent service stops, thereby elevating the overall efficiency -and productivity of the robotic platform. - -Each battery pack has following characteristics: - - - -| Parameter | Value | -| -------------------- | :--------------------------------------: | -| Voltage | 22.2 V (nominal) | -| Battery type | Li-Ion | -| Capacity | 4 Ah (96 Wh - flight safe) | -| Battery pack type | 6S1P | -| Maximum output power | ~650 W | -| Safety systems | Overcurrent, Reverse polarity protection | - - - -#### Battery charging - - - {' '} - Battery and charging -> battery charging - do we really need a whole section - about this? - - -By default Raph Rover comes with 2A 25,2V Li-Ion charger. It can charge 1 -battery pack in about 2,5 hours. - -Raph Rover has 2 options for charging batteries: - -- Outside the Rover, by plugging battery into charger -- Inside the Rover, by plugging charger directly into rear charging slot of the - Rover - -The charger is outfitted with an LED status indicator designed to provideS -information about the charging status of the battery. A green LED signifies that -the battery has reached full charge, while a red LED indicates that the battery -is currently in the charging process. - -:::note - -When charging the batteries with the Rover powered on, the LED indicator will -not transition to green during the charging cycle. This is due to the fact that -the charger will be used to sustain the operational state of the rover after the -charging process. - -::: - -## Software specification - - - Software specification - this section should be called "Software overview" and - have its content reviewed. - - -### Overview - -Raph Rover's software heavily relies on The -[Robot Operating System (ROS)](https://ros.org/) which offers the robot the -following functionalities: - -- Abstraction layer facilitating communication between software components. -- Open-source software components, maintained by the community. -- A collection of standard message interfaces. -- Tools for introspection. - -The primary segment of the software stack is partitioned into several -[ROS Nodes](https://wiki.ros.org/Nodes), treated as computational units, each -doing one logical thing. The nodes interact via: - -- **Topics** - Named buses enabling message exchange between nodes. They are - strongly typed and employ anonymous publish/subscribe semantics. -- **Services** - A client/server mechanism for remote procedure calls between - nodes. The service server accepts remote procedure requests identified by name - and type, which must be known to the service client beforehand. -- **Parameters** - Sets of key/value pairs maintained separately by each node, - utilized for node configuration during startup and runtime without - necessitating code modifications. -- **TF transforms** - A single transform describes the relationship between 2 - coordinate frames at a specific point in time. TF transforms are distributed - between nodes using topics, but, for the sake of clarity, we will refer to - them as separate entities. - -There are two important software components which don't run as native ROS nodes: - -- **Controller firmware** - The firmware itself acts as a ROS node but uses - eProsima's - [Micro XRCE-DDS](https://micro-xrce-dds.docs.eprosima.com/en/latest/) as its - middleware. Thus, it requires the presence of the Micro-ROS Agent on the - built-in computer to communicate with other ROS nodes. -- **Web User Interface** - The WebUI establishes a connection with the Rosbridge - Server via WebSocket transport layer and employs the rosbridge protocol for - communication with the ROS nodes. - - - -### ROS nodes - - - Table to be formatted as all the other tables in the documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ROS NodeDescription
Controller Node - The node spawned by the Controller firmware. Provides access to functionalities - via topics and services for the management of the drivetrain, LED panels, Power - System and many more. Additionally, it publishes relevant information, - including: - - - State of the dynamic joints controlled by RaphCore. - - Data retrieved from the onboard IMU sensor. - - Power system status, comprising: - - Battery voltages. - - Connection status of batteries or the charger to the robot. - - Current output power. - - Computed odometry. - - Diagnostic information for various system components. -
Robot State Publisher - Parses the kinematic tree model of the robot in URDF format and broadcasts the - robot state using TF transforms. Here's how it operates: - - - Fixed joints, like sensor positions, are published as static transforms. - - Movable joints, such as wheel states, are published as dynamic transforms, - based on the current joint states published by the Controller Node. - - It also publishes the robot URDF description on a designated topic, making it - easily accessible to other nodes. -
Camera Driver - Publishes the data provided by the stereoscopic camera. In the default - configuration used in Raph Rover, it includes: - - - Images captured by the left, right and RGB (center) camera image sensors. - - Calibration parameters for each image sensor. - - Data from the camera's IMU sensor. - - Depth images computed from the left and right sensors. -
Depth Processing Node - Publishes point cloud data computed from depth images and camera calibration - parameters. - - Employs “lazy subscription”, meaning it refrains from processing any depth - images until at least one node subscribes to the Point Cloud topic. -
LIDAR Driver - Publishes data from the LIDAR sensor. - - Additionally, it provides services for starting and stopping the sensor's motor. -
- - - -Different robot applications will require running different sets of additional -nodes on top of the core ones. For example, consider a situation where we want -to autonomously drive to predefined coordinates in an unknown terrain. Typical -solution can be simplified to 2 nodes: - -- SLAM (Simultaneous localization and mapping) node - generates a 2D terrain map - and localizes the robot within it. -- Autonomous Navigation node - Retrieves navigation goals and outputs drive - commands for the controller. Uses 2D terrain map to plan an optimized path and - data from LiDAR and stereo camera to detect dynamic obstacles. - - - -These nodes can be configured to start alongside the core ones, extending the -robot with autonomous navigation capabilities. - -### Firmware - - - {' '} - Actually finish the section {' '} - - - -{/* TODO */} - -_Work in progress_ - -#### LED controller - - - Review - shorten stuff, make sure that all led states are described and - ACTUALLY USED by the rover. Decide if we should add priority levels to the - states - if so, add a table with priorities. - - -The built-in LED controller manages the LED states of the robot by processing -user-defined states and animations, integrating them with ongoing animations, -and updating the LEDs accordingly. - -Users can control the LED strip by specifying colors, duration, and priority of -specific LEDs. This allows for in-depth control, enabling users to determine -which LED states are the most important. Critical states, such as errors, are -displayed over less important uses, like illuminating the surroundings. - -The robot features four LED panels that combine to form one long LED strip. LEDs -can be controlled either as a full strip or as specific panels, providing -flexibility for different use cases: - -- **Full Strip Control**: Ideal for animations that span the entire perimeter of - the robot, such as police lights. -- **Panel-Specific Control**: Useful for targeted functions, such as using all - front LEDs as a flashlight or using side LEDs to indicate battery levels. - -#### Robot status Indicators descriptions - -##### Normal states - - - -| LED | LED description | State description | -| :-------------------------------------------------------: | :----------------------------: | :----------------------------------------------------------: | -| | White, flashing | Robot booting up\* | -| | White, breathing | Idle, rover on, motors relaxed\* | -| | White, constant | Rover on, motors relaxed\* | -| | Blue, breathing | Turning wheels not calibrated\* | -| | Blue, constant | Turning wheels calibration | -| | Yellow, constant | Maintenance mode | -| | Green, constant - side panels | Battery charge indicator | -| | Green, breathing - side panels | Battery charging indicator, turns solid when fully charged\* | - - - - \* - not implemented currently - - \* - Use images to show battery charge indicator - -##### Fault states - - - -| LED | LED description | State description | -| :-----------------------------------------------------: | :-----------------: | :------------------------: | -| | Red, flashing | Rover error detected\* | -| | Red, 3 fast flashes | Multiple errors detected\* | - - - - \* - not implemented currently - -### Web User Interface - - - Mention that cameras connected to the rover can easily be viewed in the UI. - - -### Network - -_Work in progress_ - -{/* TODO */} diff --git a/docs/raph-rover/documentation/getting-started.mdx b/docs/raph-rover/documentation/getting-started.mdx index 091e95b0..21f208f7 100644 --- a/docs/raph-rover/documentation/getting-started.mdx +++ b/docs/raph-rover/documentation/getting-started.mdx @@ -17,6 +17,7 @@ import ThemedImageZoom from '@site/src/components/ThemedImageZoom'; import FlexTable from '@site/src/components/FlexTable'; import FlexTableItem from '@site/src/components/FlexTableItem'; import CenterContent from '@site/src/components/CenterContent'; +import LinkButton from '@site/src/components/LinkButton'; import Support from '@site/docs/raph-rover/partial/_support.mdx'; @@ -260,79 +261,14 @@ driving, preview stream from on-board camera. To access it, open your web browser and navigate to [10.10.0.2](http://10.10.0.2). -From here, you can control the rover, access the camera feed, and configure -various settings. You can control the rover using the on-screen joystick. +From here, you can control the rover using keyboard and on-screen joystick, +access the camera feed, and configure various settings. -:::tip - -You can use gamepads, including Xbox and PlayStation controllers, with the Web -UI. First, plug the controller into your device. The UI will confirm the -connection with a "Gamepad connected" notification. You can then immediately -start controlling the robot with the gamepad. - -::: - -_More inforation coming soon_ - -{/* TODO: ADD UI Pictures */} - -## Maintenance - -### Charging batteries - -Raph Rover comes with a 4A 25,2V Li-Ion charger. It can charge 1 battery pack in -about 1.5 hour via the dedicated charging slot. - - - -The charger (not the dock) is outfitted with an LED status indicator designed to -provide information about the charging status of the battery. A green LED -signifies that the battery has reached full charge, while a red LED indicates -that the battery is currently in the charging process. - -As an alternative, the batteries can be charged via the rover, by leaving them -inside the battery ports and connecting the charger to the rover's power input -located at the back. - - - -This way it's possible to charge both batteries at the same time, however the -charging current will be split between them, resulting in a longer charging time -of around 2.5 h. The Rover does not need to be powered off for this process. +:::info -:::note +To find out more about using the Web UI, visit the documentation page below: -When working on the rover while charging the batteries the LED indicator of -power adapter will not transition to green when charging is complete. Power draw -of the rover will keep the charger in active (red) state. To check battery -level, press the power button once. Fully illuminated LED side panels will -indicate fully charged batteries. + ::: @@ -341,9 +277,7 @@ indicate fully charged batteries. After initial testing, you can explore what else Raph Rover has to offer. Start developing your own robotic application with help of our tutorials: -_Coming soon_ - -{/* TODO: Add link to guides */} + ### Support diff --git a/docs/raph-rover/documentation/ros-api.mdx b/docs/raph-rover/documentation/ros-api.mdx index b367a769..14da538d 100644 --- a/docs/raph-rover/documentation/ros-api.mdx +++ b/docs/raph-rover/documentation/ros-api.mdx @@ -24,16 +24,6 @@ image: /img/robots/raph/raph-rover.webp Steers the robot when operating in the Ackermann steering mode. -- `controller/cmd_turn_in_place` (?) **Not implemented yet** - - Steers the robot when operating in the Turn-In-Place steering mode. - -- `controller/cmd_vel` ([geometry_msgs/msg/Twist]) **Not implemented yet** - - Steers the robot using `Twist` commands. More standardized way to control the - robot. \ - Useful for some navigation stacks. Not recommended for manual teleoperation. - - `controller/led_strip_state` ([raph_interfaces/msg/LedStripState]) Sets a new user state for all the LEDs in the LED strip. @@ -44,7 +34,7 @@ image: /img/robots/raph/raph-rover.webp ## Published Topics -- `controller/imu` ([sensor_msgs/msg/Imu]) +- `controller/imu/data_raw` ([sensor_msgs/msg/Imu]) Current gyroscope and accelerometer readings from the onboard IMU. @@ -52,13 +42,6 @@ image: /img/robots/raph/raph-rover.webp Odometry calculated from wheel encoders and the onboard IMU. -- `controller/steering_mode` ([raph_interfaces/msg/SteeringMode]) **Not - implemented yet** - - Current steering mode. Published whenever the mode changes. \ - Uses transient local durability to deliver last message to joining - subscriptions. - - `controller/diagnostics/imu` ([raph_interfaces/msg/ImuDiagnostics]) Diagnostic information about the IMU module. \ @@ -73,6 +56,10 @@ image: /img/robots/raph/raph-rover.webp Current information about the power system. +- `imu/data` ([sensor_msgs/msg/Imu]) + + Filtered IMU readings including orientation. + - `oak/imu/data` ([sensor_msgs/msg/Imu]) Current gyroscope and accelerometer readings from the Oak-D IMU. @@ -118,7 +105,7 @@ image: /img/robots/raph/raph-rover.webp Raw laser scans from the onboard 2D LIDAR. -- `rplidar/scan_filtered` ([sensor_msgs/msg/LaserScan]) **Not implemented yet** +- `rplidar/scan_filtered` ([sensor_msgs/msg/LaserScan]) Laser scans from the onboard 2D LIDAR with points lying on the robot's footprint filtered out. diff --git a/docs/raph-rover/documentation/specification.mdx b/docs/raph-rover/documentation/specification.mdx index 4dc991e6..70b98d4a 100644 --- a/docs/raph-rover/documentation/specification.mdx +++ b/docs/raph-rover/documentation/specification.mdx @@ -16,7 +16,6 @@ image: /img/robots/raph/raph-rover.webp toc_max_heading_level: 4 --- -import styles from './styles.module.css'; import useBaseUrl from '@docusaurus/useBaseUrl'; import ThemedImageZoom from '@site/src/components/ThemedImageZoom'; import CenterContent from '@site/src/components/CenterContent'; @@ -211,6 +210,22 @@ as: +#### Wheels + +As standard, Raph Rover comes with rubber tires with a diameter of about 170 mm. +Whole drive assembly has following characteristics: + + + +| Parameter | Value | +| ---------------------------- | :----------------: | +| Tire size (diameter x width) | ~ 170 mm x ~ 80 mm | +| Tire lock type | Beadlock | +| Tire insert | Hard foam | +| Wheel rim diameter | 120 mm | + + + ### Components diff --git a/docs/raph-rover/documentation/styles.module.css b/docs/raph-rover/documentation/styles.module.css deleted file mode 100644 index cd83629b..00000000 --- a/docs/raph-rover/documentation/styles.module.css +++ /dev/null @@ -1,129 +0,0 @@ -.circle { - height: 50px; - width: 50px; - border-radius: 50%; - display: block; -} - -[data-theme='light'] .LEDcell { - background-color: var(--ifm-color-gray-200); -} - -#flashWhite { - animation: whiteAnimation 1.5s steps(1, end) infinite; -} - -#breathWhite { - animation: whiteAnimation 3s linear infinite; -} - -#white { - background: white; -} - -#flashBlue { - animation: blueAnimation 1.5s steps(1, end) infinite; -} - -#breathBlue { - animation: blueAnimation 3s linear infinite; -} - -#breathGreen { - animation: greenAnimation 3s linear infinite; -} - -#blue { - background: blue; -} - -#yellow { - background: yellow; -} - -#green { - background: limegreen; -} - -#flashRed { - animation: redAnimation 1.5s steps(1, end) infinite; -} - -#flashRed3 { - animation: red3flashAnimation 2s steps(1, start) infinite; -} - -@keyframes whiteAnimation { - 0% { - background: white; - } - 50% { - background: none; - } - 100% { - background: white; - } -} - -@keyframes blueAnimation { - 0% { - background: blue; - } - 50% { - background: none; - } - 100% { - background: blue; - } -} - -@keyframes greenAnimation { - 0% { - background: limegreen; - } - 50% { - background: none; - } - 100% { - background: limegreen; - } -} - -@keyframes redAnimation { - 0% { - background: red; - } - 50% { - background: none; - } - 100% { - background: red; - } -} - -@keyframes red3flashAnimation { - 0% { - background: none; - } - 10% { - background: red; - } - 20% { - background: none; - } - 40% { - background: red; - } - 50% { - background: none; - } - 60% { - background: red; - } - 70% { - background: none; - } - 100% { - background: none; - } -} diff --git a/docs/raph-rover/documentation/user-manual/_category_.json b/docs/raph-rover/documentation/user-manual/_category_.json new file mode 100644 index 00000000..0edd143b --- /dev/null +++ b/docs/raph-rover/documentation/user-manual/_category_.json @@ -0,0 +1,10 @@ +{ + "label": "User Manual", + "position": 2, + "collapsible": true, + "collapsed": false, + "link": { + "type": "doc", + "id": "user-manual" + } +} diff --git a/docs/raph-rover/documentation/user-manual/control-and-basic-operations.mdx b/docs/raph-rover/documentation/user-manual/control-and-basic-operations.mdx new file mode 100644 index 00000000..8220b9a4 --- /dev/null +++ b/docs/raph-rover/documentation/user-manual/control-and-basic-operations.mdx @@ -0,0 +1,150 @@ +--- +title: Control & Basic Operations +sidebar_label: Control & Basic Operations +sidebar_position: 2 +keywords: + - raph + - rover + - mobile + - robot + - control + - teleoperation +description: >- + Documentation on how to control and operate Raph Rover, including + teleoperation methods and basic functionalities. +image: /img/robots/raph/raph-rover.webp +toc_max_heading_level: 4 +--- + +import styles from './styles.module.css'; +import LinkButton from '@site/src/components/LinkButton'; +import ThemedImageZoom from '@site/src/components/ThemedImageZoom'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import CenterContent from '@site/src/components/CenterContent'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Control & Basic Operations + +## Connectivity & network configuration + +Raph Rover comes with a built-in router that provides a Wi-Fi access point and +can be configured to suit the user's needs. The router supports both 2.4 GHz and +5 GHz frequency bands, allowing for flexible connectivity options. Users can +connect their devices to the rover's Wi-Fi network to access the Web User +Interface and rover's onboard computer. + +To learn how to connect to the Raph Rover's Access Point, follow guide below: + + + +The table below describes rover's network configuration: + +| Device | IP Address or hostname | Description | +| ------------ | :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Router | `10.0.0.1` | The built-in router providing Wi-Fi access point. | +| UPBoard 7000 | `10.0.0.2` or `raph.local` | The built-in computer running ROS and other software components. Uses mDNS for hostname resolution. | +| RaphCore | `raphcore.local` | The microcontroller managing low-level hardware functions. Its IP address is not consistent across the rovers but can be accessed via mDNS under the name `raphcore.local`. | + +You can learn how to connect the Raph Rover to an existing Wi-Fi network or +configure network settings in the guides below: + + + + +## Understanding LED panel signals + +Raph Rover indicates its current state using LED panels. Understanding these +signals can help users diagnose issues and monitor the rover's status. + +### Normal states + + + +| LED | LED description | State action | State description | Priority | +| :---------------------------------------------------------------: | -------------------------------------------------------------- | ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------: | +| | Green, constant - side panels | Battery state | Indicates current battery level. Can be activated by pressing the **POWER** button when the charger is disconnected. Each side panel corresponds to a battery on the robot. | 106 | +| | Color corresponding to battery charge, breathing - side panels | Battery charging | Indicates charging and shows current battery charge. When fully charged, the side panel light up green and stops breathing. Charging animation can be disabled by pressing **POWER** button when charging. | 51 | +| | Color corresponding to battery charge - side panels | Battery connected | Indicates that a battery was connected successfully. | 108 | +| | Red, fading out - side panels | Battery disconnected | Indicates that a battery was disconnected or is fully depleted. | 108 | +| | Blue segment going back and forth - side panels | Micro-ROS connection animation | Indicates that the robot is waiting for Micro-ROS connection. | 60 | +| | White, constant | Rover fully on | Shows that RaphCore is connected to onboard computer. When motors are relaxed a light blue segment will go around the whole LED strip. | 1 | +| | Yellow, constant | Maintenance mode | Indicates that maintenance mode is active. | 90 | +| | Blue, constant | Servo calibration | Indicates that servo calibration is in progress. | 90 | + + + +### Fault states + + + +| LED | LED description | State description | Priority | +| :---------------------------------------------------------------: | :------------------------: | :-----------------------: | :------: | +| | Red, flashing - rear panel | Servo calibration failure | 102 | +| | Red, flashing and fading | Motor communication error | 104 | +| | Red, flashing | Motor fault | 104 | + + + +Fault states also indicate which motor has failed by illuminating the segment of +the LED strip that corresponds to the position of the faulty motor, with side +panels indicating wheel motors, and rear panel indicating servos. + +## Controlling the Rover + +Raph Rover can be controlled in multiple ways, depending on the needs and +preferences. The available control methods are: + +- **Web User Interface** - From the Web UI Raph Rover can be controlled using a + gamepad, keyboard or virtual joystick. +- **ROS topics** - Users can publish commands to the appropriate ROS topics to + control the rover's movement programmatically. To see available topics refer + to the [ROS API documentation](./../ros-api.mdx). +- **Joystick teleoperation** - By using the `joy_teleop` node from + [raph_teleop](https://github.com/RaphRover/raph_common/tree/jazzy/raph_teleop) + ROS package, users can control the rover using a gamepad such as an Xbox or + PlayStation controller. + +Raph Rover supports multiple steering modes: + +- **Ackermann steering** - Suitable for smooth navigation in open areas. +- **Turn in place** - Ideal for tight spaces and precise maneuvers. + + + + + + + + + + +Steering modes can be switched via the Web UI or by calling the +`controller/set_steering_mode` [ROS service](./../ros-api.mdx#services). diff --git a/docs/raph-rover/documentation/user-manual/maintenance-and-troubleshooting.mdx b/docs/raph-rover/documentation/user-manual/maintenance-and-troubleshooting.mdx new file mode 100644 index 00000000..323d0307 --- /dev/null +++ b/docs/raph-rover/documentation/user-manual/maintenance-and-troubleshooting.mdx @@ -0,0 +1,262 @@ +--- +title: Maintenance & Troubleshooting +sidebar_label: Maintenance & Troubleshooting +sidebar_position: 4 +keywords: + - raph + - rover + - mobile + - robot + - maintenance + - troubleshooting +description: >- + Documentation on maintenance procedures and troubleshooting tips for Raph + Rover. +image: /img/robots/raph/raph-rover.webp +toc_max_heading_level: 4 +--- + +import ThemedImageZoom from '@site/src/components/ThemedImageZoom'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import FlexTable from '@site/src/components/FlexTable'; +import FlexTableItem from '@site/src/components/FlexTableItem'; + +# Maintenance & Troubleshooting + +{/* In case of any issues with the Raph Rover, please refer to the **FAQ** and **Known Issues** pages on our docs. If issue isn't listed on these pages please [reach to us](#community--resources) for support. */} + +{/* TODO: Link to FAQ */} + +{/* TODO: Link to Known Issues */} + +## Power & Battery management + +### Power On and Shutdown procedures + +- **Power On**: Press and hold the **POWER** + button until the rear LED panel fill with green color. The system will proceed + through its startup sequence. +- **Shutdown**: Press and hold the **POWER** + button until the rear LED panel fill with red color. + +:::tip + +Power button is located on the **Left battery drawer** of the robot. + +::: + +### Battery Hot-Swap + +The dual-battery architecture of the Raph Rover facilitates hot-swapping, +enabling battery exchange without powering down the system. + +Before initiating a hot-swap, confirm the following conditions: + +- The Rover is stationary on a level surface. +- The battery not being replaced contains a sufficient charge level. + +:::tip + +A hot-swap can be performed without second battery while a charger is connected. +To prevent overloading the charger, ensure the motors are disabled beforehand. + +::: + +To execute the hot-swap procedure: + +1. Remove the depleted battery from its drawer. +2. Inspect the battery drawer for any debris and clear if necessary. +3. Insert a fully charged battery into the empty drawer. + +:::info + +The side LED panel provides status notifications for battery removal and +insertion. + +- **Removal:** Indicated by a red flash. +- **Insertion:** Indicated by the LEDs illuminating to the current charge + percentage of the new battery. + +::: + + + + + + + + + + +:::warning + +A battery must seat fully within the drawer. Insertion should require minimal +force, culminating in a tactile click. If resistance is encountered, abort the +insertion immediately and inspect the drawer for obstructions. + +::: + +### Battery Charging + +Raph Rover comes with a 4A 25,2V Li-Ion charger. It can charge 1 battery pack in +about 1.5 hour via the dedicated charging slot. + + + +The charger (not the dock) is outfitted with an LED status indicator designed to +provide information about the charging status of the battery. A green LED +signifies that the battery has reached full charge, while a red LED indicates +that the battery is currently in the charging process. + +As an alternative, the batteries can be charged via the rover, by leaving them +inside the battery ports and connecting the charger to the rover's power input +located at the back. + + + +This way it's possible to charge both batteries at the same time, however the +charging current will be split between them, resulting in a longer charging time +of around 2.5 h. The Rover does not need to be powered off for this process. + +:::note + +When working on the rover while charging the batteries the LED indicator of +power adapter will not transition to green when charging is complete. Power draw +of the rover will keep the charger in active (red) state. To check battery +level, press the power button once. Fully illuminated LED side panels will +indicate fully charged batteries. + +::: + +## Inspection & Cleaning + +Regular inspection and cleaning of the Raph Rover are essential to ensure +optimal performance and longevity. Follow these guidelines to maintain your +rover: + +### Internal inspection + +To inspect the internals of the rover it is required to dismantle payload and +electronics cover. + +Before dismantling ensure that the robot is: + +- stationary on a level surface, +- powered off and batteries removed. + +To open electronics bay: + +1. Unscrew the payload mounting plate (4 M5 round head screws). +2. Remove the payload mounting plate. +3. Unscrew 6 torx screws next to the side LED panels. +4. Remove top electronics cover (you can use handle next to the lidar). +5. Inspect for any loose cables water ingress etc. + +{/* TODO: drawing? */} + +### Electronics removal + +In case of serious problems or issues with the robot it is possible to remove +whole internal electronics from the robot. It can be helpful with debugging +problems. + +Before dismantling ensure that: + +- [top electronics cover is removed](#internal-inspection), +- robot is stationary on a level surface, +- robot is powered off and batteries removed. + +To remove internal electronics follow instructions below: + +1. Unplug all cables connected to the internal electronics + - Interface panel (Power, USB & Ethernet) + - All of the motors + - Batteries + - Lidar + - OAK-D camera + - Power & Control buttons + - Antennas +2. Unscrew the front cover (2 screws below the front LED panel) +3. Remove the front cover +4. Unplug the USB-C cable from the OAK-D camera +5. Rotate the robot upside down +6. Unscrew 8 torx screws on the bottom of the robot +7. Carefully remove the floor with electronics + +{/* #### Steering wheel's bumper inspection */} + +{/* #### Induction sensor adjustments */} + +{/* #### Battery port cleaning */} diff --git a/docs/raph-rover/documentation/user-manual/payload-integration-basics.mdx b/docs/raph-rover/documentation/user-manual/payload-integration-basics.mdx new file mode 100644 index 00000000..f33bbe16 --- /dev/null +++ b/docs/raph-rover/documentation/user-manual/payload-integration-basics.mdx @@ -0,0 +1,118 @@ +--- +title: Payload Integration Basics +sidebar_label: Payload Integration Basics +sidebar_position: 3 +keywords: + - raph + - rover + - mobile + - robot + - payload + - mounting +description: >- + Documentation on the basics of integrating payloads with Raph Rover, including + mounting options and power considerations. +image: /img/robots/raph/raph-rover.webp +toc_max_heading_level: 4 +--- + +import ThemedImageZoom from '@site/src/components/ThemedImageZoom'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +# Payload integration basics + +## Mechanical mountings + +Payloads can be attached to the top mounting plate using standard hardware. The +plate is designed for M5 bolts and nuts and features a regular 25 mm x 25 mm +hole grid (center-to-center spacing). This grid enables modular, repeatable +mounting of payloads and accessories while preserving precise alignment. + +Use appropriate washers and locking nuts (or thread-locking inserts) as required +for vibration resistance. Ensure bolt length provides sufficient thread +engagement without contacting internal components. + +If your payload uses a different hole layout, there are two common options: + +- Drill additional holes in the mounting plate to match your payload pattern. + When doing so, verify hole positions against internal components and use + appropriate corrosion-resistant fasteners. Avoid over-drilling and check that + new holes do not penetrate or interfere with wiring or structural elements. +- Design a 3D-printed adapter or sub-plate that mates to the 25 mm x 25 mm grid. + An adapter lets you retain the original plate integrity while providing a + custom hole pattern or mounting features for non-standard payloads. + +:::tip + +If you prefer not to drill the plate or design a custom adapter yourself, you +can order a complete sensor integration from us. We offer mechanical hardware +and software integration delivered as a ready-to-mount kit or installed by our +team — [contact us](#community--resources) for options and pricing. + +::: + +## Using external data & power ports + +The external data and power ports are located within the rear compartment. This +compartment must be opened for access. The interfaces are provided for +connecting external payloads or for establishing a direct connection to the +rover's internal network. + + + +:::warning + +The Raph Rover is not weatherproof while the rear compartment is open. To +maintain the IP54 protection rating with external connections, please use the +[external cable seals](#external-cable-seals). + +::: + +## External cable seals + +Both to keep the rover looking cleaner, and to provide extra weather and dust +resistance a system of seals around the rover can be used. They can ensure that +the whole robot with additional payload will maintain the IP54 protection +rating. + +To insert additional cables, it is necessary to dismantle the entire panel by +loosening two thumb screws. Once the panel is disassembled, individual seals can +be removed from the frame, allowing for the insertion of new cables. + + + +Raph Rover comes with different seals, labeled as QT [Z]/[X] or QT [X], where Z +indicates the number of holes in the seal and X indicates the diameter of the +cable in millimeters. + +:::tip + +Each cable seal has splitted holes, so it is possible to route pre-terminated +cables through them. + +::: diff --git a/docs/raph-rover/documentation/user-manual/software-and-hardware.mdx b/docs/raph-rover/documentation/user-manual/software-and-hardware.mdx new file mode 100644 index 00000000..e0f10cdb --- /dev/null +++ b/docs/raph-rover/documentation/user-manual/software-and-hardware.mdx @@ -0,0 +1,211 @@ +--- +title: Software & Hardware +sidebar_label: Software & Hardware +sidebar_position: 1 +keywords: + - raph + - rover + - mobile + - robot + - software + - hardware +description: >- + Documentation providing an overview of Raph Rover's software and hardware + architectures and components. +image: /img/robots/raph/raph-rover.webp +toc_max_heading_level: 4 +--- + +import CenterContent from '@site/src/components/CenterContent'; +import ThemedImageZoom from '@site/src/components/ThemedImageZoom'; +import useBaseUrl from '@docusaurus/useBaseUrl'; + +# Software and Hardware components + +## Hardware + +Raph Rover integrates several key hardware components that work together to +provide a robust mobile robotics platform: + + + +These components are integrated into a compact chassis designed for durability +and ease of maintenance. The modular architecture allows for customization while +maintaining core functionality. + +## Software + +### Overview + +Raph Rover's software heavily relies on The +[Robot Operating System (ROS)](https://ros.org/) which offers many +functionalities that are used on the robot, such as: + +- Abstraction layer facilitating communication between software components. +- Open-source software components, maintained by the community. +- A collection of standard message interfaces. +- Tools for introspection and debugging. + +The primary segment of the software stack is partitioned into several +[ROS Nodes](https://wiki.ros.org/Nodes), treated as computational units, each +performing one logical task. The nodes interact via: + +- **Topics** - Named buses enabling message exchange between nodes. They are + strongly typed and employ anonymous publish/subscribe semantics. +- **Services** - A client/server mechanism for remote procedure calls between + nodes. The service server accepts remote procedure requests identified by name + and type, which must be known to the service client beforehand. +- **Parameters** - Sets of key/value pairs maintained separately by each node, + utilized for node configuration during startup and runtime without + necessitating code modifications. +- **TF transforms** - A single transform describes the relationship between 2 + coordinate frames at a specific point in time. TF transforms are distributed + between nodes using topics, but, for the sake of clarity, we will refer to + them as separate entities. + +There are two important software components which don't run as native ROS nodes: + +- **Controller firmware** - The firmware itself acts as a ROS node but uses + eProsima's + [Micro XRCE-DDS](https://micro-xrce-dds.docs.eprosima.com/en/latest/) as its + middleware. Thus, it requires the presence of the Micro-ROS Agent on the + built-in computer to communicate with other ROS nodes. +- **Web User Interface** - The WebUI establishes a connection with the Rosbridge + Server via WebSocket transport layer and employs the rosbridge protocol for + communication with the ROS nodes. + + + +### ROS nodes + + + +| ROS Node | Description | +| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Controller Node | The node created by the Controller firmware. Provides access to functionalities via topics and services for the management of the drivetrain, LED panels, Power System and many more. Additionally, it publishes relevant information, including:
  • State of the dynamic joints controlled by RaphCore.
  • Data retrieved from the onboard IMU sensor.
  • Power system status, comprising:
    • Battery voltages.
    • Connection status of batteries or the charger to the robot.
    • Current output power.
  • Robot odometry.
  • Diagnostic information for various system components.
| +| Robot State Publisher | Parses the kinematic tree model of the robot in URDF format and broadcasts the robot state using TF transforms. Here's how it operates:
  • Fixed joints, like sensor positions, are published as static transforms.
  • Movable joints, such as wheel states, are published as dynamic transforms, based on the current joint states published by the Controller Node.
It also publishes the robot URDF description on a designated topic, making it easily accessible to other nodes. | +| Camera Driver | Publishes the data provided by the stereoscopic camera. In the default configuration used in Raph Rover, it includes:
  • Images captured by the left, right and RGB (center) camera image sensors.
  • Calibration parameters for each image sensor.
  • Data from the camera's IMU sensor.
  • Depth images computed from the left and right sensors.
| +| Depth Processing Node | Publishes point cloud data computed from depth images and camera calibration parameters.

Employs “lazy subscription”, meaning it doesn't process any depth images until at least one node subscribes to the Point Cloud topic. | +| LIDAR Driver | Publishes data from the LIDAR sensor.

Additionally, it provides services for starting and stopping the sensor's motor. | +| Raph System Node | Enables rebooting and shutting down the onboard computer via ROS services. | +| LIDAR Filter Node | Filters out LIDAR measurements from the robot's footprint. | +| ROS API Node | Exposes ROS API services so the Web UI can inspect the ROS graph, query/set parameters and call services. | +| Rosbridge Server | Provides a WebSocket interface for communication with the Web User Interface using the rosbridge protocol. | +| Web Video Server | Streams camera images to the Web User Interface. | + +
+ + + +Custom ROS nodes can be created to extend the robot's capabilities even further. +Raph Rover's software stack provides a robust framework for developing and +integrating custom software and other sensors. + +You can learn how to create custom ROS nodes for Raph Rover in the +[ROS Development Tutorial](./../../advanced-guides/ros-development.mdx). + +### Firmware + +Rover's low-level hardware functions are managed by the RaphCore +microcontroller, which runs an RTOS app (firmware) based on FreeRTOS. +Communication between the firmware and the onboard computer is facilitated by +Micro-ROS. + +The firmware is responsible for: + +- Controlling the wheel motors and servos. +- Managing the power system, including battery monitoring and charging. +- Operating the LED panels. +- Publishing data from the IMU sensor. +- Publishing odometry calculated from wheel encoders and IMU. + +The firmware also uses a custom bootloader which is responsible for loading and +updating the firmware itself. To learn how to flash or update the firmware, +follow the guide below: + +{/* TODO: Add firmware flashing tutorial */} +{/* */} + +#### LED controller + +The built-in LED controller manages the LED states of the robot by processing +user-defined states and animations, integrating them with ongoing animations, +and updating the LEDs accordingly. + +Users can control the LED strip by specifying colors, duration, and priority of +specific LEDs via ROS topics. + +The robot features four LED panels that combine to form one long LED strip. LEDs +can be controlled either as a full strip or as specific panels, providing +flexibility for different use cases: + +- **Full Strip Control**: Ideal for animations that span the entire perimeter of + the robot, such as police lights. Can be set using + [controller/led_strip_state](./../ros-api#msg-led-strip-state) ROS topic. +- **Panel-Specific Control**: Useful for targeted functions, such as using all + front LEDs as a floodlight or using side LEDs to indicate battery levels. Can + be set using [controller/led_panel_state](./../ros-api#msg-led-panel-state) + ROS topic. + +LED priorities range from 1 to 127. Higher priority animations override lower +priority ones. Sending an LED state with priority -1 will reset the LED (turn it +off). Messages with priority 0 are ignored. + +### Web User Interface + +Web User Interface can be used to control Raph Rover, view camera streams and +monitor robot status. It utilizes the rosbridge protocol to communicate with ROS +nodes on the robot via WebSocket. + + + +:::info + +To find out how to connect to and use the Web UI, visit the documentation page +below: + + + +::: diff --git a/docs/raph-rover/documentation/user-manual/styles.module.css b/docs/raph-rover/documentation/user-manual/styles.module.css new file mode 100644 index 00000000..a86cac80 --- /dev/null +++ b/docs/raph-rover/documentation/user-manual/styles.module.css @@ -0,0 +1,236 @@ +.circle { + height: 50px; + width: 50px; + border-radius: 50%; + display: block; + margin: 0 auto; +} + +.bar { + height: 16px; + width: 120px; + border-radius: 8px; + display: block; + margin: 0 auto; +} + +[data-theme='light'] .LEDcell { + background-color: var(--ifm-color-gray-200); +} + +#flashWhite { + animation: whiteAnimation 1.5s steps(1, end) infinite; +} + +#breathWhite { + animation: whiteAnimation 3s linear infinite; +} + +#white { + background: white; +} + +#flashBlue { + animation: blueAnimation 1.5s steps(1, end) infinite; +} + +#breathBlue { + animation: blueAnimation 3s linear infinite; +} + +#breathGreen { + animation: greenAnimation 3s linear infinite; +} + +#blue { + background: blue; +} + +#yellow { + background: yellow; +} + +#green { + background: limegreen; +} + +#red { + background: red; +} + +#chargeCycle { + animation: chargeCycleAnimation 4s ease-in-out infinite; +} + +#batteryConnected { + position: relative; + overflow: hidden; + background: rgba(255, 255, 255, 0.12); +} + +#batteryConnected::after { + content: ''; + position: absolute; + inset: 0; + background: red; + transform: scaleX(0); + transform-origin: left center; + animation: batteryConnectedFill 2.5s ease-in-out infinite; +} + +#batteryDisconnected { + animation: batteryDisconnectedAnimation 2s ease-in-out infinite; +} + +#microRos { + background: linear-gradient( + 90deg, + rgba(10, 20, 40, 0.35) 0%, + rgba(10, 20, 40, 0.35) 37.5%, + #1d6fff 37.5%, + #1d6fff 62.5%, + rgba(10, 20, 40, 0.35) 62.5%, + rgba(10, 20, 40, 0.35) 100% + ); + background-size: 200% 100%; + animation: microRosAnimation 1.8s ease-in-out infinite alternate; +} + +#flashRed { + animation: redAnimation 1.5s steps(1, end) infinite; +} + +#flashRed3 { + animation: red3flashAnimation 2s steps(1, start) infinite; +} + +@keyframes whiteAnimation { + 0% { + background: white; + } + 50% { + background: none; + } + 100% { + background: white; + } +} + +@keyframes blueAnimation { + 0% { + background: blue; + } + 50% { + background: none; + } + 100% { + background: blue; + } +} + +@keyframes greenAnimation { + 0% { + background: limegreen; + } + 50% { + background: none; + } + 100% { + background: limegreen; + } +} + +@keyframes redAnimation { + 0% { + background: red; + } + 50% { + background: none; + } + 100% { + background: red; + } +} + +@keyframes chargeCycleAnimation { + 0% { + background: red; + } + 25% { + background: rgba(255, 0, 0, 0.15); + } + 50% { + background: #ffea00; + } + 75% { + background: rgba(50, 205, 50, 0.15); + } + 100% { + background: limegreen; + } +} + +@keyframes batteryConnectedFill { + 0% { + transform: scaleX(0); + background: red; + } + 50% { + background: #ff9900; + } + 100% { + transform: scaleX(1); + background: limegreen; + } +} + +@keyframes batteryDisconnectedAnimation { + 0% { + background: red; + } + 60% { + background: rgba(255, 0, 0, 0); + } + 99% { + background: rgba(255, 0, 0, 0); + } + 100% { + background: red; + } +} + +@keyframes microRosAnimation { + 0% { + background-position: 0% 50%; + } + 100% { + background-position: 100% 50%; + } +} + +@keyframes red3flashAnimation { + 0% { + background: none; + } + 10% { + background: red; + } + 20% { + background: none; + } + 40% { + background: red; + } + 50% { + background: none; + } + 60% { + background: red; + } + 70% { + background: none; + } + 100% { + background: none; + } +} diff --git a/docs/raph-rover/documentation/user-manual/user-manual.mdx b/docs/raph-rover/documentation/user-manual/user-manual.mdx new file mode 100644 index 00000000..68386d7d --- /dev/null +++ b/docs/raph-rover/documentation/user-manual/user-manual.mdx @@ -0,0 +1,230 @@ +--- +title: Raph Rover User Manual | Operation and Maintenance +sidebar_label: User manual +sidebar_position: 2 +keywords: + - Raph Rover + - ROS + - mobile robot + - operation + - payload integration + - maintenance +description: >- + A comprehensive user manual for the Raph Rover, detailing its hardware + architecture, ROS-based software stack, operational procedures, and + maintenance. +image: /img/robots/raph/raph-rover.webp +toc_max_heading_level: 3 +--- + +import DocCardList from '@theme/DocCardList'; +import styles from './styles.module.css'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import ThemedImageZoom from '@site/src/components/ThemedImageZoom'; +import CenterContent from '@site/src/components/CenterContent'; +import LinkButton from '@site/src/components/LinkButton'; +import Support from '@site/docs/raph-rover/partial/_support.mdx'; +import FlexTable from '@site/src/components/FlexTable'; +import FlexTableItem from '@site/src/components/FlexTableItem'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + +# Raph Rover User Manual + +--- + +:::note + +This manual assumes that you already unboxed and launched the Raph Rover for the +first time. If not, please complete the Getting started guide. + + + +::: + +## Introduction + +This user manual provides concise, practical guidance for safely operating, +maintaining, and troubleshooting the Raph Rover. Use this manual as the primary +reference for day-to-day use and field maintenance. For in-depth technical +details, refer to the [Raph Rover Specification](specification). + +If you seek more detailed information about using and developing your +applications on the Raph Rover, please refer to the other sections of our +documentation, including: + +- [Guides](../guides) +- [Advanced Guides](../advanced-guides) + +:::warning + +Always observe local safety regulations and the safety guidelines in this +document before operating the rover. + +::: + +:::tip + +If you are seeking more information about Raph Rover features check our Overview +page: + + + +::: + +## User manual contents + + + +## Safety guidelines + +:::danger + +Mobile robots like Raph Rover are inherently dangerous if not used properly. +Improper use can lead to injury, property damage, or environmental harm. Please +follow all safety guidelines and operational precautions outlined in this manual +to ensure safe and responsible use of the rover. + +::: + +### Intended use + +- Raph Rover is designed for outdoor and indoor use on light off-road terrain. + Avoid operating on steep slopes, loose gravel, mud, or waterlogged areas. +- Avoid using the rover in hazardous environments, such as areas with flammable + gases, explosive materials, or extreme temperatures. +- The rover is intended for research, education, and light payload transport. Do + not use it for heavy lifting, towing, or hazardous material transport. +- The rover is not a toy; keep it out of reach of children and pets. +- Always operate the rover within its specified weight limits and environmental + conditions. +- Do not modify the rover's hardware or software in ways not authorized by the + manufacturer, as this may compromise safety and void warranties. +- Always supervise the rover during operation to prevent accidents or damage. + +### Operational precautions + +- Before each use, inspect the rover for any signs of damage or wear, including + tires, sensors, and battery connections. +- Ensure the battery is sufficiently charged and securely connected before + operation. +- Operate the rover at safe speeds, especially in crowded or obstacle-rich + environments. +- Keep a safe distance from the rover while it is in motion to avoid injury. +- Be cautious when operating the rover on uneven terrain to prevent tipping or + loss of control. +- Avoid exposing the rover to extreme weather conditions, such as heavy rain, + snow, or low/high temperatures. +- Follow all local regulations regarding the use of autonomous or remotely + operated vehicles. + +### Mechanical safety + +- Do not place hands or objects near moving parts, such as wheels and motors, + while the rover is powered on. +- Use appropriate lifting techniques when handling the rover to avoid injury. +- Do not lift the rover by its sensors or other delicate components. +- Ensure all payloads are securely fastened to prevent shifting during movement. +- Ensure that any added payloads do not exceed the rover's weight capacity or + obstruct sensors. +- Ensure that mounted payloads do not interfere with the rover's balance or + center of gravity. + +### Electrical safety + +#### General precautions + +- Avoid exposing the rover's electrical components to water or moisture. +- Do not attempt to open or modify the rover's battery or electrical systems + without proper certification and training. +- Disconnect the battery before performing any maintenance or repairs on the + rover. +- Keep the rover's electrical components away from metal objects to prevent + short circuits. + +#### Battery handling + +- Use caution when handling the lithium-ion battery; avoid puncturing, crushing, + exposing it to fire or water. +- Charge the battery in a well-ventilated area away from flammable materials. +- Store the battery in a cool, dry place when not in use, away from direct + sunlight and heat sources. +- Store the battery at a partial charge (around 50%) for long-term storage to + prolong its lifespan. +- In case of battery damage or leakage, avoid contact with skin and dispose of + according to local regulations. +- Dispose of used batteries according to local regulations; do not incinerate or + throw them in regular trash. + +#### Charger and power supply + +- Only use the charger and power supply provided with the rover or approved + alternatives. +- Do not overcharge or leave the battery connected to the charger for extended + periods after reaching full charge. + +### Safety systems + +- The rover is equipped with a button to disable motors; familiarize yourself + with its location and operation. +- The rover will automatically stop if it loses connection with the remote + controller. +- The remote connection has a limited range; ensure you operate within this + range to maintain control. +- The remote connection has latency; be prepared for slight delays in response + time during operation. + +### Sensor & Radiation safety + +- The rover is equipped with class 1 LiDAR and cameras with IR illuminators that + are safe for general use. +- Avoid direct eye exposure to any active sensors, such as LiDAR or cameras, to + prevent potential eye damage. +- Rover emits safe levels of electromagnetic radiation on 2.4 GHz and 5 GHz + bands for Wi-Fi communication; potential interference with sensitive medical + devices is unlikely but possible. +- Configure the rover's router to use only allowed Wi-Fi channels and power + levels in your region to minimize interference with other devices. + +### Environmental considerations + +- Operate the rover in accordance with local environmental regulations. +- Rover has IP54 rating; it can handle limited dust ingress and water splashes + but should not be submerged. +- Do not operate the rover in environmentally sensitive areas without proper + authorization. +- Do not expose the rover to extreme temperatures, as this may affect + performance and safety. Raph Rover is designed to operate within a temperature + range of -10°C to 45°C (14°F to 113°F). +- The rover contains recyclable materials; dispose of components according to + local recycling regulations. + +:::note + +Some of the information in this manual may be subject to change as the rover is +updated; always refer to the latest version of the manual for current safety +guidelines. + +::: + +## Community & resources + + + + + diff --git a/docs/raph-rover/documentation/web-user-interface.mdx b/docs/raph-rover/documentation/web-user-interface.mdx new file mode 100644 index 00000000..2c54ffd9 --- /dev/null +++ b/docs/raph-rover/documentation/web-user-interface.mdx @@ -0,0 +1,141 @@ +--- +title: Raph Rover Web User Interface +sidebar_label: Web User Interface +sidebar_position: 5 +keywords: + - raph + - rover + - mobile + - robot + - user + - manual +description: >- + Documentation for Raph Rover's web user interface.. +image: /img/robots/raph/raph-rover.webp +toc_max_heading_level: 4 +--- + +import useBaseUrl from '@docusaurus/useBaseUrl'; +import Support from '@site/docs/raph-rover/partial/_support.mdx'; + + + +# Raph Rover Web User Interface + +Raph Rover UI is a responsive web-based user interface for controlling and +monitoring the Raph Rover robot. Built with **React** and **TypeScript**, it +provides real-time communication with **ROS** (Robot Operating System) through +rosbridge. + +## Main features + +- **Real-time camera feed**: View live video stream from the robot's camera. +- **Robot status monitoring**: Monitor battery level, connection status, imu + readings, and other vital statistics. +- **Teleoperation controls**: Control the robot's movement using on-screen + joystick or keyboard/gamepad inputs. +- **Responsive design**: Access the UI from various devices, including desktops, + tablets, and smartphones. + +## Quick start + +To access the Raph Rover Web UI, ensure your computer or mobile device is +connected to the same network as the Raph Rover. + +Open a web browser of your choice and navigate to: +[raph.local](http://raph.local) or [10.10.0.2](http://10.10.0.2). + +UI will automatically connect to the robot and display the camera preview as +well as navigation bar with robot status. + + + +After each reboot it is necessary to calibrate the servo motors. Toggle +hamburger menu in the top right corner and select **Calibrate wheels** option. + +To start driving with the robot you can use either the on-screen joystick or +keyboard/gamepad inputs. Toggle hamburger menu in the top right corner and +select **Enable driving** option as well as your control method of choice. + +:::tip + +You can use gamepads, including **Xbox** and **PlayStation** controllers, with +the Web UI. First, connect your gamepad to your device (via cable or Bluetooth). +The UI will confirm the connection with a "_Gamepad connected_" notification. +After enabling driving you will be able to start controlling the robot with the +gamepad. + +::: + +Your Raph Rover is now ready to be driven around! + +## Overview of the UI components + +### Main view + + + +- **Camera feed** (1): The main area displays the live video stream from the + robot's camera. +- **Status bar** (2): Located at the top, it shows vital statistics such as + battery level, connection status, and imu readings. +- **Steering mode switcher** (3): Toggle between different steering modes + (ackermann or turn in place) using the selection buttons in the top right + corner. +- **Hamburger menu** (4): Access additional options such as calibration, driving + enable/disable, and settings. + +### Hamburger menu view + + + +- **Enable driving** (1): Toggle robot driving controls on or off. +- **Calibrate wheels** (2): Calibrate the servo motors of the steering wheels. +- **Stream selection** (3): Choose between different camera streams from OAK-D + cameras. +- **Settings** (4): Access additional settings and configurations for the UI. +- **Fullscreen mode** (5): Enable or disable fullscreen mode. +- **Toggle controls button** (6): Enable or disable the on-screen joystick and + keyboard controls. +- **Service options** (7): Access additional services such as restarting or + shutting down the on-board computer. + +## Extending the UI + +Raph Rover Web UI is an open-source project available on +[GitHub](https://github.com/RaphRover/raph_ui). Feel free to explore the +codebase, contribute to the project, or customize the UI to suit your specific +needs. + +For detailed instructions on setting up the development environment, building, +and deploying the UI, please refer to the readme file in the GitHub repository. + + + +## Community & resources + + diff --git a/docs/raph-rover/index.mdx b/docs/raph-rover/index.mdx index f6cde0a0..bddca12e 100644 --- a/docs/raph-rover/index.mdx +++ b/docs/raph-rover/index.mdx @@ -1,13 +1,16 @@ --- -title: 'Raph Rover: Heavy-Duty Mobile Robotic Platform' +title: 'Raph Rover: Accelerate Robotics R&D with a ROS 2 Platform' sidebar_label: Overview keywords: - - raph - - rover - - overview + - Raph Rover + - ROS 2 + - mobile robot + - R&D platform + - autonomous navigation sidebar_position: 1 description: >- - A quick set of informations regarding Raph Rover + Raph Rover is a pre-configured ROS 2 R&D platform with integrated Lidar and 3D + camera, letting you focus on algorithms, not hardware setup. image: /img/robots/raph/raph-rover.webp hide_title: true --- diff --git a/static/img/robots/raph/user-manual/raph_ui.webp b/static/img/robots/raph/user-manual/raph_ui.webp new file mode 100644 index 00000000..13caf4c0 Binary files /dev/null and b/static/img/robots/raph/user-manual/raph_ui.webp differ diff --git a/static/img/robots/raph/user-manual/raph_ui_main_view.webp b/static/img/robots/raph/user-manual/raph_ui_main_view.webp new file mode 100644 index 00000000..4adebd8e Binary files /dev/null and b/static/img/robots/raph/user-manual/raph_ui_main_view.webp differ diff --git a/static/img/robots/raph/user-manual/raph_ui_menu.webp b/static/img/robots/raph/user-manual/raph_ui_menu.webp new file mode 100644 index 00000000..df151da4 Binary files /dev/null and b/static/img/robots/raph/user-manual/raph_ui_menu.webp differ diff --git a/static/img/robots/raph/user-manual/raph_ui_showcase.webp b/static/img/robots/raph/user-manual/raph_ui_showcase.webp new file mode 100644 index 00000000..7c01ee75 Binary files /dev/null and b/static/img/robots/raph/user-manual/raph_ui_showcase.webp differ