ascento_forward

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.

ascento_transport_two_person

The ethernet port can be used for setting up communication via LAN.

  1. 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.

  2. Verify the Connection:

    • Check the local IP of the host PC:

      ifconfig
      
    • Ping the robot to ensure connectivity:

      ping 10.42.0.50
      
  3. Access the Robot via SSH:

    • Use the following command to connect:

      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 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

Attention

Use these credentials responsibly. Change default passwords where security is critical.

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:

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.

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

cascento_rviz

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-desc

Launches the robot state publisher for visualization.

ascento-zenoh

Bridges the robot MCU with the onboard Nvidia.

ascento-mid360

Activates the mid360 LiDAR.

ascento-desc-re

Launches the joint state publisher for visualization.

ascento-3d-odom

Activates 3D odometry and localization.

ascento-webserver

Activates the robot web server.

ascento-realsense

Activates the Intel RealSense D435i camera.

ascento-utils-root

Activates Steamdeck services.

ascento-fixposition

Activates Fixposition GPS.

ascento-battery-status

Displays RViz battery marker.

You can query, start, stop, or restart these services using the following commands:

sudo service {service_name} status
sudo service {service_name} start
sudo service {service_name} stop
sudo service {service_name} restart

Example:

sudo service ascento-desc status

To remove a service:

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:

    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:

ros2 run ascento_bringup startup_installer.py

Ascento Visualization

To view the robot in the simulation environment:

ros2 launch ascento_viz view_robot.launch.py

Ascento Teleoperation

Keyboard Teleoperation:

To control the robot using keyboard commands:

ros2 run teleop_twist_keyboard teleop_twist_keyboard

Ascento Simultaneous Localization and Mapping

ascento_slam

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:

    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:

cd /home/administrator/ros2_ws/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:

colcon build --symlink-install && source install/setup.bash

Finally, source the updated environment:

source /home/$USER/ros2_ws/install/setup.bash

Note

Ensure all dependencies are properly installed and the environment is sourced before running these commands.

Ascento Odometric Navigation

Note

Ascento Odometric Navigation is currently under development.

To launch odometric navigation for the robot:

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:

    ros2 launch ascento_nav2 map_navi.launch.py
    

Ascento Intel RealSense D435i

_images/color_image.png

Color Image

_images/depth_image.png

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.

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:

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.

ros2 launch ascento_livox system.launch.py
ascento_lidar

Ascento Fixposition

To configure Fixposition, connect to Ascento’s WiFi and open the following address in a web browser:

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:

sudo service ascento-3d-odom stop

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:

ros2 bag record -a -b 1000000000

Asento Gazebo Simulation

Note

Ascento Gazebo Simulation is currently under development.

Launch Gazebo Simulation:

To simulate the robot in Gazebo Fortress:

ros2 launch ascento_gazebo fortress_simulation.launch.py

Teleoperation:

Control the robot during simulation with teleoperation:

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:

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

ros2 topic echo /ascento/imu

Joint States

ros2 topic echo /ascento/joint_states

Battery State

ros2 topic echo /ascento/battery_state

Diagnostic Status

ros2 topic echo /ascento/diagnostic_status

Robot Description

ros2 topic echo /robot_description

Robot Speed

ros2 topic echo /ascento/estimator/speed_bias

Current Height

ros2 topic echo /ascento/estimator/base_height

Motor Homing Status

ros2 topic echo /ascento/homing_status

Head Light Status

ros2 topic echo /ascento/headlight_state

Hazard Light Status

ros2 topic echo /ascento/hazardlight_state

Eyes Status

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.

ros2 service call /ascento/cmd/standup std_srvs/srv/Trigger {}

Head Light

Turns the headlight on or off.

ros2 service call /ascento/cmd/headlight_set std_srvs/srv/SetBool "{data: true}"

Hazard Light

Turns the hazard light on or off.

ros2 service call /ascento/cmd/hazardlight_set std_srvs/srv/SetBool "{data: true}"

Eyes State

Toggles the eyes state on or off.

ros2 service call /ascento/cmd/eyes_set std_srvs/srv/SetBool "{data: true}"

Powercycle Robot

Restarts the robot power system.

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.

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.

ros2 service call /ascento/cmd/speed_bias_decrease std_srvs/srv/Trigger {}

MCU Reboot

Reboots the robot’s MCU.

ros2 service call /ascento/cmd/reboot_computer std_srvs/srv/Trigger {}

Motor Homing Start

Starts the motor homing process.

ros2 service call /ascento/cmd/homing_start std_srvs/srv/Trigger {}

Motor Homing Cancel

Cancels the motor homing process.

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.

ros2 topic pub /ascento/cmd/base_height_meter_set std_msgs/msg/Float64 "{data: 0.3}"

Command Velocity

Publishes velocity commands to the robot.

ros2 topic pub /ascento/cmd/twist geometry_msgs/msg/Twist

Error Clear

Clears error states of the robot.

ros2 topic pub /ascento/cmd/clear_error std_msgs/msg/Empty {}

Hard E-Stop

Engages or disengages the hard emergency stop.

Engage

ros2 topic pub /ascento/cmd/hard_estop_set std_msgs/msg/Bool "{data: true}"

Dis-engage

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

ros2 topic pub /ascento/cmd/soft_estop_set std_msgs/msg/Bool "{data: true}"

Dis-engage

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

The repository should already be pre-installed and built on Ascento’s Nvidia board if it has been configured by the MYBOTSHOP Team.

  1. Clone the Repository

    Clone the repository and copy it to the Ascento’s PC. Then, run the installer script:

    cd && cd ros2_ws/src/mybotshop/
    sudo chmod +x ascento_dependencies.sh
    ./ascento_dependencies.sh
    
  2. Build the ROS2 Workspace

    Build the workspace and set up the environment:

    cd && cd ros2_ws
    colcon build --symlink-install
    source install/setup.bash
    
  3. Update `.bashrc`

    Add the following lines to your .bashrc file for automatic sourcing (replace existing Humble or Noetic configurations if needed):

    source /opt/ros/Humble/setup.bash
    source /home/$USER/ros2_ws/src/ascento_bringup/config/setup.bash
    
  4. Configure Zenoh

    Ensure Zenoh version 0.11 is installed and correctly configured:

    • Check Zenoh Version

      zenoh-bridge-ros2dds --version
      
    • Remove Incorrect Version

      sudo apt-get remove zenoh-bridge-ros2dds -y
      
    • Install Correct Version

      Use the appropriate package based on the hardware (Steamdeck -> AMD, Nvidia -> ARM64):

      cd ros2_ws/src/mybotshop/ascento_hardware/launch/zenoh/arch64/
      sudo dpkg -i zenoh-bridge-ros2dds_0.11.0_arm64.deb
      
    • Verify Installation

      zenoh-bridge-ros2dds --version
      
  5. Run Startup Installers

    Run the following commands to complete the setup:

    ros2 run ascento_bringup startup_installer.py
    ros2 run ascento_bringup startup_root_installer.py
    

Ascento External Computer Installation

  1. Clone and Build

    Clone the mbs_ascento package and build it:

    colcon build --symlink-install
    source install/setup.bash
    
  2. Configure Zenoh

    Ensure Zenoh version 0.11 is installed. Follow the same steps as above to install the correct version.

  3. Environment Configuration

    Important

    This Step is critical. Ensure the following configurations are exported to every terminal in use, adjusting the configuration path as necessary.

    export ASCENTO_NS="ascento_0110"
    
    PACKAGE_NAME="ascento_bringup"
    CYCLONEDDS_CONFIG_PATH=/home/administrator/salman_work/bipeds/ascento/mbs_ascento/src/mybotshop/$PACKAGE_NAME/config/cyclonedds.xml
    export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
    export CYCLONEDDS_URI="${CYCLONEDDS_CONFIG_PATH}"
    
  4. Launching Zenoh and RViz2

    • Launch Zenoh

      ros2 launch ascento_hardware zenoh.launch.py
      
    • Launch RViz2

      ros2 launch ascento_viz view_robot.launch.py
      

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:

    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:

    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:

    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:

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