Add control and control_ros dependencies to ros robot (#633)
faf690f...
by
Rajat Kumar Jenamani <email address hidden>
Controller Switching through RosRobot (#621)
* example interface
* add separate placeholder for new robot interface
* include required FCL dep
* set root robot
* test plan to config
* add collision checking
* first commit before templatizing subrobot registration
* minor updates
* minor updates and move TODOs to issues
* nit name change
* Remove RosPositionCommandExecutor and pr_control_msgs, will refactor with updated control_msgs
* Re-add pr_control_msgs as dep
* Add Executor base class, add empty header files for RosJointGoup Executors
* Add pass-through Position/Velocity/Effort Executors based on JointGroupCommandAction
* Ran make format
* Summarize changes in CHANGELOG
* Add cancel command to pass-thru executors
* Add KinematicSimulationPositionExecutor
* Added KinematicSimulationVelocityExecutor (builds, not tested)
* Add test for KinematicSimulationPositionExecutor
* Fixed linker errors, still doesn't quite pass PositionExecutor tests
* Working tests for KinematicSimulationPositionExecutor
* Add test for KinematicSimulationVelocityExecutor
* Allow execute to overwrite previous pos/vel commands, plus remove XCode test dep until fixed
* Make format
* Initial commit to add JacobianVelocityExecutor
* Update CHANGELOG
* Template ROS, Kinematic, and base executor classes for easier review
* Addressed comments and ran make format
* Updated control.hpp list to reflect templating.
* Remove extra reference to deleted classes, and install new deps for CI
* Split off ROS-specific functions of Robot into subclass, update interface to re-add basic planning functions, and get the whole thing to build
* No longer globally require urdf and srdfdom, only for robot_ros
* Explicitly add control as component dependency for robot since we use KinematicSimulationTrajectoryExecutor (and will use others in the future)
* Re-ran make format for clang-format-10
* Added RNG and trajectory post-processing management to Robot
* Added summary to CHANGELOG and added WorldPtr functionality
* Fixed formatting on docstring
* Flesh out step functionality to propogate to all subrobots
* Switch to configuration interface instead of state interface, plus add skeleton locking
* Add ability to specify postprocessor for each plan
* Forgot postprocessor in function def
* Make format
* Expose metaskeleton
* Enforce root robot MetaSkeleton to be true Skeleton, and subrobots are ReferentialSkeletons referencing the root Skeleton
* Move all implementations to cpp file
* Fixed segfault by early cast of goalState, plus limited statespace to controlled metaskeleton, plus have child robots handle their own collisionfree generation to ensure statespaces match
* Fixed segfaults plus tested both self and world collision checker
* Don't init subrobots with shared_ptr root, as this dobule-frees everything on destruction
* Make format
* Make loadSkeletonFromURDF externally accessible
* Get world from parent robot
* Addressed comments and add DoF resource manager
* Finished addressing comments by checking traj statespae vs provided Dofs
* Ran make format
* Added control::Executor test, and fixed up other executor tests
* Null check on TrajectoryExecutor in ConcreteRobot
* Re-added PlanToOffset with default vector field parameters
* Update DART version in README
* WIP: Updated Robot.hpp
* WIP: New executor swapping interface
* Removed merge conflict artifacts
* [WIP] JacobianExecutor builds
* Make format
* [WIP] Executor list compiles, now needs unit tests
* [WIP] Ran make format
* Added tests to new Robot executor interface
* Add const back to dofs getter
* Ran make format
* Add tests for JacobianExecutor
* Using RosJointModeCommandClient + RosJointModeCommandExecutor as joint mode switching action client
* Removed JointModeCommandExecutor and added executor utility overrides to ros::Robot
* VisualServoingExecutor now builds
* Added VisualServoingExecutor Tests
* Update CHANGELOG
* Make tighter default lambda
* Update CHANGELOG
* RosRobot sub robots are RosRobots
* Changed executor <-> controller switching order + added descriptions
* Switched dynamic casting with getter for mDoFs
* Setup ROS::NodeHandle in constructor
* Ran Make Format
* RosRobot CANNOT add default Robot executors, as this instantly breaks the invariant between controller and executor lists
* RosRobot needs to have shared control of the NodeHandle
* Spelling fix
* Add getter/setter for visual servoing properties
* Pass NodeHandle by reference, remove std move
* Make sure NodeHandle management is done with const pass by reference
* Changed logic for mode controller and ros service controller clients
* Switched executor id to string + removed override for activate executor by type
* Made activateExecutor(ExecutorType) visible in RosRobot
* Added load controller client + bug fixes
* Minor edits to remove untouched files
* [WIP]: add hardware_interface dependency
* Addressed PR Comments
* Changed dependencies
* Addressed PR Comments + Removed dependencies due to local build errors
* Added check for controller status before stopping + removed mNode member
* add separate placeholder for new robot interface
* include required FCL dep
* set root robot
* test plan to config
* add collision checking
* first commit before templatizing subrobot registration
* minor updates
* minor updates and move TODOs to issues
* nit name change
* Remove RosPositionCommandExecutor and pr_control_msgs, will refactor with updated control_msgs
* Re-add pr_control_msgs as dep
* Add Executor base class, add empty header files for RosJointGoup Executors
* Add pass-through Position/Velocity/Effort Executors based on JointGroupCommandAction
* Ran make format
* Summarize changes in CHANGELOG
* Add cancel command to pass-thru executors
* Add KinematicSimulationPositionExecutor
* Added KinematicSimulationVelocityExecutor (builds, not tested)
* Add test for KinematicSimulationPositionExecutor
* Fixed linker errors, still doesn't quite pass PositionExecutor tests
* Working tests for KinematicSimulationPositionExecutor
* Add test for KinematicSimulationVelocityExecutor
* Allow execute to overwrite previous pos/vel commands, plus remove XCode test dep until fixed
* Make format
* Initial commit to add JacobianVelocityExecutor
* Update CHANGELOG
* Template ROS, Kinematic, and base executor classes for easier review
* Addressed comments and ran make format
* Updated control.hpp list to reflect templating.
* Remove extra reference to deleted classes, and install new deps for CI
* Split off ROS-specific functions of Robot into subclass, update interface to re-add basic planning functions, and get the whole thing to build
* No longer globally require urdf and srdfdom, only for robot_ros
* Explicitly add control as component dependency for robot since we use KinematicSimulationTrajectoryExecutor (and will use others in the future)
* Re-ran make format for clang-format-10
* Added RNG and trajectory post-processing management to Robot
* Added summary to CHANGELOG and added WorldPtr functionality
* Fixed formatting on docstring
* Flesh out step functionality to propogate to all subrobots
* Switch to configuration interface instead of state interface, plus add skeleton locking
* Add ability to specify postprocessor for each plan
* Forgot postprocessor in function def
* Make format
* Expose metaskeleton
* Enforce root robot MetaSkeleton to be true Skeleton, and subrobots are ReferentialSkeletons referencing the root Skeleton
* Move all implementations to cpp file
* Fixed segfault by early cast of goalState, plus limited statespace to controlled metaskeleton, plus have child robots handle their own collisionfree generation to ensure statespaces match
* Fixed segfaults plus tested both self and world collision checker
* Don't init subrobots with shared_ptr root, as this dobule-frees everything on destruction
* Make format
* Make loadSkeletonFromURDF externally accessible
* Get world from parent robot
* Addressed comments and add DoF resource manager
* Finished addressing comments by checking traj statespae vs provided Dofs
* Ran make format
* Added control::Executor test, and fixed up other executor tests
* Null check on TrajectoryExecutor in ConcreteRobot
* Re-added PlanToOffset with default vector field parameters
* Update DART version in README
* WIP: Updated Robot.hpp
* WIP: New executor swapping interface
* Removed merge conflict artifacts
* [WIP] JacobianExecutor builds
* Make format
* [WIP] Executor list compiles, now needs unit tests
* [WIP] Ran make format
* Added tests to new Robot executor interface
* Add const back to dofs getter
* Ran make format
* Add tests for JacobianExecutor
* Using RosJointModeCommandClient + RosJointModeCommandExecutor as joint mode switching action client
* Removed JointModeCommandExecutor and added executor utility overrides to ros::Robot
* VisualServoingExecutor now builds
* Added VisualServoingExecutor Tests
* Update CHANGELOG
* Make tighter default lambda
* Update CHANGELOG
* RosRobot sub robots are RosRobots
* Changed executor <-> controller switching order + added descriptions
* Switched dynamic casting with getter for mDoFs
* Setup ROS::NodeHandle in constructor
* Ran Make Format
* RosRobot CANNOT add default Robot executors, as this instantly breaks the invariant between controller and executor lists
* RosRobot needs to have shared control of the NodeHandle
* Spelling fix
* Add getter/setter for visual servoing properties
* Pass NodeHandle by reference, remove std move
* Make sure NodeHandle management is done with const pass by reference
* Changed logic for mode controller and ros service controller clients
* Switched executor id to string + removed override for activate executor by type
* Made activateExecutor(ExecutorType) visible in RosRobot
* Added load controller client + bug fixes
* Minor edits to remove untouched files
* [WIP]: add hardware_interface dependency
* Addressed PR Comments
* Changed dependencies
* Addressed PR Comments + Removed dependencies due to local build errors
* Added check for controller status before stopping + removed mNode member