Skip to main content

Panther ROS driver v1.1.0 released!

· 8 min read
Nina Bażela

Husarion Panther is a heavy-duty, autonomous mobile robotic platform designed to perform in the most challenging applications. We want to allow our clients to concentrate on developing their innovative solutions based on Panther without wasting unnecessary time figuring out how to handle our robot or integrate it with external components. That’s why our developers work hard to ensure that your experience with Panther is smooth, safe, and intuitive, allowing you to start working with our robot right away.

With the latest release of Panther ROS Driver v1.1.0, we have introduced a bunch of new features to enhance user experience and safety, including:

  • A new panther_manager based on BehaviorTree.CPP, which allows you to easily control the robot’s behavior in real-time and debug it on a visual interface.
  • A velocity smoother for better control of the robot’s movement and an extended Kalman filter configuration for improved odometry information.
  • Enhanced reporting on battery state and efficient handling of hardware-related errors based on the compatibility with the robot’s predefined configuration.

Keep on reading to learn more, and if you’d like to head straight to updating the Operating System image containing a brand new ROS driver for Panther - visit our OS reinstallation guide.

⚠️ Please keep in mind that the new software stack will not work properly unless you update the whole OS running on Panther’s Built-in Computer to v1.1.0. ⚠️

panther_manager is now based on BehaviorTree.CPP

Let’s start with the main highlight of this release - new and improved panther_manager. We have thoroughly rewritten the old panther_manager and based it on BehaviorTree.CPP in version 4. This update has provided incredible flexibility to the system, while also offering the convenience of visual behavior setup and debugging.

The new manager is composed of three independent behavior trees:

Lights Tree

This tree is responsible for scheduling which animations should be displayed on the Bumper Lights and when. By default, it will indicate the robot's operational state, E-stop status, any errors that have occurred, battery status, and charging progress. You can easily add new conditions and triggers to the system, allowing you to display your own animations based on custom conditions. There is no limit to the number or type of animations you can integrate into the system.

To simplify even further working with light animations, we have integrated the RViz rviz_textured_quads plugin. This allows you to visualize the same animations that appear on your robot directly within RViz. With this enhancement, you won't miss any important information your robot wants to convey, even when using teleoperation.

Safety Tree

The second tree is the "safety tree." It is tasked with monitoring the robot's internal state and controlling the internal cooling system and power management. This tree becomes especially valuable when operating in challenging environments with extreme temperatures, as you can configure temperature limits to suit your specific needs. By default, it also monitors the battery state and can trigger an E-stop, power off external components in the event of battery overheating, and even shut down the robot if the situation becomes critically dangerous. This autonomy ensures that you can deploy the robot with confidence, knowing that its safety is well-maintained. However, please be aware that any changes made to the safety tree are made at the user's responsibility. You should always consult Panther hardware specifications to ensure that you are not compromising the safety of the robot or its users.

Shutdown Tree

The last tree is the "shutdown tree". It is invoked when the Power Button is pressed. This tree manages a graceful shutdown process, first requesting all User Computers to shut down and then powering off the robot itself. This release has moved the shutdown functionality to the tree, giving you the ability to configure the order in which components shut down. Additionally, new parameters have been introduced, allowing you to specify the port used for SSH to your computer and determine whether to ping and wait for the device to shut down. In the case of pinging, you can also set the timeout duration for waiting for the shutdown process to complete

Real-time monitoring

Finally, the most crucial aspect of using the behavior tree is real-time monitoring. With Groot 2, you can now monitor the state of the robot in real-time.

This capability allows you to gain a comprehensive understanding of what is happening with your robot. You can effortlessly debug your custom behaviors and observe the robot's internal state in real-time, right on your own computer. This level of control empowers you to tailor the robot's configuration to precisely match your requirements.

To sum up, the new panther_manager allows you to monitor in real-time various aspects of robot’s behavior, such as light animations, internal state monitoring, and managing Panther's shutdown, all in an intuitive manner through a visual interface. This simplifies the learning curve for Panther, freeing you to concentrate on your project's development.t.

Improved odometry information and velocity smoother

To enhance Panther navigation in diverse and challenging terrain, we’ve introduced many features that enable more efficient control over the robot’s movement.

First of all, an extended Kalman filter configuration has been introduced to enhance the accuracy of odometry information. You can now subscribe to the /panther/odometry/filtered topic and access precise odometry results, achieved through sensor fusion between wheel odometry and IMU data. This configuration has been fine-tuned on our robots and its accuracy has been evaluated in real-life scenarios.

To enable seamless velocity adjustments and ensure safe emergency brakings, a velocity smoother has been integrated as an integral part of the panther_driver. If you require smooth deceleration while controlling the robot, you can select a very subtle setting. In the event of a sudden loss of control signal from your navigation system, Panther will engage in emergency braking to ensure a safe outcome.

Additionally, a /panther/hardware/motor_power_enable service has been added, allowing you to completely disable the motors, which comes in handy whenever you need to manually move the robot from one location to another.

Last but certainly not least, this release brings several safety improvements. We have introduced extended safety measures related to the robot's battery, providing feedback on battery health, temperature, and enhancing the detection of overvoltage events.

Furthermore, new software checks whether the loaded configuration matches Panther’s predefined hardware configuration. In the event of an error, all nodes from the launch file will be prevented from starting. This ensures that hardware-related errors can be promptly detected and handled with a clear error message. Additionally, your Panther will now greet you with the following message every time it launches:

 ____             _   _               
| _ \ __ _ _ __ | |_| |__ ___ _ __
| |_) / _` | '_ \| __| '_ \ / _ \ '__|
| __/ (_| | | | | |_| | | | __/ |
|_| \__,_|_| |_|\__|_| |_|\___|_|

Serial number: ----
Robot version: 1.2
ROS driver version: 1.1.0
Website: https://husarion.com
Support: https://community.husarion.com/
Bugtracker: https://github.com/husarion/panther_ros/issues

This message includes links to useful resources where you can look for help in case of any difficulties, as well as important information about the robot and OS version that will help our support team start an investigation.

Summary

New Panther ROS Driver v1.1.0 release empowers users to swiftly start working with Panther and devote their full attention to the development of their projects, providing them with new possibilities, including:

  • A visual programming & debugging interface in the new panther_manager based on BehaviorTree.CPP with functionalities of a Real-time monitoring of various aspects of Panther’s behavior.
  • Enhanced control of the robot’s movement and state estimation thanks to the velocity smoother and extended Kalman filter configuration.
  • Efficient handling of hardware-related errors based on the compatibility with the robot’s predefined configuration and improved safety with enhanced reporting on battery state. …but that’s not all!

You can find more information and exact details about smaller features, bug fixes and API changes in our release notes.

⚠️ Please note that release v1.1.0 is the final update for the software stack for ROS 1 and will no longer receive major feature improvements, only bug fixes. The main development focus will now shift towards ROS 2.

To update the Operating System running on your Panther, please visit our OS reinstallation guide.

⚠️ Keep in mind that the new software stack will not work properly unless you update the OS running on Panther’s Built-in Computer to v1.1.0, due to new system-level requirements and API changes. ⚠️

For more detailed hardware and software specifications, please visit Panther manual, which has been recently reviewed and updated for improved clarity.

We hope you can’t wait to test the updated Panther software - we certainly can’t wait to receive your feedback!

If you have any comments or questions, you can easily reach us at our Community Portal, by e-mail at contact@husarion.com or through GitHub's Issues and Pull Requests.