Show EOL distros: 

Package Summary

ROS Wrapper for the Segway RMP Ethernet Python Driver

Package Summary

ROS Wrapper for the Segway RMP Ethernet Python Driver

About

The ros_ethernet_rmp package is used to bridge ROS and a Segway RMP. It will convert cmd_vel topic messages to the RMPCommand format and then publish the feedback from the RMP. There is also a joint state publisher to read in the feedback and publish the changing joint states as necessary.

Nodes

ethernet_rmp.py

ethernet_rmp.py interfaces ROS with the RMP drivers.

Subscribed Topics

cmd_vel ('geometry_msgs/Twist')
  • Control the movement of the robot using movement and speed commands
rmp_command ('rmp_msgs/RMPCommand')
  • message to take RMP formatted commands to configure, set velocities and set modes of the RMP. All default values definitions for the RMP can be found in 'python_ethernet_rmp/system_defines.py'

Published Topics

rmp_feedback ('rmp_msgs/RMPFeedback')
  • publishes all of the feedback from the RMP as arrays

Parameters

~update_delay_sec (double, default: 0.05)
  • time in seconds at which commands will be sent and feedback received from the RMP. Minimum value is 0.01 seconds
~log_data (bool, default: False)
  • flag to log data from segway or not
~current_rmp_ip_addr (string, default: DEFAULT_IP_ADDRESS)
  • The ip address of the RMP currently
~current_rmp_port_num (int, default: DEFAULT_PORT_NUMBER)
  • The current port number of the RMP
~is_omni (bool, default: False)
  • Flag set if the RMP is omni-directional
~my_velocity_limit_mps (double, default: DEFAULT_MAXIMUM_VELOCITY_MPS)
  • the velocity limit for the RMP in meters per second
~my_accel_limit_mps2 (double, default: DEFAULT_MAXIMUM_ACCELERATION_MPS2)
  • the maximum acceleration for the RMP in meters per second squared
~my_decel_limit_mps2 (double, default: DEFAULT_MAXIMUM_DECELERATION_MPS2)
  • the maximum deceleration for the RMP in meters per second squared
~my_dtz_rate_mps2 (double, default: DEFAULT_MAXIMUM_DTZ_DECEL_RATE_MPS2)
  • the maximum down to zero deceleration rate for the RMP in meters per second squared
~my_coastdown_accel_mps2 (double, default: DEFAULT_COASTDOWN_ACCEL_MPS2)
  • The coastdown to zero acceleration, in meters per second squared.
~my_yaw_rate_limit_rps (double, default: DEFAULT_MAXIMUM_YAW_RATE_RPS)
  • The maximum yaw rate in radians per second.
~my_yaw_accel_limit_rps2 (double, default: DEFAULT_MAX_YAW_ACCEL_RPS2)
  • The maximum yaw acceleration in radians per second squared.
~my_tire_diameter_m (double, default: DEFAULT_TIRE_DIAMETER_M)
  • The tire diameter for the RMP.
~my_wheel_base_length_m (double, default: DEFAULT_WHEEL_BASE_LENGTH_M)
  • The wheel base length, front to back
~my_wheel_track_width_m (double, default: DEFAULT_WHEEL_TRACK_WIDTH_M)
  • The wheel track width center of left wheels to center of right wheels
~my_gear_ratio (double, default: DEFAULT_TRANSMISSION_RATIO)
  • The gear ratio between the motors and the wheels
~my_config_bitmap (int, default: DEFAULT_CONFIG_BITMAP)
  • the configuration bitmap used to set the parameters
~my_ip_address (string, default: DEFAULT_IP_ADDRESS)
  • the desired ip address for the RMP. The current address is in effect until after this IP is loaded and the RMP restarted.
~my_port_num (int, default: DEFAULT_PORT_NUMBER)
  • the desired port number for the RMP. The current port number is in effect until after this number is loaded and the RMP restarted.
~my_subnet_mask (string, default: DEFAULT_SUBNET_MASK)
  • the subnet mask for the RMP
~my_gateway (string, default: DEFAULT_GATEWAY)
  • the gateway for the RMP
~my_user_defined_feedback_bitmap_1 (double, default: DEFAULT_USER_FB_1_BITMAP)
  • the first user defined bitmap used to configure what feedback is sent back
~my_user_defined_feedback_bitmap_2 (double, default: DEFAULT_USER_FB_2_BITMAP)
  • the second user defined bitmap used to configure what feedback is sent back
~my_user_defined_feedback_bitmap_3 (double, default: DEFAULT_USER_FB_3_BITMAP)
  • the third user defined bitmap used to configure what feedback is sent back
~my_user_defined_feedback_bitmap_4 (double, default: DEFAULT_USER_FB_4_BITMAP)
  • the four user defined bitmap used to configure what feedback is sent back

rmp_pose_updater.py

rmp_pose_updater.py publishes odom information based on the feedback from the RMP

Subscribed Topics

rmp_feedback ('rmp_msgs/RMPFeedback')
  • all of the feedback from the RMP as arrays

Published Topics

odom ('nav_msgs/Odometry')
  • odometry of the robot based on the feedback from the RMP

Parameters

~publish_tf (bool, default: True)
  • Flag to determine if the tf should be published

Transforms

rmp_pose_updater broadcasts the robot frame ('/base_footprint') with respect to the odometry frame (/odom).

rmp_joint_state.py

rmp_joint_state.py publishes joint state information based on the feedback from the RMP

Subscribed Topics

rmp_feedback ('rmp_msgs/RMPFeedback')
  • all of the feedback from the RMP as arrays

Published Topics

rmp_joint_states ('sensor_msgs/JointState')
  • joint state of the driving wheels are published

Parameters

~has_two_wheels (bool, default: True)
  • Flag to determine if the robot has two or four wheels
~link_left_front (string, default: base_link_left_wheel_joint)
  • the link name of the wheel in the robot model
~link_right_front (string, default: base_link_left_wheel_joint)
  • the link name of the wheel in the robot model
~link_left_rear (string, default: base_link_left_rear_wheel_joint)
  • the link name of the wheel in the robot model
~link_right_rear (string, default: base_link_right_rear_wheel_joint)
  • the link name of the wheel in the robot model

Installation

To install the ros_ethernet_rmp package, you can choose to either install from source, or from the Ubuntu package:

Source

To install from source, execute the following:

  •    1 cd /path/to/your/catkin/workspace/src
       2 git clone https://github.com/WPI-RAIL/ros_ethernet_rmp.git
       3 cd /path/to/your/catkin/workspace
       4 catkin_make 
       5 catkin_make install
    

Ubuntu Package

To install the Ubuntu package, execute the following:

  • sudo apt-get install ros-indigo-ros-ethernet-rmp

Startup

The ros_ethernet_rmp package contains a ros_ethernet_rmp.launch file. This file launches an instance of the ethernet_rmp.py, 'rmp_pose_updater.py' and rmp_joint_states.py nodes. 'battery_monitor_rmp.launch' from 'battery_monitor_rmp' will also be launched if the argument, include_batt_monitor, is true. It is defaulted to true. To launch these nodes, with the battery monitor the following command can be used:

roslaunch ros_ethernet_rmp ros_ethernet_rmp.launch 

To launch these nodes without the battery monitor, the following command can be used:

roslaunch ros_etehrnet_rmp ros_ethernet_rmp.launch include_batt_monitor:=false

Support

Please send bug reports to the GitHub Issue Tracker. Feel free to contact me at any point with questions and comments.

Wiki: ros_ethernet_rmp (last edited 2014-12-12 16:35:33 by davidkent)