[Quick Guide] HUSKY-EMLID-LIVOX-Zed2i-ROS2

HUSKY-EMLID-LIVOX-Zed2i-ROS2

This post is a quick and compact guide for working with Husky (ROS2).

Husky Informative Links

Quick Start

The robot is turned on via the power button, and the start-up of the Husky with the Livox and Zed2i may take up to a minute to start. The green light indicates that the MCU has successfully started and connect to the onboard Mini ITX PC and is now able to receive commands from the on-board PC.

Depending on the configuration of the Husky, auxiliary sensors software drivers such as LiDar may start with the robot but often do not run as disconnection or damage of the wire of the sensor can cause the robot to not startup. In this case, this Husky is installed with an Nvidia PC and the Livox lidar and Zed2i both start on boot-up.

For software remote connection, the robot may be be accessed via the onboard WiFi router by connecting to the SSID Husky-A100-***-5G and providing the password mybotshop.

Once connected, you can SSH into the robot which would provide the information

--------------------------------------------------------------------------------------
                _  _  _  _  ____   __  ____  ____  _  _   __  ____       
               ( \/ )( \/ )(  _ \ /  \(_  _)/ ___)/ )( \ /  \(  _ \     
               / \/ \ )  /  ) _ ((  O ) )(  \___ \) __ ((  O )) __/     
               \_)(_/(__/  (____/ \__/ (__) (____/\_)(_/ \__/(__)      
     
--------------------------------------------------------------------------------------
Current PC: Husky 
--------------------------------------------------------------------------------------

Husky IP:     192.168.131.1 
Pswd:         clearpath
SSH:          ssh -X administrator@192.168.131.1

Router IP:    192.168.131.100
Wifi Pswd:    mybotshop
Site User:    admin
Site Pswd:    Mybotshop2023

Nvidia IP:    192.168.131.3
Pswd:         clearpath
SSH:          ssh -X administrator@192.168.131.3
 
Livox IP:     192.168.131.2

GPS Rover IP: 192.168.2.15 (USB)
Pswd:         emlidreach    

--------------------------------------------------------------------------------------
Husky-Drivers
-------------------------------------------------------------------------------------- 

Husky status:    sudo service mbs_startup status
Husky start:     sudo service mbs_startup start
Husky stop:      sudo service mbs_startup stop
Husky restart:   sudo service mbs_startup restart

Update startup:  ros2 run mbs_startup startup_installer.py 

View robot:      ros2 launch mbs_viz view_robot.launch.py
Teleop robot:    ros2 run teleop_twist_keyboard teleop_twist_keyboard

--------------------------------------------------------------------------------------
Auxiliary Drivers
-------------------------------------------------------------------------------------- 

Relay driver:    [Runs on startup]
On relay:        ros2 service call /activate_relay std_srvs/srv/SetBool data:\ true
Off relay:       ros2 service call /activate_relay std_srvs/srv/SetBool data:\ false 


Emlid driver:    ros2 run reach_rs launch_reach_rs  
--------------------------------------------------------------------------------------

Husky Static Network Connection

To create a static connection in your own PC (not the Husky), in Ubuntu go to Settings → Network then click on + and create a new connection.

  1. The first task is to go to IPv4 and change the connection to manual.

  2. The second task is to put the Address IP as 192.168.131.52 (may differ from robot to robot) and the Netmask as 24.

Click save and restart your network. Next is to open up the Husky as shown, and connect the LAN cable to the robot.

After a successful connection let’s check the host’s local IP by typing in the Host PC’s terminal.

ifconfig

This should show the host IP which was assigned in the above step. Now its time to check if we can ping the robot or not, to do so type in your host pc

ping 192.168.131.1

After a successful ping, it’s time to access the robot. To access the robot you can type the following command:

ssh -X administrator@192.168.131.1

The password is

clearpath

Note: incase you cannot ping the husky the ssh client may be missing in your pc. It can be installed via sudo apt-get install openssh-server

Husky Screen Connection

An alternative for connecting to the Husky is by plugging in an HDMI cable as well as a mouse and keyboard. This can be done for either the main PC or the Nvidia PC.

Husky PC DHCP

The procedure is simply to go to your networks and add your WiFi. Then in the terminal type:

ifconfig

The IP that comes with the initial characters of wl is your WiFi’s IP. e.g. wlps0. With this IP you can SSH to your robot.

ssh -X administrator@192.168.0.228

192.168.0.228 is just an example of this. IP is taken from the ifconfig.

clearpath

However, this version of the Husky has a router attached for which one may connect by selecting the SSID of

Husky-A100-****-5G

or

Husky-A100-****-2.4G

The password for both is:

mybotshop

Network

Network configuration for the robot is.

Device Network Password
Main PC 192.168.131.1 clearpath
Livox Lidar 192.168.131.2 -
Nvidia PC 192.168.131.3 clearpath
Router 192.168.131.100 mybotshop
GPS 192.168.2.15 -

Husky Software

The Husky drivers configured by MYBOTSHOP are located in the ros_ws. In the src folder, the third_party contains the drivers for the Husky as well as any auxiliary sensors such as the Livox Lidar, Zed2i camera, Reach RS2 GPS, Lordmicrostrain IMU.

For a configuration of auxiliary sensors, the following link provides useful information even for ROS2, especially for navigation. As requirements vary from user to user, the setup has been left as default and the users can specify their own parameters in their own custom package.

Start-up Job

The start-up job is available for both the main pc as well as the Nvidia pc. In the main pc the startup job launches three main items:

  1. Husky base drivers
  2. Lordmicrostrain IMU
  3. 24V Relay switch

As for the Nvidia pc two items are launced on start-up.

  1. Livox Lidar
  2. Zed2i Camera

For both PC’s, the launch file driver.launch.py in the ros_ws package of mbs_startup/mbs_nvidia_startup includes everything which is being launched at the startup. The startup job and its content can be verified in the directory /etc/ros/foxy, here the original launch file will be copied.

sudo service mbs_startup status

The red marker in the service indicates that the startup job has failed. Green indicates everything is operating correctly. Grey indicates that the service has not started yet. In case of red or grey marker, you may restart the service via:

sudo service mbs_startup restart

The default ROS2 Domain ID is 0 for both the Main PC and the Nvidia PC. New launch files and nodes can be added to the startup job by inserting them into the driver.launch.py launch file for both PC’s startup. Once added Run the following in ros_ws.

cd && cd ros_ws
colcon build
source install/setup.bash
ros2 run mbs_startup startup_installer.py

It should now run with the updated additions.

EMLID Reach RS2

For the Emlid Reach RS2, the ROS1 driver has been ported to ROS2. To run it:

ros2 run reach_rs launch_reach_rs  

Livox Lidar

The Lidar drivers are started automatically on start-up. Configuration is available in the src/third_party/livox_ros_driver2/config/HAP_config.json file.

Zed2i

For the Zed2i, an onboard Nvidia Graphics card is installed. The drivers are commonly built and provided in the third_party in the ros_ws. If you have dis-plugged the camera, be sure to re-attach it USB3.0 otherwise it does not detect the camera. Instructions for use are given in:

Lordmicrostrain IMU

The provided Husky has a lordmicrostrain IMU integrated into it. The parameters for odometry can be tuned in the folder ros_ws/src/mbs/mbs_core/mbs_control/config/localization.yaml. Furthermore, to change the parameters of the IMU itself, it can be done via ros_ws/src/mbs/mbs_core/mbs_control/config/microstrain.yaml.

Be aware changing the ENU frame will cause disruption to the Husky’s orientation. It is recommended not to change the parameters without a backup and without expert supervision.

24V Relay

The 24V relay is controlled by an Arduino Nano ATMEGA328P connected to the main PC. The driver boots on startup with the main driver. By default the relay is switched off. To turn it on run:

ros2 service call /activate_relay std_srvs/srv/SetBool data:\ true 

To turn it off:

ros2 service call /activate_relay std_srvs/srv/SetBool data:\ false

Issues

In case of any issues please first try restarting the service of the robot via:

sudo service mbs_startup restart

Incase of questions please contact support@mybotshop.de. For issues related to the software please attach a ros2 bag e.g.

ros2 bag record -a