Skip to main content

Panther - outdoor AMR

Overview

Block diagramBlock diagram

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

  1. Please read the Safety instructions first.
  2. If you are not sure how something works, please read the manual.
  3. Please remember that the Emergency 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.
  4. The detailed description of the safety features are available in the Safety section.

Quick Start

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.

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

user@mylaptop:~$ ...
$ 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

husarion@panther:~$ ...
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:

husarion@panther:~$ ...
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:

husarion@panther:~$ ...
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:

user@mylaptop:~$ ...
ping6 myPanther

or SSH to it:

user@mylaptop:~$ ...
$ 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)

NameValueNameValue
length805 mmwidth840 mm
platform height290 mmweight55 kg
overall height365 mmprotection indexIP54 / IP66
wheelbase440 mmoperating temperature-20°C to 50°C
track of wheels695 mmstorage temperature-20°C to 50°C
maximum ground clearance155 mmcharging temperature0°C to 45°C
minimum ground clearance139 mmbattery typeLi-Ion 36V

Traction parameters (with WH01 wheels)

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

Great traction, large ramp angles and high stability are ensured by the low center of gravity, located very close to the center of the robot. Details can be found in the 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:

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

Components

ComponentQuantityDescription
Internal computer1Raspberry Pi 4B with Broadcom BCM2711 processor, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz and 4GB LPDDR4 RAM. Used to manage all the basic functions of a mobile platform.
On-board user computer*1Intel NUC10i7FNKN or ADLINK Vizi-AI or HP Z2 Mini Workstation with Nvidia graphics card. See Computer options for details.
Router1Teltonika RUTX11 - Dual-band (2.4 GHz/5 GHz), Access Point / Client Mode, 4G LTE CAT 6, Bluetooth 4.0 LE, GNSS (GPS, GLONASS, BeiDou, Galileo and QZSS) - This multifunctional device ensures reliable external wireless communication and Ethernet link between internal components of the robot system. More details.
Antenna2Dual-band (2.4 GHz/5 GHz) placed on the rear of the robot. See all Panther options.
IMU (Inertial Measurement Unit)1PhidgetSpatial 3/3/3 Basic (3-axis compass, a 3-axis gyroscope, and a 3-axis accelerometer) More details.
Front and rear lights2Signal lighting made of 46 pcs. APA102C LED chips build into an aluminum profile on the robot's bumpers.
Brushless Motor with planetary gearbox480PMB800K.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.

Block diagramBlock diagram

Power Switch and Emergency button

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 positionKnob positionPower state
OFFleftBattery disconnected
ONrightBattery 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 positionRobot statusPower button action
OFFPowered OFFNo action
ONPowered OFFPower ON
ONPowered ONInitialize shutdown

The Power button is equipped with a LED which indicates the robot status:

LED stateStatus of the robot
ONPowered on
BlinkingShutting down
OFFPowered 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.

Power supply

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 parameterValue for BAT01Value for BAT02
Battery capacity720 Wh1440 Wh
Runtime3.5 h - 8 h7 h - 16 h
Standby time40 h80 h
Total output power1.0 kW2.0 kW
Maximum peak power1.8 kW3.2 kW

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.

Charging Panther

In the set with the robot, we provide a dedicated charger, which can charge the robot to 80% in 4 hours, and to 100% in 7 hours. 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 nameSingle charger (for BAT01)Dual charger (for BAT02)
Input voltage range100-240 V AC100-240 V AC
Input voltage frequency50 - 60 Hz50 - 60 Hz
Max input current2.5A5A
Max output voltage42V42V at two channels
Max output current5A2x 5A
Charging robot with BAT01 optionyesyes
Charging robot with BAT02 optionnoyes
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)).

Mounting rails

Sensors, constructions and payload can be attached to the profiles on top of the robot.

Rails on top of the RobotRails 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.

V-slot aluminum extrusionV-slot aluminum extrusion

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

Top rails fixingTop rails fixing

To enable access to 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.

Top rails openTop rails open

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

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.

Cover fixingCover fixing
caution

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

User Shelf

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.

User's spaceUser's space

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:

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

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:

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

Service spaces

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

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.

Deck fixingDeck fixing

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.

Deck fixingDeck fixing

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.

CAD models

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

Pth v1.2
STEPSoon...
IGESSoon...
STLSoon...

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

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:

TopicMessage typeNodeDescription
/cmd_velgeometry_msgs/Twistpanther_driverRobot desired control velocity.
/joint_statessensor_msgs/JointStatepanther_driverRobot joints states.
/panther/batterysensor_msgs/BatteryStatebattery_nodeAverage values of both batteries if panther has two batteries. In case of single battery values only for the single one.
/panther/battery_1sensor_msgs/BatteryStatebattery_nodeFirst battery state. Published if second battery detected.
/panther/battery_2sensor_msgs/BatteryStatebattery_nodeSecond battery state. Published if second battery detected.
/panther/driver/motor_controllers_statepanther_msgs/DriverStatepanther_driverMotor controllers current, voltage, fault flags, script flags and runtime error flags.
/panther/hardware/charger_connectedstd_msgs/Boolpower_controlInforms if charger is connected.
/panther/hardware/e_stopstd_msgs/Boolpower_controlThe current state of the emergency stop.
/panther/hardware/fan_enabledstd_msgs/Boolpower_controlFeedback if fan is currently turned on.
/panther/imu/datasensor_msgs/Imuimu_managerPublishes imu data.
/panther/imu/maggeometry_msgs/Vector3Stampedimu_managerThe magnetic orientation vector.
/panther/odom/wheelnav_msgs/Odometrypanther_driverRobot odometry calculated from wheels.
/panther/posegeometry_msgs/Posepanther_driverRobot position.
/panther/system_statuspanther_msgs/SystemStatussystem_status_nodeInformation about internal computer CPU temperature, utilization and disc and RAM usage.
/tftf2_msgs/TFMessagepanther_driverTransform between odom_frame and base_link_frame.
ServiceService typeNodeDescription
/panther/hardware/aux_power_enablestd_srvs/SetBoolpower_controlEnable or disable auxiliary power output, e.g. supply to robotic arms.
/panther/hardware/charger_enablestd_srvs/SetBoolpower_controlEnable or disable charger.
/panther/hardware/digital_power_enablestd_srvs/SetBoolpower_controlEnable or disable the internal digital power used to power on, e.g. NUC, Router, etc.
/panther/hardware/e_stop_resetstd_srvs/Triggerpower_controlReset emergency stop.
/panther/hardware/e_stop_triggerstd_srvs/Triggerpower_controlTrigger emergency stop.
/panther/hardware/fan_enablestd_srvs/SetBoolpower_controlEnable or disable internal fan.
/panther/hardware/motors_enablestd_srvs/SetBoolpower_controlEnable or disable motor drivers.
/panther/lights/set_panther_lightspanther_lights/SetLightspanther_lightsAllows to change LEDs animation.
/panther/lights/set_panther_lights_brightnesspanther_lights/SetBrightnesspanther_lightsSet Panther lights brightness.
Panther ROS APIPanther ROS API

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:

  1. The on-board RPI computer is located in the service space. To acces it, follow instructions in the section - Service spaces.
  2. Extract SD card from Raspberry Pi SBC by pushing card carefully until it is released back by card holder, then pull it out.
  3. Download image for Raspberry Pi from here.
  4. Extract the downloaded image (For this process we recommend using unxz tool).
  5. 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.
  1. Insert SD card back to Raspberry Pi

  2. Acces the RPI (remember you must be connected to the panther hotspot)

ssh husarion@10.15.20.2
  1. 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.

  1. Download image from here.
  2. Create bootable pendrive with Etcher.
  3. 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

user@mylaptop:~$ ...
$ ssh husarion@10.15.20.2

with husarion password.

To edit network configuration edit a ~/panther_rutx11/config.json file:

husarion@panther:~$ ...
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:

husarion@panther:~$ ...
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

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

safety board logic

Hardware

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.

All helpful documents and links in one place: