.. figure:: media/pictures/ascento_webserver.png :width: 100% :alt: ascento_forward :align: center | Ascento Interface ================= .. note:: Ensure your PC is set up correctly for network communication with the robot before proceeding. .. attention:: Instructions on how to interface with the robot using **Ubuntu 22.04** and **ROS 2 Humble**. Static Network Connection ------------------------- To configure a static network connection between your PC and the robot for the first time, follow these steps: 1. **Connect via LAN Cable**: Use a LAN cable to connect your PC directly to the robot. The LAN port is located on the back of the robot's top cover. .. figure:: media/pictures/ascento_network.jpg :width: 60% :alt: ascento_network :align: center :class: mbsrounded | The ethernet port can be used for setting up communication via LAN. 2. **Set Up a Manual Connection**: - On an Ubuntu system, navigate to **Settings → Network**. - Click on the "+" icon to create a new connection. - In the IPv4 settings, change the connection mode to **Manual**. - Enter the following details: - **Address IP**: `10.42.0.51` - **Netmask**: `24` - Save the configuration and restart your network. 3. **Verify the Connection**: - Check the local IP of the host PC: .. code:: bash ifconfig - Ping the robot to ensure connectivity: .. code:: bash ping 10.42.0.50 4. **Access the Robot via SSH**: - Use the following command to connect: .. code:: bash ssh -X administrator@10.42.0.50 - Default password: `mybotshop` .. important:: Disconnect from other active networks to avoid interference during this process. IP Addresses ------------ The table below provides a reference for the IP addresses and login credentials for various Ascento components: +-----------------------------+-------------------+-------------------+----------------+ | Name | IP Address | Username | Password | +=============================+===================+===================+================+ | Ascento Router | 10.42.0.1 | ascento | ascento | +-----------------------------+-------------------+-------------------+----------------+ | Ascento Livox Mid360 | 10.42.0.20 | x | x | +-----------------------------+-------------------+-------------------+----------------+ | Ascento Nvidia | 10.42.0.50 | administrator | mybotshop | +-----------------------------+-------------------+-------------------+----------------+ | Ascento Nvidia (Web) | 10.42.0.50:9000 | x | mybotshop | +-----------------------------+-------------------+-------------------+----------------+ | Ascento MCU | 10.42.0.100 | x | x | +-----------------------------+-------------------+-------------------+----------------+ | Ascento Fixposition | 10.42.0.109 | x | x | +-----------------------------+-------------------+-------------------+----------------+ | Ascento Cameras | 10.42.0.115 | root | ascento | +-----------------------------+-------------------+-------------------+----------------+ | Ascento Steamdeck | 10.42.0.150 | deck | mybotshop | +-----------------------------+-------------------+-------------------+----------------+ | Ascento Access Point | 10.42.0.200 | ascento-5G | mybotshop | +-----------------------------+-------------------+-------------------+----------------+ | Ascento Access Point (Web) | 10.42.0.200 | admin | Admin123 | +-----------------------------+-------------------+-------------------+----------------+ .. attention:: Sometimes other networks can cause disruptions when connecting to the Ascento. It is best to have only your connection to the robot active and all others inactive. .. note:: Use these credentials responsibly. Change default passwords where security is critical. Ascento Fixposition =================== Each new unit has to configure its Fixposition. Several steps are required. Web Interface ------------- \• **Option 1 (Recommended):** Connect to the Ascento and open the webpage: .. code:: bash http://10.42.0.109/ \• **Option 2:** 1. Connect your PC to the Fixposition Wi-Fi network with SSID starting with ``fp-``. The Wi-Fi password is ``1234567890``. 2. Open a web browser and navigate to: .. code:: bash 10.0.1.1 This will take you to the Fixposition dashboard. Software Upgrade ---------------- To update the software version of the Vision-RTK 2: \• Go to the **System → Update** panel in the web interface. \• Click inside the marked area to select the SWU file or drag and drop the SWU file there. Configuration ------------- At the top of the page, the **Configuration** tab allows you to set up Fixposition parameters according to your requirements. Fusion Configuration ~~~~~~~~~~~~~~~~~~~~ Available options: \• **Autostart:** ○ Enables automatic launching of the Fusion engine on system bootup. *(Note: Enabling this will not start the Fusion engine immediately.)* \• **Housing:** ○ Choose between Prototype (3D-printed) or Standard (aluminum). \• **Tuning Mode:** ○ Set expected platform dynamics. For example, use "Slow robot" for typical speeds. Adjust accordingly if operating at high speeds. \• **GNSS Extrinsics:** ○ Define the position of the GNSS antennas relative to the Vision-RTK 2 sensor frame in meters. *These values should be accurate to the millimeter level.* GNSS Configuration ------------------ You can configure your own correction data here to receive the desired GNSS corrections. For example, in Germany, the government provides free correction data to educational institutions, including: \• Username \• Password \• Host Name \• Port Once acquired, enter this information in the Fixposition GNSS configuration panel at: .. code:: bash http://10.42.0.109/#gnss-config Network Configuration --------------------- In the **Network** tab, you can configure: \• **Wi-Fi Client:** ○ Set the Wi-Fi network that Fixposition should connect to (required for localization startup). \• **Wi-Fi Access Point:** ○ Change the SSID and password of the Fixposition Wi-Fi network. \• **Ethernet:** ○ Change the Ethernet IP address to the desired one for PC access. *(Do not change this IP if it would disrupt Ascento's connection to Fixposition.)* I/O Configuration ----------------- In the **Output messages** table, select the **TCP0** option in all sections **except** those that turn orange when selected. Status ------ After updating and configuring Fixposition, start the Fusion engine by pressing the **Start** button. \• Monitor the **IMU Status** — it should display **Converging**. \• Monitor the **Baseline Status** — it should be **Green**. Verification ------------ For the first-time Fixposition calibration: \• The Ascento must move approximately **50 meters in a figure-8 pattern**. \• This movement is necessary for calibrating the IMU and activating Fusion successfully. Ascento Quick Start =================== **Powering On**: 1. Tilt the robot upward, insert the key into the bottom slot, and turn it clockwise to unlock. 2. The robot’s flashlights will blink indicating that the power has turned on. 3. Wait for **1 minute** after powering up for the PC to bootup. **Powering Off**: \• Press **Soft E-Stop (L2 + B)** — this will cause the robot’s motors to dampen, allowing it to gently fall to the ground. \• Lock the robot with the key. **Connecting via LAN**: To quickly establish a connection, use the following command: .. code:: bash ssh -X administrator@10.42.0.50 .. warning:: Ensure proper safety measures are in place when operating the robot. If issues arise during operation, refer to the specific troubleshooting commands provided below. .. Disengaging E-Stops .. ------------------- .. **Disengage Hard E-Stop**: .. To disable the hard emergency stop: .. .. code:: bash .. ros2 topic pub /ascento/cmd/hard_estop_set std_msgs/msg/Bool "{data: false}" .. **Disengage Soft E-Stop**: .. To disable the soft emergency stop: .. .. code:: bash .. ros2 topic pub /ascento/cmd/soft_estop_set std_msgs/msg/Bool "{data: false}" .. Motor Homing .. ------------ .. **Start Motor Homing**: .. To initiate motor homing: .. .. code:: bash .. ros2 topic pub /ascento/cmd/homing_start std_msgs/msg/Empty {} .. .. warning:: .. If motor homing fails, try power cycling the robot using the following command: .. .. code:: bash .. ros2 service call /ascento/cmd/power_reset std_srvs/srv/Trigger {} .. Standup .. ------- .. To make the robot stand up, use the following command: .. .. code:: bash .. ros2 service call /ascento/cmd/standup std_srvs/srv/Trigger {} .. Visualization .. ------------- .. To view the robot in the simulation environment: .. .. code:: bash .. ros2 launch ascento_viz view_robot.launch.py .. Teleoperation .. ------------- .. **Keyboard Teleoperation**: .. To control the robot using keyboard commands: .. .. code:: bash .. ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:=/ascento/cmd/twist .. TF Tree .. ------- .. To view the robot's TF tree: .. .. code:: bash .. ros2 run rqt_gui rqt_gui --ros-args --remap tf:=/ascento_0110/tf --ros-args --remap tf_static:=/ascento_0110/tf_static .. .. note:: .. For best results during teleoperation or visualization, ensure all software dependencies are properly installed and the robot is powered on. Disengage Estops ---------------- To disengage the emergency stops on Ascento: \• **Disengage Hard Estop**: .. code:: bash ros2 topic pub /ascento/cmd/hard_estop_set std_msgs/msg/Bool "{data: false}" \• **Disengage Soft Estop**: .. code:: bash ros2 topic pub /ascento/cmd/soft_estop_set std_msgs/msg/Bool "{data: false}" Motor Homing Start ------------------ To initiate motor homing: .. code:: bash ros2 topic pub /ascento/cmd/homing_start std_msgs/msg/Empty {} .. warning:: If homing fails, try power-cycling the robot: .. code:: bash ros2 service call /ascento/cmd/power_reset std_msgs/msg/Trigger {} Standup ------- To command the robot to stand up: .. code:: bash ros2 service call /ascento/cmd/standup std_srvs/srv/Trigger {} Visualization ------------- To visualize the robot in RViz: .. code:: bash ros2 launch ascento_viz view_robot.launch.py Ascento Tele-operation ---------------------- To control Ascento using the keyboard: .. code:: bash ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args --remap cmd_vel:=/ascento/cmd/twist Ascento TF Tree --------------- To view the TF tree with remapped topics: .. code:: bash ros2 run rqt_gui rqt_gui --ros-args --remap tf:=/ascento_0116/tf --ros-args --remap tf_static:=/ascento_0116/tf_static Ascento ROS2 Drivers ==================== .. important:: Please contact **support@mybotshop.de** to gain access to the **MBS Ascento** repository for the latest changes and updates. When contacting support, please include your **Mybotshop Order ID** as well as your **GitHub Username** or **GitHub Email ID**. All ROS2 drivers for **Ascento** developed by **MYBOTSHOP** operate under **ROS DOMAIN ID=0** and utilize the **Zenoh bridge** for communication. The drivers are pre-configured and should already be running on the **Ascento**. The **Ascento ROS2 driver** package includes the following: \• **Joint States** \• **Robot Description** \• **Leg Control (High-level)** \• **Inertial Measurement Unit Publisher** \• **Sensor Fusion** \• **Twist Mux** \• **Steamdeck Control** \• **D435i Depth Camera Driver** \• **Livox Mid360 Lidar Driver** \• **2D Scanner** \• **Fixposition** .. figure:: media/pictures/ascento_rviz.png :width: 100% :alt: cascento_rviz :align: center :class: mbsrounded | Ascento Startup Services ------------------------- Several essential Ascento drivers and services run in the background to ensure smooth operation. Below is a list of the main services: +-----------------------------+-----------------------------------------------------------+ | **Service Name** | **Description** | +=============================+===========================================================+ | ascento-description | Launches robot state publisher for visualization | +-----------------------------+-----------------------------------------------------------+ | ascento-zenoh | Bridges robot MCU with the onboard Nvidia | +-----------------------------+-----------------------------------------------------------+ | ascento-mid360 | Activates the mid360 lidar | +-----------------------------+-----------------------------------------------------------+ | ascento-3d-odom | Activates 3D Odom and localization | +-----------------------------+-----------------------------------------------------------+ | ascento-webserver | Activate Robot webserver | +-----------------------------+-----------------------------------------------------------+ | ascento-realsense | Actuvates the Intelrealsense D435i Camera | +-----------------------------+-----------------------------------------------------------+ | ascento-fixposition | Activates fixposition GPS | +-----------------------------+-----------------------------------------------------------+ | ascento-battery-status | Displays rviz battery marker | +-----------------------------+-----------------------------------------------------------+ | ascento-jointstate-publisher| Launches joint state publisher for visualization | +-----------------------------+-----------------------------------------------------------+ You can query, start, stop, or restart these services using the following commands: .. code:: bash sudo service {service_name} status sudo service {service_name} start sudo service {service_name} stop sudo service {service_name} restart **Example**: .. code:: bash sudo service ascento-desc status To remove a service: .. code:: bash ros2 run robot_upstart uninstall {service_name} .. important:: If you encounter an error such as `Unit ascento-{service_name}.service could not be found.`, this indicates that the startup service is not installed. **Service Status Markers**: \• **Red Marker**: Indicates the startup job has failed. Restart the service: .. code:: bash sudo service {service_name} restart \• **Green Marker**: Indicates the service is running correctly. \• **Grey Marker**: Indicates the service has not started. To modify the upstart job or add additional ROS launch files, update the main upstart file (`system.launch.py`) in the `ascento_bringup` package. After making changes: .. code:: bash ros2 run ascento_bringup startup_installer.py .. Ascento Visualization .. --------------------- .. To view the robot in the simulation environment: .. .. code:: bash .. ros2 launch ascento_viz view_robot.launch.py .. Ascento Teleoperation .. --------------------- .. **Keyboard Teleoperation**: .. To control the robot using keyboard commands: .. .. code:: bash .. ros2 run teleop_twist_keyboard teleop_twist_keyboard Ascento Simultaneous Localization and Mapping --------------------------------------------- .. figure:: media/pictures/ascento_slam.png :width: 100% :alt: ascento_slam :align: center :class: mbsrounded | SLAM allows the robot to perform simultaneous localization and mapping. Follow these steps to perform SLAM: 1. Ensure the `ascento_bringup` service is running. 2. Launch the SLAM process: .. code:: bash ros2 launch ascento_nav2 slam.launch.py 3. Begin mapping using the teleoperation keyboard at a speed of 0.2 m/s. **Exporting the Map**: Once satisfied with your map, export it using: .. code:: bash cd /opt/mybotshop/src/mybotshop/ascento_nav2/maps ros2 run nav2_map_server map_saver_cli -f map_ **Rebuild the Workspace**: If the map name is not `map_`, rebuild the workspace: .. code:: bash colcon build --symlink-install && source install/setup.bash Finally, source the updated environment: .. code:: bash source /opt/mybotshop/install/setup.bash .. note:: Ensure all dependencies are properly installed and the environment is sourced before running these commands. .. Ascento Advanced Features .. ========================== .. This section covers advanced operations for the Ascento Research Robot, including odometric and map navigation, Fixposition integration, Gazebo simulation, and diagnostics. Ascento Odometric Navigation ---------------------------- .. note:: **Ascento Odometric Navigation** is currently under development. To launch odometric navigation for the robot: .. code:: bash ros2 launch ascento_nav2 odom_navi.launch.py Ascento Map Navigation ---------------------- .. note:: **Ascento Map Navigation** is currently under development. To perform map-based navigation: 1. Ensure a map is generated, saved, and available in the ROS package. 2. Perform a `colcon build` to integrate the map into the workspace. 3. Launch the map navigation: .. code:: bash ros2 launch ascento_nav2 map_navi.launch.py Ascento Fixposition ------------------- To connect to Fixposition: \• Connect to Ascento's Wi-Fi network. \• Open a web browser and navigate to: .. code:: bash http://10.42.0.109 Refer to the `official Fixposition documentation`_ for integration instructions and parameter tuning. .. _official Fixposition documentation: https://docs.fixposition.com/fd/current-firmware-version Ascento ZED2i ------------- To launch the ZED2i camera, use the following command: .. code:: bash ros2 launch ascento_depth_cameras zed2i.launch.py .. note:: This service is currently not operational via systemd; please use the manual command. Ascento Gazebo Fortress ----------------------- .. figure:: media/gifs/ascento_gazebo.webp :width: 100% :alt: ascento_gazebo :align: center :class: mbsrounded | .. note:: **Ascento Gazebo Simulation** is currently under development. The Fortress Gazebo simulation currently does **not** support the high-level Ascento interface. It is intended for use with low-level control, training, and testing. For simulation modifications, refer to the `GZ ROS2 Control`_ documentation. .. _GZ ROS2 Control: https://control.ros.org/humble/doc/gz_ros2_control/doc/index.html#simple-setup Ascento Simulation ------------------ To start the Ascento Fortress simulation: .. code:: bash ros2 launch ascento_gazebo fortress_simulation.launch.py Cleanup After Simulation ------------------------ To clean up the simulation environment after use: .. code:: bash ros2 run ascento_gazebo kill_gz.sh Effort Trajectory Control Example --------------------------------- To send a joint trajectory goal: .. code:: bash ros2 action send_goal /joint_trajectory_controller/follow_joint_trajectory control_msgs/action/FollowJointTrajectory -f "{ trajectory: { joint_names: [ 'ascento/hip_left', 'ascento/hip_right', 'ascento/knee_left', 'ascento/knee_right' ], points: [ { positions: [-2.0, 2.0, 0.0, 6.28], time_from_start: {sec: 2, nanosec: 0} } ] } }" Velocity Control Example ------------------------ To publish velocity commands to the joint velocity controller: .. code:: bash ros2 topic pub -1 /joint_velocity_controller/commands std_msgs/msg/Float64MultiArray "{data: [0.5, -0.5]}" Ascento Intel RealSense D435i ----------------------------- +--------------------------------------------------------+--------------------------------------------------------+ | .. figure:: media/pictures/color_image.png | .. figure:: media/pictures/depth_image.png | | :width: 90% | :width: 90% | | :align: center | :align: center | | :class: mbsrounded | :class: mbsrounded | | | | | Color Image | Depth Image | +--------------------------------------------------------+--------------------------------------------------------+ .. note:: The **D435i** is launched by default through the **Ascento bringup**. Do not re-run the following command unless the `ascento-realsense` service has been stopped. .. code-block:: bash ros2 launch ascento_depth_camera realsense_d435i.launch.py The launch file is pre-configured to enable **continuous depth stream** from the **RealSense D435i** without lag. To modify parameters, edit the configuration file: .. code-block:: bash ascento_depth_camera/launch/realsense_d435i.launch.py Ascento Mid360 LiDAR -------------------- .. note:: The **Mid360 LiDAR** is launched by default through the **Ascento bringup**. Do not re-run the following command unless the `ascento-mid360` service has been stopped. .. code-block:: bash ros2 launch ascento_livox system.launch.py .. figure:: media/pictures/ascento_lidar.png :width: 100% :alt: ascento_lidar :align: center :class: mbsrounded | .. Ascento Fixposition .. ------------------- .. To configure **Fixposition**, connect to **Ascento's WiFi** and open the following address in a web browser: .. .. code:: bash .. http://10.42.0.109 .. This interface allows you to configure **Fixposition export topics** and establish an internet connection for **RTK corrections**. .. For detailed instructions on **tuning and RTK connection**, refer to the `Fixposition documentation`_. .. .. note:: .. The `ascento-3d-odom` service can be disabled and replaced with **Fixposition odometry** if GPS-based odometry is required. .. To stop the `ascento-3d-odom` service, run the following command: .. .. code-block:: bash .. sudo service ascento-3d-odom stop .. .. _Fixposition documentation: https://docs.fixposition.com/fd/current-firmware-version Ascento Data Recording ---------------------- .. important:: The **ROS 2 bag** should be started **before** launching any drivers; otherwise, it will not capture all the data. To store data for **30 minutes**, limited to **1 GB**, use the following command: .. code-block:: bash ros2 bag record -a -b 1000000000 .. Ascento Gazebo Simulation .. ------------------------- .. .. note:: .. **Ascento Gazebo Simulation** is currently under development. .. **Launch Gazebo Simulation**: .. To simulate the robot in Gazebo Fortress: .. .. code:: bash .. ros2 launch ascento_gazebo fortress_simulation.launch.py .. **Teleoperation**: .. Control the robot during simulation with teleoperation: .. .. code:: bash .. ros2 run teleop_twist_keyboard teleop_twist_keyboard .. **Add Custom Models**: .. You can add custom models to Gazebo Ignition as needed. .. **Gazebo GUI Cleanup**: .. If the GUI becomes cluttered, you can reset it: .. .. code:: bash .. cd src/mybotshop/ascento_gazebo/config .. ./kill_gz.sh Ascento Development =================== For **custom controls and interfaces**, refer to the **Ascento SteamDeck ROS 2** package as a reference for development. Ascento Diagnostics ------------------- The **Ascento Diagnostics** system uses different LED colors to indicate various states. The robot's diagnostics are represented by the following color codes: +----------+--------------------------------------------------+ | **Color**| **State** | +==========+==================================================+ | RED | The robot is in an error state. | +----------+--------------------------------------------------+ | WHITE | The robot is operational. | +----------+--------------------------------------------------+ | ORANGE | The robot is in a soft e-stopped state. | +----------+--------------------------------------------------+ | BLUE | The hardware manager is in none of the above | | | states. | +----------+--------------------------------------------------+ .. note:: These diagnostics provide immediate visual feedback on the robot's current status. Ascento Status Commands ----------------------- This section provides commands to monitor the various statuses of the Ascento Research Robot, including IMU, joint states, battery state, diagnostics, and other key metrics. The following commands can be used to echo the respective statuses of the robot: +-------------------------+-------------------------------------------------------------+ | **Status** | **Command** | +=========================+=============================================================+ | IMU | .. code:: bash | | | | | | ros2 topic echo /ascento/imu | +-------------------------+-------------------------------------------------------------+ | Joint States | .. code:: bash | | | | | | ros2 topic echo /ascento/joint_states | +-------------------------+-------------------------------------------------------------+ | Battery State | .. code:: bash | | | | | | ros2 topic echo /ascento/battery_state | +-------------------------+-------------------------------------------------------------+ | Diagnostic Status | .. code:: bash | | | | | | ros2 topic echo /ascento/diagnostic_status | +-------------------------+-------------------------------------------------------------+ | Robot Description | .. code:: bash | | | | | | ros2 topic echo /robot_description | +-------------------------+-------------------------------------------------------------+ | Robot Speed | .. code:: bash | | | | | | ros2 topic echo /ascento/estimator/speed_bias | +-------------------------+-------------------------------------------------------------+ | Current Height | .. code:: bash | | | | | | ros2 topic echo /ascento/estimator/base_height | +-------------------------+-------------------------------------------------------------+ | Motor Homing Status | .. code:: bash | | | | | | ros2 topic echo /ascento/homing_status | +-------------------------+-------------------------------------------------------------+ | Head Light Status | .. code:: bash | | | | | | ros2 topic echo /ascento/headlight_state | +-------------------------+-------------------------------------------------------------+ | Hazard Light Status | .. code:: bash | | | | | | ros2 topic echo /ascento/hazardlight_state | +-------------------------+-------------------------------------------------------------+ | Eyes Status | .. code:: bash | | | | | | ros2 topic echo /ascento/eyes_state | +-------------------------+-------------------------------------------------------------+ .. note:: These commands provide real-time status updates for the respective components of the robot. Use them as needed for diagnostics or monitoring during operation. Ascento Service Commands ------------------------ This section provides service commands to control and configure various features of the Ascento Research Robot. .. important:: Always perform motor homing before initiating the **Standup** command to ensure proper robot alignment. Below is a list of service commands and their purposes: +-------------------------+---------------------------------------------------------------------------------------+ | **Command** | **Description** | +=========================+=======================================================================================+ | **Standup** | Makes the robot stand up. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/standup std_srvs/srv/Trigger {} | +-------------------------+---------------------------------------------------------------------------------------+ | **Head Light** | Turns the headlight on or off. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/headlight_set std_srvs/srv/SetBool "{data: true}" | +-------------------------+---------------------------------------------------------------------------------------+ | **Hazard Light** | Turns the hazard light on or off. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/hazardlight_set std_srvs/srv/SetBool "{data: true}" | +-------------------------+---------------------------------------------------------------------------------------+ | **Eyes State** | Toggles the eyes state on or off. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/eyes_set std_srvs/srv/SetBool "{data: true}" | +-------------------------+---------------------------------------------------------------------------------------+ | **Powercycle Robot** | Restarts the robot power system. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/power_reset std_srvs/srv/Trigger {} | +-------------------------+---------------------------------------------------------------------------------------+ | **Speed Bias Increase** | Increases the robot's speed bias by 0.002 per request. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/speed_bias_increase std_srvs/srv/Trigger {} | +-------------------------+---------------------------------------------------------------------------------------+ | **Speed Bias Decrease** | Decreases the robot's speed bias by 0.002 per request. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/speed_bias_decrease std_srvs/srv/Trigger {} | +-------------------------+---------------------------------------------------------------------------------------+ | **MCU Reboot** | Reboots the robot's MCU. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/reboot_computer std_srvs/srv/Trigger {} | +-------------------------+---------------------------------------------------------------------------------------+ | **Motor Homing Start** | Starts the motor homing process. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/homing_start std_srvs/srv/Trigger {} | +-------------------------+---------------------------------------------------------------------------------------+ | **Motor Homing Cancel** | Cancels the motor homing process. | | | | | | .. code:: bash | | | | | | ros2 service call /ascento/cmd/homing_cancel std_srvs/srv/Trigger {} | +-------------------------+---------------------------------------------------------------------------------------+ .. note:: These commands are critical for controlling the robot's operational features. Ensure the robot is powered on and connected before executing them. Ascento Publish Commands ------------------------ This section provides commands for publishing messages to control and configure various functionalities of the Ascento Research Robot. .. warning:: The **Ascento** operates using a **deep-learning control framework**. Changing the **height** deactivates the **leg lock**, which maintains constant height stability. This makes the robot **more susceptible to falling**. Below is a list of publish commands and their purposes: +------------------------+-----------------------------------------------------------------------------------------+ | **Command** | **Description** | +========================+=========================================================================================+ | **Standard Height** | Sets the robot's base height. | | | | | | Minimum height: 0.3m. Maximum height: 0.8m. | | | | | | .. code:: bash | | | | | | ros2 topic pub /ascento/cmd/base_height_meter_set std_msgs/msg/Float64 "{data: 0.3}" | +------------------------+-----------------------------------------------------------------------------------------+ | **Command Velocity** | Publishes velocity commands to the robot. | | | | | | .. code:: bash | | | | | | ros2 topic pub /ascento/cmd/twist geometry_msgs/msg/Twist | +------------------------+-----------------------------------------------------------------------------------------+ | **Error Clear** | Clears error states of the robot. | | | | | | .. code:: bash | | | | | | ros2 topic pub /ascento/cmd/clear_error std_msgs/msg/Empty {} | +------------------------+-----------------------------------------------------------------------------------------+ | **Hard E-Stop** | Engages or disengages the hard emergency stop. | | | | | | *Engage* | | | | | | .. code:: bash | | | | | | ros2 topic pub /ascento/cmd/hard_estop_set std_msgs/msg/Bool "{data: true}" | | | | | | *Dis-engage* | | | | | | .. code:: bash | | | | | | ros2 topic pub /ascento/cmd/hard_estop_set std_msgs/msg/Bool "{data: false}" | +------------------------+-----------------------------------------------------------------------------------------+ | **Soft E-Stop** | Engages or disengages the soft emergency stop. | | | | | | *Engage* | | | | | | .. code:: bash | | | | | | ros2 topic pub /ascento/cmd/soft_estop_set std_msgs/msg/Bool "{data: true}" | | | | | | *Dis-engage* | | | | | | .. code:: bash | | | | | | ros2 topic pub /ascento/cmd/soft_estop_set std_msgs/msg/Bool "{data: false}" | +------------------------+-----------------------------------------------------------------------------------------+ .. attention:: Ensure that commands for E-Stop and velocity are executed responsibly to avoid unintended robot behavior. .. note:: These commands allow for precise control of the robot during operation. Confirm the robot is connected and powered on before issuing commands. Ascento Installation ==================== This section provides instructions for installing and configuring the Ascento Research Robot software. .. important:: This repository should already be available and built on Ascento's Nvidia board if it has been configured by the MYBOTSHOP Team. Environment Setup ----------------- 1. **Update `.bashrc`** Add the following lines to your `.bashrc` file for automatic ROS2 activation: .. code:: bash # Ascento ROS2 Activation source /opt/ros/humble/setup.bash source /opt/mybotshop/src/mybotshop/ascento_bringup/hooks/setup.bash 2. **Create Workspace Directory** Create the required directory and set ownership: .. code:: bash sudo mkdir /opt/mybotshop sudo chown -R administrator:administrator /opt/mybotshop Repository Setup ---------------- 3. **Clone Repository and Run Installers** Clone the repository to your local machine, copy it to the Ascento PC, and run the installer scripts: .. code:: bash cd /opt/mybotshop/src/mybotshop/ sudo chmod +x ascento_dependencies.sh ./ascento_dependencies.sh cd /opt/mybotshop/src/mybotshop/ascento_webserver sudo chmod +x webserver_installer.sh ./webserver_installer.sh 4. **Build the ROS2 Workspace** Build the workspace and source the environment: .. code:: bash cd /opt/mybotshop colcon build --symlink-install source install/setup.bash Zenoh Configuration ------------------- 5. **Verify Zenoh Version** The required version is `0.11`. Check the installed version: .. code:: bash zenoh-bridge-ros2dds --version 6. **Remove Incorrect Version** If the version is incorrect, remove it: .. code:: bash sudo apt-get remove zenoh-bridge-ros2dds -y 7. **Install Correct Version** Navigate to the appropriate directory and install based on hardware (e.g., Nvidia → `arch64`): .. code:: bash cd /opt/mybotshop/src/mybotshop/ascento_hardware/launch/zenoh/arch64/ sudo dpkg -i zenoh-bridge-ros2dds_0.11.0_arm64.deb 8. **Verify Again** .. code:: bash zenoh-bridge-ros2dds --version 9. **Set Ascento ID** Modify the startup configuration in `ascento_bringup/hooks/` to reflect the correct Ascento number. Final Setup ----------- 10. **Run Startup Installers** .. code:: bash ros2 run ascento_bringup startup_installer.py 11. **Update Hostname** Set the PC name for the robot: .. code:: bash sudo hostnamectl set-hostname ASCENTO-0000 12. **Update Web Interface** Manually update the robot software version in the `index.html` file served by the web interface. .. Ascento Steamdeck Installation .. ============================== .. This section provides instructions for installing and configuring the Ascento Research Robot software on the Steamdeck. .. .. important:: .. The repository should already be pre-installed and built on the Steamdeck if configured by the MYBOTSHOP Team. .. 1. **Clone the Repository** .. Clone the repository, copy it to the Steamdeck, and run the installer script: .. .. code:: bash .. cd && cd /home/deck/ros2_ws/src/mybotshop/ascento_steamdeck .. sudo chmod +x deck_installation.sh .. ./deck_installation.sh .. 2. **Dependency Installation** .. Execute the dependency installer in the `ascento_steamdeck` directory: .. .. code:: bash .. ./deck_installation.sh .. Ensure configuration is aligned with `mbs_resources`. .. 3. **Configure Zenoh** .. Zenoh version 0.11 is required. Follow these steps: .. - **Check Zenoh Version** .. .. code:: bash .. zenoh-bridge-ros2dds --version .. - **Remove Incorrect Version** .. .. code:: bash .. sudo apt-get remove zenoh-bridge-ros2dds -y .. - **Install Correct Version** .. Use the package appropriate for the Steamdeck (AMD architecture): .. .. code:: bash .. cd ros2_ws/src/mybotshop/ascento_hardware/launch/zenoh/amd/ .. sudo dpkg -i zenoh-bridge-ros2dds_0.11.0_amd64.deb .. - **Verify Installation** .. .. code:: bash .. zenoh-bridge-ros2dds --version Ascento External Computer Installation -------------------------------------- This section provides steps for setting up the Ascento software environment on an external computer. 1. Clone and Build the Workspace Clone the `mbs_ascento` package and build it: .. code:: bash colcon build --symlink-install source install/setup.bash 2. Configure Zenoh Zenoh version **0.11** is required. Follow these steps: \• **Check Zenoh Version** .. code:: bash zenoh-bridge-ros2dds --version \• **Remove Incorrect Version** .. code:: bash sudo apt-get remove zenoh-bridge-ros2dds -y \• **Install Correct Version** (Assuming AMD architecture for external computers) .. code:: bash cd ros2_ws/src/mybotshop/ascento_hardware/launch/zenoh/amd/ sudo dpkg -i zenoh-bridge-ros2dds_0.11.0_amd64.deb \• **Verify Installation** .. code:: bash zenoh-bridge-ros2dds --version 3. Environment Configuration (Critical) .. important:: This step is **critical**. Ensure the following environment variables are set in every terminal session. Adjust the `CYCLONEDDS_CONFIG_PATH` according to your system's setup. .. code:: bash export ASCENTO_NS="ascento_0116" # Example configuration path: CYCLONEDDS_CONFIG_PATH=/home/administrator/projects/bipeds/ascento/mbs_ascento/src/mybotshop/ascento_bringup/config/cyclonedds.xml export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp export CYCLONEDDS_URI="${CYCLONEDDS_CONFIG_PATH}" 4. Launch Zenoh and RViz2 \• **Launch Zenoh** .. code:: bash ros2 launch ascento_hardware zenoh.launch.py \• **Launch RViz2** .. code:: bash ros2 launch ascento_viz view_robot.launch.py Access to Ascento PC ==================== This section explains how to access the Ascento PC remotely using VNC. VNC Ascento Startup ------------------- The VNC server is typically started by default. If not, use the following commands to manage it manually: \• **Start VNC Server** .. code:: bash vncserver :1 -geometry 1920x1080 -depth 24 -localhost no \• **Check Running VNC Sessions** .. code:: bash vncserver -list \• **Kill VNC Session** .. code:: bash vncserver -kill :1 && rm -rf /tmp/.X1-lock /tmp/.X11-unix/X1 VNC Remote Startup ------------------ On your remote PC, follow these steps to access the Ascento interface: 1. **Install TigerVNC Viewer** .. code:: bash sudo apt install tigervnc-viewer 2. **Allow VNC Port Through Firewall** .. code:: bash sudo ufw allow 5901/tcp 3. **Connect via VNC** .. code:: bash vncviewer 10.42.0.50:1 Miscellaneous ============= This section includes additional commands and processes to enhance the usage and maintenance of the Ascento Research Robot. Time Synchronization --------------------- 1. **Sync System Time** Use the following command to sync the system time with Google's server: .. code:: bash sudo date -s "$(wget --method=HEAD -qSO- --max-redirect=0 google.com 2>&1 | sed -n 's/^ *Date: *//p')" 2. **Sync Host Computer and Ascento Computer** Synchronize the files between the host computer and the Ascento computer: .. code:: bash rsync -avP -t --delete -e ssh src administrator@10.42.0.50://home/administrator/ros2_ws 3. **Sync Host Computer and Steamdeck** Synchronize the files between the host computer and the Steamdeck: .. code:: bash rsync -avP -t --delete -e ssh src deck@10.42.0.150://home/deck/ros2_ws URDF Conversion ---------------- Convert a Xacro file to a URDF file using the following command: .. code:: bash ros2 run xacro xacro /home/administrator/ros2_ws/src/mybotshop/ascento_description/xacro/robot.xacro > /home/administrator/ros2_ws/src/mybotshop/ascento_description/xacro/ascento.urdf