- Make sure you have XR1ControllerROS repo
- Git the package into your workspace src/ folder
$ git clone https://github.com/Rayckey/XR1ControllerOL.git xr1controllerol
- Source the correct environment varibles based on your system
$ source switch2TX2.bash
or
$ source switch2X86.bash
- Return to root if work space folder and build using catkin build (or catkin_make)
$ catkin build
$ source devel/setup.bash
- The node that allows robot control is
$ rosrun xr1controllerol actuator_bridge
Each control group is identified by their first actuatorID: OmniWheels = 1, MainBody = 4, HeadBody = 8, LeftArm = 11, RightArm = 18, LeftHand = 25, RightHand = 30
There are a total of 9 control modes: DirectMode = 1, MoCapMode = 4, IKMode = 5, TrackMode = 6, StableMode = 7, AnimationMode = 8, DriveMode = 9, RoamMode = 10, TeachMode = 11 ##dependencies sudo apt-get install libatlas-base-dev
The user can directly control the robot via ros messages. The actuators are set to profile position mode
The user can directly control the robot via Joint State Topics. The actuators are set to profile position mode
The inverse kinemaitcs planner mode The user can assign IK targets through the IK services The actuators are set to position mode
Don't actually use this yet The actuators are set to position mode
Useable for left and right arm. The arms will try to maintain their hands position at the moment they receive the commands The actuators are set to position mode
Use the data from animation linrary Any group that gets assigned this mode will immediately start playing animation The actuators are set to position mode
Not implemented yet, meant to be used for driving. Wanted to do that peper thing but we ran out of motion capture units
Only usable on the OmniWheels. Enable driving with the combination of this node: Tele_FPS_Cmd The actuators are set to velocity mode
Trigger Gravity Compensation Mode. Will deactivate collision detection ONLY WORKS WITH BOTH ARMS The actuators are set to current mode
You can switch the current control modes with the ChainModeChangeMessage remember you need both the control group id and the mode id
As soon as any body group enters AnimationMode animation will start playing Animation will not affect any control group not in AnimationMode or DirectMode If you want to set animation mode to all control group, publish a message to "/startAnimation"
There are currently three animation type: Idle, Animation, Teach. You can queue the animations with /setAnimation topic.
You can start collision detection mode with the topic /setCollisionDetection Any control group in gravity compensation mode will switch mode, as the two calculation cannot co-exist
When the robot has entered lock down mode (It detected collision) Set the collision Detection to false to lift the lockdown