Panther - Outdoor AMR
Overview
- Panther v1.2
- Panther v1.0 - v1.06
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.
This is a manual. If you need a quick start guide instead, you can find it here
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
- Please read the Safety Instructions first.
- If you are not sure how something works, please read the manual.
- 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.
- 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)
Name | Value | Name | Value |
---|---|---|---|
length | 809 mm | width | 848 mm |
platform height | 356 mm | weight | 55 kg |
overall height | 370 mm | protection index | IP54 / IP66 |
wheelbase | 440 mm | operating temperature | -20°C to 50°C |
track of wheels | 695 mm | storage temperature | -20°C to 50°C |
maximum ground clearance | 155 mm | charging temperature | 0°C to 45°C |
minimum ground clearance | 138 mm | battery type | Li-Ion 36 V |
Traction Parameters (with WH01 wheels)
Name | Value | Name | Value |
---|---|---|---|
max speed | 2 m/s | maximum carrying capacity | 80 kg |
hill climb grade | 96% (44°) | nominal shaft torque | 34.5 Nm |
climb grade with 50kg cargo | 90% (42°) | maximum shaft torque | 60 Nm |
climb grade with 80kg cargo | 60% (31°) | nominal total traction force | 725 N |
hill grade traversal | 80% (39°) | maximum total traction force | 1511 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:
Class | Solid | Fluid |
---|---|---|
IP54 | dust protected | protection against splashes of water from any direction |
IP66 | dust-tight | protection against strong water jets (100 l / min) poured on the housing from any side |
Components
Component | Quantity | Description |
---|---|---|
Built-in Computer | 1 | Raspberry 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* | 1 | Intel NUC10i7FNKN or Lenovo ThinkStation P360 Tiny with Nvidia T1000 graphics card. See Panther Options for details. |
Router | 1 | Teltonika 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. |
Antenna | 2 | Dual-band (2.4 GHz / 5 GHz) placed on the rear of the robot. See all Panther Options. |
IMU (Inertial Measurement Unit) | 1 | PhidgetSpatial 3/3/3 Basic (3-axis compass, a 3-axis gyroscope, and a 3-axis accelerometer). More details. |
Front and Rear Bumper Lights | 2 | Signal lighting made of 46 pcs. APA102C LED chips built into an aluminum profile on the robot's bumpers. |
Brushless Motor with planetary gearbox | 4 | 80PMB800K.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 |
By default, there is only up to one User Computer in the robot. For detailed information, see Panther Options.
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
- 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.
- Panther v1.2
- Panther v1.0 - v1.06


Rear Panel Description
- Panther v1.2
- Panther v1.0 - v1.06
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.


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 position | Knob position | Power state |
---|---|---|
OFF | left | battery disconnected |
ON | right | battery connected |
Cutting off power using the Battery Switch may cause data loss on the Built-in Computer as well as on User Computers.
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 position | Robot status | Power Button action |
---|---|---|
OFF | powered OFF | no action |
ON | powered OFF | power ON |
ON | powered ON | initialize shutdown |
The Power Button is equipped with an LED that indicates the robot's status:
LED state | Status of the robot |
---|---|
ON | powered on |
blinking | shutting down |
OFF | powered off |
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.
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.
The robot is equipped with a three-position Main Switch and Emergency Button.
Battery Switch position | Name of position | LED state | Power state |
---|---|---|---|
left | Off | Off | turned off |
center | Stage 1 | On | the robot turned on except the motors |
right | Stage 2 | On | the robot fully ready for operation |
Pushing the Emergency Button completely cuts off the power to the device.
Cutting off power may cause data loss on the Built-in Computer as well as on User Computers.
Battery & Charging
- Panther v1.2
- Panther v1.0 - v1.06
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 parameter | Value for BAT01 | Value for BAT02 |
---|---|---|
battery capacity | 720 Wh | 1440 Wh |
runtime | 3.5 h - 8 h | 7 h - 16 h |
standby time | 40 h | 80 h |
total output power | 1.0 kW | 2.0 kW |
maximum peak power | 1.8 kW | 3.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.


Battery
The Panther is equipped with a Battery made out of cells in Lithium-Ion technology with a rated voltage of 36 V and 20 Ah, which gives it 720 Wh of energy to use for calculations and move around in demanding terrain for about 3.5 hours. 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). You can check for more specific information about Panther power consumption here.
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 Lights will display 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, refer to the Bumper Lights and Panther Lights sections, respectively.
To meet the user's needs, the robot is equipped with 9 high-power electrical connectors that are able to provide a total of 505 W of power to the user's devices. The supply voltages available on the User Power Panel are 5 V with a total current limitation of up to 15 A (3x female XT60), 12 V limited to 20 A (3x female XT60), and 19 V limited to 10 A (3x female XT60).
The layout of the connectors can be found in the chapter User Compartment.
One of the 19 V outputs is used by the User Computer and one of the 12 V outputs is used by the Router.
Battery parameter | Value |
---|---|
battery capacity | 720 Wh |
runtime | 3.5 h - 8 h |
standby time | 40 h |
total output power | 1 kW |
maximum peak power | 1.8 kW |
max power for user use* | 5 V @ 15 A, 12 V @ 20 A, 19 V @ 10 A |
total power for user use* | 360 W |
Each of the voltage sources has an independent overcurrent switch, but the total power consumed by the devices plugged into the User Power Panel cannot exceed 360 W.
Charging Panther
- Panther v1.2
- Panther v1.0 - v1.06
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.
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 name | Single Charger (for BAT01) | Dual Charger (for BAT02) |
---|---|---|
input voltage range | 100 - 240 V AC | 100 - 240 V AC |
input voltage frequency | 50 - 60 Hz | 50 - 60 Hz |
max input current | 2.5 A | 5 A |
max output voltage | 42 V | 42 V at two channels |
max output current | 5 A | 2x 5 A |
charging robot with BAT01 option | yes | yes |
charging robot with BAT02 option | no | yes |
It is forbidden to drive the robot during the charging process!
Please do not leave the Charger connected to the robot after the charging process is completed (the green LED(s) are ON).
To maintain the long battery life, it is recommended not to charge the robot for long periods while it is being used (turned on).
In the set with the robot, we provide a dedicated 42 V @ 5 A Charger, which the robot will charge to 80% in 4 hours and to 100% in 7 hours. The mains-operated Charger is connected directly to the robot's Charging Socket on its housing.
It is highly recommended not to use the robot during the charging process!
Please do not leave the Charger connected to the robot after the charging process is completed (the red LED and the Charger fan will turn off).
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.


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


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.


For more useful information in the field of mechanics, please see the document Panther Overall Dimensions and the chapter CAD models.
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
- Panther v1.2
- Panther v1.0 - v1.06
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.


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.


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:


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.
The total power from 5 V, 12 V, and 19 V outputs is limited to 320 W of power.
One 19 V output is used by an optional User Computer and one 12 V output is used by a Router.
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:


The robot's volume has been divided into three parts. The central space named the User Compartment, with a volume of approximately 14.5 liters (3.8 gallons) is dedicated for the user's components and electronics, as well as the robot's Battery. This part of the robot has the same water and dust tightness class as the robot. By default, there is the PC02 User Computer and the Router responsible for both the wireless communication of the robot and the wired connection of computers and sensors within the robot.


Above this shelf, two User Panels have been led into this space. A panel distributing electric power for the user:


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).
The Communication Panel with the rest of the robot (as standard, it is an Ethernet connector to the Built-in Computer):


The front and rear spaces are occupied by motors and built-in electronics. It is usually not necessary for these spaces to be accessed by the user. Opening them is mainly meant for service work.
Access to the User Compartment
To access the components inside the User Compartment, pivot the top rails by removing 2x shoulder screws and 2x nyloc nut. Then unscrew the Cover (18x DIN912 M5x12).


Service Spaces
- Panther v1.2
- Panther v1.0 - v1.06
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.
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.


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.


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.
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.
To access the components in the Service Space, pivot the Mounting Rails by removing 2x shoulder screws and 2x nyloc nut. Then unscrew the Front Deck (the one with the Husarion logo) fastened with 17x DIN912 M5x12 screws.


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:
- Panther v1.2
- Panther v1.0 - v1.06
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.
- Panther v1.2
- Panther v1.0 - v1.06


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:
Create a YAML file similar to panther_common.yaml and set your desired parameter values.
To incorporate the YAML file into Docker, make changes to the main Docker compose file located at
~/compose.yaml
. Add a volume entry to thepanther_ros
container section:
volumes:
# other volumes
- /path/to/panther_common_custom.yaml:/panther_common_custom.yaml
Ensure to replace /path/to/panther_common_custom.yaml
with the correct path to the YAML file you created.
- 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
- Restart Docker containers to apply the changes:
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
.
- 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
- Restart Docker containers to apply the changes:
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
.
- Add a volume entry to the
panther_ros
container section:
volumes:
# other volumes
- /path/to/custom_panther.urdf.xacro:/custom_panther.urdf.xacro
Ensure to replace /path/to/custom_panther.urdf.xacro
with the correct path to the robot's description file you created.
- 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"
- Restart Docker containers to apply the changes:
docker compose up -d --force-recreate
GPS API
To use the GPS, Panther has to be equipped with the ANT02 antenna.
GPS data in NMEA format is forwarded to the Built-in Computer IP address at port 5000
. Typically you can access it at 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
gpsd -N udp://10.15.20.2:5000
or directly with the ROS package, translating the signal to a ROS topic.
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:
docker compose up -d --force-recreate
You should be able to see data from the GPS by listening to a ROS topic.
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.
ID | NAME | PRIORITY | DESCRIPTION |
---|---|---|---|
0 | E_STOP | 3 | red expanding from the center to the edges |
1 | READY | 3 | green expanding from center to the edges |
2 | ERROR | 1 | red, whole panel blinking twice |
3 | MANUAL_ACTION | 3 | blue expanding from the center to the edges |
4 | AUTONOMOUS_ACTION | 3 | orange expanding from center to the edges |
5 | GOAL_ACHIEVED | 2 | purple, whole panel blinking twice |
6 | LOW_BATTERY | 2 | two orange stripes moving towards the center, repeats twice |
7 | CRITICAL_BATTERY | 2 | two red stripes moving towards the center, repeats twice |
8 | BATTERY_STATE | 3 | two 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 |
9 | CHARGING_BATTERY | 3 | the 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.
ANIMATION | ROBOT STATE |
---|---|
E_STOP | robot E-stop triggered, not ready to operate |
READY | robot E-stop released, ready to operate |
LOW_BATTERY | robot battery level below 40%, animation displayed periodically every 30 seconds |
CRITICAL_BATTERY | robot battery level below 10%, animation displayed periodically every 15 seconds |
BATTERY_STATE | robot's current battery level, displayed periodically every 120 seconds |
CHARGING_BATTERY | the 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:
rosservice call /panther/lights/controller/set/animation "animation:
id: 1
param: ''
repeating: false"
Panther Manager
- Panther v1.2
- Panther v1.0 - v1.06
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.
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.
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. By default, for Panther versions v1.0 – v1.06, only the tree responsible for Bumper Lights is enabled. 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.
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.
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
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.
/cmd_vel
MESSAGESFor 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 CONDITIONSTo 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.

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 pressA
to reset the E-stop. - To control Panther hold the
LB
button and use theright stick
to drive forward/reverse (additionally left/right when using mecanum wheels) and theleft 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.
/cmd_vel
MESSAGESTo run teleop_twist_keyboard with ROS parameter repeat_rate
, use command:
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 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.4 GHz and 5 GHz)
- 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
- Two external antennas with 3dBi gain
GNSS
- Support for GPS, GLONASS, Galileo and BeiDou
- Integrated into ROS
- 1 Hz refresh rate
- CEP-50 of 2.5 m
- External antenna (Panther Options - ANT02)
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.4 GHz and 5 GHz band respectively with password husarion
.
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.4 GHz or 5 GHz 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.
Due to the limitation of the Wi-Fi chipset, it is not possible to scan for available networks, while providing AP on a 5 GHz interface. It's advised to use 2.4 GHz 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.
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. If you need to change settings such as PIN code, custom APN, or CHAP/PAP authentication go to our GitHub repository for more information.
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.
For safety reasons it is strongly advised to change the default password!
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.
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.
- Panther v1.2
- Panther v1.0 - v1.06
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.
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.
Hardware
- Panther v1.2
- Panther v1.0 - v1.06
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).
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.
Emergency Button
On the rear side of the robot, there is a red push button. Pushing the Emergency Button completely cuts off the power to the device.
Cutting off power may cause data loss on the Built-in Computer as well as on User Computer!
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%.
Docs and links
All helpful documents and links in one place:
- Panther v1.2
- Panther v1.0 - v1.06
- Safety Instructions - to avoid malfunctioning or damaging your Panther, please read this safety manual before use
- Panther Schematic Block Diagram - basic robot components and connections between them
- Panther Overall Dimensions - three basic projections of the platform in all wheel options
- Panther Power Consumption and Run Time - description of Panther power consumption and run time in different working conditions
- Panther WH03 - wheel swap manual - instructions for the WH03 package option, to swap between off-road and mecanum wheels
- Panther PC02 - installation manual - instructions for PC02 package option, to install User Computer
- Github Repository pnather_ros - Packages with ROS hardware drivers of the Husarion Panther robot
- Github Repository panther_msgs - Custom ROS messages and services for Panther
- Docker Image panther-docker - Docker image with a Panther ROS package
- Docker Image panther-gazebo - Docker image with Panther simulation in Gazebo-classic
- Github Repository ros_components_description - URDF models of sensors and other components offered alongside Husarion robots
- Teltonika RUTX11 Manual
- Teltonika RUTX11 Datasheet
- Panther Options
- Safety Instructions - to avoid malfunctioning or damaging your Panther, please read this safety manual before use
- Panther Schematic Block Diagram - basic robot components and connections between them
- Panther Overall Dimensions - three basic projections of the platform in all wheel options
- Panther Origin Point and Center of Mass - robot projections with marked mass center
- Panther Power Consumption and Run Time - description of Panther power consumption and run time in different working conditions
- Panther WH03 - wheel swap manual - instructions for the WH03 package option, to swap between off-road and mecanum wheels
- Panther PC02 - installation manual - instructions for the PC02 package option to install User Computer
- Github Repository pnather_ros - Packages with ROS hardware drivers for the Husarion Panther robot
- Github Repository panther_msgs - Custom ROS messages and services for Panther
- Docker Image panther-docker - Docker image with a Panther ROS package
- Docker Image panther-gazebo - Docker image with Panther simulation in Gazebo-classic
- Github Repository ros_components_description - URDF models of sensors and other components offered alongside Husarion robots
- Teltonika RUTX11 Manual
- Teltonika RUTX11 Datasheet
- Panther Options