Skip to content

ezrassor_sim_control

Jordan Albury edited this page Apr 24, 2020 · 6 revisions

Summary

The ezrassor_sim_control package controls the movement of the arms, drums, and wheels of the robot.

For the arms and drums, this package subscribes to instruction topics and converts those values into data that can be sent directly to the EZ-RASSOR's joint controllers, based on joint mappings in the default_position_controllers.yaml file.

The diff_drive_controller package is used to control the wheels via Twist messages. This package also publishes wheel odometry automatically as it receives Twist messages.

Inputs/Outputs

The following is a list of topic inputs and outputs, with each topic's type shown in brackets:

INPUTS
node <- /wheel_instructions [geometry_msgs/Twist]
node <- /front_arm_instructions [std_msgs/Float32]
node <- /back_arm_instructions [std_msgs/Float32]
node <- /front_drum_instructions [std_msgs/Float32]
node <- /back_drum_instructions [std_msgs/Float32]

OUTPUTS
node -> /arm_front_velocity_controller/command [std_msgs/Float64]
node -> /arm_back_velocity_controller/command [std_msgs/Float64]
node -> /diff_drive_controller/cmd_vel [geometry_msgs/Twist]
node -> /diff_drive_controller/odom [nav_msgs/Odometry]
node -> /drum_front_velocity_controller/command [std_msgs/Float64]
node -> /drum_back_velocity_controller/command [std_msgs/Float64]

Launch Files

model_controls.launch

This launch file spawns the EZ-RASSOR joint controllers so that they can receive data. It also starts the Python nodes that translate data for the arms, wheels, and drums.