Panther - outdoor AMR
- Panther v1.2
- Panther v1.0 - v1.06
Overview​


Autonomous, mobile robot (AMR) platform dedicated for outdoor environment. Compliant with 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 additional equipment. It can be used in various areas of application such as agriculture, rescue, inspection and many more.
warning
Before the first use​
We know that you would really like to read Quick start section 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 buttons are available on the robot (a mechanical one) and in the WebUI (on the screen) but in some cases you may not be able to use them quickly enough to stop the robot before causing damage.
- The detailed description of the safety features are available in the Safety section.
Quick Start​
- Panther v1.2
- Panther v1.0 - v1.06
Here is a very basic demo allowing you to use your Panther the first time without coding:
Rotate the two-position Main Switch to ON position. Push Power Button for 1 second, red light on button and LED panels on bumpers will lights up. Wait for Wi-Fi to come up:
info
SSID: Panther_<serial_number>
PASS: husarion
Connect to Wi-Fi and open WebUI ROS joystick 10.15.20.2:8000
that allows you to manually control your robot.
When the robot is booted corectly you should see green lights flashing. Now you can reset Emergency Button.
caution
Use the WebUI ROS joystick carefully as Panther is quite a heavy robot with powerful motors. Especially during a first run, be prepared to push the Emergency Button rapidly if needed.
Here is a very basic demo allowing you to use your Panther the first time without coding:
Rotate Emergency button + set power switch to right (it is 3 pose switch, set to the 3rd pose), and then wait for Wi-Fi to come up:
info
SSID: Panther_<serial_number>
PASS: husarion
When the robot is ready to work you should see it's lights flashing.
Remote Access​
You can access your Panther over the Internet, from any place in the world. You can use the preinstalled Husarnet VPN service (husarnet.com) To access your robot follow these steps:
Husarnet account Create an account at https://app.husarnet.com/ and click [Create network] button. Go to the newly created Husarnet network and click [Add element] button. Go to a [join code] tab and copy your join code, it should look like this:
fc94:b01d:1803:8dd8:b293:5c7d:7639:932a/xxxxxxxxxxxxxxxxxxxxxxxxxx
Connecting to a robot
Use SSH connection at your PC that is connected to the hotspot provided by Panther
$ ssh husarion@10.15.20.2
with password husarion
Connect a robot to the Internet
To to connect to 2.4GHz WiFi network edit file ~/panther_rutx11/config.json
nano panther_rutx11/config.json
Edit section section named wifi_client
filling in your SSID and matching password.
Save by pressing Ctrl+O
and exit by Ctrl+X
. To apply new settings execute python script by command:
panther_rutx11/setup.py
When Panther connect to our network message Success
will be shown.
note
Wi-Fi must be in range of Panther. For more information head to Network Section
Joining to a Husarnet network
To join Panther to your Husarnet network execute:
husarnet join fc94:b01d:1803:8dd8:b293:5c7d:7639:932a/xxxxxxxxxxxxxxxxxxxxxxxxxx myPanther
After 20 - 60 seconds you should be able to see you panther available at https://app.husarnet.com/. You can ping it:
ping6 myPanther
or SSH to it:
$ ssh husarion@myPanther
note
Remember to connect also your PC to the same Husarnet network as Panther (https://docs.husarnet.com/docs/begin-linux).
Hardware guide​
Specification​
Basic parameters (with WH01 wheels option and a single battery)
Name | Value | Name | Value |
---|---|---|---|
length | 805 mm | width | 840 mm |
platform height | 290 mm | weight | 55 kg |
overall height | 365 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 | 139 mm | battery type | Li-Ion 36V |
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 attached files:
Panther v1.0 - v1.06 Origin point and center of mass
[Panther v1.2 Origin point and center of mass - Soon...]
You can find more information about mass distribution and moments of inertia in the URDF simulation repository (https://github.com/husarion/panther_description).
International Protection Rating
The platform is offered in two variants of the protection class. The basic variant is dedicated for moderate indoor and outdoor conditions with a rating of IP54. The upgraded variant is dedicated for 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 also in 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 |
---|---|---|
Internal 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. |
On-board user computer* | 1 | Intel NUC10i7FNKN or ADLINK Vizi-AI or HP Z2 Mini Workstation with Nvidia graphics card. See Computer 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 lights | 2 | Signal lighting made of 46 pcs. APA102C LED chips build into an aluminum profile on the robot's bumpers. |
Brushless Motor with planetary gearbox | 4 | 80PMB800K.80RBL-100 - Drive implemented on 4 durable motors 473 watts of power (900 W instantaneous power) each and planetary gears with a maximum torque of 60Nm 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 |
note
*By default, there is only up to one on-board computer in the robot. For detailed information please check System installation and read more about Panther options.
note
**Most of 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 Docs and links chapter.
- Panther v1.2
- Panther v1.0 - v1.06




Power Switch and Emergency button​
- Panther v1.2
- Panther v1.0 - v1.06
The robot is equipped with a two-position Main switch, Power button and Emergency push button.
Battery switch
The Battery switch is used to cut off the battery voltage from the robot electrical circuits. Use this switch for the long-time storage and for shipping. In case of the robot malfunction, setting the Battery switch to the OFF position will turn off the robot immediately, without waiting for the operating system shutdown.
Battery switch position | Knob position | Power state |
---|---|---|
OFF | left | Battery disconnected |
ON | right | Battery connected |
caution
Cutting off the computer's power using the Battery switch may cause data loss.
danger
Cutting off power by putting Battery switch to 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 press and hold 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 a LED which indicates the robot status:
LED state | Status of the robot |
---|---|
ON | Powered on |
Blinking | Shutting down |
OFF | Powered off |
Emergency button
The Emergency button is connected directly to the Emergency Management Unit and it is one of the inputs triggering E-stop singal. Pushing it runs several actions on the robot. There is a posibility to program the behavior of the platform in emergency situations, however the defalut actions are:
activate E-stop signal and latch it,
actively brake the robot using motors,
toggle a SPDT relay (external E-stop output).
You can read more about E-stop in chapter Safety.
The robot is equipped with a three-position Main switch and Emergency button.
Main 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.
caution
Cutting off the computer's power may cause data loss.
Power supply​
- Panther v1.2
- Panther v1.0 - v1.06
Battery​
The Panther power supply comes in a couple of options of easy-swapable battery packs. While purhasing the platform you can choose the basic 720Wh battery (BAT01) or the doubled version of 1440Wh (BAT02). You can read about available options (soon).
The battery packs are made of Lithium-Ion cells, with a rated voltage of 36V and 20Ah or 40Ah capacity, which gives the Panther enough energy to move around in demanding terrain and perform calculations for about 3.5 hours in standard version and 7 hours in doubled version. Moving the robot in a 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 basic variant. You can check more specific information about Panther power consumption calculated for basic version of the battery.
Low battery level will be indicated by a change in the bumper light - both lights will fade in and out orange to indicate that the battery voltage has dropped below 35 volts. Read more in the Bumpers and signal lights section.
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 |
User 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 780W of electrical power to the user's devices. The supply voltages available on the User Power Panel are:
- 5V limited to 15A (3x female XT60),
- 12V limited to 25A (3x female XT60),
- 19V limited to 10A (3x female XT60).
- Aux Power which is battery voltage (32-42V) rated at 10A max. This output can be enabled and disabled separately from internal computer via ROS.
The layout of the connectors and their location on the User Power Panel can be found in the chapter User Compartment > User Power Panel.
note
- The total power from 5V, 12V and 19V outputs is limited to 320W of power.
- One 19V output is used by an optional user computer and one 12V output is used by a router.
The Panther is equipped with a set of battery cells in Lithium-Ion technology with a rated voltage of 36V and 20Ah, which gives it 720Wh of energy to use for calculations and move around in demanding terrain for about 3.5 hours. Moving the robot in a 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 more specific information about Panther power consumption here.
Low battery level will be indicated by a change in the bumper light - both lights will fade in and out orange to indicate that the battery voltage has dropped below 35 volts. Read more in the Bumpers and signal lights section.
To meet the user's needs, the robot is equipped with 9 high-power electrical connectors that are able to provide a total of 505W of power to the user's devices. The supply voltages available on the user Power panel are 5V with a total current limitation up to 15A (3x female XT60), 12V limited to 20A (3x female XT60) and 19V limited to 10A (3x female XT60).
The layout of the connectors can be found in the chapter User Compartment.
note
One of 19V output is used by NUC and one of 12V output is used by router.
Name | Value |
---|---|
Battery capacity | 720Wh |
Runtime | 3.5 h |
Total output power | 1 kW |
Maximum peak power | 1.8 kW |
Max power for user use* | 5V@15A, 12V@20A, 19V@10A |
Total power for user use* | 360W |
note
*Each of the voltage sources has an independent overcurrent switch, but the total power consumed by the devices plugged into the Power panel cannot exceed 360W.
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. Dedicated charger can be connected directly to the robot's charging connector 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.
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.5A | 5A |
Max output voltage | 42V | 42V at two channels |
Max output current | 5A | 2x 5A |
Charging robot with BAT01 option | yes | yes |
Charging robot with BAT02 option | no | yes |
caution
It is highly recommended not to use the robot during the charging process! When the charger is connected to the robot, the robot should be turned off.
caution
Please do not leave charger connected to the robot after the charging process is completed (green LED(s)).
In the set with the robot, we provide a dedicated 42V @ 5A 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 connector on its housing.
caution
It is highly recommended not to use the robot during the charging process! When the charger is connected to the robot, the robot should be turned off completely.
caution
Please do not leave charger connected to the robot after the charging process is completed (the red LED and charger fan will turn off).
Mounting rails​
Sensors, constructions and payload 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 profiles, 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 user space, top rails can be pivoted by removing 2x shoulder screw M6x30 and 2x DIN 986 M6 nyloc nut in either to the front or back. Maximum opening angle is 160 degrees with built-in stop.


For more useful information in the field of mechanics, please see the document Panther Overall Dimensions and chapter CAD models.
note
The presence of railings has no effect on the water and dust resistance of the robot.
Bumpers and signal lights​
The robot's bumpers are made of a profile with the same cross-section as the railings. They are 0.5 meters wide and, in addition to buffer shock and reducing potential damage when the robot collides with an obstacle at high speed, additional sensors can be mounted on them. By default, the signaling lighting is mounted on each bumper in the form of an 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 or other detected errors, signal the status of the charging process or even for illuminate the area in front of the robot. More details regarding lights and their control is available in ROS API section.
User Compartment​
- Panther v1.2
- Panther v1.0 - v1.06
The robot's volume has been divided into five parts. The central space, called User Compartment, is dedicated to the user's components and electronics. The user's computer (for example Intel NUC in PC02 option), RUTX11 router, as well as the robot's battery are located here.
Access to the User Compartment​
To access the User Compartment, pivot the top rails by removing 2x ISO 7379 M6x30 shoulder screws with DIN 986 M6 nyloc nuts. Then unscrew Cover fastened with 8x (IP54) or 18x (IP66) bolts DIN912 M5x12.


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​
Volume of this space is approximately 13.6 liters (3.6 US gallons) with BAT01 option or 10.0 liters (2.6 US gallons) with BAT02 option. This part of the robot has the same water and dust tightness class as the robot. At the bottom of this volume there is an easily removable User Shelf to which devices located in this space are attached, excluding the battery.


The usable space above the shelf is 150 mm high. Top surface of the BAT01 battery module is 72.5 mm above the 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 Shelf towards the back of the robot, then lift it up. When planning to place components on the shelf, keep clearance around heads of the mounting bolts to allow the shelf to be pushed back into place later. Usually 4 out of 6 bolts are enough to fix the Shelf properly.
On the front and rear wall of this compartment, above the User Shelf, there are connectors that provide power and allow to communicate with the robot.
User Power Panel​
The front panel distributing electric power for user applications:


Refer to the Power supply > User power supply chapter for information on electrical connections.
note
These coaxial antenna cables are only present with the ANT01 option. In the ANT02 option, these wires are absent. Read more about Panther's options.
Communication Panel​
And the rear panel for battery connection and communication with the robot - as standard it is an Ethernet and USB connector to the internal SBC and User Safety Interface (USI) connected to Emergency Management Unit:


The robot's volume has been divided into three parts. The central space with 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 Intel NUC on-board computer and the RUTX11 router responsible for both the communication of the robot with the inner world and the connection of computers and sensors within the robot.


Above this shelf, two user panels has been led to this space. A panel distributing electric power for the user:


And a panel for communication with the rest of the robot (as standard it is an Ethernet connector to the internal SBC):


The front and rear spaces are occupied by motors and built-in electronics. For these spaces it is usually not needed to access by the user. Opening these spaces is mainly used for service work.
Access to the user space​
To access the components inside the user space, pivot the top rails by removing 2x shoulder screw 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.
note
For these spaces it is usually not needed to access by the user. Opening these spaces is mainly used for service work.
Access to the front and rear service spaces​
The front and rear spaces are occupied by motors and built-in electronics.
To access the components in service space, pivot the top rails by removing 2x ISO 7379 M6x30 shoulder screws with DIN 986 M6 nyloc nuts. Then unscrew Front (with the Husarion logo) or Rear (with buttons) Deck. Each is fastened with 15x DIN912 M5x12.


Under the Front Deck you will find things like standard power converters (5V, 12V, 19V), distribution of higher voltages for the user, high voltage converter (24V / 48V) connection, front motor controller, fan connection. Under the Rear Deck you will find things like battery connector, internal SBC, LED panels driver, Power Board, charging line connections and rear button panel connections, rear motor driver, antennas connection.


Access to the side service spaces​
The structural elements located on the sides of the robot - Stringers - also contain subassemblies.
To access these spaces, it is necessary to remove the wheels on the relevant side. Read more about removing wheels in side article Wheel swap. Than you need to remove Side cover which is fastened with 12x bolts DIN912 M5x16.
By default, the Right Stringer has a fan used for forced air circulation inside the robot. There are also cable harnesses in both Stringers. For some 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's 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.
To access the components in service space, pivot the top rails by removing 2x shoulder screw and 2x nyloc nut. Then unscrew the front Deck, the one without the buttons (17x DIN912 M5x12).


The bolts must be re-tightened with a torque of 4-5 Nm.
caution
A necessary condition to meet the protection rate for external conditions and the faultless operation of the robot is lack of foreign objects on the seal and correct tightening of all screws fixing the Cover and both Decks!
CAD models​
To facilitate the work with the project based on Panther platform, we have prepared CAD models for download in three extension formats:
- Panther v1.2
- Panther v1.0 - v1.06
Software guide​
Panther robot is equipped with the Raspberry Pi 4 SBC with custom OS based on Ubuntu 20.04 and contains all components needed to start working with ROS immediately. The microSD card with OS for the Raspberry Pi is included with each Panther robot. The OS contains software drivers for all components and has been modified to make the file system insensitive to sudden power cuts.
ROS API​
Panther Driver​
- Panther v1.2
- Panther v1.0 - v1.06
Below you can find a description of the nodes that enable the robot to work:
- battery_node (adc_node.py) - publishes battery state read from ADC unit,
- fan_controller (fan_controller_node.py) - observes internal temperatures of the robot and turns on and off the built-in cooling fan. The fan is turned on based on the internal computer CPU temperature and motor driver temperature,
- imu_manager (phidgets_imu) - driver for the Phidgets Spatial 3/3/3 IMU sensor. The driver publishes linear acceleration, angular velocities and magnetic field,
- panther_driver (driver_node.py) - node responsible for communication with motor controllers and computing inverse and forward kinematics of a robot,
- panther_lights (lights_controller_node.cpp) - node responsible for control Panther's APA102C lights driver using ROS,
- power_control (power_board_node.py) - node responsible for management of the safety board and the power board,
- system_status_node (system_status_node.py) - publishes stats status of the internal computer. Stats include CPU utilization and temperature, as well as disc and RAM usage.
Below are topics and services available in Panther:
Topic | Message type | Node | Description |
---|---|---|---|
/cmd_vel | geometry_msgs/Twist | panther_driver | Robot desired control velocity. |
/joint_states | sensor_msgs/JointState | panther_driver | Robot joints states. |
/panther/battery | sensor_msgs/BatteryState | battery_node | Average values of both batteries if panther has two batteries. In case of single battery values only for the single one. |
/panther/battery_1 | sensor_msgs/BatteryState | battery_node | First battery state. Published if second battery detected. |
/panther/battery_2 | sensor_msgs/BatteryState | battery_node | Second battery state. Published if second battery detected. |
/panther/driver/motor_controllers_state | panther_msgs/DriverState | panther_driver | Motor controllers current, voltage, fault flags, script flags and runtime error flags. |
/panther/hardware/charger_connected | std_msgs/Bool | power_control | Informs if charger is connected. |
/panther/hardware/e_stop | std_msgs/Bool | power_control | The current state of the emergency stop. |
/panther/hardware/fan_enabled | std_msgs/Bool | power_control | Feedback if fan is currently turned on. |
/panther/imu/data | sensor_msgs/Imu | imu_manager | Publishes imu data. |
/panther/imu/mag | geometry_msgs/Vector3Stamped | imu_manager | The magnetic orientation vector. |
/panther/odom/wheel | nav_msgs/Odometry | panther_driver | Robot odometry calculated from wheels. |
/panther/pose | geometry_msgs/Pose | panther_driver | Robot position. |
/panther/system_status | panther_msgs/SystemStatus | system_status_node | Information about internal computer CPU temperature, utilization and disc and RAM usage. |
/tf | tf2_msgs/TFMessage | panther_driver | Transform between odom_frame and base_link_frame . |
Service | Service type | Node | Description |
---|---|---|---|
/panther/hardware/aux_power_enable | std_srvs/SetBool | power_control | Enable or disable auxiliary power output, e.g. supply to robotic arms. |
/panther/hardware/charger_enable | std_srvs/SetBool | power_control | Enable or disable charger. |
/panther/hardware/digital_power_enable | std_srvs/SetBool | power_control | Enable or disable the internal digital power used to power on, e.g. NUC, Router, etc. |
/panther/hardware/e_stop_reset | std_srvs/Trigger | power_control | Reset emergency stop. |
/panther/hardware/e_stop_trigger | std_srvs/Trigger | power_control | Trigger emergency stop. |
/panther/hardware/fan_enable | std_srvs/SetBool | power_control | Enable or disable internal fan. |
/panther/hardware/motors_enable | std_srvs/SetBool | power_control | Enable or disable motor drivers. |
/panther/lights/set_panther_lights | panther_lights/SetLights | panther_lights | Allows to change LEDs animation. |
/panther/lights/set_panther_lights_brightness | panther_lights/SetBrightness | panther_lights | Set Panther lights brightness. |


Below you can find a description of the nodes that enable the robot to work:
- battery_node (roboteq_republisher_node.py) - node publishing Panther battery state read from motor controllers,
- imu_manager (phidgets_imu) - driver for the Phidgets Spatial 3/3/3 IMU sensor. The driver publishes linear acceleration, angular velocities and magnetic field,
- panther_driver (driver_node.py) - node responsible for communication with motor controllers and computing inverse and forward kinematics of a robot,
- panther_lights (lights_controller_node.cpp) - node responsible for control Panther's APA102C lights driver using ROS,
- power_control (relays_node.py) - this node is responsible for power management using relays.
Below are topics and services available in Panther:
Topic | Message type | Node | Description |
---|---|---|---|
/cmd_vel | geometry_msgs/Twist | panther_driver | Robot desired control velocity. |
/joint_states | sensor_msgs/JointState | panther_driver | Robot joints states. |
/panther/battery | sensor_msgs/BatteryState | battery_node | Average values of both batteries if panther has two batteries. In case of single battery values only for the single one. |
/panther/driver/motor_controllers_state | panther_msgs/DriverState | panther_driver | Motor controllers current, voltage, fault flags, script flags and runtime error flags. |
/panther/hardware/e_stop | std_msgs/Bool | power_control | The current state of the emergency stop. |
/panther/imu/data | sensor_msgs/Imu | imu_manager | Publishes imu data |
/panther/imu/mag | geometry_msgs/Vector3Stamped | imu_manager | The magnetic orientation vector. |
/panther/odom/wheel | nav_msgs/Odometry | panther_driver | Robot odometry calculated from wheels. |
/panther/pose | geometry_msgs/Pose | panther_driver | Robot position. |
/panther/system_status | panther_msgs/SystemStatus | system_status_node | Information about internal computer CPU temperature, utilization and disc and RAM usage. |
/tf | tf2_msgs/TFMessage | panther_driver | Transform between odom_frame and base_link_frame . |
Service | Service type | Node | Description |
---|---|---|---|
/panther/hardware/e_stop_reset | std_srvs/Trigger | power_control | Reset software simulated emergency stop. |
/panther/hardware/e_stop_trigger | std_srvs/Trigger | power_control | Trigger software simulated emergency stop. |
/panther/lights/set_panther_lights | panther_lights/SetLights | panther_lights | Allows to change LEDs animation. |
/panther/lights/set_panther_lights_brightness | panther_lights/SetBrightness | panther_lights | Set Panther lights brightness. |


GPS API​
GPS data in NMEA format is forwarded to RPi IP address at port 5000, typically it is 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 were needed, finish the configuration by pressing save & apply
at the bottom of the screen.
Data frequency is 1Hz and can be interacted ether with GPSD daemon (gpsd -N udp://10.15.20.2:5000
) or directly with ROS package redirecting signal to ROS topic.
It is recommended to use docker image using compose.yaml file:
services:
nmea-gps:
image: husarion/nmea-gps:noetic
container_name: nmea-gps
network_mode: host
environment:
- ROS_MASTER_URI=http://10.15.20.2:11311
command: >
rosrun nmea_navsat_driver nmea_socket_driver
__ns:=panther
_port:=5000
_local_ip:=10.15.20.2
To start the container type:
git clone https://github.com/husarion/nmea-gps-docker.git
cd nmea-gps-docker
docker compose up
You should be able to see data on /panther/fix
topic (rostopic echo /panther/fix
).
Panther LEDs controller​
Use the following services to change the operation of the lights:
/set_panther_lights
(panther_lights/SetLights) - allows to change LEDs animation.Change animation to
BLINIKER_LEFT
:rosservice call /set_panther_lights "{animation: 1, custom_color: ''}"
Change animation to
BLINKER_LEFT
with custom colors (front is green, rear is red):rosservice call /set_panther_lights "{animation: 1, custom_color: '0x00FF00 0xFF0000'}"
Possible values:
BLINKER_RIGHT = 0
BLINKER_LEFT = 1
BRAKE_FRONT = 2
BRAKE_REAR = 3
BRAKE_BOTH = 4
NORMAL_FORWARD = 5
NORMAL_REVERSING = 6
SKID_RIGHT = 7
SKID_LEFT = 8
ERROR = 9
DEFAULT = 10
DEFAULT_FAST = 11/set_panther_lights_brightness
(panther_lights/SetBrightness) - set Panther lights brightness.Change lights brightness to half:
$ rosservice call /set_panther_lights_brightness "brightness: 0.5"
You can customize your animation in file panther_lights_animations.yaml.
Controlling ROS nodes with Docker​
The Panther robot uses Docker to launch ROS nodes on the main computer. By default, three Docker containers are launched:
ros_master
- starts the ROS master node,panther_ros
- starts Panther driver nodes,webui-ros-joystick
- starts the WebUI.
Docker containers can be controlled (eg. stopped, restarted) and configured (eg. modify restart policy) by logging into the main computer (default ssh husrion@10.15.20.2
pass:husarion
) and using standard Docker commands and parameters. For more information on how to control Docker containers refer to Using Docker images.
Controlling Panther robot​
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 wheels unless E-stop is triggered. Below described are some tools allowing to control Panther robot but any software publishing to /cmd_vel
topic will be valid.
note
To control Panther robot with /cmd_vel
topic E-stop state have to be reset. It can be done using ROS service or the WebUI.
caution
For safety reasons 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 Panther robot starts. It is a simple browser-based interface that can be accessed under 10.15.20.2:8000. It allows handling the Panther robot E-stop and controlling its movement. 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/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 have 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. Joy2Twist can be easily applied using Docker. To control Panther with the gamepad hold the LB
button and use the right stick to drive forward/reverse (and left/right when using mecanum wheels) and the left 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 to control a robot. It converts keyboard input to velocity commands published to the /cmd_vel
topic. It can be easily installed and applied on any device with ROS. For more information on how to run and use it see teleop_twist_keyboard.
caution
Do not try controlling the robot from different sources at once. It may cause unpredictable behavior.
System reinstallation​
In some cases you will need to restore Panther's system to its default settings:
- in case of accidental damage of the system,
- to update the OS,
- to clear all user changes and restore factory settings.
Raspberry Pi 4​
The reinstallation procedure for on-board RPI:
- The on-board RPI computer is located in the service space. To acces it, follow instructions in the section - Service spaces.
- Extract SD card from Raspberry Pi SBC by pushing card carefully until it is released back by card holder, then pull it out.
- Download image for Raspberry Pi from here.
- Extract the downloaded image (For this process we recommend using unxz tool).
- Flash the extracted image onto SD card (For this process we recommend using Etcher, but any image writing tool will be good):
- If you want to replace the included card, remember that you need to use at least 16 GB capacity and 10 speed class micro SD card.
- Download Etcher and install it.
- Connect an SD card reader with the SD card inside.
- Open Etcher and select from your hard drive .img file that you extracted.
- Select the SD card you wish to write your image to.
- Review your selections and click 'Flash!' to begin writing data to the SD card.
Insert SD card back to Raspberry Pi
Acces the RPI (remember you must be connected to the panther hotspot)
ssh husarion@10.15.20.2
- Launch the software
docker compose pull
docker compose up -d
Intel NUC / HP G2​
To install system on Intel NUC or HP G2, you can download created ready to use Ubuntu20 image.
- Download image from here.
- Create bootable pendrive with Etcher.
- Reboot NUC with inserted USB flash
- BIOS automatically proposes you new installation from USB device
- The process can't be done in headless mode - needed connected monitor and keyboard at least
Network​
Overview​
Panther is equipped with a RUTX11 router running open-source firmware OpenWRT, which provide following interfaces:
Ethernet
- 1 x WAN 10/100/1000 Mbps (by default configured as a LAN port)
- 3 x 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 867Mbps, fast roaming with 802.11r
- Works as access point (AP) and/or as a client/station (STA)
- External antennas with 2dBi gain (standard equipment of 'Pth10')
Cellular
- Dual-Sim with fail-over
- LTE (4G) Cat 6
- Two external antennas with 3dBi gain (equipped as an option 'Ant01')
GNSS
- Support for GPS, GLONASS, Galileo and BeiDou
- Integrated into ROS
- 1 Hz refresh rate
- CEP-50 of 2.5m
- External antenna (equipped as an option 'Ant02')
Each form of connectivity can be part of automatic WAN fail-over in order to provide continuous connection to external services. More information is available on manufacturer site. Some RUTX11 configuration scripts are available on our GitHub repository.
Connecting to Panther's hotspot​
Panther provides hotspot with default SSID Panther_XXXX
and Panther_5G_XXXX
for 2.4 GHz and 5 GHz band respectively with password husarion
, where XXXX
is unique S/N of your Panther.
Connecting Panther to a Wi-Fi​
Panther can be connected Wi-Fi on 2.4GHz or 5GHz band. It will be used as WAN source and be prioritized over cellular connection. Single radio can act simultaneously as AP (access point) and STA (client).
note
We advise to use 2.4GHz radio as a up-link.
By default Panther scan for available networks and connect to first one provided in configuration file. In case of low signal level or lost of signal next one on list will chosen (if available). This behavior can be modified by user.
Connecting to a 2.4 GHz Wi-Fi​
Open a Linux terminal in your laptop that is connected to the hotspot provided by Panther
$ ssh husarion@10.15.20.2
with husarion
password.
To edit network configuration edit a ~/panther_rutx11/config.json
file:
nano panther_rutx11/config.json
Edit section named wifi_client
filling in your SSID and matching password. If you want to connect to multiple networks duplicate whole block, Panther will try to connect to them in given order:
{
"radio":"0",
"ssid":"SSID_of_your_network",
"password":"password_to_your_network",
"encryption":"psk2"
}
Save by pressing Ctrl+O
and exit by Ctrl+X
. To apply new settings execute python script by command:
panther_rutx11/setup.py
When Panther connect to our network message Success
will be shown. For explanation of possible configuration options go to our GitHub repository
Connecting to a 5 GHz Wi-Fi​
Due to limitation of Wi-Fi chipset it is not possible to scan for available networks, while providing AP on 5 GHz interface. Its advised to use 2.4 GHz for WAN uplink. For more information go to documentation on our GitHub repository
Using a cellular connection​
If your Panther is equipped with ANT02 option it is possible to use cellular connection with failover to second SIM and priority of WLAN connection over cellular.
Installing a SIM card(s)​
First open Cover following instruction, then you can access Teltonika RUTX11 SIM slots, more detail here.
Configuration of SIM slots​
In 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, 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 10.15.20.1
address. Login with username admin
and password Husarion1
. Consult Teltonika RUTX11 manual for more information.
note
It is advised to change default password.
Resetting router to default settings​
In case of misconfiguration it is possible to reset router to working default settings (as shipped to you). To do it press and hold reset button on powered on RUTX11 for at least six seconds. Signal strength LEDs indicate elapsed time. After all five LEDs are lit up, reset button can be released. After automatic restart router is ready to be used again.
Safety​
- Panther v1.2
- Panther v1.0 - v1.06
The robot has been equipped with solutions for the safe use of the equipment, both in the software and hardware layer.
warning
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 Unit (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 dedicated electrical User Safety Interface (USI) led out to the User Space.
Due to the appearance of any trigger, such as CPU crash or Emergency button press, the EMU call and latch 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.
tip
This chapter describes only the basic default EMU configuration, however the system is configurable. To learn more about the possibilities and how to configure it, visit a separate article - EMU configuration
The robot has been equipped with solutions for the safe use of the equipment, both in the software and hardware layer.
warning
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.
Hardware​
- Panther v1.2
- Panther v1.0 - v1.06
Emergency button​
On the rear side of the robot there is a red Emergency push button. Pushing the Emergency button causes:
- activate E-stop signal and latch it,
- actively brake the robot using motors,
- toggle a SPDT relay (external E-stop output).
tip
These actions are default EMU configuration. To learn more about the possibilities and how to configure it, visit a separate article - EMU configuration
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 details in the Emergency Management Unit article in chapter User Safety Interface.
Emergency button​
On rear side of the robot there is red Emergency push button. Pushing the Emergency button completely cuts off the power to the device.
caution
Cutting off the computer's power may cause data loss.
Docs and links​
All helpful documents and links in one place:
- Panther v1.2
- Panther v1.0 - v1.06
- Safety instructions - to avoid malfunction or damage 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]( "Husarion 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 WH03 package option, to swap between off-road and mecanum wheels
- Panther PC02 - installation manual - instructions for PC02 package option, to install user computer
- pnather_ros repository - Packages composing basic funcinalities of the Husarion Panther robot
- panther_simulation repository - Simulation models for Panther (including Gazebo)
- panther_msgs repository - Custom ROS messages and services for Panther
- panther_docker repository - Docker image with a Panther ROS package
- ros_components_description repository - URDF models of sensors and other components offered alongside with Husarion robots
- Teltonika RUTX11 manual
- Teltonika RUTX11 datasheet
- Panther options
- Safety instructions - to avoid malfunction or damage 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 WH03 package option, to swap between off-road and mecanum wheels
- Panther PC02 - installation manual - instructions for PC02 package option, to install user computer
- pnather_ros repository - Packages composing basic funcinalities of the Husarion Panther robot
- panther_simulation repository - Simulation models for Panther (including Gazebo)
- panther_msgs repository - Custom ROS messages and services for Panther
- panther_docker repository - Docker image with a Panther ROS package
- ros_components_description repository - URDF models of sensors and other components offered alongside with Husarion robots
- Teltonika RUTX11 manual
- Teltonika RUTX11 datasheet
- Panther options