Sentry chassis controller package for ROS1 Noetic and Gazebo.
This package keeps a single controller plugin:
sentry_chassis_controller/SentryChassisController
It is built on top of rm_chassis_controllers::ChassisBase and keeps only the Sentry-specific controller logic.
The old kinematics, runtime parameter tuning, and PID tuning scripts are no longer part of the package.
Build the package in a catkin workspace:
source /opt/ros/noetic/setup.bash
catkin build sentry_chassis_controllerrm_chassis_controllers::ChassisBase
roscppcontroller_interfacehardware_interfacepluginlibrm_chassis_controllerseffort_controllersangleseigen
The controller namespace is /sentry_chassis_controller.
Provided by ChassisBase:
publish_rateenable_odom_tfpublish_odom_tftimeoutwheel_radiusmax_odom_veltwist_covariance_diagonalpowerpid_follow
Custom Sentry parameters:
wheel_rolling_signswheel_direction_signs/vxwheel_direction_signs/vywheel_direction_signs/wzmodules
Each module requires:
positionpivot/jointpivot/offsetpivot/pidwheel/jointwheel/radiuswheel/pid
Removed parameters:
steer_zero_offsetscommand_compensation_matrixenable_dynamic_reconfigure
Controller-only launch:
roslaunch sentry_chassis_controller sentry_chassis_controller.launchGazebo launch:
roslaunch sentry_chassis_controller sentry_sim.launchHeadless Gazebo:
roslaunch sentry_chassis_controller sentry_sim.launch gui:=false with_foxglove:=falseTeleop:
rosrun sentry_chassis_controller teleop_keyboard.shevaluate_teleop_behavior.pyevaluate_teleop_keys.pyauto_calibrate_signs.pyauto_calibrate_sign_chain.pypublish_default_chassis_cmd.py
Container wrappers:
./scripts/_run_teleop_eval_inside.sh./scripts/_run_auto_calibrate_inside.sh./scripts/_run_auto_calibrate_sign_chain_inside.sh