Skip to main content

Panther Manual

Overview

Autonomous, mobile robot (AMR) platform dedicated to an outdoor environment. Compliant with an IP54 or IP66 rate of protection. Depending on the use case, it can be equipped with a robot arm, LIDAR, RGB-D camera, GPS, UWB, and other equipment. It can be used in various application areas, such as agriculture, construction, inspection, and many more.

Looking for a quick start guide?
danger

Before the First Use

We know that you would really like to Quick start with Panther now, but your safety is the most important thing.

A Brief Safety Information

  1. Please read the Safety Instructions first.
  2. If you are not sure how something works, please read the manual.
  3. Please remember that the Emergency Button is available on the robot (a mechanical one) and in the software one (accessible from WebUI and Gamepad). Still, in some cases, you may not be able to use them quickly enough to stop the robot before causing damage.
  4. A detailed description of the safety features is available in the Safety section.

Hardware Guide

Specification

Basic Parameters (with WH01 wheels option and a single Battery)

NameValueNameValue
length809 mmwidth848 mm
platform height356 mmweight55 kg
overall height370 mmprotection indexIP54 / IP66
wheelbase440 mmoperating temperature-20°C to 50°C
track of wheels695 mmstorage temperature-20°C to 50°C
maximum ground clearance155 mmcharging temperature0°C to 45°C
minimum ground clearance138 mmbattery typeLi-Ion 36 V

Traction Parameters (with WH01 wheels)

NameValueNameValue
max speed2 m/smaximum carrying capacity100 kg
hill climb grade96% (44°)nominal shaft torque34.5 Nm
climb grade with 50kg cargo90% (42°)maximum shaft torque60 Nm
climb grade with 80kg cargo60% (31°)nominal total traction force725 N
hill grade traversal80% (39°)maximum total traction force1511 N

Great traction, large ramp angles, and high stability are ensured by the low center of gravity, located very close to the center of the robot. Details can be found in the files attached in the section Docs And Link.

International Protection Rating

The platform is offered in two variants of the protection class. The basic variant is dedicated to moderate indoor and outdoor conditions, with a rating of IP54. The upgraded variant is dedicated to an extremely demanding work environment with a rating of IP66. Sales details such as price, lead time, and other conditions are available in the store. More details are also in the Panther Options document.

Specification of given ratings:

ClassSolidFluid
IP54dust protectedprotection against splashes of water from any direction
IP66dust-tightprotection against strong water jets (100 l / min) poured on the housing from any side

Components

ComponentQuantityDescription
Built-in Computer1Raspberry Pi 4B with Broadcom BCM2711 processor, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz and 4GB LPDDR4 RAM. Used to manage all the basic functions of a mobile platform.
User Computer*1Intel NUC10i7FNKN or Lenovo ThinkStation P360 Tiny with Nvidia T1000 graphics card. See Panther Options for details.
Router1Teltonika RUTX11 - Dual-band (2.4 GHz / 5 GHz), Access Point / Client Mode, 4G LTE CAT 6, Bluetooth 4.0 LE, GNSS (GPS, GLONASS, BeiDou, Galileo and QZSS) - This multifunctional device ensures reliable external wireless communication and Ethernet link between internal components of the robot system. More details.
Antenna2Dual-band (2.4 GHz / 5 GHz) placed on the rear of the robot. See all Panther Options.
IMU (Inertial Measurement Unit)1PhidgetSpatial 3/3/3 Basic (3-axis compass, a 3-axis gyroscope, and a 3-axis accelerometer). More details.
Front and Rear Bumper Lights2Signal lighting made of 46 pcs. APA102C LED chips built into an aluminum profile on the robot's bumpers.
Brushless Motor with planetary gearbox480PMB800K.80RBL-100 - Drive implemented on 4 durable motors with 473 watts of power (900 W instantaneous power) each and planetary gears with a maximum torque of 60 Nm allows the robot to move at a speed of 2 m/s even uphill with a slope of 40% with a load of 50 kg.
Additional kits**Together with the robot, you can get an integrated lidar, depth camera, manipulator, and more. See all Panther Options
*NUMBER OF USER COMPUTERS

By default, there is only up to one User Computer in the robot. For detailed information, see Panther Options.

**MOUNTING OF EXTERNAL MODULES

Most of the external modules are attached to the profiles on the top of the platform. More details.

Communication

Available as standard

  • Ethernet
  • USB
  • Wi-Fi (2.4GHz & 5GHz)

Possible to extend

  • LTE
  • GNSS (including GPS)
  • CAN
  • RS232
  • RS485

See all at Panther Options.

Block Diagram

Graphic representation of Panther components and connections between them. A full, more detailed version of the block diagram can be found in the Docs and Links chapter.

Rear Panel Description

On the Rear Panel of the robot, there are:

  • Power controls for the robot - two-position Battery Switch and Power Button.
  • USB connection (by default used for Gamepad).
  • Emergency Button.
  • And the robot's Charging Socket.
Rear Panel OverviewRear Panel Overview

Battery Switch

The Battery Switch is used to cut off the Battery voltage from the robot's electrical circuits. Use this switch for long-time storage and shipping. In the event of a robot malfunction, setting the Battery Switch to the OFF position will turn off the robot immediately, without waiting for the operating system to shutdown.

Battery Switch positionKnob positionPower state
OFFleftbattery disconnected
ONrightbattery connected
DATA LOSS

Cutting off power using the Battery Switch may cause data loss on the Built-in Computer as well as on User Computers.

danger

Cutting off power by putting the Battery Switch in the OFF position is NOT the same as taking out the Battery. When it is necessary to interfere with the internal components of the robot, it is important to remove the Battery from the robot first!

Power Button and Status LED

Power Button action is triggered with a press and hold of the button for 1 second.

Battery Switch positionRobot statusPower Button action
OFFpowered OFFno action
ONpowered OFFpower ON
ONpowered ONinitialize shutdown

The Power Button is equipped with an LED that indicates the robot's status:

LED stateStatus of the robot
ONpowered on
blinkingshutting down
OFFpowered off
SHUTDOWN TIMEOUT

When the Power Button is blinking the shutdown process is ongoing. Normally the button should stop blinking after about 10 to 20 seconds. The robot is waiting for the Built-in Computer to indicate a graceful shutdown. In case of an error of Built-in Computer hardware logic will timeout after 140 seconds and cut off the power anyway.

CONFIGURING GRACEFUL SHUTDOWN

The behavior of the robot after pressing the Power Button can be modified to suit your needs. See Panther Manager for more information.

Emergency Button

The Emergency Button is connected directly to the Emergency Management Unit, and it is one of the inputs triggering the E-stop signal. Pushing it runs several actions on the robot. There is a possibility to program the behavior of the platform in emergency situations, however, the default actions are:

  • Activate the E-stop signal and latch it.
  • Actively brake the robot using motors.
  • Toggle an SPDT relay (external E-stop output).

You can read more about the E-stop in the chapter Safety.

USB For The Gamepad

There is an EDAC 690-W04-260-014 connector, which provides a direct USB connection to the Built-in Computer. It is dedicated to connecting the Logitech F710 Pad with a modified waterproof USB receiver, but the port can be used to connect any USB 2.0 device to the computer. Information on how to use the Gamepad with the robot can be found in the chapter Controlling Panther Robot.

Charging Socket

There is a Weipu SP2112/S7 connector mounted on the Rear Deck of the robot with a waterproof cap. The necessary details on charging can be found in the chapter Charging Panther.

Battery & Charging

Battery

The Panther power supply is available with a couple of options for easily swappable battery packs. While purchasing the platform, you can choose the basic 720 Wh Battery (BAT01) or the doubled version of 1440 Wh (BAT02). Read more about it in the section Panther Options.

The Battery packs are made of Lithium-Ion cells with a rated voltage of 36 V and 20 Ah or 40 Ah capacity, which gives the Panther enough energy to move around in demanding terrain and perform calculations for about 3.5 hours in the standard version and 7 hours in the doubled version. Moving the robot in friendly terrain allows for a significant extension of the robot's working time, up to 8 hours (standby time up to 40 hours) for the single Battery variant. You can check more specific information about Panther power consumption calculated for the basic version of the Battery.

When the Battery level is low, the Bumper Lights display this status through two distinct animations that are shown periodically. If the Battery level drops below 40% (36 volts), the bumper light displays an animation of two orange stripes moving toward the center. If the Battery level drops below 10% (33 volts), an animation consisting of two red stripes moving towards the center is displayed.

For more information about the Bumper Lights, please see the Panther Lights and Bumper Lights sections, respectively.

Battery parameterValue for BAT01Value for BAT02
battery capacity720 Wh1440 Wh
runtime3.5 h - 8 h7 h - 16 h
standby time40 h80 h
total output power1.0 kW2.0 kW
maximum peak power1.8 kW3.2 kW

Battery Swap

To remove, insert, or replace the Battery, you require access to the User Compartment. You will learn how to do it in the chapter User Compartment.

The Battery is attached to the inner walls of the robot with DIN 912 M5x12 bolts (4 mm Allen key). After removing the bolts (2 pcs for BAT01 and 4 pcs for BAT02) holding the Battery in place, slide the Battery out of the electrical connector by sliding the package towards the front of the robot by approximately 10 mm. After that, the Battery can be lifted by the handle located on its upper surface.

There are retaining pins pointing out of the Battery, be careful not to damage the seal on the surface of the robot. The Battery is heavy and can damage electronics and wires placed on the User Shelf if not lowered carefully. After lowering (1) the Battery to the bottom of the User Compartment, slide it towards the right side (2) of the robot and then along this wall to the rear (3) of the robot. The locating pins should finally position the Battery, which will slide smoothly into the power socket. The bolts holding the Battery in place should be tightened to a torque of 4 Nm. The steps described above are marked in the figure below.

Charging Panther

In the set with the robot, we provide a dedicated Charger, which can charge the robot to 80% in 4 hours, and to 100% in 7 hours. The dedicated Charger can be connected directly to the robot's Charging Socket on its housing. There are two types of chargers available. For BAT01 (single Battery) and BAT02 (double Battery) options. On the top of the Chargers, there are LED indicators. If all of them are green, that means the Battery is fully charged or not connected. When at least one LED is red, that means the Battery is charging.

CHARGING TIME

The charging time for the double Battery (BAT02) should be very close to the single Battery (BAT01). This is possible due to the dedicated Dual Charger for BAT02.

Parameter nameSingle Charger (for BAT01)Dual Charger (for BAT02)
input voltage range100 - 240 V AC100 - 240 V AC
input voltage frequency50 - 60 Hz50 - 60 Hz
max input current2.5 A5 A
max output voltage42 V42 V at two channels
max output current5 A2x 5 A
charging robot with BAT01 optionyesyes
charging robot with BAT02 optionnoyes
DRIVING THE ROBOT WHILE CHARGING

It is forbidden to drive the robot during the charging process!

LEAVING THE ROBOT CHARGING

Please do not leave the Charger connected to the robot after the charging process is completed (the green LED(s) are ON).

MAINTAINING THE LONG BATTERY LIFE

To maintain the long battery life, it is recommended not to charge the robot for long periods while it is being used (turned on).

Mounting Rails

Sensors, equipment, and payloads can be attached to the profiles on top of the robot. The profiles used are aluminum V-slot 2020 profiles. The best way to attach the elements to them is to use mounting elements dedicated to this type of profile, such as T-nuts, fittings, and angles.

Rails on top of the RobotRails on top of the Robot

These profiles are fixed to the robot with four ISO 7379 M6x30 shoulder screws with DIN 986 M6 nyloc nuts.

Top rails fixingTop rails fixing

To enable access to the User Compartment, top rails can be pivoted by removing 2x shoulder screw M6x30 and 2x DIN 986 M6 nyloc nut in either the front or back. The maximum opening angle is 160 degrees with the built-in stop.

Top rails openTop rails open

For more useful information in the field of mechanics, please see the document Panther Overall Dimensions and the chapter CAD models.

info

The presence of the Mounting Rails has no effect on the water and dust resistance of the robot.

Bumper Lights

The robot's Bumpers are made of a profile with the same cross-section as the Mounting Rails. They are 0.5 meters wide, and, in addition to buffering shock and reducing potential damage when the robot collides with an obstacle at high speed, sensors can be mounted to them. By default, the signaling lighting is mounted on each Bumper in the form of aluminum profiles with 46 programmable RGB LEDs.

These lights may be widely used to indicate the status of the robot, the direction of movement or the intention to change direction, warn about low Battery charge or other detected errors, signal the status of the charging process, or even to illuminate the area in front of the robot. More details regarding Bumper Lights and their control are available in the section Panther Lights.

User Compartment

The robot's volume has been divided into five parts. The central space, called the User Compartment, is dedicated to the user's components and electronics. The User Computer (for example, PC02 from Panther Options), the RUTX11 router, as well as the robot's Battery are located there.

Access to the User Compartment

To access the User Compartment, pivot the Mounting Rails by removing 2x ISO 7379 M6x30 shoulder screws with DIN 986 M6 nyloc nuts. Then unscrew the Cover fastened with 8x (IP54) or 18x (IP66) bolts DIN912 M5x12.

Cover fixingCover fixing
caution

To ensure the tightness of the robot, make sure that there are no foreign objects on the seal when assembling the skin element and tighten the bolts with a torque of 4 - 5 Nm.

User Shelf

The volume of the User Compartment is approximately 13.6 liters (3.6 US gallons) with the BAT01 option or 10.0 liters (2.6 US gallons) with the BAT02 option. This part of the robot has the same water and dust tightness class as the robot. At the bottom of this volume is an easily removable User Shelf to which devices located in this space are attached, excluding the Battery.

User's spaceUser's space

The usable space above the User Shelf is 150 mm high. The top surface of the BAT01 Battery module is 72.5 mm above the User Shelf. The usable space above this Battery is 77.5 mm high. There is no usable space above the Battery when the BAT02 is mounted.

To remove the User Shelf, loosen the DIN912 M5x12 bolts located around its perimeter and move the User Shelf towards the back of the robot, then lift it up. When planning to place components on the User Shelf, keep clearance around the heads of the mounting bolts to allow the User Shelf to be pushed back into place later. Usually, 4 out of 6 bolts are enough to fix the User Shelf properly.

On the front and rear walls of this User Compartment, above the User Shelf, there are connectors that provide power and allow the user to communicate with the robot.

User Power Panel

The User Power Panel distributes electric power for user applications. The image below shows its labels and arrangement:

User Compartment Front Wall - Power SupplyUser Compartment Front Wall - Power Supply

To meet the user's needs, the robot is equipped with 10 high-current electrical connectors that are able to provide up to 780 W of electrical power to the user's devices. The supply voltages available on the User Power Panel are:

  • 5 V limited to 15 A (3x female XT60),
  • 12 V limited to 25 A (3x female XT60),
  • 19 V limited to 10 A (3x female XT60).
  • AUX Power which is the Battery voltage (32 - 42 V) rated at 10 A max. This output is disabled by default. AUX Power can be enabled and disabled separately from the Built-in Computer via ROS (Service /panther/hardware/aux_power_enable). See section Panther ROS for more details.
TOTAL POWER OUTPUT

The total power from 5 V, 12 V, and 19 V outputs is limited to 320 W of power.

USED CONNECTORS

One 19 V output is used by an optional User Computer and one 12 V output is used by a Router.

ANTENNAS CONFIGURATION

These coaxial antenna cables are only present with the ANT01 option. In the ANT02 option, these wires are absent. Read more about Panther Options.

Communication Panel

On the Rear Panel, there are sockets for connecting the Battery and communication with the robot. By default, there are Ethernet and USB connectors for the Built-in Computer and the User Safety Interface (USI) connected to the Emergency Management:

User Compartment Rear Wall - Communication PortsUser Compartment Rear Wall - Communication Ports

Service Spaces

The four remaining spaces around the User Compartment are intended for the internal components of the robot and some elements of the additional option sets. In this case, the relevant information can be found in the description of the given option in Panther Options.

NO NEED TO ENTER SERVICE SPACE

It is usually not necessary for the user to access those spaces. Opening them is mainly meant for service work.

Access to the Front and Rear Service Spaces

The Front and Rear Service Spaces are occupied by motors and built-in electronics.

To access the components in the Service Spaces, pivot the Mounting Rails by removing 2x ISO 7379 M6x30 shoulder screws with DIN 986 M6 nyloc nuts. Then unscrew the Front Deck (with the Husarion logo) or the Rear Deck (with the Emergency Button). Each is fastened with 15x DIN912 M5x12.

Deck fixingDeck fixing

Under the Front Deck, you will find among others standard power converters (5 V, 12 V, 19 V), distribution of higher voltages for the user, high voltage converter (24 V / 48 V) connection, front motor controller, and the Fan connection. Under the Rear Deck, you will find among others a Battery connector, the Built-in Computer with its microSD card, the Bumper Lights driver, the Power Board, the Charging Socket line and Rear Panel buttons connections, the rear motor driver, and antenna connections.

Deck fixingDeck fixing

Access to the Side Service Spaces

Stringers (the structural elements located on the sides of the robot) also contain subassemblies.

To access these spaces, it is necessary to remove the wheels on the relevant side. Read more about removing wheels in the article Panther WH03 - Wheel Swap. Then you need to remove the Side Cover which is fastened with 12x bolts DIN912 M5x16.

By default, the Right Stringer has the Fan used for forced air circulation inside the robot (the Fan can be controlled via ROS service /panther/hardware/fan_enable). There are also cable harnesses in both Stringers. For some of Panther's options, additional equipment may be installed in these spaces. In such cases, the necessary information can be found in the description of the option in the article Panther Options.

caution

To ensure the tightness of the robot, make sure that there are no foreign objects on the seal when assembling the skin element and tighten the bolts with a torque of 4 - 5 Nm.

CAD Models

To facilitate the work with the project based on the Panther platform, we have prepared CAD models for download in three extension formats:

STEP HQSTEP LQF3Donline model
Pth v1.2xzipzipzipOnline model
MODEL COMPATIBILITY

These CAD models are applicable to Panther v1.2/v1.21/v1.22 robot revisions.

Software Guide

Panther is equipped with the Raspberry Pi 4 SBC (referred to as the Built-in Computer) with a custom OS based on Ubuntu 20.04 and contains all components needed to start working with ROS immediately. The microSD card with the OS for the Built-in Computer is included with each Panther robot. The OS contains software drivers for all included components.

ROS API

The default way to communicate with Panther's hardware is via the Robot Operating System (ROS). All of the drivers were written in ROS Noetic distribution. The ROS API is provided by ROS packages found in the GitHub repository husarion/panther_ros. These packages are responsible for accessing the hardware components of the robot. More information about available ROS topics, services, and parameters can be found in the section ROS API.

The graph below represents Panther's ROS system. Some topics and services have been excluded from the graph for the sake of clarity.

DIFFERENCES IN ROS SYSTEM

ROS nodes differs between Panther v1.0 - v1.06 and Panther v1.2 - 1.21. This is caused by internal hardware differences. Despite that, the ROS API was kept as closely matched between those revisions as possible and should be transparent in most of the use cases.

Software Configuration

This section outlines various configuration options for running the Panther software stack. These options involve velocity smoothing, changing wheel types, and using custom robot description. It is important to note that this guide assumes the software is launched within the Docker container and presumes you are already connected to the Built-in Computer.

Changing Velocity Smoothing Parameters

The Panther driver ROS package includes an integrated velocity smoother designed to limit the robot's velocities and accelerations. Its parameters can be found in the panther_driver node. By default, these values correspond to the upper limits of the robot's velocities and accelerations. To modify the default velocity smoother parameters, follow these steps:

  1. Create a YAML file similar to panther_common.yaml and set your desired parameter values.

  2. To incorporate the YAML file into Docker, make changes to the main Docker compose file located at ~/compose.yaml. Add a volume entry to the panther_ros container section:

volumes:
# other volumes
- /path/to/panther_common_custom.yaml:/panther_common_custom.yaml
CHANGE FILE NAME

Ensure to replace /path/to/panther_common_custom.yaml with the correct path to the YAML file you created.

  1. Modify the roslaunch command to use that parameter file. Add parameter panther_common_config_file:
    command: >
roslaunch --wait
panther_bringup bringup.launch
panther_common_config_file:=/panther_common_custom.yaml
  1. Restart Docker containers to apply the changes:
husarion@10.15.20.2:~$
docker compose up -d --force-recreate

Configuring Panther with Various Wheel Types

To configure Panther with different wheel types, please refer to Panther WH03 - wheel swap.

Using Custom Robot Description

Custom descriptions have to follow certain requirements in order to work correctly. For more information on how to create a valid Panther robot description, please visit panther_description.

There are two approaches to launching a custom Panther description, depending on your use case.

First, include launching the robot description from a different part of your project. For example, if you intend to launch the Panther description with custom sensors from a separate computer, such as PC02. In this case, you only need to disable the default robot description to prevent any conflicts with the desired description. To do so, you have to modify the main compose file located at ~/compose.yaml.

  1. Edit the launch command in the panther_ros container to disable publishing the default Panther robot description:
command: >
roslaunch --wait
panther_bringup bringup.launch
publish_robot_state:=false
  1. Restart Docker containers to apply the changes:
husarion@10.15.20.2:~$
docker compose up -d --force-recreate

The second option involves changing the default Panther robot description. With this approach, your custom robot description will be published whenever the Panther robot is started. To incorporate the robot description file into the Docker container, make changes to the main compose file located at ~/compose.yaml.

  1. Add a volume entry to the panther_ros container section:
volumes:
# other volumes
- /path/to/custom_panther.urdf.xacro:/custom_panther.urdf.xacro
CHANGE FILE NAME

Ensure to replace /path/to/custom_panther.urdf.xacro with the correct path to the robot's description file you created.

  1. Modify the launch command to utilize the description file, which can be accomplished using the robot_description launch parameter:
command: >
roslaunch --wait
panther_bringup bringup.launch
robot_description:="xacro /custom_panther.urdf.xacro"
  1. Restart Docker containers to apply the changes:
husarion@10.15.20.2:~$
docker compose up -d --force-recreate

GNSS API

PREREQUIREMENTS

To use the GNSS (including GPS), Panther has to be equipped with the ANT02 option.

GNSS data in NMEA format is forwarded to the Built-in Computer IP address at port 5000. Typically you can access it at upd://10.15.20.2:5000.

You can make sure the address is correct by typing http://10.15.20.1 into your browser (username: admin, password: Husarion1). Navigate to Services -> GPS -> NMEA -> NMEA forwarding -> Hostname and Port. Remember that you must be connected to the robot's WiFi network. If changes are needed, finish the configuration by pressing save & apply at the bottom of the screen. To learn more about GPS configuration, please refer to RUTX11 GPS.

Data frequency is 1 Hz and can be interacted ether with GPSD daemon

husarion@mydevice:~$
gpsd -N udp://10.15.20.2:5000

or directly with the ROS package, translating the signal to a ROS topic.

USE DOCKER COMPOSE

It is recommended to use a Docker image through a compose.yaml file.

If launching on a Built-in Computer you can utilize the main Panther compose file located at ~/compose.yaml. Edit the file using the text editor of your choice and add the following container:

  nmea-gps:
image: husarion/nmea-gps:noetic
container_name: nmea-gps
<<: *common-config
command: >
rosrun nmea_navsat_driver nmea_socket_driver
__ns:=panther
_port:=5000
_local_ip:=10.15.20.2

To restart Docker containers, execute the following command from within the directory containing the compose file:

husarion@10.15.20.2:~$
docker compose up -d --force-recreate

You should be able to see data from the GNSS by listening to a ROS topic.

husarion@mydevice:~$
rostopic echo /panther/fix

Panther Lights

The Panther Lights interface was designed to provide information about the robot's system state in the form of simple animations displayed on the Bumper Lights. Animations are placed in the queue and processed according to their priority, as described below:

  • 1 - interrupts and removes from the queue animation with priorities 2 and 3.
  • 2 - interrupts animations with priority 3.
  • 3 - add animation to the end of the queue.

Animations

Default animations supplied by Husarion are listed in the table below.

IDNAMEPRIORITYDESCRIPTION
0E_STOP3red expanding from the center to the edges
1READY3green expanding from center to the edges
2ERROR1red, whole panel blinking twice
3MANUAL_ACTION3blue expanding from the center to the edges
4AUTONOMOUS_ACTION3orange expanding from center to the edges
5GOAL_ACHIEVED2purple, whole panel blinking twice
6LOW_BATTERY2two orange stripes moving towards the center, repeats twice
7CRITICAL_BATTERY2two red stripes moving towards the center, repeats twice
8BATTERY_STATE3two stripes moving towards the edges, stopping at a point representing battery percentage and filling back to the center, color changes from red to green, repeats three times
9CHARGING_BATTERY3the whole panel blinking with a duty cycle proportional to the battery percentage. Short blinking means low battery, no blinking means full battery. The color changes from red to green

Default LED Behavior

The table below outlines the animations and states of the Panther robot that each of them represents.

ANIMATIONROBOT STATE
E_STOProbot E-stop triggered, not ready to operate
READYrobot E-stop released, ready to operate
LOW_BATTERYrobot battery level below 40%, animation displayed periodically every 30 seconds
CRITICAL_BATTERYrobot battery level below 10%, animation displayed periodically every 15 seconds
BATTERY_STATErobot's current battery level, displayed periodically every 120 seconds
CHARGING_BATTERYthe Charger is connected and the robot is charging, available in Panther v1.2 and later

Customize LED Animations

You can easily customize Panther Lights by defining new animations based on images. They can be created with a simple YAML file, such as the one shown below:

# user_animations.yaml
user_animations:
# animation with default image and custom color
- id: 21
name: 'ANIMATION_1'
priority: 2
animation:
both:
type: image_animation
image: $(find panther_lights)/animations/strip01_red.png
duration: 2
repeat: 2
color: 0xffff00

You also have the option to create code-based animations. Detailed information on how to make use of these features, as well as a detailed description of default behavior and customization options for Bumper Lights panels, can be found in panther_lights documentation.

Display LED Animation

To display one of the predefined animations, use /panther/lights/controller/set/animation service of type panther_msgs/SetAnimation. Example:

husarion@mydevice:~$
rosservice call /panther/lights/controller/set/animation "animation:
id: 1
param: ''
repeating: false"

Panther Manager

The Panther system management is implemented using BehaviorTree.CPP, and it comprises three Behavior Trees. They are designed to handle Bumper Lights, safety features, and the soft shutdown of robot components. Each tree can be customized by users according to their specific requirements. Please refer to panther_manager documentation to gain a deeper understanding of how to modify and extend these Behavior Trees effectively.

danger

It is essential to proceed with caution when modifying the trees responsible for safety or shutdown and ensure that default behaviors are not removed.

Lights Tree

The Lights Tree is responsible for displaying animations based on the robot's current state. It handles various scenarios such as charging status, battery level information, E-stop state, and more. By utilizing this Behavior Tree, users can define specific animations to visualize information about the robot's state.

Safety Tree

The Safety Tree plays a crucial role in ensuring the well-being of the robot system. It controls the Fan based on the CPU and driver temperatures, maintaining optimal operating conditions. Additionally, the Safety Tree handles critical safety operations triggered by high battery temperatures. In such cases, the Behavior Tree takes actions like activating the Fan, initiating an E-stop, and disabling AUX Power. It may also, proceed to shutdown the robot in the event of reaching a fatal battery temperature. These measures are implemented to safeguard the robot and prevent any potentially hazardous situation.

Shutdown Tree

The Shutdown Tree is responsible for orchestrating the graceful shutdown of the robot components and the Built-in Computer. When the robot receives a shutdown request, this Behavior Tree ensures that all the relevant system components are powered down in a controlled manner. Following the Shutdown Tree prevents the robot system from abrupt power cuts, which could potentially cause data loss, hardware damage, or other adverse consequences.

Controlling ROS Nodes with Docker

The Panther robot uses a Docker container to launch ROS nodes on the Built-in Computer. By default, four Docker containers are launched:

  • ros_master - starts the ROS master node,
  • panther_ros - starts default Panther nodes,
  • webui-ros-joystick - starts the WebUI,
  • gamepad_controller - starts the Gamepad node.

Docker containers can be controlled (e.g., stopped, restarted) and configured (e.g., modified restart policy) by logging into the Built-in Computer (default ssh husarion@10.15.20.2 password: husarion) and using standard Docker CLI. For more information on how to control Docker containers, refer to Using Docker Images.

Controlling Panther Robot

danger

Do not try controlling the robot from different sources at the same time! It may cause unpredictable behavior!

By default, the robot can be controlled using /cmd_vel topic. Panther will process all messages sent to the topic and provide output velocity to the wheels unless E-stop is triggered. Output velocities are scaled according to velocity smoother limits (see software configuration for more information). Below are some tools that allow you to control the Panther robot, but any node publishing to /cmd_vel topic will be valid.

REPEATING /cmd_vel MESSAGES

For safety reasons, the robot will initiate a stop if the time since the last velocity command exceeds 1 second. When utilizing a custom control system, ensure that velocity commands are sent at an appropriate frequency. The recommended minimum frequency is 10 Hz.

/cmd_vel SAFETY CONDITIONS

To control the Panther robot with /cmd_vel topic E-stop state has to be reset. It can be done using the ROS service, WebUI, or the Gamepad controller.

If some messages are being published to /cmd_vel while E-stop is triggered, it is impossible to reset it.

WebUI

WebUI is a default tool launched when the Panther robot starts. It is a simple browser-based interface that can be accessed at 10.15.20.2:8000. It allows handling the Panther robot E-stop and controlling its movement. An E-stop state can be changed using the button in the top-right corner of the app. When resetting E-stop a pop-up window will ask for confirmation. The red or green ring around the joystick indicates if the robot is ready to move. Use a joystick to move the robot around. For more information, see webui-ros-joystick GitHub page.

note

To use the Web interface, your device has to be connected to Panther's hotspot. See Connecting to Panther's Hotspot.

Gamepad with Joy2Twist

The ROS Joy2Twist node allows controlling the Panther robot with a Gamepad. By default, it can be used with the F710 gamepad, but the node can be configured to work with any Gamepad controller.

  • Press B to trigger E-stop on Panther.
  • Hold LT button and press A to release the E-stop.
  • To control Panther hold the LB button and use the left stick to drive forward/backward (additionally left/right when using mecanum wheels) and the right stick to turn the robot.

For more information on how to run and use it, see the Joy2Twist GitHub page.

teleop_twist_keyboard

A teleop_twist_keyboard ROS package is one of the basic ROS tools that allows you to control a robot. It converts keyboard input to velocity commands published in the /cmd_vel topic. It can be easily installed and applied to any device with ROS. When using teleop_twist_keyboard with Panther, it is advised to set the repeat_rate parameter in order to meet the required publishing rate. For more information on how to run and use it, see teleop_twist_keyboard.

REPEATING /cmd_vel MESSAGES

To run teleop_twist_keyboard with ROS parameter repeat_rate, use command:

husarion@mydevice:~$
rosrun teleop_twist_keyboard teleop_twist_keyboard.py _repeat_rate:=10.0

Operating System Image Reinstallation

In some cases, you will need to restore Panther's system to its default settings:

  • in case of accidental damage to the system,
  • to update the OS,
  • to clear all user changes and restore factory settings.

Find the full instructions in Operating System Reinstallation.

Network

Overview

Panther is equipped with a Teltonika RUTX11 router running open-source firmware OpenWRT, which provide the following interfaces:

Ethernet

  • 1x WAN 10/100/1000 Mbps (by default configured as a LAN port)
  • 3x LAN 10/100/1000 Mbps
  • 3 ports are available for user equipment

Wireless

  • Two radios (2.4GHz and 5GHz)
  • Support for 802.11ac (Wi-Fi 5) with link rate up to 867 Mbps, fast roaming with 802.11r
  • Works as access point (AP) and/or as a client/station (STA)
  • External antennas with 2 dBi gain

Cellular

  • Dual-Sim with fail-over
  • LTE (4G) Cat 6
  • External antennas with 3dBi gain (Panther Options - ANT02)
  • Support for exact frequency bands depends on your locale. By default we equip Panther with version suitable for shipping address. For more details go here.

GNSS

Each form of connectivity can be part of an automatic WAN fail-over in order to provide a continuous connection to external services. More information is available on the manufacturer site. Some RUTX11 configuration scripts are available on our GitHub repository.

Connecting to Panther's Hotspot

Panther provides a hotspot with a default SSID Panther_<serial_number> and Panther_5G_<serial_number> for 2.4GHz and 5GHz band respectively with password husarion.

QUICKSTART TUTORIAL

You can find a step-by-step tutorial on how to connect your Panther to Wi-Fi in Panther - quick start.

Connecting Panther to a Wi-Fi

Panther can be connected to Wi-Fi on the 2.4GHz or 5GHz band. It will be used as a WAN source and be prioritized over cellular connection. Single radio can act simultaneously as AP (access point) and STA (client).

By default, Panther scans for available networks and connects to the first one provided in the configuration file. In case of a low signal level or loss of signal, the next one on the list will chosen (if available). This behavior can be modified by the user.

SCANNING NETWORKS IN 5GHZ AP

Due to the limitation of the Wi-Fi chipset, it is not possible to scan for available networks, while providing AP on a 5GHz interface. It's advised to use 2.4GHz for WAN uplink. For more information, go to documentation on our GitHub repository

Remote Access

You can access your Panther over the Internet, from any place in the world. You can use the preinstalled Husarnet VPN service. To access your robot follow the steps from here.

Access to Router WebUI

Further configuration can be done through WebUI, which is available under the 10.15.20.1 address. Login with username admin and password Husarion1. Consult Teltonika RUTX11 manual for more information.

WEBUI AVAILABILITY

You have to be connected to Panther's network to access WebUI.

SECURITY PRECAUTIONS

For safety reasons it is strongly advised to change the default password!

Using a Cellular Connection

If your Panther is equipped with the (ANT02 option) it is possible to use the cellular connection with failover to a second SIM and priority of WLAN connection over cellular.

Installing a SIM Card(s)

First, open the Cover following instruction, then you can access Teltonika RUTX11 SIM slots, more detail here.

Configuration of SIM Slots

In the default configuration, each SIM slot is enabled with automatic APN and priority of WLAN connection over cellular. To change settings such as PIN code, custom APN, or CHAP/PAP authentication use router's WebUI, more detail here.

Resetting Router to Default Settings

In case of misconfiguration, it is possible to reset the router to working default settings (as shipped to you). To do it press and hold the reset button on powered on RUTX11 for at least 6 seconds. Signal strength LEDs indicate elapsed time. After all five LEDs are lit up, the reset button can be released. After automatic restart router is ready to be used again.

Safety

The robot has been equipped with solutions for the safe use of the equipment, both in the software and hardware layer.

danger

Please take this chapter seriously. Inadequate and irresponsible using of the robot may cause damage to the device, the workplace, and people in the vicinity.

The robot is equipped with an Emergency Management (EMU). It is a system that takes control of the robot's components as well as its power in crisis situations. The EMU can stop the robot's movement, turn off the power of the user's device, or even turn off the entire robot if so configured. It also provides a dedicated electrical User Safety Interface (USI) led out to the User Space.

Due to the appearance of any trigger, such as a Built-in Computer's CPU crash or Emergency Button press, the EMU will call and latch the E-stop signal. This means that in such situations, for the further work of the robot, the problem should be resolved, and then the E-stop latch should be reset.

ADVANCED EMU CONFIGURATION

This chapter describes only the basic default EMU configuration, however, the system is configurable. To learn more about the possibilities and how to configure them, visit a separate article: Emergency Management Unit.

safety board logic

Hardware

Emergency Button

On the rear side of the robot, there is a red push button. Pushing the Emergency Button causes:

  • activate the E-stop signal and latch it,
  • actively brake the robot using motors,
  • toggle a SPDT relay (external E-stop output).
ADVANCED EMU CONFIGURATION

These actions are the default EMU configuration. To learn more about the possibilities and how to configure it, visit a separate article: Emergency Management Unit

User Safety Interface (USI)

USI is an electrical hardware interface for EMU designed to integrate Panther with the user's equipment. This thread is covered in detail in the Emergency Management article in the chapter User Safety Interface.

Transporting Panther

Panther is shipped in a wooden box for two reasons: to protect the robot itself, and to comply with transportation safety regulations for batteries. Li-Ion batteries with a capacity of over 100 Wh are considered dangerous goods. As long as the product with such a battery is properly packaged and marked, it can be transported by various means, including air transport.

If you consider transporting Panther to a remote location, we recommend that you keep the wooden box with the UN3481 marking and Class 9 (batteries) symbol. You will also need to confirm with your carrier that you are working with dangerous goods. For more details, please contact us on support@husarion.com

Before shipping, disarm Panther by setting all switches to the OFF position and pressing the Emergency Button. Also, the Battery charge level should be between 30 - 50%.

All helpful documents and links in one place: