The aron_control package builds on top of the aron_description and interbotix_xs_sdk packages. Please take a look at those packages to get familiar with their nodes. You will also notice a config directory a many YAML files. The file (beside the modes.yaml one) specifies the names and initial register values for all the motors that make up a specific Aron model. There is also some 'meta-info' like names of joint groups, the desired joint-topic name and publishing frequency, etc... For a full explanation of each of these parameters, check out the Motor Config file template. The other file located in that directory is the Mode Config one (a.k.a mode.yaml). The parameters in there define the desired operating modes for either a group of joints or single joints, and whether or not they should be torqued on/off at node startup. See more by referencing the Mode Config file template. Typically, the Motor Config file is only defined here while the Mode Config file is also defined in any 'downstream' ROS package. This makes it easy for users to configure their desired motor operating modes depending on their project.
To run this package on the physical robot, type:
roslaunch aron_control aron_control.launch
To release the motors, type:
rosservice call /aron/torque_enable "{cmd_type: 'group', name: 'all', enable: false}"
To further customize the launch file at run-time, refer to the table below.
Argument | Description | Default Value |
---|---|---|
robot_name | name of the robot (typically equal to robot_model , but could be anything) |
"$(arg robot_model)" |
base_link_frame | name of the 'root' link; typically 'base_link', but can be changed if attaching to a mobile base that already has a 'base_link' frame | 'base_link' |
use_world_frame | set this to true if you would like to load a 'world' frame to the 'robot_description' parameter which is located exactly at the 'base_link' frame of the robot; if using multiple robots or if you would like to attach the 'base_link' frame of the robot to a different frame, set this to false | true |
external_urdf_loc | the file path to the custom urdf.xacro file that you would like to include in the robot's urdf.xacro file | "" |
use_rviz | launches Rviz | true |
motor_configs | the file path to the 'motor config' YAML file | refer to aron_control.launch |
mode_configs | the file path to the 'mode config' YAML file | refer to aron_control.launch |
load_configs | a boolean that specifies whether or not the initial register values (under the 'motors' heading) in a Motor Config file should be written to the motors; as the values being written are stored in each motor's EEPROM (which means the values are retained even after a power cycle), this can be set to false after the first time using the robot. Setting to false also shortens the node startup time by a few seconds and preserves the life of the EEPROM | true |
use_sim | if true, the Dynamixel simulator node is run; use Rviz to visualize the robot's motion; if false, the real Dynamixel driver node is run | false |