Robot configuration and settings are provided to any algorithm via a .yaml
file in the /config
directory. Part of this file is read by the Robot
class which creates a GPMP2 RobotModel
, and the remaining part is read by the Traj
class which assigns settings for controlling the robot through ROS.
For any robot, following is a list of parameters that can be provided:
mobile_base
: boolean flag to be set to True if the robot has a mobile base and is being used by any algorithmDOF
: total degree-of-freedom (DOF) of the robot. For example, a mobile manipulator with a 6 DOF arm has a total of 9 DOF (3 for base + 6 for arm)arm_base
: pose of the arm's base relative to the base of the robot if using the full robot with the base, otherwise the absolute pose of the the arm's base relative to the world coordinatesDH
: DH parameters of the robot (arm), wheretheta
is the additive bias applied to any joint andtheta_neg
is specified if any joint angles needs to flip their signspheres
: for collision checking the robot body is approximated with a collection of spheres, where any sphere of radiusr
is located at(x, y, z)
relative to any jointj
, and this information is provided with individual listsjs
,xs
,ys
,zs
, andrs
in order of the spheresarm_joint_names
: an array of strings with the names of all the joints on the arm in ordersensor_arm_sigma
: variance of sensor model for arm state measurementsensor_base_sigma
: variance of sensor model for base state measurementtrajectory_control_topic
: topic name for a action client on the robot API that accepts FollowJointTrajectoryAction ROS message type and is used to execute any trajectory on the robotest_traj_pub_topic
: (optional) publishes estimated trajectory to this topicplan_traj_pub_topic
: (optional) publishes planned trajectory to this topicarm_state_topic
: current arm state can be read from this topic and is published by the robot APIbase_state_topic
: current base state can be read from this topic and is published by the robot API
To create a robot config file for your own robot you simply need its DH parameters, an API to execute passed trajectories and publish state information and a list of spheres that well approximate the robot's body. The spheres, for example, in GPMP2 were put in the robot .xml
files and were set by loading the robot model in OpenRAVE or Matlab and then manually working out the sphere locations. Some examples of robot config files are already included in the /config
directory.