No version for distro humble showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

ubiquity_motor package from ubiquity_motor repo

ubiquity_motor

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.12.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Package that provides a ROS interface for the motors in UbiquityRobotics robots
Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2022-02-28
Dev Status DEVELOPED
Released RELEASED
Tags ros magni
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Provides a ROS interface to Ubiquity Robotics Magni motor controllers

Additional Links

No additional links.

Maintainers

  • Rohan Agrawal

Authors

No additional authors.

ubiquity_motor

Build Status

Introduction

This is a Package that provides a ROS interface for the motors in UbiquityRobotics robots. It communicates with the motor controller via a serial port.

Installation

This package may be installed from binaries for both x86 and ARM architectures.

The package may be installed with:

sudo apt-get install ros-kinetic-ubiquity-motor

Configuration launch files for the Magni robot are in the package magni_robot.

ROS API

Subscribed topics

cmd_vel geometry_msgs/Twist The command input.

system_control std_msgs/String A channel to command the motor node to change mode of operation. A text string with a commnad followed by parameter such as enable or disable are used.

motor_control disable      Stops the MCB control over serial (used for firmware load)
motor_control enable       Re-attaches the MCB control over serial for normal operation


speed_control disable      Stops the robot so no speed control is used for collision avoiance
speed_control enable       Re-enables the motor node to respond to cmd_vel speed messages

Published topics

odom nav_msgs/Odometry Odometry computed from motor controller messages.

/tf tf/tfMessage The transform from odom to base_link

battery_state sensor_msgs/BatteryState Charge state of the robot’s batteries.

publish_cmd geometry_msgs/TwistStamped The value of cmd_vel after limits were applied. Available if the publish_cmd paramater is set.

motor_power_active std_msgs/Bool The state of motor power being active is published. This follows the ESTOP switch within about a half second.

motor_state ubiquity_motor::MotorState The combined motor state for both wheels with positions, rotate rates, currents, pwm drive values

left_error std_msgs/Int32 The error in expected left wheel position relative to current left wheel position is published for diagnostics purposes.

right_error std_msgs/Int32 The error in expected right wheel position relative to current right wheel position is published for diagnostics purposes.

left_current std_msgs/Int32 The motor current in amps that the left motor is running at at this time

right_current std_msgs/Int32 The motor current in amps that the right motor is running at at this time

left_tick_interval std_msgs/Int32 A value that is proportional to the time between left wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

right_tick_interval std_msgs/Int32 A value that is proportional to the time between right wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

Parameters

Comms paramaters

serial_port (string, default: “/dev/ttyS0”) Name of device with which to communicate with motor controller hardware.

baud_rate (int, default: 9600) Baud rate for serial communication with motor controller hardware.

Firmware parameters

pid_proportional (int, default: 5000) The P paramater for the motor controller’s PID controller.

pid_integral (int, default: 10) The I paramater for the motor controller’s PID controller.

pid_derivative (int, default: 1) The D paramater for the motor controller’s PID controller.

pid_denominator (int, default: 1000) Divisor for the above PID paramaters.

pid_moving_buffer_size (int, default: 10) Size of a moving buffer used in the control loop.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ubiquity_motor

0.12.0 (2020-07-13)

  • Fixes ODOM bug and modifies way we set wheel type to safer system. (#87)
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level.
  • A workaround for issue 83. Insert a 2 second delay prior to serial port setup. Tests so far show this seems to avoid the issue where some OS components sets the serial port to 115200. The odd thing about the defect is stty still shows it as 38.4k but it is in fact 115.2k baud
  • Contributors: Mark Johnston

0.11.0 (2020-06-12)

  • Fixed unit test error
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level. Our main need here is thin wheels. Also add system_info script to be used for simplier field state info gathering on a magni
  • Continued mod to add more recent firmware changes into host side. Have added max_pwm to dynamic config. Made some changes to system_info.py info tool
  • Fix a repetitive logs for firmware date and version. Main new code is for support of v37 firmware registers and features. Not function complete yet for all changes
  • Putting into action mcb reset detection from system_event register and reading of mcb option switch so it can be sent back down to the MCB since mcb cannot read the onboard option register itself.
  • First commit of function complete code for support of wheel type in base.yaml, notification of MCB reset conditions, reading I2C option switch and pushing it to MCB register as the main new additions
  • Adding updates to firmware and hardware rev description
  • Better error messages for common errors
  • Adding v35 information for firmware revisions
  • Contributors: Mark Johnston, Rohan Agrawal

0.10.0 (2019-11-10)

  • Support for higher resolution odometry (firmware v35+ required)
  • Tool to verify odometry consistency
  • Support for target velocity term in the PID (firmware v35+ required)
  • Firmware update script now supports local firmware files
  • Firmware update script can use different serial port
  • Support for reading motor controller version from I2C
  • Safer E-STOP behavior (MCB 5.0+)
  • Publishing the state of the estop switch
  • Improved documentation
  • Improvements to the testing scripts
  • Contributors: Alexander Sergeenko, David Crawley, Mark Johnston, Rohan Agrawal

0.9.0 (2019-04-03)

  • Allow selecting what firmware version to download
  • Adding max motor forward and reverse speeds and max pwm settings all the way from ROS parameters to being pushed to the controller board.
  • Analyze information to create diagnostics statuses
  • Major update to test_motor_board.py that accepts greatly improved parameter read and set as well as ability to specify com port device to be used
  • Adds support for set of hw rev and for pre rev 5.0 estop threshold
  • Contributors: Mark Johnston, Rohan Agrawal

0.8.0 (2019-01-01)

  • Added firmware loading tool
  • Added misc testing scripts
  • Don't die when communication not working, only print error
  • Use std mutex/atomic instead of boost
  • Reduce print level on integral/pid limits
  • Contributors: Rohan Agrawal

0.7.1 (2018-06-16)

  • new pid params
  • Contributors: Rohan Agrawal

0.7.0 (2018-04-15)

  • Add script to probe the robot for information
  • Add Serial Protocol Documentation Fixes #33
  • Add ROS API documentation (#32)
    • Add API documentation
    • Remove unused serial_loop_rate variable
  • Contributors: Jim Vaughan, Rohan Agrawal

0.6.1 (2017-11-12)

  • Reset controller when time jumps (#31) Reset the controller and zero commanded velocity an unexpected time change occurs (such as by NTP). This prevents unexpected robot motion.
  • Contributors: Jim Vaughan, Rohan Agrawal

File truncated at 100 lines see the full file

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ubiquity_motor at Robotics Stack Exchange

No version for distro jazzy showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

ubiquity_motor package from ubiquity_motor repo

ubiquity_motor

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.12.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Package that provides a ROS interface for the motors in UbiquityRobotics robots
Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2022-02-28
Dev Status DEVELOPED
Released RELEASED
Tags ros magni
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Provides a ROS interface to Ubiquity Robotics Magni motor controllers

Additional Links

No additional links.

Maintainers

  • Rohan Agrawal

Authors

No additional authors.

ubiquity_motor

Build Status

Introduction

This is a Package that provides a ROS interface for the motors in UbiquityRobotics robots. It communicates with the motor controller via a serial port.

Installation

This package may be installed from binaries for both x86 and ARM architectures.

The package may be installed with:

sudo apt-get install ros-kinetic-ubiquity-motor

Configuration launch files for the Magni robot are in the package magni_robot.

ROS API

Subscribed topics

cmd_vel geometry_msgs/Twist The command input.

system_control std_msgs/String A channel to command the motor node to change mode of operation. A text string with a commnad followed by parameter such as enable or disable are used.

motor_control disable      Stops the MCB control over serial (used for firmware load)
motor_control enable       Re-attaches the MCB control over serial for normal operation


speed_control disable      Stops the robot so no speed control is used for collision avoiance
speed_control enable       Re-enables the motor node to respond to cmd_vel speed messages

Published topics

odom nav_msgs/Odometry Odometry computed from motor controller messages.

/tf tf/tfMessage The transform from odom to base_link

battery_state sensor_msgs/BatteryState Charge state of the robot’s batteries.

publish_cmd geometry_msgs/TwistStamped The value of cmd_vel after limits were applied. Available if the publish_cmd paramater is set.

motor_power_active std_msgs/Bool The state of motor power being active is published. This follows the ESTOP switch within about a half second.

motor_state ubiquity_motor::MotorState The combined motor state for both wheels with positions, rotate rates, currents, pwm drive values

left_error std_msgs/Int32 The error in expected left wheel position relative to current left wheel position is published for diagnostics purposes.

right_error std_msgs/Int32 The error in expected right wheel position relative to current right wheel position is published for diagnostics purposes.

left_current std_msgs/Int32 The motor current in amps that the left motor is running at at this time

right_current std_msgs/Int32 The motor current in amps that the right motor is running at at this time

left_tick_interval std_msgs/Int32 A value that is proportional to the time between left wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

right_tick_interval std_msgs/Int32 A value that is proportional to the time between right wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

Parameters

Comms paramaters

serial_port (string, default: “/dev/ttyS0”) Name of device with which to communicate with motor controller hardware.

baud_rate (int, default: 9600) Baud rate for serial communication with motor controller hardware.

Firmware parameters

pid_proportional (int, default: 5000) The P paramater for the motor controller’s PID controller.

pid_integral (int, default: 10) The I paramater for the motor controller’s PID controller.

pid_derivative (int, default: 1) The D paramater for the motor controller’s PID controller.

pid_denominator (int, default: 1000) Divisor for the above PID paramaters.

pid_moving_buffer_size (int, default: 10) Size of a moving buffer used in the control loop.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ubiquity_motor

0.12.0 (2020-07-13)

  • Fixes ODOM bug and modifies way we set wheel type to safer system. (#87)
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level.
  • A workaround for issue 83. Insert a 2 second delay prior to serial port setup. Tests so far show this seems to avoid the issue where some OS components sets the serial port to 115200. The odd thing about the defect is stty still shows it as 38.4k but it is in fact 115.2k baud
  • Contributors: Mark Johnston

0.11.0 (2020-06-12)

  • Fixed unit test error
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level. Our main need here is thin wheels. Also add system_info script to be used for simplier field state info gathering on a magni
  • Continued mod to add more recent firmware changes into host side. Have added max_pwm to dynamic config. Made some changes to system_info.py info tool
  • Fix a repetitive logs for firmware date and version. Main new code is for support of v37 firmware registers and features. Not function complete yet for all changes
  • Putting into action mcb reset detection from system_event register and reading of mcb option switch so it can be sent back down to the MCB since mcb cannot read the onboard option register itself.
  • First commit of function complete code for support of wheel type in base.yaml, notification of MCB reset conditions, reading I2C option switch and pushing it to MCB register as the main new additions
  • Adding updates to firmware and hardware rev description
  • Better error messages for common errors
  • Adding v35 information for firmware revisions
  • Contributors: Mark Johnston, Rohan Agrawal

0.10.0 (2019-11-10)

  • Support for higher resolution odometry (firmware v35+ required)
  • Tool to verify odometry consistency
  • Support for target velocity term in the PID (firmware v35+ required)
  • Firmware update script now supports local firmware files
  • Firmware update script can use different serial port
  • Support for reading motor controller version from I2C
  • Safer E-STOP behavior (MCB 5.0+)
  • Publishing the state of the estop switch
  • Improved documentation
  • Improvements to the testing scripts
  • Contributors: Alexander Sergeenko, David Crawley, Mark Johnston, Rohan Agrawal

0.9.0 (2019-04-03)

  • Allow selecting what firmware version to download
  • Adding max motor forward and reverse speeds and max pwm settings all the way from ROS parameters to being pushed to the controller board.
  • Analyze information to create diagnostics statuses
  • Major update to test_motor_board.py that accepts greatly improved parameter read and set as well as ability to specify com port device to be used
  • Adds support for set of hw rev and for pre rev 5.0 estop threshold
  • Contributors: Mark Johnston, Rohan Agrawal

0.8.0 (2019-01-01)

  • Added firmware loading tool
  • Added misc testing scripts
  • Don't die when communication not working, only print error
  • Use std mutex/atomic instead of boost
  • Reduce print level on integral/pid limits
  • Contributors: Rohan Agrawal

0.7.1 (2018-06-16)

  • new pid params
  • Contributors: Rohan Agrawal

0.7.0 (2018-04-15)

  • Add script to probe the robot for information
  • Add Serial Protocol Documentation Fixes #33
  • Add ROS API documentation (#32)
    • Add API documentation
    • Remove unused serial_loop_rate variable
  • Contributors: Jim Vaughan, Rohan Agrawal

0.6.1 (2017-11-12)

  • Reset controller when time jumps (#31) Reset the controller and zero commanded velocity an unexpected time change occurs (such as by NTP). This prevents unexpected robot motion.
  • Contributors: Jim Vaughan, Rohan Agrawal

File truncated at 100 lines see the full file

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ubiquity_motor at Robotics Stack Exchange

No version for distro kilted showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

ubiquity_motor package from ubiquity_motor repo

ubiquity_motor

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.12.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Package that provides a ROS interface for the motors in UbiquityRobotics robots
Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2022-02-28
Dev Status DEVELOPED
Released RELEASED
Tags ros magni
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Provides a ROS interface to Ubiquity Robotics Magni motor controllers

Additional Links

No additional links.

Maintainers

  • Rohan Agrawal

Authors

No additional authors.

ubiquity_motor

Build Status

Introduction

This is a Package that provides a ROS interface for the motors in UbiquityRobotics robots. It communicates with the motor controller via a serial port.

Installation

This package may be installed from binaries for both x86 and ARM architectures.

The package may be installed with:

sudo apt-get install ros-kinetic-ubiquity-motor

Configuration launch files for the Magni robot are in the package magni_robot.

ROS API

Subscribed topics

cmd_vel geometry_msgs/Twist The command input.

system_control std_msgs/String A channel to command the motor node to change mode of operation. A text string with a commnad followed by parameter such as enable or disable are used.

motor_control disable      Stops the MCB control over serial (used for firmware load)
motor_control enable       Re-attaches the MCB control over serial for normal operation


speed_control disable      Stops the robot so no speed control is used for collision avoiance
speed_control enable       Re-enables the motor node to respond to cmd_vel speed messages

Published topics

odom nav_msgs/Odometry Odometry computed from motor controller messages.

/tf tf/tfMessage The transform from odom to base_link

battery_state sensor_msgs/BatteryState Charge state of the robot’s batteries.

publish_cmd geometry_msgs/TwistStamped The value of cmd_vel after limits were applied. Available if the publish_cmd paramater is set.

motor_power_active std_msgs/Bool The state of motor power being active is published. This follows the ESTOP switch within about a half second.

motor_state ubiquity_motor::MotorState The combined motor state for both wheels with positions, rotate rates, currents, pwm drive values

left_error std_msgs/Int32 The error in expected left wheel position relative to current left wheel position is published for diagnostics purposes.

right_error std_msgs/Int32 The error in expected right wheel position relative to current right wheel position is published for diagnostics purposes.

left_current std_msgs/Int32 The motor current in amps that the left motor is running at at this time

right_current std_msgs/Int32 The motor current in amps that the right motor is running at at this time

left_tick_interval std_msgs/Int32 A value that is proportional to the time between left wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

right_tick_interval std_msgs/Int32 A value that is proportional to the time between right wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

Parameters

Comms paramaters

serial_port (string, default: “/dev/ttyS0”) Name of device with which to communicate with motor controller hardware.

baud_rate (int, default: 9600) Baud rate for serial communication with motor controller hardware.

Firmware parameters

pid_proportional (int, default: 5000) The P paramater for the motor controller’s PID controller.

pid_integral (int, default: 10) The I paramater for the motor controller’s PID controller.

pid_derivative (int, default: 1) The D paramater for the motor controller’s PID controller.

pid_denominator (int, default: 1000) Divisor for the above PID paramaters.

pid_moving_buffer_size (int, default: 10) Size of a moving buffer used in the control loop.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ubiquity_motor

0.12.0 (2020-07-13)

  • Fixes ODOM bug and modifies way we set wheel type to safer system. (#87)
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level.
  • A workaround for issue 83. Insert a 2 second delay prior to serial port setup. Tests so far show this seems to avoid the issue where some OS components sets the serial port to 115200. The odd thing about the defect is stty still shows it as 38.4k but it is in fact 115.2k baud
  • Contributors: Mark Johnston

0.11.0 (2020-06-12)

  • Fixed unit test error
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level. Our main need here is thin wheels. Also add system_info script to be used for simplier field state info gathering on a magni
  • Continued mod to add more recent firmware changes into host side. Have added max_pwm to dynamic config. Made some changes to system_info.py info tool
  • Fix a repetitive logs for firmware date and version. Main new code is for support of v37 firmware registers and features. Not function complete yet for all changes
  • Putting into action mcb reset detection from system_event register and reading of mcb option switch so it can be sent back down to the MCB since mcb cannot read the onboard option register itself.
  • First commit of function complete code for support of wheel type in base.yaml, notification of MCB reset conditions, reading I2C option switch and pushing it to MCB register as the main new additions
  • Adding updates to firmware and hardware rev description
  • Better error messages for common errors
  • Adding v35 information for firmware revisions
  • Contributors: Mark Johnston, Rohan Agrawal

0.10.0 (2019-11-10)

  • Support for higher resolution odometry (firmware v35+ required)
  • Tool to verify odometry consistency
  • Support for target velocity term in the PID (firmware v35+ required)
  • Firmware update script now supports local firmware files
  • Firmware update script can use different serial port
  • Support for reading motor controller version from I2C
  • Safer E-STOP behavior (MCB 5.0+)
  • Publishing the state of the estop switch
  • Improved documentation
  • Improvements to the testing scripts
  • Contributors: Alexander Sergeenko, David Crawley, Mark Johnston, Rohan Agrawal

0.9.0 (2019-04-03)

  • Allow selecting what firmware version to download
  • Adding max motor forward and reverse speeds and max pwm settings all the way from ROS parameters to being pushed to the controller board.
  • Analyze information to create diagnostics statuses
  • Major update to test_motor_board.py that accepts greatly improved parameter read and set as well as ability to specify com port device to be used
  • Adds support for set of hw rev and for pre rev 5.0 estop threshold
  • Contributors: Mark Johnston, Rohan Agrawal

0.8.0 (2019-01-01)

  • Added firmware loading tool
  • Added misc testing scripts
  • Don't die when communication not working, only print error
  • Use std mutex/atomic instead of boost
  • Reduce print level on integral/pid limits
  • Contributors: Rohan Agrawal

0.7.1 (2018-06-16)

  • new pid params
  • Contributors: Rohan Agrawal

0.7.0 (2018-04-15)

  • Add script to probe the robot for information
  • Add Serial Protocol Documentation Fixes #33
  • Add ROS API documentation (#32)
    • Add API documentation
    • Remove unused serial_loop_rate variable
  • Contributors: Jim Vaughan, Rohan Agrawal

0.6.1 (2017-11-12)

  • Reset controller when time jumps (#31) Reset the controller and zero commanded velocity an unexpected time change occurs (such as by NTP). This prevents unexpected robot motion.
  • Contributors: Jim Vaughan, Rohan Agrawal

File truncated at 100 lines see the full file

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ubiquity_motor at Robotics Stack Exchange

No version for distro rolling showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

ubiquity_motor package from ubiquity_motor repo

ubiquity_motor

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.12.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Package that provides a ROS interface for the motors in UbiquityRobotics robots
Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2022-02-28
Dev Status DEVELOPED
Released RELEASED
Tags ros magni
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Provides a ROS interface to Ubiquity Robotics Magni motor controllers

Additional Links

No additional links.

Maintainers

  • Rohan Agrawal

Authors

No additional authors.

ubiquity_motor

Build Status

Introduction

This is a Package that provides a ROS interface for the motors in UbiquityRobotics robots. It communicates with the motor controller via a serial port.

Installation

This package may be installed from binaries for both x86 and ARM architectures.

The package may be installed with:

sudo apt-get install ros-kinetic-ubiquity-motor

Configuration launch files for the Magni robot are in the package magni_robot.

ROS API

Subscribed topics

cmd_vel geometry_msgs/Twist The command input.

system_control std_msgs/String A channel to command the motor node to change mode of operation. A text string with a commnad followed by parameter such as enable or disable are used.

motor_control disable      Stops the MCB control over serial (used for firmware load)
motor_control enable       Re-attaches the MCB control over serial for normal operation


speed_control disable      Stops the robot so no speed control is used for collision avoiance
speed_control enable       Re-enables the motor node to respond to cmd_vel speed messages

Published topics

odom nav_msgs/Odometry Odometry computed from motor controller messages.

/tf tf/tfMessage The transform from odom to base_link

battery_state sensor_msgs/BatteryState Charge state of the robot’s batteries.

publish_cmd geometry_msgs/TwistStamped The value of cmd_vel after limits were applied. Available if the publish_cmd paramater is set.

motor_power_active std_msgs/Bool The state of motor power being active is published. This follows the ESTOP switch within about a half second.

motor_state ubiquity_motor::MotorState The combined motor state for both wheels with positions, rotate rates, currents, pwm drive values

left_error std_msgs/Int32 The error in expected left wheel position relative to current left wheel position is published for diagnostics purposes.

right_error std_msgs/Int32 The error in expected right wheel position relative to current right wheel position is published for diagnostics purposes.

left_current std_msgs/Int32 The motor current in amps that the left motor is running at at this time

right_current std_msgs/Int32 The motor current in amps that the right motor is running at at this time

left_tick_interval std_msgs/Int32 A value that is proportional to the time between left wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

right_tick_interval std_msgs/Int32 A value that is proportional to the time between right wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

Parameters

Comms paramaters

serial_port (string, default: “/dev/ttyS0”) Name of device with which to communicate with motor controller hardware.

baud_rate (int, default: 9600) Baud rate for serial communication with motor controller hardware.

Firmware parameters

pid_proportional (int, default: 5000) The P paramater for the motor controller’s PID controller.

pid_integral (int, default: 10) The I paramater for the motor controller’s PID controller.

pid_derivative (int, default: 1) The D paramater for the motor controller’s PID controller.

pid_denominator (int, default: 1000) Divisor for the above PID paramaters.

pid_moving_buffer_size (int, default: 10) Size of a moving buffer used in the control loop.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ubiquity_motor

0.12.0 (2020-07-13)

  • Fixes ODOM bug and modifies way we set wheel type to safer system. (#87)
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level.
  • A workaround for issue 83. Insert a 2 second delay prior to serial port setup. Tests so far show this seems to avoid the issue where some OS components sets the serial port to 115200. The odd thing about the defect is stty still shows it as 38.4k but it is in fact 115.2k baud
  • Contributors: Mark Johnston

0.11.0 (2020-06-12)

  • Fixed unit test error
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level. Our main need here is thin wheels. Also add system_info script to be used for simplier field state info gathering on a magni
  • Continued mod to add more recent firmware changes into host side. Have added max_pwm to dynamic config. Made some changes to system_info.py info tool
  • Fix a repetitive logs for firmware date and version. Main new code is for support of v37 firmware registers and features. Not function complete yet for all changes
  • Putting into action mcb reset detection from system_event register and reading of mcb option switch so it can be sent back down to the MCB since mcb cannot read the onboard option register itself.
  • First commit of function complete code for support of wheel type in base.yaml, notification of MCB reset conditions, reading I2C option switch and pushing it to MCB register as the main new additions
  • Adding updates to firmware and hardware rev description
  • Better error messages for common errors
  • Adding v35 information for firmware revisions
  • Contributors: Mark Johnston, Rohan Agrawal

0.10.0 (2019-11-10)

  • Support for higher resolution odometry (firmware v35+ required)
  • Tool to verify odometry consistency
  • Support for target velocity term in the PID (firmware v35+ required)
  • Firmware update script now supports local firmware files
  • Firmware update script can use different serial port
  • Support for reading motor controller version from I2C
  • Safer E-STOP behavior (MCB 5.0+)
  • Publishing the state of the estop switch
  • Improved documentation
  • Improvements to the testing scripts
  • Contributors: Alexander Sergeenko, David Crawley, Mark Johnston, Rohan Agrawal

0.9.0 (2019-04-03)

  • Allow selecting what firmware version to download
  • Adding max motor forward and reverse speeds and max pwm settings all the way from ROS parameters to being pushed to the controller board.
  • Analyze information to create diagnostics statuses
  • Major update to test_motor_board.py that accepts greatly improved parameter read and set as well as ability to specify com port device to be used
  • Adds support for set of hw rev and for pre rev 5.0 estop threshold
  • Contributors: Mark Johnston, Rohan Agrawal

0.8.0 (2019-01-01)

  • Added firmware loading tool
  • Added misc testing scripts
  • Don't die when communication not working, only print error
  • Use std mutex/atomic instead of boost
  • Reduce print level on integral/pid limits
  • Contributors: Rohan Agrawal

0.7.1 (2018-06-16)

  • new pid params
  • Contributors: Rohan Agrawal

0.7.0 (2018-04-15)

  • Add script to probe the robot for information
  • Add Serial Protocol Documentation Fixes #33
  • Add ROS API documentation (#32)
    • Add API documentation
    • Remove unused serial_loop_rate variable
  • Contributors: Jim Vaughan, Rohan Agrawal

0.6.1 (2017-11-12)

  • Reset controller when time jumps (#31) Reset the controller and zero commanded velocity an unexpected time change occurs (such as by NTP). This prevents unexpected robot motion.
  • Contributors: Jim Vaughan, Rohan Agrawal

File truncated at 100 lines see the full file

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ubiquity_motor at Robotics Stack Exchange

No version for distro github showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

ubiquity_motor package from ubiquity_motor repo

ubiquity_motor

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.12.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Package that provides a ROS interface for the motors in UbiquityRobotics robots
Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2022-02-28
Dev Status DEVELOPED
Released RELEASED
Tags ros magni
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Provides a ROS interface to Ubiquity Robotics Magni motor controllers

Additional Links

No additional links.

Maintainers

  • Rohan Agrawal

Authors

No additional authors.

ubiquity_motor

Build Status

Introduction

This is a Package that provides a ROS interface for the motors in UbiquityRobotics robots. It communicates with the motor controller via a serial port.

Installation

This package may be installed from binaries for both x86 and ARM architectures.

The package may be installed with:

sudo apt-get install ros-kinetic-ubiquity-motor

Configuration launch files for the Magni robot are in the package magni_robot.

ROS API

Subscribed topics

cmd_vel geometry_msgs/Twist The command input.

system_control std_msgs/String A channel to command the motor node to change mode of operation. A text string with a commnad followed by parameter such as enable or disable are used.

motor_control disable      Stops the MCB control over serial (used for firmware load)
motor_control enable       Re-attaches the MCB control over serial for normal operation


speed_control disable      Stops the robot so no speed control is used for collision avoiance
speed_control enable       Re-enables the motor node to respond to cmd_vel speed messages

Published topics

odom nav_msgs/Odometry Odometry computed from motor controller messages.

/tf tf/tfMessage The transform from odom to base_link

battery_state sensor_msgs/BatteryState Charge state of the robot’s batteries.

publish_cmd geometry_msgs/TwistStamped The value of cmd_vel after limits were applied. Available if the publish_cmd paramater is set.

motor_power_active std_msgs/Bool The state of motor power being active is published. This follows the ESTOP switch within about a half second.

motor_state ubiquity_motor::MotorState The combined motor state for both wheels with positions, rotate rates, currents, pwm drive values

left_error std_msgs/Int32 The error in expected left wheel position relative to current left wheel position is published for diagnostics purposes.

right_error std_msgs/Int32 The error in expected right wheel position relative to current right wheel position is published for diagnostics purposes.

left_current std_msgs/Int32 The motor current in amps that the left motor is running at at this time

right_current std_msgs/Int32 The motor current in amps that the right motor is running at at this time

left_tick_interval std_msgs/Int32 A value that is proportional to the time between left wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

right_tick_interval std_msgs/Int32 A value that is proportional to the time between right wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

Parameters

Comms paramaters

serial_port (string, default: “/dev/ttyS0”) Name of device with which to communicate with motor controller hardware.

baud_rate (int, default: 9600) Baud rate for serial communication with motor controller hardware.

Firmware parameters

pid_proportional (int, default: 5000) The P paramater for the motor controller’s PID controller.

pid_integral (int, default: 10) The I paramater for the motor controller’s PID controller.

pid_derivative (int, default: 1) The D paramater for the motor controller’s PID controller.

pid_denominator (int, default: 1000) Divisor for the above PID paramaters.

pid_moving_buffer_size (int, default: 10) Size of a moving buffer used in the control loop.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ubiquity_motor

0.12.0 (2020-07-13)

  • Fixes ODOM bug and modifies way we set wheel type to safer system. (#87)
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level.
  • A workaround for issue 83. Insert a 2 second delay prior to serial port setup. Tests so far show this seems to avoid the issue where some OS components sets the serial port to 115200. The odd thing about the defect is stty still shows it as 38.4k but it is in fact 115.2k baud
  • Contributors: Mark Johnston

0.11.0 (2020-06-12)

  • Fixed unit test error
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level. Our main need here is thin wheels. Also add system_info script to be used for simplier field state info gathering on a magni
  • Continued mod to add more recent firmware changes into host side. Have added max_pwm to dynamic config. Made some changes to system_info.py info tool
  • Fix a repetitive logs for firmware date and version. Main new code is for support of v37 firmware registers and features. Not function complete yet for all changes
  • Putting into action mcb reset detection from system_event register and reading of mcb option switch so it can be sent back down to the MCB since mcb cannot read the onboard option register itself.
  • First commit of function complete code for support of wheel type in base.yaml, notification of MCB reset conditions, reading I2C option switch and pushing it to MCB register as the main new additions
  • Adding updates to firmware and hardware rev description
  • Better error messages for common errors
  • Adding v35 information for firmware revisions
  • Contributors: Mark Johnston, Rohan Agrawal

0.10.0 (2019-11-10)

  • Support for higher resolution odometry (firmware v35+ required)
  • Tool to verify odometry consistency
  • Support for target velocity term in the PID (firmware v35+ required)
  • Firmware update script now supports local firmware files
  • Firmware update script can use different serial port
  • Support for reading motor controller version from I2C
  • Safer E-STOP behavior (MCB 5.0+)
  • Publishing the state of the estop switch
  • Improved documentation
  • Improvements to the testing scripts
  • Contributors: Alexander Sergeenko, David Crawley, Mark Johnston, Rohan Agrawal

0.9.0 (2019-04-03)

  • Allow selecting what firmware version to download
  • Adding max motor forward and reverse speeds and max pwm settings all the way from ROS parameters to being pushed to the controller board.
  • Analyze information to create diagnostics statuses
  • Major update to test_motor_board.py that accepts greatly improved parameter read and set as well as ability to specify com port device to be used
  • Adds support for set of hw rev and for pre rev 5.0 estop threshold
  • Contributors: Mark Johnston, Rohan Agrawal

0.8.0 (2019-01-01)

  • Added firmware loading tool
  • Added misc testing scripts
  • Don't die when communication not working, only print error
  • Use std mutex/atomic instead of boost
  • Reduce print level on integral/pid limits
  • Contributors: Rohan Agrawal

0.7.1 (2018-06-16)

  • new pid params
  • Contributors: Rohan Agrawal

0.7.0 (2018-04-15)

  • Add script to probe the robot for information
  • Add Serial Protocol Documentation Fixes #33
  • Add ROS API documentation (#32)
    • Add API documentation
    • Remove unused serial_loop_rate variable
  • Contributors: Jim Vaughan, Rohan Agrawal

0.6.1 (2017-11-12)

  • Reset controller when time jumps (#31) Reset the controller and zero commanded velocity an unexpected time change occurs (such as by NTP). This prevents unexpected robot motion.
  • Contributors: Jim Vaughan, Rohan Agrawal

File truncated at 100 lines see the full file

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ubiquity_motor at Robotics Stack Exchange

No version for distro galactic showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

ubiquity_motor package from ubiquity_motor repo

ubiquity_motor

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.12.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Package that provides a ROS interface for the motors in UbiquityRobotics robots
Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2022-02-28
Dev Status DEVELOPED
Released RELEASED
Tags ros magni
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Provides a ROS interface to Ubiquity Robotics Magni motor controllers

Additional Links

No additional links.

Maintainers

  • Rohan Agrawal

Authors

No additional authors.

ubiquity_motor

Build Status

Introduction

This is a Package that provides a ROS interface for the motors in UbiquityRobotics robots. It communicates with the motor controller via a serial port.

Installation

This package may be installed from binaries for both x86 and ARM architectures.

The package may be installed with:

sudo apt-get install ros-kinetic-ubiquity-motor

Configuration launch files for the Magni robot are in the package magni_robot.

ROS API

Subscribed topics

cmd_vel geometry_msgs/Twist The command input.

system_control std_msgs/String A channel to command the motor node to change mode of operation. A text string with a commnad followed by parameter such as enable or disable are used.

motor_control disable      Stops the MCB control over serial (used for firmware load)
motor_control enable       Re-attaches the MCB control over serial for normal operation


speed_control disable      Stops the robot so no speed control is used for collision avoiance
speed_control enable       Re-enables the motor node to respond to cmd_vel speed messages

Published topics

odom nav_msgs/Odometry Odometry computed from motor controller messages.

/tf tf/tfMessage The transform from odom to base_link

battery_state sensor_msgs/BatteryState Charge state of the robot’s batteries.

publish_cmd geometry_msgs/TwistStamped The value of cmd_vel after limits were applied. Available if the publish_cmd paramater is set.

motor_power_active std_msgs/Bool The state of motor power being active is published. This follows the ESTOP switch within about a half second.

motor_state ubiquity_motor::MotorState The combined motor state for both wheels with positions, rotate rates, currents, pwm drive values

left_error std_msgs/Int32 The error in expected left wheel position relative to current left wheel position is published for diagnostics purposes.

right_error std_msgs/Int32 The error in expected right wheel position relative to current right wheel position is published for diagnostics purposes.

left_current std_msgs/Int32 The motor current in amps that the left motor is running at at this time

right_current std_msgs/Int32 The motor current in amps that the right motor is running at at this time

left_tick_interval std_msgs/Int32 A value that is proportional to the time between left wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

right_tick_interval std_msgs/Int32 A value that is proportional to the time between right wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

Parameters

Comms paramaters

serial_port (string, default: “/dev/ttyS0”) Name of device with which to communicate with motor controller hardware.

baud_rate (int, default: 9600) Baud rate for serial communication with motor controller hardware.

Firmware parameters

pid_proportional (int, default: 5000) The P paramater for the motor controller’s PID controller.

pid_integral (int, default: 10) The I paramater for the motor controller’s PID controller.

pid_derivative (int, default: 1) The D paramater for the motor controller’s PID controller.

pid_denominator (int, default: 1000) Divisor for the above PID paramaters.

pid_moving_buffer_size (int, default: 10) Size of a moving buffer used in the control loop.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ubiquity_motor

0.12.0 (2020-07-13)

  • Fixes ODOM bug and modifies way we set wheel type to safer system. (#87)
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level.
  • A workaround for issue 83. Insert a 2 second delay prior to serial port setup. Tests so far show this seems to avoid the issue where some OS components sets the serial port to 115200. The odd thing about the defect is stty still shows it as 38.4k but it is in fact 115.2k baud
  • Contributors: Mark Johnston

0.11.0 (2020-06-12)

  • Fixed unit test error
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level. Our main need here is thin wheels. Also add system_info script to be used for simplier field state info gathering on a magni
  • Continued mod to add more recent firmware changes into host side. Have added max_pwm to dynamic config. Made some changes to system_info.py info tool
  • Fix a repetitive logs for firmware date and version. Main new code is for support of v37 firmware registers and features. Not function complete yet for all changes
  • Putting into action mcb reset detection from system_event register and reading of mcb option switch so it can be sent back down to the MCB since mcb cannot read the onboard option register itself.
  • First commit of function complete code for support of wheel type in base.yaml, notification of MCB reset conditions, reading I2C option switch and pushing it to MCB register as the main new additions
  • Adding updates to firmware and hardware rev description
  • Better error messages for common errors
  • Adding v35 information for firmware revisions
  • Contributors: Mark Johnston, Rohan Agrawal

0.10.0 (2019-11-10)

  • Support for higher resolution odometry (firmware v35+ required)
  • Tool to verify odometry consistency
  • Support for target velocity term in the PID (firmware v35+ required)
  • Firmware update script now supports local firmware files
  • Firmware update script can use different serial port
  • Support for reading motor controller version from I2C
  • Safer E-STOP behavior (MCB 5.0+)
  • Publishing the state of the estop switch
  • Improved documentation
  • Improvements to the testing scripts
  • Contributors: Alexander Sergeenko, David Crawley, Mark Johnston, Rohan Agrawal

0.9.0 (2019-04-03)

  • Allow selecting what firmware version to download
  • Adding max motor forward and reverse speeds and max pwm settings all the way from ROS parameters to being pushed to the controller board.
  • Analyze information to create diagnostics statuses
  • Major update to test_motor_board.py that accepts greatly improved parameter read and set as well as ability to specify com port device to be used
  • Adds support for set of hw rev and for pre rev 5.0 estop threshold
  • Contributors: Mark Johnston, Rohan Agrawal

0.8.0 (2019-01-01)

  • Added firmware loading tool
  • Added misc testing scripts
  • Don't die when communication not working, only print error
  • Use std mutex/atomic instead of boost
  • Reduce print level on integral/pid limits
  • Contributors: Rohan Agrawal

0.7.1 (2018-06-16)

  • new pid params
  • Contributors: Rohan Agrawal

0.7.0 (2018-04-15)

  • Add script to probe the robot for information
  • Add Serial Protocol Documentation Fixes #33
  • Add ROS API documentation (#32)
    • Add API documentation
    • Remove unused serial_loop_rate variable
  • Contributors: Jim Vaughan, Rohan Agrawal

0.6.1 (2017-11-12)

  • Reset controller when time jumps (#31) Reset the controller and zero commanded velocity an unexpected time change occurs (such as by NTP). This prevents unexpected robot motion.
  • Contributors: Jim Vaughan, Rohan Agrawal

File truncated at 100 lines see the full file

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ubiquity_motor at Robotics Stack Exchange

No version for distro iron showing melodic. Known supported distros are highlighted in the buttons above.
Package symbol

ubiquity_motor package from ubiquity_motor repo

ubiquity_motor

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.12.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Package that provides a ROS interface for the motors in UbiquityRobotics robots
Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2022-02-28
Dev Status DEVELOPED
Released RELEASED
Tags ros magni
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Provides a ROS interface to Ubiquity Robotics Magni motor controllers

Additional Links

No additional links.

Maintainers

  • Rohan Agrawal

Authors

No additional authors.

ubiquity_motor

Build Status

Introduction

This is a Package that provides a ROS interface for the motors in UbiquityRobotics robots. It communicates with the motor controller via a serial port.

Installation

This package may be installed from binaries for both x86 and ARM architectures.

The package may be installed with:

sudo apt-get install ros-kinetic-ubiquity-motor

Configuration launch files for the Magni robot are in the package magni_robot.

ROS API

Subscribed topics

cmd_vel geometry_msgs/Twist The command input.

system_control std_msgs/String A channel to command the motor node to change mode of operation. A text string with a commnad followed by parameter such as enable or disable are used.

motor_control disable      Stops the MCB control over serial (used for firmware load)
motor_control enable       Re-attaches the MCB control over serial for normal operation


speed_control disable      Stops the robot so no speed control is used for collision avoiance
speed_control enable       Re-enables the motor node to respond to cmd_vel speed messages

Published topics

odom nav_msgs/Odometry Odometry computed from motor controller messages.

/tf tf/tfMessage The transform from odom to base_link

battery_state sensor_msgs/BatteryState Charge state of the robot’s batteries.

publish_cmd geometry_msgs/TwistStamped The value of cmd_vel after limits were applied. Available if the publish_cmd paramater is set.

motor_power_active std_msgs/Bool The state of motor power being active is published. This follows the ESTOP switch within about a half second.

motor_state ubiquity_motor::MotorState The combined motor state for both wheels with positions, rotate rates, currents, pwm drive values

left_error std_msgs/Int32 The error in expected left wheel position relative to current left wheel position is published for diagnostics purposes.

right_error std_msgs/Int32 The error in expected right wheel position relative to current right wheel position is published for diagnostics purposes.

left_current std_msgs/Int32 The motor current in amps that the left motor is running at at this time

right_current std_msgs/Int32 The motor current in amps that the right motor is running at at this time

left_tick_interval std_msgs/Int32 A value that is proportional to the time between left wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

right_tick_interval std_msgs/Int32 A value that is proportional to the time between right wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

Parameters

Comms paramaters

serial_port (string, default: “/dev/ttyS0”) Name of device with which to communicate with motor controller hardware.

baud_rate (int, default: 9600) Baud rate for serial communication with motor controller hardware.

Firmware parameters

pid_proportional (int, default: 5000) The P paramater for the motor controller’s PID controller.

pid_integral (int, default: 10) The I paramater for the motor controller’s PID controller.

pid_derivative (int, default: 1) The D paramater for the motor controller’s PID controller.

pid_denominator (int, default: 1000) Divisor for the above PID paramaters.

pid_moving_buffer_size (int, default: 10) Size of a moving buffer used in the control loop.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ubiquity_motor

0.12.0 (2020-07-13)

  • Fixes ODOM bug and modifies way we set wheel type to safer system. (#87)
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level.
  • A workaround for issue 83. Insert a 2 second delay prior to serial port setup. Tests so far show this seems to avoid the issue where some OS components sets the serial port to 115200. The odd thing about the defect is stty still shows it as 38.4k but it is in fact 115.2k baud
  • Contributors: Mark Johnston

0.11.0 (2020-06-12)

  • Fixed unit test error
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level. Our main need here is thin wheels. Also add system_info script to be used for simplier field state info gathering on a magni
  • Continued mod to add more recent firmware changes into host side. Have added max_pwm to dynamic config. Made some changes to system_info.py info tool
  • Fix a repetitive logs for firmware date and version. Main new code is for support of v37 firmware registers and features. Not function complete yet for all changes
  • Putting into action mcb reset detection from system_event register and reading of mcb option switch so it can be sent back down to the MCB since mcb cannot read the onboard option register itself.
  • First commit of function complete code for support of wheel type in base.yaml, notification of MCB reset conditions, reading I2C option switch and pushing it to MCB register as the main new additions
  • Adding updates to firmware and hardware rev description
  • Better error messages for common errors
  • Adding v35 information for firmware revisions
  • Contributors: Mark Johnston, Rohan Agrawal

0.10.0 (2019-11-10)

  • Support for higher resolution odometry (firmware v35+ required)
  • Tool to verify odometry consistency
  • Support for target velocity term in the PID (firmware v35+ required)
  • Firmware update script now supports local firmware files
  • Firmware update script can use different serial port
  • Support for reading motor controller version from I2C
  • Safer E-STOP behavior (MCB 5.0+)
  • Publishing the state of the estop switch
  • Improved documentation
  • Improvements to the testing scripts
  • Contributors: Alexander Sergeenko, David Crawley, Mark Johnston, Rohan Agrawal

0.9.0 (2019-04-03)

  • Allow selecting what firmware version to download
  • Adding max motor forward and reverse speeds and max pwm settings all the way from ROS parameters to being pushed to the controller board.
  • Analyze information to create diagnostics statuses
  • Major update to test_motor_board.py that accepts greatly improved parameter read and set as well as ability to specify com port device to be used
  • Adds support for set of hw rev and for pre rev 5.0 estop threshold
  • Contributors: Mark Johnston, Rohan Agrawal

0.8.0 (2019-01-01)

  • Added firmware loading tool
  • Added misc testing scripts
  • Don't die when communication not working, only print error
  • Use std mutex/atomic instead of boost
  • Reduce print level on integral/pid limits
  • Contributors: Rohan Agrawal

0.7.1 (2018-06-16)

  • new pid params
  • Contributors: Rohan Agrawal

0.7.0 (2018-04-15)

  • Add script to probe the robot for information
  • Add Serial Protocol Documentation Fixes #33
  • Add ROS API documentation (#32)
    • Add API documentation
    • Remove unused serial_loop_rate variable
  • Contributors: Jim Vaughan, Rohan Agrawal

0.6.1 (2017-11-12)

  • Reset controller when time jumps (#31) Reset the controller and zero commanded velocity an unexpected time change occurs (such as by NTP). This prevents unexpected robot motion.
  • Contributors: Jim Vaughan, Rohan Agrawal

File truncated at 100 lines see the full file

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ubiquity_motor at Robotics Stack Exchange

Package symbol

ubiquity_motor package from ubiquity_motor repo

ubiquity_motor

ROS Distro
melodic

Package Summary

Tags No category tags.
Version 0.12.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Package that provides a ROS interface for the motors in UbiquityRobotics robots
Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version kinetic-devel
Last Updated 2022-02-28
Dev Status DEVELOPED
Released RELEASED
Tags ros magni
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Provides a ROS interface to Ubiquity Robotics Magni motor controllers

Additional Links

No additional links.

Maintainers

  • Rohan Agrawal

Authors

No additional authors.

ubiquity_motor

Build Status

Introduction

This is a Package that provides a ROS interface for the motors in UbiquityRobotics robots. It communicates with the motor controller via a serial port.

Installation

This package may be installed from binaries for both x86 and ARM architectures.

The package may be installed with:

sudo apt-get install ros-kinetic-ubiquity-motor

Configuration launch files for the Magni robot are in the package magni_robot.

ROS API

Subscribed topics

cmd_vel geometry_msgs/Twist The command input.

system_control std_msgs/String A channel to command the motor node to change mode of operation. A text string with a commnad followed by parameter such as enable or disable are used.

motor_control disable      Stops the MCB control over serial (used for firmware load)
motor_control enable       Re-attaches the MCB control over serial for normal operation


speed_control disable      Stops the robot so no speed control is used for collision avoiance
speed_control enable       Re-enables the motor node to respond to cmd_vel speed messages

Published topics

odom nav_msgs/Odometry Odometry computed from motor controller messages.

/tf tf/tfMessage The transform from odom to base_link

battery_state sensor_msgs/BatteryState Charge state of the robot’s batteries.

publish_cmd geometry_msgs/TwistStamped The value of cmd_vel after limits were applied. Available if the publish_cmd paramater is set.

motor_power_active std_msgs/Bool The state of motor power being active is published. This follows the ESTOP switch within about a half second.

motor_state ubiquity_motor::MotorState The combined motor state for both wheels with positions, rotate rates, currents, pwm drive values

left_error std_msgs/Int32 The error in expected left wheel position relative to current left wheel position is published for diagnostics purposes.

right_error std_msgs/Int32 The error in expected right wheel position relative to current right wheel position is published for diagnostics purposes.

left_current std_msgs/Int32 The motor current in amps that the left motor is running at at this time

right_current std_msgs/Int32 The motor current in amps that the right motor is running at at this time

left_tick_interval std_msgs/Int32 A value that is proportional to the time between left wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

right_tick_interval std_msgs/Int32 A value that is proportional to the time between right wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

Parameters

Comms paramaters

serial_port (string, default: “/dev/ttyS0”) Name of device with which to communicate with motor controller hardware.

baud_rate (int, default: 9600) Baud rate for serial communication with motor controller hardware.

Firmware parameters

pid_proportional (int, default: 5000) The P paramater for the motor controller’s PID controller.

pid_integral (int, default: 10) The I paramater for the motor controller’s PID controller.

pid_derivative (int, default: 1) The D paramater for the motor controller’s PID controller.

pid_denominator (int, default: 1000) Divisor for the above PID paramaters.

pid_moving_buffer_size (int, default: 10) Size of a moving buffer used in the control loop.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ubiquity_motor

0.12.0 (2020-07-13)

  • Fixes ODOM bug and modifies way we set wheel type to safer system. (#87)
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level.
  • A workaround for issue 83. Insert a 2 second delay prior to serial port setup. Tests so far show this seems to avoid the issue where some OS components sets the serial port to 115200. The odd thing about the defect is stty still shows it as 38.4k but it is in fact 115.2k baud
  • Contributors: Mark Johnston

0.11.0 (2020-06-12)

  • Fixed unit test error
  • Sync up registers with v37 firmware. This adds many thing like system_events pid control selftest and thin wheel and low voltage level. Our main need here is thin wheels. Also add system_info script to be used for simplier field state info gathering on a magni
  • Continued mod to add more recent firmware changes into host side. Have added max_pwm to dynamic config. Made some changes to system_info.py info tool
  • Fix a repetitive logs for firmware date and version. Main new code is for support of v37 firmware registers and features. Not function complete yet for all changes
  • Putting into action mcb reset detection from system_event register and reading of mcb option switch so it can be sent back down to the MCB since mcb cannot read the onboard option register itself.
  • First commit of function complete code for support of wheel type in base.yaml, notification of MCB reset conditions, reading I2C option switch and pushing it to MCB register as the main new additions
  • Adding updates to firmware and hardware rev description
  • Better error messages for common errors
  • Adding v35 information for firmware revisions
  • Contributors: Mark Johnston, Rohan Agrawal

0.10.0 (2019-11-10)

  • Support for higher resolution odometry (firmware v35+ required)
  • Tool to verify odometry consistency
  • Support for target velocity term in the PID (firmware v35+ required)
  • Firmware update script now supports local firmware files
  • Firmware update script can use different serial port
  • Support for reading motor controller version from I2C
  • Safer E-STOP behavior (MCB 5.0+)
  • Publishing the state of the estop switch
  • Improved documentation
  • Improvements to the testing scripts
  • Contributors: Alexander Sergeenko, David Crawley, Mark Johnston, Rohan Agrawal

0.9.0 (2019-04-03)

  • Allow selecting what firmware version to download
  • Adding max motor forward and reverse speeds and max pwm settings all the way from ROS parameters to being pushed to the controller board.
  • Analyze information to create diagnostics statuses
  • Major update to test_motor_board.py that accepts greatly improved parameter read and set as well as ability to specify com port device to be used
  • Adds support for set of hw rev and for pre rev 5.0 estop threshold
  • Contributors: Mark Johnston, Rohan Agrawal

0.8.0 (2019-01-01)

  • Added firmware loading tool
  • Added misc testing scripts
  • Don't die when communication not working, only print error
  • Use std mutex/atomic instead of boost
  • Reduce print level on integral/pid limits
  • Contributors: Rohan Agrawal

0.7.1 (2018-06-16)

  • new pid params
  • Contributors: Rohan Agrawal

0.7.0 (2018-04-15)

  • Add script to probe the robot for information
  • Add Serial Protocol Documentation Fixes #33
  • Add ROS API documentation (#32)
    • Add API documentation
    • Remove unused serial_loop_rate variable
  • Contributors: Jim Vaughan, Rohan Agrawal

0.6.1 (2017-11-12)

  • Reset controller when time jumps (#31) Reset the controller and zero commanded velocity an unexpected time change occurs (such as by NTP). This prevents unexpected robot motion.
  • Contributors: Jim Vaughan, Rohan Agrawal

File truncated at 100 lines see the full file

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ubiquity_motor at Robotics Stack Exchange

Package symbol

ubiquity_motor package from ubiquity_motor repo

ubiquity_motor

ROS Distro
noetic

Package Summary

Tags No category tags.
Version 0.14.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description Package that provides a ROS interface for the motors in UbiquityRobotics robots
Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version noetic-devel
Last Updated 2023-11-16
Dev Status DEVELOPED
Released RELEASED
Tags ros magni
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Provides a ROS interface to Ubiquity Robotics Magni motor controllers

Additional Links

No additional links.

Maintainers

  • Rohan Agrawal

Authors

No additional authors.

ubiquity_motor

Build Status

Introduction

This is a Package that provides a ROS interface for the motors in UbiquityRobotics robots. It communicates with the motor controller via a serial port.

Installation

This package may be installed from binaries for both x86 and ARM architectures.

The package may be installed with:

sudo apt-get install ros-kinetic-ubiquity-motor

Configuration launch files for the Magni robot are in the package magni_robot.

ROS API

Subscribed topics

cmd_vel geometry_msgs/Twist The command input.

system_control std_msgs/String A channel to command the motor node to change mode of operation. A text string with a commnad followed by parameter such as enable or disable are used.

motor_control disable      Stops the MCB control over serial (used for firmware load)
motor_control enable       Re-attaches the MCB control over serial for normal operation


speed_control disable      Stops the robot so no speed control is used for collision avoiance
speed_control enable       Re-enables the motor node to respond to cmd_vel speed messages

Published topics

odom nav_msgs/Odometry Odometry computed from motor controller messages.

/tf tf/tfMessage The transform from odom to base_link

firmware_version std_msgs/String Version of motor control board (MCB) firmware formatted as “vXX YYYYMMDD” or just “vXX” if there’s no daycode found.

battery_state sensor_msgs/BatteryState Charge state of the robot’s batteries.

publish_cmd geometry_msgs/TwistStamped The value of cmd_vel after limits were applied. Available if the publish_cmd paramater is set.

motor_power_active std_msgs/Bool The state of motor power being active is published. This follows the ESTOP switch within about a half second.

motor_state ubiquity_motor::MotorState The combined motor state for both wheels with positions, rotate rates, currents, pwm drive values

left_error std_msgs/Int32 The error in expected left wheel position relative to current left wheel position is published for diagnostics purposes.

right_error std_msgs/Int32 The error in expected right wheel position relative to current right wheel position is published for diagnostics purposes.

left_current std_msgs/Int32 The motor current in amps that the left motor is running at at this time

right_current std_msgs/Int32 The motor current in amps that the right motor is running at at this time

left_tick_interval std_msgs/Int32 A value that is proportional to the time between left wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

right_tick_interval std_msgs/Int32 A value that is proportional to the time between right wheel encoder ticks for usage in diagnostics. This unsigned value is only published when velocity is non zero.

Parameters

Comms paramaters

serial_port (string, default: “/dev/ttyS0”) Name of device with which to communicate with motor controller hardware.

baud_rate (int, default: 9600) Baud rate for serial communication with motor controller hardware.

Firmware parameters

pid_proportional (int, default: 5000) The P paramater for the motor controller’s PID controller.

pid_integral (int, default: 10) The I paramater for the motor controller’s PID controller.

pid_derivative (int, default: 1) The D paramater for the motor controller’s PID controller.

pid_denominator (int, default: 1000) Divisor for the above PID paramaters.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package ubiquity_motor

0.14.1 (2022-03-19)

  • bugfix: reverted input back to py2 to fix #169
  • Contributors: Janez Cimerman

0.14.0 (2022-03-09)

  • made upgrade_firmware be run with py2 because #149
  • Rename v43 to no longer be beta2wd in the name
  • Update4wd and gear ratio for noetic (#160)
  • Updated readme to include new parameters and topics.
  • Adding clarity in comments only to our interface to controller_manager and thus DiffDriveController
  • Fix issue of i2c routine and a left over git merge marker failed make
  • Update motor_hardware_test for changes to readInputs and MotorHardware interfaces.
  • Major merge of 4WD features to Magni 2wd. This is include and message files
  • Major merge of 4WD features to Magni 2wd. This is initial motor_hardware source changes.
  • Major merge of 4WD features to Magni 2wd. This is initial motor_node source changes.
  • Adding v43_20210829_beta2wd_enc.cyacd for testing
  • Contributors: Janez Cimerman, Mark Johnston, Rohan Agrawal

0.13.2 (2021-07-27)

  • Added ros noetic github action
  • Install the shared lib for our custom serial
  • Check for mininum hardware version before reading option switch
  • Contributors: Rohan Agrawal

0.13.1 (2021-07-22)

  • Migration to Python3.8
  • upgrade_firmware.py migrated
  • test_velocity.py migrated
  • test_pi_gpio.py migrated
  • test_motor_board.py migrated
  • Contributors: Rohan Agrawal, Teo Podobnik

0.13.0 (2021-07-20)

  • Depend on python3 version of requests
  • Hack to vendor serial because it is still unreleased on noetic
  • Merge commit '32b9fad54bb1e54b9fa61f6b5c51f5ec4bf6d547' as 'serial'
  • Updated unit tests with new changes so that they pass
  • Adding beta for v41 firmware
  • Add tic interval topics and fix bat volt readings and enhance test_velocity tool (#126)
  • Cleanup of the README for better formating and clarity for tick intervals
  • Removed a diagnostic cap on interval of 2000 that was for testing
  • Adding system_control command of speed_control disable and enable. Moving the state for both speed control AND earlier added motor control to disable mcb control by motor node both into NodeParams class. Also move the defines for topic name and both commands into motor_parameters.h which is better place since now mcbSpeedControl and mcbMotorControl are now members of NodeParams which is also defined in motor_parameters.h (#122)
  • Add query of pid parameters. Fix issue with the S command where we had to use a second carrage return to enter value before. Some help menu cleanup
  • Updating to include v40 for latest Magni release candidate
  • Fix init of wheel_type for case of no yaml entry for wheel type so we will use default of standard in that case (#117)
  • Merge pull request #115 from UbiquityRobotics/addSystemControlForMcbDisable Add system control for mcb disable
  • First working disable of MCB serial to allow firmware upgrade then re-enable motor node. This has been tested and we can disable - upgrade - re-enable.
  • Now able to have motor_node receive on system_power topic a motor_control disable and it allows firmware upgrade. Next the more tricky part is to re-open and re-init MCB. The final piece is to reopen serial port as the code to re-init mcb is in this branch already
  • More incremental changes to better show battery too low
  • Working version to allow disable and re-enable of MCB on the new /system_control topic.
  • src/motor_node.cc
  • Improved the comments for clearer usage info
  • Adding arduino nano program for simple MCB diagnostics to be used without any Raspberry Pi connected.
  • Adding firmware folder. No impact to any code and is for ability to have revisions available to users to try different versions as required.
  • Adding firmware rev v39 and v37 for firmware descriptions
  • Adding board revision hardware changes done for rev 5.3 MCB
  • Merge pull request

File truncated at 100 lines see the full file

Launch files

No launch files found

Services

No service files found

Plugins

No plugins found.

Recent questions tagged ubiquity_motor at Robotics Stack Exchange