Several control tools: continuous domain state space model solvers, effort feed-forward trajectory controller, gravity compensation controller, Gazebo hardware interface plugin to simulate servo drives and etc.
All packages are built against ROS Noetic. You should have installed: moveit, gazebo_ros packages, ros_controll and ros_controllers packages (TBD)
External dependencies: Eigen, OpenCV
ROS node for detecting aruco markers. Publishes markers poses and tfs, so they could be processed and viewed via rviz.
At the moment it contains classes for:
- transfer function description
- state space model (Euler and RK4 solvers)
- linear dynamic system
- Butterworth filter
- permanent magnet brushed motor
- servo motor with current loop
- mass-spring-damper model
Implementation of joint_trajectory_controller with effort feed forward input
Robot-level controllers. Currently has:
- gravity compensation controller
Hardware interface plugin to simulate servo motor actuator
Load parameters to parameter server, see config example
Modify your URDF file:
<gazebo>
<plugin name="gazebo_ros_control"
filename="libgazebo_ros_control.so">
<robotNamespace>/your_robot_namespace</robotNamespace>
<robotSimType>gazebo_ros_control/ServoRobotHWSim</robotSimType>
<!--robotSimType>gazebo_ros_control/DefaultRobotHWSim</robotSimType-->
</plugin>
</gazebo>