ubiquity_motor repository

Repository Summary

Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-12-08
Dev Status DEVELOPED
Released RELEASED

Packages

Name Version
ubiquity_motor 0.7.1

README

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.

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.

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.

deadman_timer (int, default: 2400000) If a message is not received after this interval (in MCU clock ticks), the motor controller should assume an error condition and stop.

battery_voltage_multiplier (float, default: 0.5185) Used to calculate battery voltage from motor controller messages.

battery_voltage_offset (float, default: 0.40948) Used to calculate battery voltage from motor controller messages.

Node parameters

controller_loop_rate (double, default: 20.0) Rate (in Hz) at which to send commands to the motor controller hardware.

diff_drive_controller paramaters

left_wheel (string | string[...]) Left wheel joint name or list of joint names.

right_wheel (string | string[...]) Right wheel joint name or list of joint names.

pose_covariance_diagonal (double[6]) Diagonal of the covariance matrix for odometry pose publishing.

twist_covariance_diagonal (double[6]) Diagonal of the covariance matrix for odometry twist publishing.

publish_rate (double, default: 50.0) Frequency (in Hz) at which the odometry is published. Used for both tf and odom.

wheel_separation_multiplier (double, default: 1.0) Multiplier applied to the wheel separation parameter. This is used to account for a difference between the robot model and a real robot.

wheel_radius_multiplier (double, default: 1.0) Multiplier applied to the wheel radius parameter. This is used to account for a difference between the robot model and a real robot.

cmd_vel_timeout (double, default: 0.5) Allowed period (in seconds) allowed between two successive velocity commands. After this delay, a zero speed command will be sent to the wheels.

base_frame_id (string, default: base_link) Base frame_id, which is used to fill in the child_frame_id of the Odometry messages and TF.

linear/x/has_velocity_limits (bool, default: false) Whether the controller should limit linear speed.

linear/x/max_velocity (double) Maximum linear velocity (in m/s).

linear/x/min_velocity (double) Minimum linear velocity (in m/s). Setting this to 0.0 will disable backwards motion. When unspecified, -max_velocity is used.

linear/x/has_acceleration_limits (bool, default: false) Whether the controller should limit linear acceleration.

linear/x/max_acceleration (double) Maximum linear acceleration (in m/s^2).

linear/x/min_acceleration (double) Minimum linear acceleration (in m/s^2). When unspecified, -max_acceleration is used.

linear/x/has_jerk_limits (bool, default: false) Whether the controller should limit linear jerk.

linear/x/max_jerk (double) Maximum linear jerk (in m/s^3).

angular/z/has_velocity_limits (bool, default: false) Whether the controller should limit angular velocity.

angular/z/max_velocity (double) Maximum angular velocity (in rad/s).

angular/z/min_velocity (double) Minimum angular velocity (in rad/s). Setting this to 0.0 will disable counter-clockwise rotation. When unspecified, -max_velocity is used.

angular/z/has_acceleration_limits (bool, default: false) Whether the controller should limit angular acceleration.

angular/z/max_acceleration (double) Maximum angular acceleration (in rad/s^2).

angular/z/min_acceleration (double) Minimum angular acceleration (in rad/s^2). When unspecified, -max_acceleration is used.

angular/z/has_jerk_limits (bool, default: false) Whether the controller should limit angular jerk.

angular/z/max_jerk (double) Maximum angular jerk (in m/s^3).

enable_odom_tf (bool, default: true) Whether to publish to TF directly.

wheel_separation (double) The distance of the left and right wheel(s). The diff_drive_controller will attempt to read the value from the URDF if this parameter is not specified.

wheel_radius (double) Radius of the wheels. It is expected they all have the same size. The diff_drive_controller will attempt to read the value from the URDF if this parameter is not specified.

odom_frame_id (string, default: "/odom") Name of frame in which to publish odometry.

publish_cmd (bool, default: false) Publish the velocity command to be executed. It is to monitor the effect of limiters on the controller input.

allow_multiple_cmd_vel_publishers (bool, default: false) When enabled the controller will brake if there is more than one publishers on its input topic, ~/cmd_vel.

Repository Summary

Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version indigo-devel
Last Updated 2018-12-08
Dev Status DEVELOPED
Released RELEASED

Packages

Name Version
ubiquity_motor 0.7.1

README

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.

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.

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.

deadman_timer (int, default: 2400000) If a message is not received after this interval (in MCU clock ticks), the motor controller should assume an error condition and stop.

battery_voltage_multiplier (float, default: 0.5185) Used to calculate battery voltage from motor controller messages.

battery_voltage_offset (float, default: 0.40948) Used to calculate battery voltage from motor controller messages.

Node parameters

controller_loop_rate (double, default: 20.0) Rate (in Hz) at which to send commands to the motor controller hardware.

diff_drive_controller paramaters

left_wheel (string | string[...]) Left wheel joint name or list of joint names.

right_wheel (string | string[...]) Right wheel joint name or list of joint names.

pose_covariance_diagonal (double[6]) Diagonal of the covariance matrix for odometry pose publishing.

twist_covariance_diagonal (double[6]) Diagonal of the covariance matrix for odometry twist publishing.

publish_rate (double, default: 50.0) Frequency (in Hz) at which the odometry is published. Used for both tf and odom.

wheel_separation_multiplier (double, default: 1.0) Multiplier applied to the wheel separation parameter. This is used to account for a difference between the robot model and a real robot.

wheel_radius_multiplier (double, default: 1.0) Multiplier applied to the wheel radius parameter. This is used to account for a difference between the robot model and a real robot.

cmd_vel_timeout (double, default: 0.5) Allowed period (in seconds) allowed between two successive velocity commands. After this delay, a zero speed command will be sent to the wheels.

base_frame_id (string, default: base_link) Base frame_id, which is used to fill in the child_frame_id of the Odometry messages and TF.

linear/x/has_velocity_limits (bool, default: false) Whether the controller should limit linear speed.

linear/x/max_velocity (double) Maximum linear velocity (in m/s).

linear/x/min_velocity (double) Minimum linear velocity (in m/s). Setting this to 0.0 will disable backwards motion. When unspecified, -max_velocity is used.

linear/x/has_acceleration_limits (bool, default: false) Whether the controller should limit linear acceleration.

linear/x/max_acceleration (double) Maximum linear acceleration (in m/s^2).

linear/x/min_acceleration (double) Minimum linear acceleration (in m/s^2). When unspecified, -max_acceleration is used.

linear/x/has_jerk_limits (bool, default: false) Whether the controller should limit linear jerk.

linear/x/max_jerk (double) Maximum linear jerk (in m/s^3).

angular/z/has_velocity_limits (bool, default: false) Whether the controller should limit angular velocity.

angular/z/max_velocity (double) Maximum angular velocity (in rad/s).

angular/z/min_velocity (double) Minimum angular velocity (in rad/s). Setting this to 0.0 will disable counter-clockwise rotation. When unspecified, -max_velocity is used.

angular/z/has_acceleration_limits (bool, default: false) Whether the controller should limit angular acceleration.

angular/z/max_acceleration (double) Maximum angular acceleration (in rad/s^2).

angular/z/min_acceleration (double) Minimum angular acceleration (in rad/s^2). When unspecified, -max_acceleration is used.

angular/z/has_jerk_limits (bool, default: false) Whether the controller should limit angular jerk.

angular/z/max_jerk (double) Maximum angular jerk (in m/s^3).

enable_odom_tf (bool, default: true) Whether to publish to TF directly.

wheel_separation (double) The distance of the left and right wheel(s). The diff_drive_controller will attempt to read the value from the URDF if this parameter is not specified.

wheel_radius (double) Radius of the wheels. It is expected they all have the same size. The diff_drive_controller will attempt to read the value from the URDF if this parameter is not specified.

odom_frame_id (string, default: "/odom") Name of frame in which to publish odometry.

publish_cmd (bool, default: false) Publish the velocity command to be executed. It is to monitor the effect of limiters on the controller input.

allow_multiple_cmd_vel_publishers (bool, default: false) When enabled the controller will brake if there is more than one publishers on its input topic, ~/cmd_vel.

Repository Summary

Checkout URI https://github.com/UbiquityRobotics/ubiquity_motor.git
VCS Type git
VCS Version hydro
Last Updated 2015-08-01
Dev Status DEVELOPED
Released RELEASED

Packages

Name Version
ubiquity_motor 0.1.0

README

ubiquity_motor

Build Status

Package that provides a ROS interface for the motors in UbiquityRobotics robots

To run this node:

rosrun ubiquity_motor ubiquity_motor

Parameters and defaults

    /ubiquity/motor/device_name /dev/ttyUSB0 
/ubiquity/motor/baud_rate 9600
/ubiquity/motor/odom_rate 1.0/20.0
/ubiquity/motor/diag_rate 2
/ubiquity/motor/spin_rate 1.0/100.0

Subscribes to

/cmd_vel    geometry_msgs::Twist

Publishes

/odom       nav_msgs::Odometry