Interfacing with Husky ========================= Both simulated and real Husky robots expose the same ROS interface, and can be interacted with in the same way. Please make sure that the desktop packages for Husky are installed: .. code:: bash sudo apt-get install ros-melodic-husky-desktop Visualization -------------- You may start a preconfigured `rviz `_ instance using the following command: .. code:: bash roslaunch husky_viz view_robot.launch Control -------- There are three quick ways to send your Husky control commands: 1. Using the provided Logitech gamepad. The left analog stick controls the velocity and turn rate, while the 'A' and 'X' button activate the regular and extra speed modes, respectively. 2. Using the rviz instance above. If you select the Interact option in the top toolbar, an interactive marker will appear around the Husky and can be used to control speed. 3. The `rqt_robot_steering plugin `_. Run the rqt command, and select **Plugins->Robot Tools->Robot Steering** from the top menu. Husky uses `twist_mux `_ to mix four separate `geometry_msgs\/Twist `_ control channels into the ``husky_velocity_controller/cmd_vel topic``. These channels are (in order of decreasing priotity): .. raw:: html
Topic Description Priority
joy_teleop/cmd_vel Joystick teleop input 10
twist_marker_server/cmd_vel Interactive marker teleop input 8
move_base/cmd_vel Autonomous movement input, for the,husky_navigation samples 2
cmd_vel Miscellaneous external input 1
Additional velocity channels can be defined in `twist_mux\.yaml `_, or can be piped into the lowest-priority cmd_vel topic. Odometry --------- Husky publishes odometry information on the odometry/filtered topic, as `nav_msgs/Odometry messages `_. These are generated by `ekf_localization_node `_, which processes data from several sensor sources using an Extended Kalman filter (EKF). This includes data from the wheel encoders and IMU (if available). .. raw:: html
Topic Sources Description
husky_velocity_controller/odom husky_node Raw odometry as read from Husky encoders
imu/data mu_filter_madgwick Orientation estimate from the IMU
odometry/filtered ekf_localization_node Fused odometry estimate (encoders and IMU)
Additional odometry information sources can be added to the EKF in `localization\.yaml `_. Diagnostics ------------ (Non-simulated only) Husky provides hardware and software system `diagnostics `_ on the ROS standard /diagnostics topic. The best way to view these messages is using the `rqt_runtime_monitor `_ plugin. Run the rqt command, and select **Plugins->Robot Tools->Runtime Monitor** from the top menu. The same information is also published as a `husky_msgs\/HuskyStatus `_ message on the status topic.