Skip to content

Releases: husarion/panther_ros

2.1.2-beta

02 Dec 12:10
ad89d1e
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.1.1...2.1.2

2.1.1-beta

05 Sep 10:11
3a68979
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.1.0...2.1.1

2.1.0-beta

02 Aug 06:30
2fb4b49
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.0.4...2.1.0

2.0.4-alpha

28 Jun 12:03
fc004c2
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.0.3...2.0.4

2.0.3-alpha

06 Jun 13:49
807ee36
Compare
Choose a tag to compare

What's Changed

  • ROS 2 revise and clear logs by @pawelirh in #320
  • Ros2 improve release process by @pawelirh in #332
  • Release 2.0.3 by @github-actions in #335
  • Release to ros2 by @github-actions in #336

Full Changelog: 2.0.2...2.0.3

2.0.2-alpha

05 Jun 12:27
6314f5e
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.0.1...2.0.2

2.0.1-alpha

01 May 16:20
aa1ba76
Compare
Choose a tag to compare

What's Changed

New Contributors

  • @github-actions made their first contribution in #296

Full Changelog: 2.0.0...2.0.1

2.0.0-alpha

29 Mar 12:53
a5f4386
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.1.0...2.0.0

1.1.0

18 Sep 12:58
Compare
Choose a tag to compare

General

Warning
This release required changes in the low level of the Built-in Computers operating system.
You need to install system image version 1.1.0 to use this update!

  • Updated documentation, fixing broken links and adding more in-depth information about nodes.
  • All nodes are now launched with the postfix _node.
  • All dependencies are now fully encapsulated within rosdep and do not require installing anything manually.
  • Raspberry Pi-specific dependencies were removed and replaced with general, standard Linux libraries.
  • Some of the code was rewritten in C++ to improve efficiency.
  • Hardware access to the nodes was modified to allow for strict confinement of containerized applications.
  • Added RViz plugin visualizing the Bumper Lights animation. See rviz_textured_quads.

panther_battery

New Features

  • The robot will not find itself charging when the charger is not connected to a wall socket.
  • Extended logging of battery state.

API Changes

  • sensor_msgs/BatteryState field power_supply_health is now populated.
  • In the case of can_net_err battery state is not updated.

Bug fixes

  • Added thread locks to prevent race conditions.
  • Changed battery type from LIPO to LION.
  • Percentage values are now clamped to a range between 0 and 1.
  • The discharge current is now negative.
  • The race condition, sometimes occurring when nodes start killing it, is now resolved.

panther_bringup

New Features

  • Added default EKF configuration for fusion of IMU and wheel odometry.
  • The system now checks whether the detected system configuration matches the one read from the EEPROM. If a mismatch occurs, the user will be notified, and ROS nodes will be prevented from launching.
  • New node welcome_msg_node.py greets the user with a friendly welcome message and printing information about detected hardware, the currently running software version, and possible launching errors such as hardware mismatch.

API Changes

  • New topic odometry/filtered publishing the odometry fused by the EKF.
  • The gravity vector is now removed in imu/data message.
  • New launch parameters:
    • bt_project_file: custom behavior tree project used by manager_bt_node.
    • exit_on_wrong_hw: specify if all ROS nodes from the launch file should be killed if incorrect hardware is detected.
    • use_ekf: enable or disable EKF (see documentation for more information).
  • Removed launch parameters:
    • launch_lights_scheduler

Bug fixes

  • PhidgetsSpatialNodelet now runs as a separate node to improve robustness.

panther_description

New Features

  • Wheel config has a new parameter odom_stderr: { vel_x: 0.0, vel_y: 0.0, vel_yaw: 0.0 } allowing to specify the standard deviation of odometry for different wheel types. Those parameters are used by panther_driver_node.

API Changes

  • front_light_link and rear_light_link were renamed to front_bumper_link and rear_bumper_link.
  • front_light_link and rear_light_link are now at the height of the Bumper Lights LED panels and are meant to be reference frames for the animation images.

Bug fixes

  • Meshes are now resolved by package name and not by the local file path, evaluated by Xacro.

panther_driver

New Features

  • Added a velocity smoother, limiting velocities and accelerations.

API Changes

  • New driver_node.py parameters:
    • ~max_vel_x: maximum velocity in the X direction.
    • ~max_vel_y: maximum velocity in the Y direction.
    • ~max_vel_theta: maximum angular velocity about the Z axis.
    • ~acc_lim_x: maximum linear acceleration in the X direction.
    • ~acc_lim_y: maximum linear acceleration in the Y direction.
    • ~acc_lim_theta: maximum angular acceleration about the Z axis.
    • ~decel_lim_x: maximum linear deceleration in the X direction.
    • ~decel_lim_y: maximum linear deceleration in the Y direction.
    • ~decel_lim_theta: maximum angular deceleration about the Z axis.
    • ~emergency_decel_lim_x: maximum linear deceleration in the X direction when emergency breaking occurs.
    • ~emergency_decel_lim_y: maximum linear deceleration in the Y direction when emergency breaking occurs.
    • ~emergency_decel_lim_theta: maximum angular deceleration about the Z axis when emergency breaking occurs.
    • ~odom_stderr/vel_x: standard deviation used in odometry for velocity in the X direction.
    • ~odom_stderr/vel_y: standard deviation used in odometry for velocity in the Y direction.
    • ~odom_stderr/vel_yaw: standard deviation used in odometry for angular velocity around the Z axis.
  • Transforms based on wheel odometry are now disabled by default in driver_node.py and are published by the EKF node.
  • Covariance in odom/wheels topic are now set values determined during experiments.

Bug fixes

  • Added thread locks to prevent race conditions.
  • Improved robustness of CAN network error detection.
  • Power-related errors and warnings to motor drivers are now suppressed if motors are powered off.

Backend Changes

  • CAN abstraction layer was refactored.
  • CAN network error now relies on motor controllers' heartbeat.

panther_gazebo

API Changes

  • New launch parameters:
    • use_gpu: whether to use GPU acceleration for sensors.
    • wheel_type: wheel type to use with the robot.
    • publish_robot_state: whether to publish the default robot model.
    • pos_x: initial position of the robot in the X direction.
    • pos_y: initial position of the robot in the Y direction.
    • pos_z: initial position of the robot in the Z direction.
    • rot_yaw: initial rotation of the robot alongside Z axis.
    • world_file: file path to world to be loaded.

panther_lights

New Features

  • Improved checks regarding received animation image frames.
  • Added thread locks to prevent race conditions.
  • A dimming sequence after the battery animation was added to improve its readability.

Bug fixes

  • Bumper Lights will not stop ambient animation until the first animation frame arrives. This includes all black frames.
  • Animation queue sorting by time is fixed.

Note
Bugfixes regaring scheduler can be found in panther_manager.

Backend Changes

  • scheduler_node.py was removed, and its responsibilities were moved to panther_manager.
  • APA102C driver was rewritten in C++ for better performance.
  • The driver now uses two separate virtual SPI buses to switch between LED panels.
  • RPi.GPIO library was replaced with Libgpiod.
  • Pin numbers are now stored in the kernel and are accessed via their labels.

panther_manager

New Features

  • The safety of the robot is now managed by behavior trees based on the BehaviorTree.CPP 4 library.
  • Software shutdown now have new options:
    • ping_for_success: if false, assume the computer is shutdown after receiving the command and there is no need to verify it.
    • port: port used to ssh into the device.
    • timeout: timeout waiting for given host to shutdown.
  • Custom BT nodes you can use in your project for:
    • Shutting down a single computer.
    • Shutting down many computers specified in shutdown_hosts.yaml.
    • Calling ROS service of type std_srvs/Trigger.
    • Calling ROS service of type std_srvs/SetBool.
    • Calling ROS service of type panther_msgs/SetLEDAnimation.
    • Signalling the main tree, the robot can shutdown itself.
  • Separate, executed in parallel, trees for:
    • Bumper Lights animations scheduling.
    • Robot's internal safety measures.
    • Software shutdown procedures.
  • Preconfigured behavior tree trees for all Panther versions.
  • Vastly improved internal temperature-related safety, including procedures related to overvoltage and overheating components.
  • Ability to modify the behavior of the manager and monitor its state in real time with the visual tool Groot2.
  • System errors are now displayed on the Bumper Lights.

API Changes

  • manager.launch file is now manager_bt.launch.
  • manager_node.py is replaced by manager_bt_node.
  • The launch file has new parameters:
    • bt_project_file: behavior tree project file.
    • manager_bt_config_file: manager_bt_config.yaml file.
  • In shutdown hosts yaml file syntax was changed. identity_file was removed, and port, timeout and ping_for_success parameters were added. See the table below for a side-by-side comparison:
Old format New format
hosts:
 - ip: 10.15.20.3
   username: husarion
   cmd: /home/husarion/my_custom_shutdown.sh
   identity_file: /home/husarion/.ssh/id_rsa
hosts:
 - ip: 10.15.20.3
   username: husarion
   command: /home/husarion/my_custom_shutdown.sh
   port: 22
   timeout: 5.0
   ping_for_success: true

Bugfixes

  • Faster response to displaying charging animation when charger is unplugged.

Backend Changes

  • Scheduling animations is now held by manager_bt_node instead of lights_schedular.py.
  • system_status_node.py is now compatible with the older apt-based version of psutil and does not require a separate pip installation.

panther_power_control

New Features

  • hardware/motor_power_enable service of type std_srvs/SetBool was added to all Panther revisions.

API Changes

  • panther_msgs/IOState message field motor_on was changed to motor_power.
  • hardware/motor_on topic in relays_node.py was removed, and its functionality was moved to the emulated hardware/io_state topic in the message file...
Read more

1.0.0

29 Mar 15:46
2d4f175
Compare
Choose a tag to compare

Panther ROS v1.0.0

This software is compatible with all Panther versions, the only requirement is an update to the latest system image. The software automatically detects the hardware revisions of robots and launches the correct software stack according to the configurations.

Panther Battery

Battery logging has been improved, with the ability to self-detect the presence of a second battery and estimate the battery state accurately.

Panther Bringup

All launch files and global robot configurations are now stored in a single package.

Panther Description

A revised version of the URDF model of the robot has been included with the following features:

  • Optimized visual meshes for good appearance and low resource consumption.
  • A simplified yet accurate collision mesh.
  • A user interface for non-standard wheels.
  • Transforms aware of robot revisions.
  • Predefined user-space transforms to simplify the attachment of user components.
  • A predefined variety of sensor models found in husarion/ros_components_description.

Panther Driver

The driver node has been improved with the following features:

  • CAN bus logging with extended motor controller information.
  • Accurate /joint_state message with torque estimation.
  • Extended error handling.

Panther Gazebo

The URDF-based simulation model has been tightly integrated with the simulation model for best performance and sim2real accuracy.

Panther Lights

A new scalable LED animation system has been introduced with the following features:

  • A priority queue of animations.
  • Easily scalable animation definitions with YAML syntax.
  • Animations can be dynamically defined based on images or Python 3 functions.
  • Predefined animations for:
    • Ready robot,
    • Emergency stop,
    • Charging,
    • Battery state,
    • Low battery,
    • Critical battery.
  • Ability to test animations in RViz without a physical robot.
  • Animations can be defined at runtime.

Panther Manager

A new system monitor has been added, extending the safety of the robot with the following features:

  • Automatic temperature control of internal components.
  • Automatic detection of critical conditions and emergency stopping.
  • Soft shutdown of user computers.

Panther Power Control

The network usage has been optimized with reduced numbers of sent messages via ROS topics. The safety has been improved with false-positive pin state detection filtering.