Husky MÜ

_images/husky_mu.jpg

This specifies the configuration for Husky MU. It has an ouster lidar, reach rs2 gps, nvidia board, ZED2 depth camera, router, and arduino nano that acts as a power relay.

Getting Started

To start-up the Husky, the instructional video playlist can be used which details the opening and use of the Husky.

Connection Scheme

_images/husky_münster_connectivity.png

Auxiliary Sensor Startup

On husky startup the following drivers are started:

  • Husky base driver

  • Power-relay

  • ZED2 camera (+Nvidia board)

The Ouster is powered on as well but the driver has to be manually started (can be automated as explained in Custom Startup Job) to ensure that the husky base driver starts up quickly. The Emlid hardware as well as the driver does not start on startup either (The hardware can be configured to start on startup via the mobile app). Both Emlid and Ouster driver run when either of the following commands are run:

roslaunch mbs_navigation odom_navigation.launch
roslaunch mbs_gps_navigation gps_navigation.launch

Network-Setup

The Husky MU has multiple networks and vary slightly, the following table shows the networks.

Husky-MU network devices

Device

Network Address

Users

Password

Husky

192.168.131.1

administrator

clearpath

Nvidia

192.168.131.2

administrator

clearpath

Emlid

192.168.131.3

N/A

N/A

Ouster

192.168.132.1

N/A

N/A

Router

192.168.131.10

N/A

admin

Multi machine setup

The ROS server side is should be setup on the Husky. So you would require setting up it in your own computer.

# Server PC
export ROS_MASTER_URI=http://192.168.131.1:11311
export ROS_HOSTNAME=192.168.131.1
export ROS_IP=192.168.131.1


# Client PC
export ROS_MASTER_URI=http://192.168.131.1:11311
export ROS_HOSTNAME=192.168.131.124
export ROS_IP=192.168.131.124

To setup multi-machine add the client pc details from the code above to the .bashrc file. The IP 192.168.131.— should be replaced with your IP which can be found out with ifconfig e.g. 124 in this case.

Operation

To use the waypoint navigation and drivers, the following steps must be followed:

  1. Connect to the Husky WiFi.

  2. ssh into the husky via:

$ ssh -X administrator@192.168.131.1
$ clearpath

The following message will show up with quick instructions for startup.

---------------------------------------------------------------------------------------------------------------------------------------------------------

ooo        ooooo oooooo   oooo oooooooooo.    .oooooo.   ooooooooooooo  .oooooo..o ooooo   ooooo   .oooooo.   ooooooooo.                      .oooooo.
`88.       .888'  `888.   .8'  `888'   `Y8b  d8P'  `Y8b  8'   888   `8 d8P'    `Y8 `888'   `888'  d8P'  `Y8b  `888   `Y88.                   d8P'  `Y8b
 888b     d'888    `888. .8'    888     888 888      888      888      Y88bo.       888     888  888      888  888   .d88'      oooo  oooo  888
 8 Y88. .P  888     `888.8'     888oooo888' 888      888      888       `"Y8888o.   888ooooo888  888      888  888ooo88P'       `888  `888  888
 8  `888'   888      `888'      888    `88b 888      888      888           `"Y88b  888     888  888      888  888               888   888  888     ooooo
 8    Y     888       888       888    .88P `88b    d88'      888      oo     .d8P  888     888  `88b    d88'  888               888   888  `88.    .88'
o8o        o888o     o888o     o888bood8P'   `Y8bood8P'      o888o     8""88888P'  o888o   o888o  `Y8bood8P'  o888o              `V88V"V8P'  `Y8bood8P'

Current PC: Husky
---------------------------------------------------------------------------------------------------------------------------------------------------------

Husky IP:   192.168.131.1 (ssh -X administrator@192.168.131.1)
Pswd:       clearpath

Nvidia IP:  192.168.131.2 (ssh -X administrator@192.168.131.2)
Pswd:       clearpath

Emlid IP:   192.168.131.3

Ouster IP:   192.168.132.1

WiFi IP:     192.168.131.10
Pswd:        clearpath

Router Pswd: admin

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

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

Calibrate IMU:    rosrun husky_bringup calibrate_compass

View robot:       roslaunch mbs_viz viz.launch
Nav robot:        roslaunch mbs_viz nav_viz.launch

---------------------------------------------------------------------------------------------------------------------------------------------------------
Power relay
---------------------------------------------------------------------------------------------------------------------------------------------------------

Pwr-relay on:     rosservice call /set_power_status "data: true"
Pwr-relay off:    rosservice call /set_power_status "data: false"

---------------------------------------------------------------------------------------------------------------------------------------------------------
Ouster driver:
---------------------------------------------------------------------------------------------------------------------------------------------------------

Ouster driver:    roslaunch mbs_ouster ouster.launch

---------------------------------------------------------------------------------------------------------------------------------------------------------
Waypoint driver
---------------------------------------------------------------------------------------------------------------------------------------------------------

Odom Navigation driver: roslaunch mbs_navigation odom_navigation.launch
GPS Navigation driver:  roslaunch mbs_gps_navigation gps_navigation.launch

Indoor-Collect waypoints: roslaunch mbs_waypoint_follower indoor_record_waypoints.launch
Indoor-Follow waypoints:  roslaunch mbs_waypoint_follower indoor_follow_waypoints.launch

Outdoor-Collect waypoints: roslaunch mbs_waypoint_follower outdoor_record_waypoints.launch
Outdoor-Follow waypoints:  roslaunch mbs_waypoint_follower outdoor_follow_waypoints.launch

---------------------------------------------------------------------------------------------------------------------------------------------------------
Scroll out for clearer view
---------------------------------------------------------------------------------------------------------------------------------------------------------

For in-depth instructions the 3D-SLAM information is applicable.

Custom Startup Job

The launch file mbs_husky.launch in the catkin package of mbs_husky_startup includes everything which is being launched at the startup. Startup job and its content can be verified in the directory /etc/ros/melodic; here the original launch file will be copied.

Warning

Do not create multiple startup jobs with multiple launch files this will break the system. Only one launch file should be created and everything else should be included in this.

If the systems breaks at startup you can start debugging by:

roslaunch mbs_husky_startup mbs_husky.launch

This will show which part of the launch file is having errors or you can start running everything in the launch file one by one in separate terminals.

Adding ROS-Nodes & Launch Files to Robot Startup

  1. Navigate and open mbs_husky_startup/launch/mbs_husky.launch.

_images/mbs_husky_launch.png
  1. Add your custom node or launch file.

  2. Run the following script:

rosrun mbs_husky_startup startup_script.sh
  1. Verify if it is working correctly via:

sudo service mbs_husky status

Important

Once you add your custom node or launch files in the mbs_husky.launch, you will need to run rosrun mbs_husky_startup startup_script.sh so that it updates the start-up job on the Husky’s PC otherwise it will not be updated.

Ouster

_images/husky_ouster.jpg

To manually launch the ouster driver, the following command can be used:

roslaunch mbs_ouster ouster.launch

ZED2i

_images/husky_zed2.jpg

On the robot start-up the ZED2i camera automatically starts and all its information is published to Husky’s main PC. The information can be verified via:

rostopic list

It may take upto a minute for all the drivers of the Nvidia to start. The main purpose of the Nvidia is to enable the CUDA for ZED2. The stream for the ZED2 is transferred over to the main Husky PC via ROS multi machine. An example stream can be viewed rostopic echo /zed2/zed2_node/rgb/image_rect_color.

Important

The ZED2i requires USB 3.0 port and in the installed Nvidia board there is one available USB 3.0 port. So incase of removal please plug in the ZED2i into the same initial port it was in.

EMLID

_images/husky_emlid.jpg

To start the Emlid Reach RS2 driver separately, run:

roslaunch mbs_utilities reach_rs.launch

Power Relay

_images/HUSKY_TUHH_24V_Power_3D.png _images/HUSKY_TUHH_24V_Power_Board.png _images/HUSKY_TUHH_24V_Power_Board_Schematic.png

The Arduino is activating the 24V DC battery power on the XT60 connector. A 20amps fuse ensures that the cables and the installed electronics are not damaged. The voltage applied to the XT60 connector can vary depending on the battery capacity, since no voltage converter or something similar is integrated. The Arduino is connected to the /dev/ttyUSB0 port.

Warning

The Red/Black 2,5mm2 cable inside the HUSKY, which is going to the 24V External Power Control Box" is always live as the battery power is continuously supplied.

When the robot starts, an Arduino starts which controls a power relay via the main PC in the husky. A startup script starts the communication between the Arduino and the main PC in the husky. To check the status of this module, the following steps are to be performed:

  • We can check the status of the power-relay node via:

sudo service mbs_husky status
  • If the icon is green, it means that the packages have started without any issues.

_images/green_status.jpg
  • In the event of an error, you may restart this startup job via:

sudo service mbs_husky restart
  • Turn on the relay, run the command:

rosservice call /set_power_status "data: true"
  • Turn off the relay, run the command:

rosservice call /set_power_status "data: false"

Attention

An audible click can be heard of the switching relay.