Husky PTB

_images/hh.png

This specifies the configuration for Husky PTB. It has an Phidgets IMU, Ouster & 2x Hokuyo lidar.

Getting Started

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

Auxiliary Sensor Startup

On husky startup the following driver is started:

  • Husky base driver

The Ouster and two Hokuyo sensors are powered on, but the driver must be initiated manually (automation details provided in the Custom Startup Job) to ensure a swift startup of the Husky base driver.

Both Hokuyo and Ouster driver run when the following commands are run:

roslaunch hsky_lidars lidars.launch

Network-Setup

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

Husky-PTB network devices

Device

Network Address

Users/Name

Password

Husky

192.168.131.1

administrator

mybotshop

Hokuyo Front

192.168.131.20

admin

N/A

Hokuyo Rear

192.168.131.21

N/A

N/A

Ouster

192.168.131.23

N/A

N/A

Router IP

192.168.131.100

admin

Admin123

Router

192.168.131.100

Husky-A200-0987-2.4G

mybotshop

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
mybotshop

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

-------------------------------------------------------------------------------
            .-/+oossssoo+/-.               root@ubuntu
        `:+ssssssssssssssssss+:`           -----------
    -+ssssssssssssssssssyyssss+-         OS: Ubuntu 20.04.6 LTS aarch64
    .ossssssssssssssssssdMMMNysssso.       Host: Jetson AGX Orin Developer Kit
/ssssssssssshdmmNNmmyNMMMMhssssss/      Kernel: 5.10.120-tegra
+ssssssssshmydMMMMMMMNddddyssssssss+     Uptime: 38 mins
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/    Packages: 2917 (dpkg)
.ssssssssdMMMNhsssssssssshNMMMdssssssss.   Shell: bash 5.0.17
+sssshhhyNMMNyssssssssssssyNMMMysssssss+   Terminal: run-parts
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   CPU: ARMv8 rev 1 (v8l) (8) @ 1.728GHz
ossyNMMMNyMMhsssssssssssssshmmmhssssssso   Memory: 2354MiB / 62800MiB
+sssshhhyNMMNyssssssssssssyNMMMysssssss+
.ssssssssdMMMNhsssssssssshNMMMdssssssss.
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/
+sssssssssdmydMMMMMMMMddddyssssssss+
/ssssssssssshdmNNNNmyNMMMMhssssss/
    .ossssssssssssssssssdMMMNysssso.
    -+sssssssssssssssssyyyssss+-
        `:+ssssssssssssssssss+:`
            .-/+oossssoo+/-.

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

-------------------------------------------------------------------------------
Network Configuration
-------------------------------------------------------------------------------
Interface: lo
IPv4 Address: 127.0.0.1/8
IPv6 Address: ::1/128

Interface: dummy0
IPv4 Address:
IPv6 Address:

Interface: eth0
IPv4 Address: 192.168.131.2/24
IPv6 Address: fe80::344d:5c52:9e25:614c/64

Interface: wlan0
IPv4 Address: 192.168.0.200/24
IPv6 Address: fe80::f742:483:8d7f:d6c0/64

Interface: l4tbr0
IPv4 Address:
IPv6 Address:

Interface: rndis0
IPv4 Address:
IPv6 Address:

Interface: usb0
IPv4 Address:
IPv6 Address:

Interface: docker0
IPv4 Address: 172.17.0.1/16
IPv6 Address:

Internet Status: Connected
DNS Servers: Servers:
192.168.0.1
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
    _  _  _  _  ____   __  ____  ____  _  _   __  ____
    ( \/ )( \/ )(  _ \ /  \(_  _)/ ___)/ )( \ /  \(  _ \
    / \/ \ )  /  ) _ ((  O ) )(  \___ \) __ ((  O )) __/
    \_)(_/(__/  (____/ \__/ (__) (____/\_)(_/ \__/(__)

-------------------------------------------------------------------------------
Current PC: Nvidia
-------------------------------------------------------------------------------

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

Hokuyo F IP: 192.168.131.20
Hokuyo R IP: 192.168.131.21
Ouster IP:   192.168.131.23

Router IP:   192.168.131.100
Router Pswd: mybotshop
login:       admin
Pswd:        Admin123

-------------------------------------------------------------------------------
Husky Startup
-------------------------------------------------------------------------------

HSKY status:      sudo service hsky status
HSKY start:       sudo service hsky start
HSKY stop:        sudo service hsky stop
HSKY restart:     sudo service hsky restart

Rviz:             roslaunch hsky_viz view_robot.launch
Ouster + Hokuyo:  roslaunch hsky_lidars lidars.launch   (Default off)
SLAM:             roslaunch hsky_navigation slam.launch.py
Map Navi:         roslaunch hsky_navigation map_navi.launch.py
Odom Navi:        roslaunch hsky_navigation odom_navi.launch.py

Rebuild package: catkin build --cmake-args -DCMAKE_BUILD_TYPE=Release

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

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

Important

Please be aware to operate the Husky with a fully charged battery; otherwise, low battery power may lead to the reset of the WiFi due to insufficient power. In case of any errors, please execute sudo service hsky restart.

Custom Startup Job

The launch file system_startup.launch within the catkin package hsky_startup encompasses everything launched at startup. The startup job and its contents can be verified in the directory /etc/ros/noetic, where the original launch file will be copied.

Warning

Avoid creating multiple startup jobs with different launch files, as this may lead to system instability. It is recommended to have only one launch file that includes all the necessary components.

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

roslaunch hsky_startup system_startup.launch

This will indicate the specific section of the launch file that is encountering errors. Alternatively, you can run each component individually from the launch file in separate terminals to identify and address any issues.

Adding ROS-Nodes & Launch Files to Robot Startup

  1. Navigate and open hsky_startup/launch/system_startup.launch.

_images/launch.png
  1. Include your custom ROS node or launch file. Please note that the image may differ, but the procedure remains the same.

Attention

An optional step is to launch the file to test if everything is working via: roslaunch hsky_startup system_startup.launch

  1. Run the following script:

rosrun hsky_startup startup_installer.py
  1. Verify if it is working correctly via:

sudo service hsky status

Important

After incorporating your custom node or launch files into the system_startup.launch, execute the command rosrun hsky_startup startup_installer.py to ensure the startup job on the Husky’s PC is updated; otherwise, it will not be applied.

Ouster

_images/husky_mi_ouster.jpg

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

roslaunch hsky_lidar ouster.launch.xml

Hokuyo

_images/hokuyo.png

To manually launch the Hokuyo driver, the following command can be used.

For front Hokuyo:

roslaunch hsky_lidar hokuyo_front_lidar.launch.xml

For Rear Hokuyo:

roslaunch hsky_lidar hokuyo_rear_lidar.launch.xml

Note

The Hokuyo and Ouster lidar drivers are not launched automatically with the “odom_navigation” and “gps_navigation” launch files. Therefore, you must manually launch the lidar drivers first.

Autonomous Navigation

Odom Navigation

One can easily initiate basic navigation using the attached phidgets odometry of the husky by executing the command:

roslaunch hsky_navigation odom_navigation.launch

This command lets you navigate the robot in the global frame of map

Map Navigation

To initiate map-based navigation, the process involves mapping the environment first, followed by waypoint navigation. Here are the steps to achieve this:

  • Start creating a map by executing the SLAM navigation command:

roslaunch hsky_navigation slam.launch
  • Simultaneously, in a separate terminal, launch the visualization command to observe the map being constructed:

roslaunch hsky_viz view_robot.launch
  • Utilize the joystick controller to navigate and create the map. Once satisfied with the map, export it using this command in one of the husky’s terminals:

rosservice call /slam_toolbox/serialize_map "filename: '$(rospack find hsky_navigation)/maps/custom_map'"
  • Save map for Adaptive Monte Carlo (AMCL) and/or for Zone Restriction

rosrun map_server map_saver -f "$(rospack find hsky_navigation)/maps/zone_map"
  • Save slam_toolbox as well as zone map

rosservice call /slam_toolbox/serialize_map "filename: '$(rospack find hsky_navigation)/maps/custom_map'" && rosrun map_server map_saver -f "$(rospack find hsky_navigation)/maps/zone_map"
  • After saving the map, rebuild the packages to incorporate the new map:

catkin build ros_ws
  • Upon successful rebuilding, in one terminal, launch the map navigation command to load the saved map:

  • Insert the address

wss://192.168.0.45:8765

After this you should be able to visualize and navigate the robot using foxglove web tool. - Finally, in a separate terminal, execute the visualization command to visualize and control the robot via rviz:

roslaunch hsky_viz view_robot.launch

Husky Demo

To visualize and navigate the Husky using an online web server, please adhere to the steps outlined below:

Initiate the demo launch file by executing the following command in the terminal. This launch file manages the initialization of lidars, web tools, and navigation.

roslaunch hsky_demo system.Launch

Ensure that the launch file is executed successfully without encountering any errors before proceeding to the next step, as detailed below.

Usage on same network with Google Chrome

  • Get server PCs IP i.e. pc that is running the demo which in our case is husky

ifconfig
  • now on your pc go to that address(server pc)

https://(Server IP):8765
  • It will show as a unsafe page,click advanced and accept the vulnerability for the communication to be established

  • Goto goxglove webpage on google chrome.

  • Insert the address

wss://192.168.0.45:8765

After this you should be able to visualize and navigate the robot using foxglove web tool.

studio.foxglove.dev
  • Insert the address

wss://192.168.0.45:8765

After this you should be able to visualize and navigate the robot using foxglove web tool.